Reference
API reference
Every endpoint, generated from the OpenAPI 3.1 document. Send real requests from the console.
Venice-compatible routes are described at the envelope level: their bodies follow the Venice and OpenAI schemas. Tokentide-native routes are fully typed below.
Base URLs
https://api.tokentide.app/v1
The API is also served under the Venice-style alias /api/v1. See Base URL.
Authentication
- API key
Authorization: Bearer … tt_live_…(production) ortt_test_…(preview/staging).
Request headers
Optional on every inference route.
Response headers
Priced responses carry what you paid and why. Every header, explained.
X-Request-IdX-Tokentide-MultiplierLocked multiplier (decimal).X-Tokentide-LaneX-Tokentide-EpochX-Tokentide-Cross-EpochX-Tokentide-List-Cost-USDNon-streaming responses only.X-Tokentide-Charge-USDNon-streaming responses only.X-Tokentide-Model-PrivacyX-RateLimit-Limit-RequestsX-RateLimit-Remaining-RequestsX-RateLimit-Reset-Requests
Errors
Errors use the OpenAI-compatible envelope with a stable code. All error codes, with what to do.
- invalid_request
- lowtide_requires_non_streaming
- invalid_api_key
- unauthorized
- insufficient_balance
- spend_limit_reached
- model_not_allowed
- ip_not_allowed
- account_restricted
- forbidden
- not_found
- method_not_allowed
- price_above_limit
- cost_above_limit
- lowtide_closed
- lowtide_cap_reached
- duplicate_request
- payload_too_large
- unsupported_media_type
- rate_limited
- internal_error
- upstream_unavailable
- capacity_unavailable
- epoch_rollover
- service_unavailable
- upstream_timeout
Inference
/v1/chat/completionsAccepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json, text/event-stream402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/responsesAccepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json, text/event-stream402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/embeddingsEmbeddings
Accepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/decisionsAccepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/systemoneAlias of /decisions
Accepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
Images
/v1/image/generateAccepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json, application/octet-stream402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/images/generationsAccepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/image/editEdit an image
Accepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json, application/octet-stream402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/image/multi-editCompose several images
Accepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json, application/octet-stream402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/image/upscaleUpscale an image
Accepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json, application/octet-stream402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/image/background-removeRemove an image background
Accepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json, application/octet-stream402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/image/stylesAudio
/v1/audio/speechText to speech
Accepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json, application/octet-stream402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/audio/transcriptionsSpeech to text
Accepts the Tokentide request headers.
Request body
multipart/form-data
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/audio/quotePrice a music or sound job
Accepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/audio/queueAccepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/audio/retrieveAccepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json, application/octet-stream402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/audio/completeAccepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
Video
/v1/video/quotePrice a video job
Accepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/video/queueAccepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/video/retrieveAccepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json, application/octet-stream402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
/v1/video/completeDelete a video job's media
Accepts the Tokentide request headers.
Request body
application/json
Same body as the Venice endpoint (OpenAI-compatible where applicable), forwarded byte for byte.
Responses
200Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).application/json402Refused before forwarding; nothing is charged.insufficient_balance: your spendable balance cannot cover the worst-case cost of the request.spend_limit_reached: a daily (UTC day), weekly (ISO week, from Monday 00:00 UTC) or monthly (UTC calendar month) spend cap on the API key or the account would be exceeded. When the cap is used up, the message names it and when it resets, andRetry-Aftergives the seconds until the reset; a cap of 0 blocks all spend and has noRetry-After. When only this request's worst-case cost does not fit in the room left, the message says so andRetry-Afteris 60 seconds (none when the request could cost more than the whole cap): lowermax_completion_tokensor wait for requests in flight to finish. Error envelope (see Errors)application/jsonErrorError envelope (see Errors)application/json
Models
/v1/modelsRequest body
No request body.
Responses
200OK
/v1/models/traits/v1/models/compatibility_mappingMarket
/v1/marketRequest body
No request body.
Responses
200OKapplication/json
/v1/market/streamRequest body
No request body.
Responses
200SSEtext/event-stream
/v1/market/rulesParameters
Request body
No request body.
Responses
200OKapplication/json, text/markdownErrorError envelope (see Errors)application/json
/v1/market/estimateParameters
Request body
No request body.
Responses
200OKapplication/jsonErrorError envelope (see Errors)application/json
/v1/market/quoteRequest body
application/json
Responses
200OK
Account
/v1/accountRequest body
No request body.
Responses
200Balance (paid, promotional, leased and spendable credit), spend since 00:00 UTC, trust tier, rate limits and the spend caps of the calling key and of the account (weekly_cap_usdandaccount_*_cap_usdincluded). Spend caps apply per UTC day, per ISO week (from Monday 00:00 UTC) and per UTC calendar month; null means no cap, and a cap of "0" blocks all spend until it is changed.application/jsonErrorError envelope (see Errors)application/json
/v1/account/usageParameters
Request body
No request body.
Responses
200One page of request metadata, newest first. JSON:data,has_moreandnext_before(pass it asbeforefor the next page). An API key sees its own requests;format=csvreturns the same columns as one CSV page, without a cursor.application/json, text/csvErrorError envelope (see Errors)application/json
Large Payload Lane
/v1/uploadsRequest body
application/json
Responses
200OK
Service
/v1/status/v1/openapi.json