Skip to main content
An API key is optional on REST calls to the Vulcx API (https://api.vulcx.xyz) — /quote, /swap, /instructions, and /price all work with no key. Without one, you’re on a small shared anonymous budget of 1 cost unit/second; send a key and you get your own 100 cost units/second. Keys look like vulcx_ followed by a long hex string, and you send them in the standard Authorization: Bearer header (or as a ?key= query parameter).
The WebSocket stream is the exception: GET /api/v1/stream always requires a key, passed as ?key= since a browser WS handshake can’t carry custom headers. See WebSocket streaming below.
Vulcx is free during beta — there are no paid tiers yet. Getting a key is still worthwhile: anonymous access is capped at 1 cost unit per second against the 100 a key gets (see Rate limits), and a key is what gives you your own budget rather than a bucket shared with every anonymous caller on your IP.

Get an API key

1

Request a key

Keys are free during beta and issued by hand, so the form asks what you are building. You will hear back within a day.

Request an API key

Takes a minute. Email, product, and what you are building.
Prefer to just ask? Telegram still works.
2

Store it as an environment variable

Never hard-code a key in source. Keep it in an environment variable:

Authenticate a request

Send your key in the Authorization header on every request:

SDK

The SDK takes the key directly — you don’t set headers yourself.
SDK

WebSocket streaming

Browsers can’t set custom headers on a WebSocket connection, so the streaming endpoint accepts the key as a key query parameter instead:

Keep your key secret

A key grants access under your account’s rate limits. Treat it like a password.
  • Server-side keys stay on the server. Don’t commit keys to git or ship them in a public repo.
  • Browser usage exposes the key in client code. For client-side embeds, use a key you’ve provisioned for that purpose and rotate it if it leaks.
  • Rotate compromised keys by requesting a new one and retiring the old.

Errors

The SDK surfaces these as AuthError — see SDK error handling. For throughput limits — including the tighter anonymous-tier limit — and the 429 response, see Rate limits.
Last modified on September 1, 2026