Skip to content

Changelog

Resources

Changelog

Dated changes to the Tokentide API.

Dated changes to the Tokentide API. Breaking changes are announced here at least 30 days before they take effect.

2026-11-02: pricing explained, and Tokentide in Claude

  • New: GET /v1/market/rules explains the whole pricing model with today's live values: what you pay, the tide table, surges, Low Tide, the daily reset, quotes, video and music cutoffs and your controls. JSON by default, Markdown with ?format=markdown. See Lanes and tide pricing.
  • New: GET /v1/market/estimate prices a request before you send it: now, at every remaining hour, at the last chance today and at tomorrow's open, on Standard and on Low Tide when the model is eligible. See Lanes and tide pricing.
  • New: the Tokentide connector for Claude, a remote MCP server at https://api.tokentide.app/mcp with OAuth sign-in. Each connection gets its own API key with the daily cap and privacy mode you choose. See Claude connector and plugin.
  • New: the Tokentide plugin for Claude (the connector plus a viral product video skill), installable from Tokentide in Claude.

2026-11-01: video and music generation

  • New: queued video (POST /v1/video/quote, /queue, /retrieve, /complete) and music and sound effects (POST /v1/audio/quote, /queue, /retrieve, /complete), with the same bodies as Venice’s queue APIs. See Video and music.
  • A job is charged once, when it is queued, at its exact quote times the multiplier locked then. Quotes, polling and clean-up are free, and failed jobs are refunded automatically.
  • Jobs are accepted only when they would finish before the daily reset: video until about 23:14 UTC, music until about 23:39 UTC (503 epoch_rollover after that, with Retry-After).
  • Finished files are streamed through Tokentide and deleted upstream as they are delivered. Download URLs are never returned, and only the account that queued a job can collect it.
  • Up to 8 jobs per account can be queued and not yet collected.

2026-11-01: one region, one base URL

Tokentide now runs in a single region in the United States (AWS US East). These changes come before the public launch, so nothing goes through a deprecation period:

  • One base URL: https://api.tokentide.app/v1, plus the Venice-style alias /api/v1. The regional hosts us.api.tokentide.app, eu.api.tokentide.app and ap.api.tokentide.app and the regional path prefixes (/us/v1, /eu/v1, /ap/v1) are gone. They were never in production, so there are no redirects. See Base URL.
  • Removed: the X-Tokentide-Region response header; region and balance.region_lease_remaining_usd from GET /v1/account (balance.leased_usd stays); region from GET /v1/status; and region from the rows of GET /v1/account/usage, together with the region breakdown and the region column of the request export.
  • Removed: API key region pins (region policy us, eu or ap) and the 403 region_not_allowed error with its reasons key_locked_to_us, key_locked_to_eu and key_locked_to_ap. Every key works on the one host. The 503 service_unavailable reason region_drained is gone too.
  • SDKs: @tokentide/sdk drops the region option, withRegion(), usesRegionHost and the region field of the response metadata; TokentideClient.baseUrlFor(domain?) returns https://api.<domain>/v1. The Python tokentide package drops the region argument, with_region(), uses_region_host, REGION_CODES and PRODUCTION_API_HOSTS; api_base_url(domain="tokentide.app") returns the base URL. Large Payload Lane uploads no longer pin a client to a region. Set baseUrl / base_url only for a staging or local host.
  • Spending caps are exact. All spend is counted in one place, so caps no longer take up to a minute to converge across regions. Rate limits are counted in one place too. See How caps are enforced.
  • Data location: everything Tokentide stores (account, billing, request metadata and the ledger) is kept in the United States (AWS US East). See What we store.

2026-11-01: auto top-up: the monthly maximum includes tax

  • The monthly maximum caps what your card is charged, tax included. A charge whose invoice, with its tax, would go over it is not made (its invoice is cancelled before payment), and auto top-up pauses until the month ends. The amount of each top-up is credit; tax is added to the charge. See Auto top-up.
  • Tax IDs from Stripe's billing portal apply to automatic top-ups only once Stripe has verified them and your VAT ID is validated in your tax profile; until then auto top-up pauses. Invoices for automatic top-ups can only be paid with your saved card. See Declines, pauses and 3-D Secure.
  • A lost answer from Stripe is no longer a decline. Auto top-up waits for Stripe to confirm the outcome instead of charging again, and a problem on Stripe's side is neither counted as a failure nor e-mailed.

2026-11-01: spending limits, a cap of 0 and refusals that say why

  • A cap of 0 blocks all spend on the key or the account until you change it, so you can pause a key without revoking it. The dashboard accepts 0, and GET /v1/account reports it as "0". See Spending limits.
  • 402 spend_limit_reached for a request too large for what is left says so, with the worst-case cost and the room left, and carries Retry-After: 60 instead of the seconds until the reset (none when the request could cost more than the whole cap). See The spend_limit_reached error.
  • Corrected charges count towards your caps. When the nightly reconciliation corrects a charge to what Venice billed, or credits a request Venice did not bill, the caps whose day, week or month is still running count the corrected charge instead of the original one. See How caps are enforced.

2026-11-01: requests Venice did not bill

  • A request credited back because Venice did not bill it now has list_cost_micros 0 as well as charge_micros 0 in GET /v1/account/usage and in the exports, so it adds no savings. It still counts as a request, with its tokens. See How savings are calculated.

2026-11-01: cached answers without your request id

  • Public answers our CDN caches (GET /v1/market, /v1/status, the model catalog without credentials) no longer echo X-Client-Request-Id: a cached answer could carry another caller's id. See Debugging a request.

2026-10-31: billing, auto top-up and spending limits

  • Auto top-up. Save a card with Stripe and top up automatically whenever your spendable balance drops below a threshold, with an optional monthly maximum. See Auto top-up.
  • Weekly spending caps. Caps per ISO week (from Monday 00:00 UTC) join the daily and monthly caps, for each API key and for the whole account, and every cap now converges across regions within about a minute. See Spending limits.
  • GET /v1/account returns limits.weekly_cap_usd and the account-wide caps limits.account_daily_cap_usd, limits.account_weekly_cap_usd and limits.account_monthly_cap_usd (null when not set).
  • 402 spend_limit_reached names the cap that was reached and when it resets, and carries Retry-After (the seconds until the reset).
  • E-mail alerts. Budget alerts, cap warnings and cap-reached notices, low balance, auto top-up results, an opt-in weekly report and price alerts. See Budget alerts and notifications.
  • Usage. Breakdowns by model, API key, endpoint, region and lane over any range up to all time, compared with the Venice API list price of the same requests, plus a breakdown CSV export.
  • The OpenAPI document describes the responses of GET /v1/account and GET /v1/account/usage, and the 402 responses of the inference routes.
  • New guide: Billing and spending limits.

2026-10-31: initial API reference

First public description of the API for the private beta.

Endpoints

  • OpenAI- and Venice-compatible inference: POST /v1/chat/completions (with E2EE passthrough on e2ee-* models), POST /v1/responses, GET /v1/models (plus /traits and /compatibility_mapping), POST /v1/decisions, POST /v1/systemone, image generate and edit routes, POST /v1/audio/speech, POST /v1/audio/transcriptions.
  • Venice-style alias /api/v1/* on every host.
  • Tokentide-native: GET /v1/market, GET /v1/market/stream, POST /v1/market/quote, GET /v1/account, GET /v1/account/usage, POST /v1/uploads, GET /v1/status, GET /v1/openapi.json.
  • The OpenAPI document describes the native request bodies and query parameters (QuoteRequest, UploadRequest and the usage filters), generated from the same schemas the API validates with.
  • POST /v1/market/quote validates its body: {"lane": "standard" | "lowtide"}, default standard; anything else answers 400 invalid_request with param.
  • GET /v1/market returns sold_out and reopens_at. When today’s discounted capacity is used up, inference answers 503 capacity_unavailable with a Retry-After that counts down to the 00:00 UTC reset.

Hosts

api.tokentide.app (auto) plus regional us., eu. and ap.api.tokentide.app, and region-locked keys.

Pricing

Tide Pricing with a published daily tide table, upward-only surges, the opt-in non-streaming Low Tide lane, and the slack-water protocol around the 00:00 UTC reset. Request headers X-Tokentide-Lane, X-Tokentide-Lowtide-Fallback, X-Tokentide-Max-Multiplier, X-Tokentide-Max-Cost-USD; price and lane response headers; the tokentide object in the final usage chunk of streams.

Payments and authentication

API keys tt_live_….

Privacy

Zero data retention, guaranteed on Private models; privacy modes private (default), private_text and all.

Troubleshooting

X-Client-Request-Id (your own correlation id, echoed back and recorded as a keyed hash), debug headers on error responses too, X-Tokentide-Debug-Upstream-Id on non-streaming responses, X-Tokentide-Model-Fallback, and SDK errors that print the request ids. See Debugging a request.

Planned

Not live yet:

  • Large Payload Lane general availability (preview at launch).
  • Embeddings (POST /v1/embeddings), v1.1.
  • Debug Capture (opt-in, sealed to your own key).
  • Customer webhooks (for example for price alerts and billing events; price alerts by e-mail are live).