{"openapi":"3.1.0","info":{"title":"Tokentide API","version":"1.0.0","description":"Venice models at a discount with zero data retention on Private models. Drop-in compatible with OpenAI SDKs and Venice clients: change the base URL and key."},"externalDocs":{"description":"Venice API reference","url":"https://docs.venice.ai/api-reference"},"servers":[{"url":"https://api.tokentide.app/v1"}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"`tt_live_…` (production) or `tt_test_…` (preview/staging)."},"siwx":{"type":"apiKey","in":"header","name":"SIGN-IN-WITH-X","description":"CAIP-122 wallet sign-in (SIWE on Base, Ed25519 on Solana), domain-bound, single-use nonce."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message","type","code"],"properties":{"message":{"type":"string"},"type":{"type":"string","enum":["tokentide_error"]},"code":{"type":"string","enum":["invalid_request","lowtide_requires_non_streaming","payment_header_not_accepted","invalid_api_key","siwx_invalid","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","payment_in_progress","payload_too_large","unsupported_media_type","rate_limited","internal_error","upstream_unavailable","capacity_unavailable","epoch_rollover","service_unavailable","upstream_timeout","settlement_timeout"]},"param":{"type":["string","null"]},"request_id":{"type":["string","null"]}}}}},"Market":{"type":"object","description":"See PublicMarketSnapshot in the docs."},"QuoteRequest":{"type":"object","properties":{"lane":{"default":"standard","type":"string","enum":["standard","lowtide"]}},"additionalProperties":false},"UploadRequest":{"type":"object","properties":{"purpose":{"type":"string","enum":["audio_transcription","image_edit","image_multi_edit","image_upscale","image_background_remove"],"description":"The endpoint the payload is for."},"bytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Ciphertext size in bytes (nonce + ciphertext + tag)."},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"Lower-case hex SHA-256 of the ciphertext."},"filename":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[\\w.\\- ]+$"},"content_type":{"type":"string","minLength":3,"maxLength":100,"pattern":"^[\\w.+-]+\\/[\\w.+-]+$"}},"required":["purpose","bytes","sha256"]},"Account":{"type":"object","description":"The account behind the credentials. Amounts are exact decimal USD strings.","required":["object","id","principal","tier","free_use","balance","spend_today","limits","lowtide"],"properties":{"object":{"type":"string","enum":["account"]},"id":{"type":"string","description":"Account id."},"principal":{"type":"string","enum":["key","wallet"],"description":"How the request authenticated: an API key or a SIGN-IN-WITH-X wallet."},"tier":{"type":"string","enum":["new","verified","trusted","custom"],"description":"Trust tier."},"free_use":{"type":"boolean","description":"The account uses the API free of charge: its requests are charged $0 (multiplier 0) and need no balance. Rate limits, capacity and the other admission checks still apply."},"balance":{"type":"object","required":["available_usd","promo_usd","leased_usd","spendable_usd"],"properties":{"available_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"Paid credit. Never expires."},"promo_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"Promotional credit (USDC bonus, trial, goodwill): non-refundable, expires 12 months after it is granted."},"leased_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"Credit set aside so the API can admit requests without a round trip to the ledger. Still yours: whatever is not used flows back."},"spendable_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"What new requests can use now: paid plus promotional credit minus leased credit, plus the unreserved part of the lease."}}},"spend_today":{"type":"object","description":"The account's usage since 00:00 UTC.","required":["charged_usd","list_usd","savings_usd"],"properties":{"charged_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"What was charged."},"list_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"The same requests at the Venice API list price."},"savings_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"list_usd minus charged_usd."}}},"limits":{"type":"object","description":"Effective limits. 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. A request that would exceed a cap gets 402 spend_limit_reached.","required":["requests_per_minute_per_key","concurrency","image_requests_per_minute","daily_cap_usd","weekly_cap_usd","monthly_cap_usd","account_daily_cap_usd","account_weekly_cap_usd","account_monthly_cap_usd"],"properties":{"requests_per_minute_per_key":{"type":"integer","description":"Requests per minute for the calling key."},"concurrency":{"type":"integer","description":"Concurrent in-flight requests per account."},"image_requests_per_minute":{"type":"integer","description":"Image requests per minute per account."},"daily_cap_usd":{"type":["string","null"],"description":"Spend cap of the calling API key per UTC day."},"weekly_cap_usd":{"type":["string","null"],"description":"Spend cap of the calling API key per ISO week (from Monday 00:00 UTC)."},"monthly_cap_usd":{"type":["string","null"],"description":"Spend cap of the calling API key per UTC calendar month."},"account_daily_cap_usd":{"type":["string","null"],"description":"Account-wide spend cap (all keys and wallets together) per UTC day."},"account_weekly_cap_usd":{"type":["string","null"],"description":"Account-wide spend cap per ISO week (from Monday 00:00 UTC)."},"account_monthly_cap_usd":{"type":["string","null"],"description":"Account-wide spend cap per UTC calendar month."}}},"lowtide":{"type":"object","description":"Low Tide allowance and hourly cap, in USD at the Venice list price.","required":["allowance_usd","used_usd","cap_per_hour_usd","open"],"properties":{"allowance_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"Today's Low Tide allowance."},"used_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"Low Tide usage counted against it today."},"cap_per_hour_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"Hourly Low Tide cap."},"open":{"type":"boolean","description":"Whether Low Tide is open now."}}}}},"UsageRecord":{"type":"object","description":"Metadata of one request (never its content).","required":["request_id","received_at","endpoint","lane","epoch_id","status_code","list_cost_micros","multiplier_ppm","charge_micros","settlement"],"properties":{"request_id":{"type":"string","description":"The X-Request-Id of the request."},"received_at":{"type":"string","format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"endpoint":{"type":"string","description":"Endpoint id, e.g. chat_completions."},"model_id":{"type":["string","null"]},"model_privacy":{"type":["string","null"],"description":"private, tee, e2ee or anonymized."},"lane":{"type":"string","enum":["standard","lowtide"]},"epoch_id":{"type":"string","format":"date-time","description":"The UTC day the request is attributed to, as a timestamp at 00:00 UTC."},"cross_epoch":{"type":"boolean"},"stream":{"type":"boolean"},"e2ee":{"type":"boolean"},"status_code":{"type":"integer"},"error_class":{"type":["string","null"]},"upstream_status":{"type":["integer","null"]},"retries":{"type":"integer"},"prompt_tokens":{"type":["integer","null"]},"completion_tokens":{"type":["integer","null"]},"cached_tokens":{"type":["integer","null"]},"reasoning_tokens":{"type":["integer","null"]},"bytes_in":{"type":["string","null"],"pattern":"^\\d+$","description":"Request body size in bytes (64-bit integer as a decimal string)."},"bytes_out":{"type":["string","null"],"pattern":"^\\d+$","description":"Response body size in bytes (64-bit integer as a decimal string)."},"list_cost_micros":{"type":"string","pattern":"^\\d+$","description":"The Venice API list price of the request, in micro-USD (64-bit integer as a decimal string)."},"multiplier_ppm":{"type":"integer","description":"Locked multiplier in millionths (655078 = 0.655078)."},"charge_micros":{"type":"string","pattern":"^\\d+$","description":"What was charged, in micro-USD (64-bit integer as a decimal string)."},"settlement":{"type":"string","enum":["provisional","final"],"description":"provisional while the charge is still being reconciled."}}},"UsagePage":{"type":"object","required":["object","data","has_more","next_before"],"properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/UsageRecord"}},"has_more":{"type":"boolean","description":"Older rows exist."},"next_before":{"type":["string","null"],"description":"Pass as `before` to fetch the next (older) page; null on the last page."}}},"MarketRules":{"type":"object","description":"The rules of the Tide market as they stand now: formulas, today's parameters and key times, surges, Low Tide fences, quotes and the reset protocol. Every number is the one admission applies. Multipliers are fractions of the Venice list price.","required":["object","generated_at","docs_url","summary","charge","epoch","standard","surge","lowtide","cross_epoch","quotes","queued_jobs","buyer_controls","spend_controls","fairness","sales"],"properties":{"object":{"type":"string","enum":["market_rules"]},"generated_at":{"type":"string","format":"date-time","description":"When these rules were computed."},"docs_url":{"type":"string","format":"uri"},"summary":{"type":"string","description":"Two or three sentences on where prices stand right now."},"charge":{"type":"object","description":"How a charge is computed.","properties":{"formula":{"type":"string"},"min_charge_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"Minimum charge when anything is billable."},"priced_at":{"type":"string","enum":["admission"]},"rules":{"type":"array","items":{"type":"string"},"description":"The charging rules, in words."}}},"epoch":{"type":"object","description":"The current UTC day (epoch) and its key times.","properties":{"id":{"type":"string","format":"date"},"state":{"type":"string","enum":["open","closing","rolling","degraded","closed"]},"starts_at":{"type":"string","format":"date-time","description":"Start of the epoch (00:00 UTC)."},"reset_at":{"type":"string","format":"date-time","description":"The daily reset (next 00:00 UTC)."},"seconds_to_reset":{"type":"integer"},"tau":{"type":"number","description":"Share of the day that has passed (0–1)."},"closing_window_seconds":{"type":"integer"},"closing_starts_at":{"type":"string","format":"date-time","description":"Start of the closing window before the reset."},"same_epoch_margin_seconds":{"type":"integer","description":"A request must be certain to finish this long before the reset to be priced as today."},"degraded_after_seconds":{"type":"integer"}}},"standard":{"type":"object","description":"The Standard lane: today's published tide table and the live price.","properties":{"formula":{"type":"string"},"multiplier_now":{"type":"string","pattern":"^\\d(\\.\\d{1,6})?$","description":"Live Standard multiplier (surges included)."},"savings_pct_now":{"type":"number"},"table_multiplier_now":{"type":"string","pattern":"^\\d(\\.\\d{1,6})?$","description":"Today's tide table now, without surges."},"level":{"type":"string","pattern":"^\\d(\\.\\d{1,6})?$","description":"Daily level L."},"decay_depth":{"type":"string","description":"Decay depth d."},"gamma":{"type":"number","description":"Decay convexity γ."},"m_min":{"type":"string","pattern":"^\\d(\\.\\d{1,6})?$","description":"Absolute floor."},"m_max":{"type":"string","pattern":"^\\d(\\.\\d{1,6})?$","description":"Absolute ceiling."},"slope_max_per_hour":{"type":"string","description":"Fastest fall of the table, share of list per hour."},"opening_multiplier":{"type":"string","pattern":"^\\d(\\.\\d{1,6})?$","description":"Table at 00:00 UTC."},"closing_multiplier":{"type":"string","pattern":"^\\d(\\.\\d{1,6})?$","description":"Table at the reset."},"slope_guard_from":{"type":["string","null"],"format":"date-time","description":"When the slope guard starts bending the curve (null: never today)."},"level_bounds":{"type":"object"},"hourly":{"type":"array","description":"The table at every UTC hour from 00:00 to the reset (25 points).","items":{"type":"object","properties":{"at":{"type":"string","format":"date-time","description":"Hour."},"multiplier":{"type":"string","pattern":"^\\d(\\.\\d{1,6})?$","description":"Table value."},"savings_pct":{"type":"number"}}}},"table_hash":{"type":"string","description":"SHA-256 of today's published table."},"tomorrow":{"type":"object","description":"Tomorrow's table: published at 12:00 UTC, immutable afterwards."}}},"surge":{"type":"object","description":"Inventory and congestion surges: their caps and where they stand now."},"lowtide":{"type":"object","description":"The Low Tide lane: formula, live status, opening conditions and per-account fences."},"cross_epoch":{"type":"object","description":"How requests that may run past the reset are priced."},"quotes":{"type":"object","description":"POST /v1/market/quote: lock length and limits near the reset."},"queued_jobs":{"type":"object","description":"Video and music jobs: worst-case run times and today's queueing cutoffs."},"buyer_controls":{"type":"array","description":"Request headers that bound what a request can cost.","items":{"type":"object","properties":{"header":{"type":"string"},"values":{"type":"string"},"effect":{"type":"string"}}}},"spend_controls":{"type":"array","items":{"type":"string"},"description":"Balance, reservations and spend caps."},"fairness":{"type":"array","items":{"type":"string"},"description":"Why the market is fair and hard to game."},"sales":{"type":"object","properties":{"paused":{"type":"boolean"},"sold_out":{"type":"boolean"},"reopens_at":{"type":["string","null"],"format":"date-time","description":"When sales reopen if sold out."}}}}},"LanePrice":{"type":"object","required":["multiplier","charge_usd","savings_usd","savings_pct"],"properties":{"multiplier":{"type":"string","pattern":"^\\d(\\.\\d{1,6})?$","description":"Multiplier of the Venice list price."},"charge_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"What the request would be charged."},"savings_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"List cost minus the charge."},"savings_pct":{"type":"number"}}},"Estimate":{"type":"object","description":"What one request would cost: live now (surges included), then from the published tide tables (which surges can only raise).","required":["object","model","quantity","list_price","list_cost_usd","now","at_time","schedule","last_same_day","tomorrow_open","notes"],"properties":{"object":{"type":"string","enum":["estimate"]},"model":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"privacy_tier":{"type":"string","enum":["private","tee","e2ee","anonymized"]}}},"quantity":{"type":"object","description":"The quantity priced, as given."},"list_price":{"type":"object","description":"Venice list prices used (per 1M tokens, or per unit)."},"list_cost_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"The request at the Venice list price."},"now":{"type":"object","properties":{"at":{"type":"string","format":"date-time","description":"Now."},"epoch":{"type":"string","format":"date"},"standard":{"$ref":"#/components/schemas/LanePrice"},"lowtide":{"allOf":[{"$ref":"#/components/schemas/LanePrice"}],"description":"Plus eligible, open, reason and opens_at."}}},"at_time":{"type":["object","null"],"description":"The request at the `at` time, from the published table (null without `at`)."},"schedule":{"type":"array","description":"The request at every remaining UTC hour today, from the published table.","items":{"type":"object","properties":{"at":{"type":"string","format":"date-time","description":"Hour."},"standard_multiplier":{"type":"string","pattern":"^\\d(\\.\\d{1,6})?$","description":"Table value."},"standard_charge_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"Standard charge."},"lowtide_multiplier":{"type":"string","pattern":"^\\d(\\.\\d{1,6})?$","description":"Low Tide value if open."},"lowtide_charge_usd":{"type":"string","pattern":"^\\d+(\\.\\d{1,6})?$","description":"Low Tide charge if open."}}}},"last_same_day":{"type":["object","null"],"description":"The table's lowest price today: the last moment a short request is still priced as today."},"tomorrow_open":{"type":"object","description":"The request at tomorrow's opening multiplier."},"notes":{"type":"array","items":{"type":"string"},"description":"How to read the estimate."}}}}},"paths":{"/chat/completions":{"post":{"tags":["Inference"],"summary":"Chat completions (streaming supported, E2EE passthrough)","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}},"text/event-stream":{"schema":{"type":"string"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/responses":{"post":{"tags":["Inference"],"summary":"Responses API (typed SSE events)","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}},"text/event-stream":{"schema":{"type":"string"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/embeddings":{"post":{"tags":["Inference"],"summary":"Embeddings","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/decisions":{"post":{"tags":["Inference"],"summary":"Typed judgments (Jev System One)","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/systemone":{"post":{"tags":["Inference"],"summary":"Alias of /decisions","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/image/generate":{"post":{"tags":["Images"],"summary":"Generate images (Venice-native)","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/images/generations":{"post":{"tags":["Images"],"summary":"Generate images (OpenAI-compatible)","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/image/edit":{"post":{"tags":["Images"],"summary":"Edit an image","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/image/multi-edit":{"post":{"tags":["Images"],"summary":"Compose several images","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/image/upscale":{"post":{"tags":["Images"],"summary":"Upscale an image","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/image/background-remove":{"post":{"tags":["Images"],"summary":"Remove an image background","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/audio/speech":{"post":{"tags":["Audio"],"summary":"Text to speech","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/audio/transcriptions":{"post":{"tags":["Audio"],"summary":"Speech to text","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/video/quote":{"post":{"tags":["Video"],"summary":"Price a video job","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Same body as Venice `/video/quote`. `quote` is what queueing it now would be charged at Tokentide; `tokentide` adds the list price, the multiplier, whether queueing is open and when it closes today."}},"/video/queue":{"post":{"tags":["Video"],"summary":"Queue a video job (charged when queued)","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Same body as Venice `/video/queue`. Charged once, at the quote times the multiplier locked now. Returns `queue_id` (never a `download_url`). Refused with 503 `epoch_rollover` when the job could still be running at the daily reset, and with 429 when the account already has `asyncJobs.maxActivePerAccount` jobs it has not collected."}},"/video/retrieve":{"post":{"tags":["Video"],"summary":"Poll a video job; returns the MP4 when it is ready","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Body: `model`, `queue_id`, optional `delete_media_on_completion` (Tokentide default: true). JSON status while processing, then the video itself (also for models that deliver through a download URL). Poll at most every 2 s. A job Venice reports as failed is refunded automatically."}},"/video/complete":{"post":{"tags":["Video"],"summary":"Delete a video job’s media","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Body: `queue_id`. Removes the media upstream; only needed when you retrieved with `delete_media_on_completion: false`."}},"/audio/quote":{"post":{"tags":["Audio"],"summary":"Price a music or sound job","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Same body as Venice `/audio/quote`, answered like `/video/quote`."}},"/audio/queue":{"post":{"tags":["Audio"],"summary":"Queue a music or sound job (charged when queued)","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Same body as Venice `/audio/queue` (models of type `music`). Charged and limited like `/video/queue`."}},"/audio/retrieve":{"post":{"tags":["Audio"],"summary":"Poll a music or sound job; returns the audio when it is ready","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Body: `model`, `queue_id`, optional `delete_media_on_completion` (default: true). Like `/video/retrieve`."}},"/audio/complete":{"post":{"tags":["Audio"],"summary":"Delete a music or sound job’s media","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"X-Tokentide-Lane","in":"header","schema":{"type":"string","enum":["standard","lowtide"]},"description":"Lane selection. Low Tide is opt-in, non-streaming and best-effort."},{"name":"X-Tokentide-Lowtide-Fallback","in":"header","schema":{"type":"string","enum":["standard","none"]},"description":"Reroute to Standard when Low Tide is closed or capped."},{"name":"X-Tokentide-Max-Multiplier","in":"header","schema":{"type":"string","pattern":"^0\\.(?=\\d*[1-9])\\d{1,6}$|^1(\\.0{1,6})?$"},"description":"Never charge above this multiplier of the Venice list price. The API key's own maximum multiplier still applies: the lower of the two wins."},{"name":"X-Tokentide-Max-Cost-USD","in":"header","schema":{"type":"string"},"description":"Reject at admission if the worst-case charge exceeds this amount."},{"name":"X-Tokentide-Fallback-Models","in":"header","schema":{"type":"string"},"description":"Comma list (≤ 3) of opt-in fallback models."},{"name":"X-Tokentide-Debug","in":"header","schema":{"type":"string","enum":["1"]},"description":"Adds diagnostic response headers; nothing extra is stored."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","maxLength":128},"description":"Duplicate detection for 24 h. Results are never replayed."},{"name":"X-Tokentide-Upload","in":"header","schema":{"type":"string"},"description":"Large Payload Lane reference: `<upload_id>; key=<base64>`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Same body as the Venice endpoint (OpenAI-compatible where applicable)."}}}},"responses":{"200":{"description":"Upstream response passed through byte-for-byte (except the final usage/cost chunk on streams).","headers":{"X-Request-Id":{"schema":{"type":"string"}},"X-Tokentide-Multiplier":{"schema":{"type":"string"},"description":"Locked multiplier (decimal)."},"X-Tokentide-Lane":{"schema":{"type":"string"}},"X-Tokentide-Epoch":{"schema":{"type":"string","format":"date"}},"X-Tokentide-Cross-Epoch":{"schema":{"type":"string","enum":["true","false"]}},"X-Tokentide-List-Cost-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Charge-USD":{"schema":{"type":"string"},"description":"Non-streaming responses only."},"X-Tokentide-Model-Privacy":{"schema":{"type":"string","enum":["private","tee","e2ee","anonymized"]}},"X-RateLimit-Limit-Requests":{"schema":{"type":"string"}},"X-RateLimit-Remaining-Requests":{"schema":{"type":"string"}},"X-RateLimit-Reset-Requests":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Refused 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, and `Retry-After` gives the seconds until the reset; a cap of 0 blocks all spend and has no `Retry-After`. When only this request's worst-case cost does not fit in the room left, the message says so and `Retry-After` is 60 seconds (none when the request could cost more than the whole cap): lower `max_completion_tokens` or wait for requests in flight to finish.","headers":{"Retry-After":{"schema":{"type":"string"},"description":"spend_limit_reached only: seconds until a used-up cap resets, or 60 when only this request does not fit in the room left."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Body: `model`, `queue_id`. Like `/video/complete`."}},"/image/styles":{"get":{"tags":["Images"],"summary":"Image style presets","responses":{"200":{"description":"OK"}}}},"/models":{"get":{"tags":["Models"],"summary":"Models with Venice list prices and live Tokentide prices","responses":{"200":{"description":"OK"}}}},"/models/traits":{"get":{"tags":["Models"],"summary":"Model traits","responses":{"200":{"description":"OK"}}}},"/models/compatibility_mapping":{"get":{"tags":["Models"],"summary":"Model compatibility mapping","responses":{"200":{"description":"OK"}}}},"/market":{"get":{"tags":["Market"],"summary":"Live multipliers, lane status, epoch state and tide tables","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Market"}}}}}}},"/market/stream":{"get":{"tags":["Market"],"summary":"Server-sent price ticks every 15 s","responses":{"200":{"description":"SSE","content":{"text/event-stream":{}}}}}},"/market/rules":{"get":{"tags":["Market"],"summary":"The live rules of the market: formulas, parameters, key times, Low Tide fences","description":"Everything that decides a price, with the values in force now: the charge formula, today's tide table and its parameters, surges, Low Tide (formula, opening conditions, per-account caps), the daily reset and the cross-epoch rule, quotes, video and music cutoffs, buyer controls and spend caps. `format=markdown` returns the same as a written guide. Public.","parameters":[{"name":"format","in":"query","required":false,"schema":{"default":"json","type":"string","enum":["json","markdown"]},"description":"`json` (default) for the structured rules, `markdown` for the same rules as a written guide."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketRules"}},"text/markdown":{"schema":{"type":"string"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/market/estimate":{"get":{"tags":["Market"],"summary":"What a request costs now, through the day and at tomorrow's opening","description":"Prices one request (a model plus token counts, or units for models priced per image, edit, second or characters) with the billing arithmetic: live on both lanes now, at every remaining UTC hour from the published tide table, at the last same-day moment and at tomorrow's opening, and optionally at a given time. Video and music jobs are priced by their quote endpoints. Public.","parameters":[{"name":"model","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Model id (or alias), as listed by GET /v1/models."},{"name":"input_tokens","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":100000000},"description":"Prompt tokens, for token-priced models (text, embeddings, decisions)."},{"name":"output_tokens","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":100000000},"description":"Completion tokens, for token-priced models. Reasoning tokens count as output."},{"name":"units","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{1,9}(\\.\\d{1,6})?$"},"description":"Quantity in the pricing unit GET /v1/models lists for the model (`tokentide.standard.unit`): images, edits, upscales, seconds of audio, or millions of characters (3,500 characters = 0.0035)."},{"name":"at","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"Also price the request at this time (ISO 8601) from the published tide table: today, or tomorrow once tomorrow's table is published at 12:00 UTC."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Estimate"}}}},"default":{"description":"Error: 400 invalid_request, 403 model_not_allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/market/quote":{"post":{"tags":["Market"],"summary":"Quote a concrete request (multiplier locked 60 s, never across the epoch boundary)","security":[{"apiKey":[]},{"siwx":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteRequest"}}}},"responses":{"200":{"description":"OK"}}}},"/account":{"get":{"tags":["Account"],"summary":"Balance, tier, limits, spend caps and Low Tide allowance","security":[{"apiKey":[]},{"siwx":[]}],"responses":{"200":{"description":"Balance (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_usd` and `account_*_cap_usd` included). 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/account/usage":{"get":{"tags":["Account"],"summary":"Request metadata (never content), JSON or CSV","security":[{"apiKey":[]},{"siwx":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":100,"type":"integer","minimum":1,"maximum":1000}},{"name":"before","in":"query","required":false,"schema":{"type":"string","pattern":"^req_[0-9A-HJKMNP-TV-Z]{26}$"},"description":"Cursor: return rows older than this request id."},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},{"name":"model","in":"query","required":false,"schema":{"type":"string","maxLength":128}},{"name":"endpoint","in":"query","required":false,"schema":{"type":"string","maxLength":64}},{"name":"request_id","in":"query","required":false,"schema":{"type":"string","pattern":"^req_[0-9A-HJKMNP-TV-Z]{26}$"},"description":"A request id from the X-Request-Id response header."},{"name":"format","in":"query","required":false,"schema":{"default":"json","type":"string","enum":["json","csv"]}}],"responses":{"200":{"description":"One page of request metadata, newest first. JSON: `data`, `has_more` and `next_before` (pass it as `before` for the next page). An API key sees its own requests; a SIWX wallet sees those of its account. `format=csv` returns the same columns as one CSV page, without a cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsagePage"}},"text/csv":{"schema":{"type":"string"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/x402/top-up":{"post":{"tags":["Payments"],"summary":"x402 v2 USDC top-up (402 challenge, then PAYMENT-SIGNATURE)","parameters":[{"name":"amount","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{1,5}(\\.\\d{1,6})?$"},"description":"Credit to buy in USD, tax-exclusive (VAT is added on top where due), e.g. 20."},{"name":"country","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2}$"},"description":"Your country, ISO 3166-1 alpha-2 (e.g. US). Required until the account has one on file: wallet accounts declare it once, at the first top-up."}],"responses":{"200":{"description":"Credited (PAYMENT-RESPONSE header). A repeated payment returns the deposit details only to the account it credited."},"202":{"description":"The payment settled on-chain and the credit is queued (`status: pending`). Do not pay again: the balance updates within a few minutes."},"402":{"description":"Payment required (PAYMENT-REQUIRED header)"},"default":{"description":"Error: 400 invalid_request, 401 invalid_api_key or siwx_invalid, 409 payment_in_progress or duplicate_request, 429 rate_limited, 502 upstream_unavailable, 503 service_unavailable, 504 settlement_timeout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/x402/balance":{"get":{"tags":["Payments"],"summary":"Balance of the signed-in wallet account","description":"The wallet is the one that signed the SIGN-IN-WITH-X header: its address is never part of the URL.","security":[{"siwx":[]}],"responses":{"200":{"description":"OK"},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/x402/balance/{wallet}":{"get":{"tags":["Payments"],"summary":"Wallet-account balance (deprecated)","description":"Deprecated: use `GET /x402/balance`. A wallet address in the URL ends up in request logs along the way. Answers with `Deprecation` and `Sunset` headers until it is retired on 2026-12-01, then `404 not_found`.","deprecated":true,"security":[{"siwx":[]}],"parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uploads":{"post":{"tags":["Large Payload Lane"],"summary":"One-time private upload slot for client-side encrypted payloads","security":[{"apiKey":[]},{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadRequest"}}}},"responses":{"200":{"description":"OK"}}}},"/status":{"get":{"tags":["Service"],"summary":"Health and epoch state","responses":{"200":{"description":"OK"}}}},"/openapi.json":{"get":{"tags":["Service"],"summary":"This document","responses":{"200":{"description":"OK"}}}}}}