Make your first request
Send a first inference request in under five minutes. InferencePass uses project-scoped API keys, a server-defined model catalogue, and the same usage and billing path for requests from the dashboard, cURL, and SDKs.
Before you begin
Create a project in the dashboard, confirm it is active, and create an API key whose environment matches the project. Start with a test project if you are validating an integration. Keep the secret in a local environment variable; it is shown only once.
export INFERENCEPASS_API_BASE="https://api.inferencepass.dev"
export INFERENCEPASS_API_KEY="<paste-your-short-lived-api-key>"
Send your first request
curl "$INFERENCEPASS_API_BASE/v1/chat/completions" \
-H "Authorization: Bearer $INFERENCEPASS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.6-sol","messages":[{"role":"user","content":"Explain what InferencePass is in one sentence."}],"stream":false,"max_completion_tokens":128,"temperature":0.7}'The model ID in the example is a documented shape, not an availability guarantee. Replace it with a model returned by GET /v1/models and allowed by your project. A project allowlist is authoritative.
Read the response
{
"id": "req_…",
"object": "chat.completion",
"model": "gpt-5.6-sol",
"choices": [{ "message": { "role": "assistant", "content": "InferencePass is an independent gateway for evidence-gated model routes." }, "finish_reason": "stop" }],
"usage": { "input_tokens": 21, "output_tokens": 18, "total_tokens": 39 }
}The response contains a request ID, finish reason, and normalized usage. When usage is authoritative and the request settles successfully, inferencepass.charge.amount_minor is the final charge in the response currency. The request is billed once even if the client retries a request with the same Idempotency-Key.
Troubleshooting
invalid_api_key: check that the environment variable is set in the same shell and that the key has not been revoked or expired.model_unavailable: list models again; catalogue availability can change as routes are verified or degraded.insufficient_balance: add purchased credit to the workspace or lower the requested maximum output.rate_limit_exceeded: wait for theRetry-Afterhint; do not retry a streamed request after visible output.
Continue with authentication, or inspect the API Reference.