> ## Documentation Index
> Fetch the complete documentation index at: https://idle.docs.datacircle.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Pass-through

> Already calling HarvestAPI, iBlinked, Up2Data, BlitzAPI or Apify? Change the host, add two headers, keep everything else.

Same path, same query, same body as the provider. You get the provider's exact status and body back, paid from your Datacircle credits at cost.

| Header | Value |
| - | - |
| `X-Datacircle-Provider` | `harvestapi`, `iblinked`, `up2data`, `blitzapi` or `apify` |
| `X-Datacircle-Key` | your Datacircle API key |

`Authorization` is left alone: it's not ours.

```bash theme={null}
# HarvestAPI: api.harvest-api.com becomes api.datacircle.dev
curl -i "https://api.datacircle.dev/linkedin/profile?url=https://www.linkedin.com/in/williamhgates/" \
  -H "X-Datacircle-Provider: harvestapi" -H "X-Datacircle-Key: $DATACIRCLE_API_KEY"

# iBlinked: api.iblinked.fr becomes api.datacircle.dev
curl -i -X POST "https://api.datacircle.dev/v1/enrich/single" \
  -H "X-Datacircle-Provider: iblinked" -H "X-Datacircle-Key: $DATACIRCLE_API_KEY" \
  -H "Content-Type: application/json" -d '{"token": "williamhgates", "include": ["all"]}'

# Up2Data: api.up2data.ai becomes api.datacircle.dev
curl -i -X POST "https://api.datacircle.dev/v1/profiles/enrich" \
  -H "X-Datacircle-Provider: up2data" -H "X-Datacircle-Key: $DATACIRCLE_API_KEY" \
  -H "Content-Type: application/json" -d '{"url": "https://www.linkedin.com/in/williamhgates"}'

# BlitzAPI: api.blitz-api.ai becomes api.datacircle.dev (verified work email from a LinkedIn URL)
curl -i -X POST "https://api.datacircle.dev/v2/enrichment/email" \
  -H "X-Datacircle-Provider: blitzapi" -H "X-Datacircle-Key: $DATACIRCLE_API_KEY" \
  -H "Content-Type: application/json" -d '{"person_linkedin_url": "https://www.linkedin.com/in/williamhgates"}'

# Apify: api.apify.com becomes api.datacircle.dev (any Store actor, here Stripe employees from LinkedIn)
curl -i -X POST "https://api.datacircle.dev/v2/acts/harvestapi~linkedin-company-employees/run-sync-get-dataset-items" \
  -H "X-Datacircle-Provider: apify" -H "X-Datacircle-Key: $DATACIRCLE_API_KEY" \
  -H "Content-Type: application/json" -d '{"companies": ["https://www.linkedin.com/company/stripe/"], "maxItems": 2}'
```

HarvestAPI paths: `GET /linkedin/profile`, `/linkedin/company`, `/linkedin/profile-search`, `/linkedin/company-search`. iBlinked: `POST /v1/enrich/single`. Up2Data: `POST /v1/profiles/enrich` ($0.001 per profile found; a miss Up2Data doesn't bill is free). BlitzAPI: `POST /v2/enrichment/email`, `/v2/enrichment/person`, `/v2/enrichment/company` ($0.01 per record BlitzAPI uses; errors are free). Apify: `POST /v2/acts/<user>~<actor>/run-sync-get-dataset-items` for any Store actor, query `timeout` (seconds, at most 300, the default), `memory` (MB, at most 1024, the default), `maxItems`, `maxTotalChargeUsd`, `clean`, `fields`, `limit`; you pay the run's full cost at Apify's list price. Pay-per-event charges stop at your balance (the run gets `maxTotalChargeUsd` set to it); compute is bounded by the memory and timeout caps, and a run that costs more than your balance takes it below zero. \$0.05 minimum balance to start. Runs over about 5 minutes are aborted and return `408`. Ready-to-paste B2B actors: [Apify recipes](/apify-recipes).

Our data is in response headers only:

| Header | Meaning |
| - | - |
| `X-Datacircle-Cost-USD` | what this call cost |
| `X-Datacircle-Balance-USD` | what you have left |
| `X-Datacircle-Cache-Hit` | `true` when the co-op already had it |

Errors that are ours, not the provider's:

| Status | Meaning |
| - | - |
| `401` | missing or invalid `X-Datacircle-Key` |
| `400` | unknown `X-Datacircle-Provider`, or a proxied POST route without a JSON object body |
| `402` | out of credit |
| `404` | no `X-Datacircle-Provider` header, or a path we don't pass through |

## Your API key is enough

No URL carries a workspace: the key picks it. Datacircle's own routes are `/auth/`, `/me/`, `/credits/`, `/checkout/`, `/files/` and `/linkedin/<x>/`, with `Authorization: Token <api_key>`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.