Guides

Bring your own key

Some APIs (search, scraping and crawling services) run on your own account with the provider. Save your provider key once in Pikeway and call them like any other API, with the same Pikeway key, MCP, CLI and call log. The provider bills you directly; Pikeway charges nothing for these calls.

Supported connectors

Exa, Firecrawl, Serper and Apify.

Set it up

1

Get a key from the provider

Sign up with the provider and create an API key in its dashboard. Console → Connections links to the right page for each one.

2

Save it in Console → Connections

Paste the key in Console → Connections. It's stored encrypted and only ever sent to that provider. You can add more keys for the same API (they take turns, each with its own budget), replace or remove them at any time, and see each key's calls today and this month.

3

Call it with your Pikeway key

Nothing changes in how you call it. The gateway swaps in your provider key before forwarding.

bash
curl -i -X POST https://gw.pikeway.ai/gw/exa/search \
  -H "Authorization: Bearer $PIKEWAY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "x402 payment protocol"}'

# X-Pikeway-Byok: 1      ← your own Exa key was used
# X-Pikeway-Cost: 0      ← Pikeway charged nothing; Exa bills your Exa account

How these calls are handled

  • Billing: the call costs 0 on Pikeway. Usage and charges appear on your account with the provider.
  • Logs: every call still shows up in your call log and usage, marked by X-Pikeway-Byok: 1 on the response.
  • Caching: responses are never cached or shared, since they belong to your own provider account.
  • Key restrictions (IP allowlist, sites, rate limits) on your Pikeway key still apply.

Without a saved key

If a connector requires your own key (all current ones do), calling it without one returns 403 with a link to get a key. A connector marked optional falls back to Pikeway's own access instead and is billed per call as usual.

403
HTTP/1.1 403 Forbidden
{
  "error": "add your Exa API key in Console → Connections to call this API (it's billed by Exa, not Pikeway)",
  "statusCode": 403,
  "byok": true,
  "provider": "Exa",
  "signupUrl": "https://dashboard.exa.ai/api-keys",
  "keyHint": "Exa dashboard → API Keys"
}
Fields in the 403 response
byoktrue
Tells agents this is a missing-key error, not a permission problem.
signupUrlstring
Where to create a key with the provider.
keyHintstring
Where to find the key in the provider's dashboard.