> ## 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 iBlinked or Up2Data? Change the host, add two headers, keep everything else.

Same path, same query, same body as the provider, with the per-provider limits listed at the end of this page (iBlinked reads only `token`). You get the provider's exact status and body back, paid from your Datacircle credits at cost.

| Header | Value |
| - | - |
| `X-Datacircle-Provider` | `iblinked` or `up2data` |
| `X-Datacircle-Key` | your Datacircle API key |

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

```bash theme={null}
# iBlinked: api.iblinked.fr becomes api.datacircle.dev
curl -i -X POST "https://idle.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://idle.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"}'

```

iBlinked: `POST /v1/enrich/single`; only `token` is read from your body, Datacircle always sends `include: ["all"]` and bills one iBlinked credit per call at most (\$0.001; a miss iBlinked reports as 0 used is free), and the cache is keyed on `token`. Up2Data: `POST /v1/profiles/enrich` (\$0.00125 per profile found, what Up2Data bills us; a miss Up2Data doesn't bill is free). Up2Data has a daily limit too (\$1 per account) and answers `429` past it; past any daily limit, an answer already in the shared cache is still served, free.

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 (free) |
| `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>` (`Bearer <api_key>` works too).


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