Skip to main content
Every /v1/* endpoint requires an API key in the X-API-Key header.

Get your key

Sign up at app.vintl.io. Your key is shown once at creation — copy it immediately. We store a SHA-256 hash only (the Stripe model — if you lose the key, generate a new one).
vntl_live_sk_7f3a9b2c1d4e5f6a7b8c9d0e1f2a3b4c
The vntl_live_ prefix identifies it as a Vintl production key.

Send your key

curl -H "X-API-Key: $VINTL_API_KEY" \
  "https://api.vintl.io/v1/ping"
/v1/ping validates your key and returns plan info:
{
  "status": "ok",
  "plan": "indie",
  "daily_limit": 10000,
  "daily_used": 42
}

Errors

Missing header returns 401:
{
  "type": "https://vintl.io/errors/unauthorized",
  "title": "Unauthorized",
  "status": 401,
  "detail": "missing X-API-Key header",
  "instance": "/v1/ping",
  "request_id": "req_..."
}
Invalid or revoked key also returns 401 with "detail": "invalid API key". See Errors for the full reference.
Never commit your API key to version control. Use environment variables or a secrets manager.

Best practices

DoDon’t
export VINTL_API_KEY=vntl_live_sk_...Hardcode the key in source
os.environ["VINTL_API_KEY"]Pass the key as a URL parameter
Add .env to .gitignoreCommit .env files
Rotate keys quarterly in the dashboardShare keys across environments

Public endpoints

These don’t require authentication:
EndpointPurpose
GET /healthzLiveness — is the server running?
GET /readyzReadiness — are the database and cache healthy?
Last modified on March 29, 2026