API reference
Discover catalog models, run inference, and read your models, deployments, requests, receipts, and audit events through one API. Base URL: https://api.boardwalk.cloud/v1. Your API key selects the organization for authenticated requests.
Authentication
Send Authorization: Bearer $BOARDWALK_API_KEY. Keys belong to one organization. Inference and tokenization require inference:write; management reads use scoped permissions. Catalog discovery and the OpenAPI schema are public. See authentication and permissions for key setup and access rules.
Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/catalog/models | Published catalog models and their configurations. |
| GET | /v1/models | Your organization’s model inventory; requires models:read. |
| POST | /v1/chat/completions | OpenAI Chat Completions API. |
| POST | /v1/responses | OpenAI Responses API (stateless). |
| POST | /v1/messages | Anthropic Messages API. |
| POST | /v1/completions | OpenAI Completions API (legacy text). |
| POST | /v1/tokenize | Count tokens with the served tokenizer. |
| GET | /v1/receipts/{request_id} | Per-request usage and cost. |
| GET | /v1/models/{id} | Retrieve a model and its configuration; requires models:read. |
| GET | /v1/deployments | List deployment history; requires deployments:read. |
| GET | /v1/deployments/{id} | Retrieve deployment checks and progress; requires deployments:read. |
| GET | /v1/requests | List request outcomes, usage, and latency; requires requests:read. |
| GET | /v1/requests/{request_id} | Retrieve a request outcome; requires requests:read. |
| GET | /v1/audit-events | List recorded changes; requires audit:read. |
| GET | /v1/audit-events/{id} | Retrieve an audit event; requires audit:read. |
| POST | /v1/deployment-previews | Preview a source and serving settings. |
| POST | /v1/deployments | Create a model or redeploy it; durable idempotency is required. |
| POST | /v1/deployments/{id}/cancel | Cancel the named deployment run. |
| GET | /v1/deployments/{id}/events | Poll recorded phase history. |
| GET | /v1/models/{id}/revisions | List checked revisions with cursor pagination. |
| POST | /v1/models/{id}/activations | Promote or roll back a checked revision. |
| POST | /v1/models/{id}/stop-serving | Stop admission and cancel a running deploy. |
| POST | /v1/models/{id}/resume-serving | Resume serving, retrying the deploy when needed. |
| DELETE | /v1/models/{id} | Delete a model while retaining billing records. |
| GET | /v1/floors | Read reserved capacity and published rates. |
| PUT | /v1/floors/{card_class} | Set reserved capacity with reviewed pricing. |
Use the deployment and model endpoints to create checked candidates, activate revisions, and stop or resume serving. Reserved capacity is managed separately. Model inventory includes pending, active, and disabled models; catalog discovery lists published public models.
For inference, use OpenAI Chat/Responses clients, the Anthropic Messages client, or plain HTTP. Compatibility covers the endpoints and fields listed here. Assistants, Files, embeddings, and media-generation APIs are not part of this API.
Discover endpoint availability, supported parameters, and formats per model through /v1/catalog/models. See image inputs and structured output, tools, and reasoning.
Pagination
Model, deployment, request, and audit lists return an object: "list" envelope with data and next_cursor. Records are newest first. Public catalog discovery is unpaginated and accepts no query parameters.
cursorstringoptional- Opaque next_cursor from the previous page, at most 256 characters. Keep all other filters unchanged.
limitintegeroptional- Page size from 1 to 200. Default: 50.
{ "object": "list", "data": [], "next_cursor": null }Pass next_cursor as cursor with the same filters until it is null. Time filters use epoch milliseconds: from is inclusive and to is exclusive. Keep the end fixed during an export and deduplicate overlapping polls by record ID. Response timestamps are ISO 8601 UTC; money uses decimal strings in micro-dollars.
A completed request has a receipt even when it failed. A request refused before reaching a card has zero cost and no receipt. Detail lookups can briefly return 404before a record exists. See requests and receipts for record states and availability.
OpenAPI schema
Download the public OpenAPI 3.1 schema for catalog discovery and management reads, including response fields and filter values. The inference endpoint references document their request, response, and streaming formats.
Request parameters
Request fields depend on your API: OpenAI Chat Completions, OpenAI Responses, or Anthropic Messages. Unknown fields return 400. Model-specific features require a qualified configuration.
Streaming responses
Use stream: true for server-sent events. Event formats follow your selected API: OpenAI Chat Completions, OpenAI Responses, or Anthropic Messages. Successful streams include final usage; interrupted streams may not.
Tokenization
Count tokens before sending a request. Tokenization is free.
Receipts
Use the x-request-id response header to retrieve a receipt after completion.
Errors
{
"error": {
"message": "Insufficient credits. Add credits in the console to continue.",
"type": "billing_error",
"param": null,
"code": "insufficient_credits"
}
}| Status | What to do |
|---|---|
| 400 | Correct the request, unsupported parameter, or context length. |
| 401 / 403 | Check the key, its expiration, and its permissions. org_inactive means the organization is suspended. |
| 402 | insufficient_credits: add credits. |
| 404 | Check the model ID, revision, or record access. |
| 405 | Use the endpoint's supported HTTP method. |
| 413 | Reduce the body. Inference requests are limited to 9 MiB. |
| 429 | Wait Retry-After seconds, then retry. The code says why: rate limits & retries. |
| 502 / 503 | Retry with backoff: upstream_error when the engine failed, model_unavailable when it could not be reached, capacity_wait_exceeded when no GPU card freed up within three minutes. |
errorobject- Error details.
Child fields
messagestring- Human-readable explanation.
typestring- Error category.
codestring- Machine-readable error code.
paramstring | null- Offending parameter, when identified.
request_idstring- Request identifier, when included. Also available in the x-request-id response header.
type is the class of error and is the same for every error with that status. code is the specific reason. Branch on code.
Rate limits and retries
Inference has no request-rate limit. Your balance sets how many requests can run at once, and a busy or starting model refuses with 429 and Retry-After. Other endpoints allow at least 60 requests a minute per key and send x-ratelimit-limit, x-ratelimit-remaining and x-ratelimit-reset (seconds, not a timestamp). Management reads have a separate budget from inference, shared by the organization’s keys. Requests refused before reaching a card have no charge; requests that reach a card can incur charges even when they fail. Check the receipt before retrying. Do not replay a partially received stream or run its tool calls twice. See rate limits & retries.
Include x-request-id when contacting support.