{"service_id":"\/v1","name":"Fire AI Pipeline","abstract":"Model-agnostic AI inference pipeline. Mandatory audit trail and token accounting on every call.","version":"1.0.0","covenant_level":0,"acc_ref":null,"planes":{"data":{"description":"Inference and payload exchange.","auth":"Bearer fire_sk_*","endpoints":{"POST \/v1\/chat":{"description":"Submit a chat completion request. Note: for models tagged \"reasoning\"\/\"deep-reasoning\" (see a model's strengths on GET \/v1\/models), Fire silently raises a too-low max_tokens to a per-species floor before calling the provider \u2014 these models spend part of the budget on hidden reasoning before any visible output, and a too-low budget otherwise produces (and bills for) an empty response. Only ever raises, never lowers, your request.","ability":"chat","schema":{"request":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"type":"string"}}}},"system_prompt":{"type":"string"},"species_name":{"type":"string","description":"model_species.name \u2014 omit for default"},"temperature":{"type":"number","minimum":0,"maximum":1},"max_tokens":{"type":"integer","minimum":64,"maximum":8192}}},"response":{"type":"object","properties":{"content":{"type":"string"},"model":{"type":"string"},"call_id":{"type":"string","description":"opaque per-call handle (64 hex chars) \u2014 quote it when reporting a problem with or rating this call"},"usage":{"type":"object","properties":{"input":{"type":"integer"},"output":{"type":"integer"}}},"meta":{"type":"object","description":"price is always present here \u2014 the customer-facing charged amount. Raw provider cost is never returned by any Fire endpoint.","properties":{"price":{"type":"object","properties":{"usd":{"type":"number"}}},"call_id":{"type":"string"}}}}}}},"POST \/v1\/chat\/parallel":{"description":"N independent chat requests run concurrently, each with its own model\/system_prompt\/temperature. No synthesis \u2014 see the flows plane below to feed outputs into a further call.","ability":"chat","schema":{"request":{"type":"object","required":["requests"],"properties":{"requests":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","description":"same shape as POST \/v1\/chat"}}}},"response":{"type":"object","properties":{"results":{"type":"array","description":"one entry per request, input order, {ok:true,content,model,provider,call_id,usage,meta} or {ok:false,error}"}}}}},"POST \/v1\/chat\/stream":{"description":"Server-sent token stream for a single chat request.","ability":"chat"},"POST \/v1\/image":{"description":"Generate images from a text prompt. Pass images to edit\/combine 1-16 reference photos (e.g. \"make a bio image from these 2 photos\") instead of generating from scratch \u2014 only models with capabilities.supports_reference_images (see GET \/v1\/models) can be resolved when images is present; species_name is otherwise auto-restricted to that set.","ability":"image","schema":{"request":{"type":"object","required":["prompt"],"properties":{"prompt":{"type":"string","maxLength":2000},"species_name":{"type":"string","description":"model_species.name of an image model \u2014 omit for default"},"n":{"type":"integer","minimum":1,"maximum":4,"default":1},"size":{"type":"string","enum":["256x256","512x512","1024x1024","1024x1536","1536x1024"],"default":"1024x1024"},"images":{"type":"array","minItems":1,"maxItems":16,"description":"Reference images for edit\/composition mode. Each item: an https:\/\/ URL, a data:image\/...;base64,... data URL, raw base64 (assumed PNG), or {\"url\": \"...\"}."}}},"response":{"type":"object","properties":{"images":{"type":"array","items":{"type":"object","properties":{"b64":{"type":"string"},"url":{"type":"string"}}}},"model":{"type":"string"},"provider":{"type":"string"},"call_id":{"type":"string","description":"opaque per-call handle (64 hex chars)"},"meta":{"type":"object","description":"price is always present here \u2014 the customer-facing charged amount. Raw provider cost is never returned by any Fire endpoint.","properties":{"price":{"type":"object","properties":{"usd":{"type":"number"}}},"call_id":{"type":"string"}}}}}}},"POST \/v1\/image\/upscale":{"description":"Interpolative (pixel-preserving) 2x\/4x image upscale \u2014 a distinct capability from \/v1\/image generation, no re-generation drift. Pass target_size (e.g. \"1920x1080\") instead of scale to upscale-then-center-crop to exact pixels; the source must not already cover the target, and targets needing more than 4x are rejected.","ability":"image","schema":{"request":{"type":"object","required":["image"],"properties":{"image":{"type":"string","description":"source image: an https:\/\/ URL, a data:image\/...;base64,... data URL, raw base64 (assumed PNG), or {\"url\": \"...\"}"},"scale":{"type":"integer","enum":[2,4],"description":"mutually exclusive with target_size"},"target_size":{"type":"string","description":"exact output dimensions \"WxH\" \u2014 picks the smallest real scale factor that covers it, then center-crops; mutually exclusive with scale"},"species_name":{"type":"string","description":"model_species.name of an upscale model \u2014 omit for default"}}},"response":{"type":"object","properties":{"images":{"type":"array","items":{"type":"object","properties":{"b64":{"type":"string"}}}},"model":{"type":"string"},"provider":{"type":"string"},"call_id":{"type":"string","description":"opaque per-call handle (64 hex chars)"},"meta":{"type":"object","description":"price is always present here \u2014 the customer-facing charged amount. Raw provider cost is never returned by any Fire endpoint.","properties":{"price":{"type":"object","properties":{"usd":{"type":"number"}}},"call_id":{"type":"string"}}}}}}},"POST \/v1\/calls\/{call_id}\/report":{"description":"Report a problem with a specific call, identified by the call_id its response returned. The report schema branches on the call's type: base fields (description, optional category) plus a per-type issue_type enum \u2014 chat: hallucination|refusal|wrong_format|off_topic|slow|other (+ optional expected\/excerpt); image_generation: wrong_subject|artifact|nsfw_false_positive|nsfw_false_negative|aspect_ratio|other (+ optional region); image_edit adds reference_ignored; upscale: artifact|wrong_dimensions|quality|other; speech: mispronunciation|wrong_voice|garbled|other (+ optional timestamp_ms); transcription: wrong_text|missed_speech|wrong_language|garbled|other; decision: wrong_answer|miscalibrated|ignored_criteria|missing_answer|other; embedding: poor_retrieval|wrong_dimensions|other. Only calls made by your own account can be reported (404 otherwise). Every report is triaged.","ability":"any valid token","schema":{"request":{"type":"object","required":["description","issue_type"],"properties":{"description":{"type":"string","maxLength":4000},"issue_type":{"type":"string","description":"per-call-type enum, see endpoint description"},"category":{"type":"string","maxLength":100}}},"response":{"type":"object","properties":{"status":{"type":"string","enum":["received"]},"call_id":{"type":"string"}}}}},"POST \/v1\/calls\/{call_id}\/rate":{"description":"Rate a specific call 1-5, optionally on a named dimension (default: overall \u2014 see rating_dimensions in future rankings endpoints). Unknown freeform tags[] propose new rating dimensions. Only calls made by your own account can be rated (404 otherwise).","ability":"any valid token","schema":{"request":{"type":"object","required":["score"],"properties":{"score":{"type":"number","minimum":1,"maximum":5},"dimension":{"type":"string","description":"rating dimension slug, e.g. overall, prompt_adherence, speed, value, image_quality"},"tags":{"type":"array","maxItems":10,"items":{"type":"string","maxLength":50}},"comment":{"type":"string","maxLength":2000}}},"response":{"type":"object","properties":{"status":{"type":"string","enum":["received"]},"call_id":{"type":"string"}}}}},"POST \/v1\/speech":{"description":"Synthesize speech audio from text.","ability":"speech","schema":{"request":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":4000},"species_name":{"type":"string","description":"model_species.name of a speech model \u2014 omit for default"},"voice":{"type":"string","description":"provider-specific voice id \u2014 omit for the model's default voice"},"format":{"type":"string","description":"output audio format (provider-dependent support) \u2014 omit for the model's default format"}}},"response":{"type":"object","properties":{"audio":{"type":"string","description":"base64-encoded audio bytes"},"format":{"type":"string"},"model":{"type":"string"},"provider":{"type":"string"},"call_id":{"type":"string","description":"opaque per-call handle (64 hex chars)"},"meta":{"type":"object","description":"price is always present here \u2014 the customer-facing charged amount. Raw provider cost is never returned by any Fire endpoint.","properties":{"price":{"type":"object","properties":{"usd":{"type":"number"}}},"call_id":{"type":"string"}}}}}}},"POST \/v1\/transcribe":{"description":"Transcribe a single audio clip to text. Long-form audio (e.g. a 90-minute lecture) must be chunked by the caller into clips under the underlying provider's file-size limit (~25MB) \u2014 Fire does no chunking\/stitching of its own.","ability":"transcribe","schema":{"request":{"type":"object","required":["audio"],"properties":{"audio":{"type":"string","description":"source audio: an https:\/\/ URL, a data:audio\/...;base64,... data URL, raw base64 (mime sniffed), or {\"url\": \"...\"}"},"species_name":{"type":"string","description":"model_species.name of a transcription model \u2014 omit for default"},"language":{"type":"string","description":"ISO-639-1 language hint \u2014 omit to auto-detect"}}},"response":{"type":"object","properties":{"text":{"type":"string"},"language":{"type":"string"},"duration":{"type":"number","description":"audio duration in seconds, as reported by the provider (null when the provider does not report it \u2014 the Groq default does not)"},"model":{"type":"string"},"provider":{"type":"string"},"call_id":{"type":"string","description":"opaque per-call handle (64 hex chars)"},"meta":{"type":"object","description":"price is always present here \u2014 the customer-facing charged amount. Raw provider cost is never returned by any Fire endpoint.","properties":{"price":{"type":"object","properties":{"usd":{"type":"number"}}},"call_id":{"type":"string"}}}}}}},"POST \/v1\/decide":{"description":"Typed decisions, not prose: ask one or more named questions about a piece of text\/JSON `state` and get back a value plus probability for each \u2014 noul (yes\/no \u2192 probability of yes), choice (one of your labelled categories \u2192 chosen label + per-label probabilities), score (position on your ordered rubric \u2192 probability-weighted score + legend + per-level probabilities). Built for routing, moderation, classification, scoring and validation at ~$0.00002 per call and sub-second latency. All questions in one request are answered in one model pass. Text\/JSON input only (no images). Default model: Jev (TypeSafe), ~64k-token context.","ability":"decide","schema":{"request":{"type":"object","required":["state","questions"],"properties":{"state":{"type":["string","object","array"],"description":"the thing being judged \u2014 a string, or a JSON object\/array of text values"},"questions":{"type":"object","description":"map of question_name \u2192 {type, instructions?, criteria?}. type \u2208 noul|choice|score. noul: criteria optional. choice: criteria is {label: description} with 1\u2013255 labels. score: criteria is an ordered array of 2\u201310 level descriptions (index 0 = lowest). Max 32 questions per call."},"species_name":{"type":"string","description":"model_species.name of a decision model \u2014 omit for default (jev)"}}},"response":{"type":"object","properties":{"answers":{"type":"object","description":"question_name \u2192 answer. noul: {type, noul: 0..1}. choice: {type, choice, confidence, probabilities: {label: p}}. score: {type, score, confidence, legend: [level descriptions by index], probabilities: [p by index]} \u2014 score is the probability-weighted position on the rubric (0 = first level)."},"usage":{"type":"object","properties":{"input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"}}},"model":{"type":"string"},"provider":{"type":"string"},"call_id":{"type":"string","description":"opaque per-call handle (64 hex chars)"},"meta":{"type":"object","description":"price is always present here \u2014 the customer-facing charged amount. Raw provider cost is never returned by any Fire endpoint.","properties":{"price":{"type":"object","properties":{"usd":{"type":"number"}}},"call_id":{"type":"string"}}}}}}},"POST \/v1\/embed":{"description":"Text embeddings: one string or a batch of up to 128 strings in, one float vector per input out (in input order), for semantic search, clustering, dedup and RAG. Fire computes vectors; it does not store them \u2014 keep them in your own database (e.g. a pgvector column) next to the rows they describe. Vectors are only comparable within one model at one dimension count: record species_name + dimensions beside every stored vector and re-embed everything if you change either. The models list in this document carries each embedding model's native `dimensions`, `max_input_tokens` and `supports_custom_dimensions`. Billed cost-plus on input tokens. Default model: text-embedding-3-small (1536 dims).","ability":"embed","schema":{"request":{"type":"object","required":["input"],"properties":{"input":{"type":["string","array"],"description":"a non-empty string, or an array of 1\u2013128 non-empty strings, each at most 32000 characters (providers enforce ~8192 tokens per input; an over-limit input is a 422)"},"species_name":{"type":"string","description":"model_species.name of an embedding model (GET \/v1\/models?function=embedding) \u2014 omit for default (text-embedding-3-small)"},"dimensions":{"type":"integer","description":"truncate to this many dimensions (min 32, max the model's native size). Only on models with supports_custom_dimensions; 422 otherwise. pgvector indexes (HNSW\/IVFFlat) cap `vector` at 2000 dims \u2014 ask for \u22642000 if you will index."}}},"response":{"type":"object","properties":{"data":{"type":"array","description":"[{index, embedding: number[]}] \u2014 one per input, ordered by index (OpenAI-compatible shape)"},"dimensions":{"type":"integer"},"usage":{"type":"object","properties":{"input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"}}},"model":{"type":"string","description":"species_name \u2014 store it with the vectors"},"provider":{"type":"string"},"call_id":{"type":"string","description":"opaque per-call handle (64 hex chars)"},"meta":{"type":"object","description":"price is always present here \u2014 the customer-facing charged amount. Raw provider cost is never returned by any Fire endpoint.","properties":{"price":{"type":"object","properties":{"usd":{"type":"number"}}},"call_id":{"type":"string"}}}}}}}}},"workflows":{"description":"Layer 2 \u2014 canned server-side workflows composed from L1 calls. Same auth\/logging\/metering per call. Reference: API.md \u00a7Layer 2.","auth":"Bearer fire_sk_*","endpoints":{"POST \/v1\/workflows\/image":{"ability":"image"},"POST \/v1\/workflows\/article":{"ability":"chat"},"POST \/v1\/workflows\/moderate-image":{"ability":"image"}}},"service_control":{"description":"Telemetry, diagnostics, rate management. Visible to token holders.","auth":"Bearer fire_sk_*","endpoints":{"GET \/v1\/capabilities":{"description":"This document.","auth":false},"GET \/v1\/status":{"description":"Service health and provider status.","ability":"read"},"GET \/v1\/models":{"description":"All active model deployments. Each entry's capabilities.min_max_tokens (if present) is the floor Fire silently raises max_tokens to for that model \u2014 see \/v1\/chat's note on reasoning models. Filters: ?tier=, ?modality= (what the model produces), ?function= (chat|image_generation|image_edit|upscale|speech|transcription|decision|embedding), ?modality=vector for embedding models. Each entry carries modality (in\/out sets), functions, and a sparse ratings summary ({dimension: {score, sample_count}}, null until rated).","ability":"read"},"GET \/v1\/models\/rankings":{"description":"Models ranked by a rating dimension's aggregate customer score (recomputed hourly from rating events). Params: dimension (default overall), modality\/function\/tier facet filters (\"best in class\" = dimension + facets), min_samples, sort=score|value. Every row carries sample_count beside score; value = score \u00f7 published price (per_1k_tokens_combined for text, per_image flat tier for image; null \u2014 never guessed \u2014 where no flat price exists). Only onboarded, active, rated models appear.","ability":"read"},"GET \/v1\/models\/rankings\/dimensions":{"description":"The active rating vocabulary (slug, label, applies_to facet scope). Rate calls may propose new dimensions via tags[]; they appear here once curated.","ability":"read"},"GET \/v1\/usage":{"description":"Token usage for the authenticated token.","ability":"read"}}},"flows":{"description":"v2 \u2014 data-driven, resumable multi-agent DAG orchestration. A third layer alongside L1 (raw calls, above) and L2 (fixed workflows, below): define an arbitrary sequence of agent calls (parallel fan-out, dependencies, human-in-the-loop pauses) per-request or by saved slug. Every step is billed\/logged like any other Fire call. Execution is always queued \u2014 POST endpoints return 202 immediately, poll GET ...\/runs\/{run} for status. A saved flow definition is public and listed here by default \u2014 mark it private (is_public: false on create\/update) to keep it out of this catalog and un-runnable by any other fire_account. Reference: API.md \u00a7v2 \u2014 Multi-agent flows.","auth":"Bearer fire_sk_* (ability: flow)","endpoints":{"POST \/v2\/flows\/{slug}\/run":{"description":"Preferred. Start a run of a saved flow \u2014 the slug is the endpoint, same shape as L1's POST \/v1\/workflows\/{workflow}. Body: {input, conversation_id?, user_message?}."},"POST \/v2\/flows\/run":{"description":"DEPRECATED for {flow_slug} (use POST \/v2\/flows\/{slug}\/run instead \u2014 this path now returns a Deprecation header). Still the only way to run an unsaved\/ad-hoc {flow:{steps:[...]}} spec."},"GET \/v2\/flows\/runs":{"description":"List the token's own runs, filterable by conversation_id\/status."},"GET \/v2\/flows\/runs\/{run}":{"description":"Poll run + step state. ?verbosity=compact drops per-step output\/context to save bandwidth; run-level output\/error\/cost are never trimmed."},"POST \/v2\/flows\/runs\/{run}\/resume":{"description":"Supply {step_key, human_input} for the step currently gating a human_gate pause."},"GET|POST \/v2\/agent-configs":{"description":"CRUD for reusable, named agent personas (model + temperature + system_prompt) a flow step references by slug."},"GET|PUT|DELETE \/v2\/agent-configs\/{slug}":{"description":"Read\/update\/deactivate one agent config."},"GET|POST \/v2\/flows":{"description":"Catalog of public flows plus your own private ones (CRUD). A flow you create belongs to your token's fire_account; only the owner can edit\/deactivate it."},"GET|PUT|DELETE \/v2\/flows\/{slug}":{"description":"Read (any visible flow)\/update\/deactivate (owner only) one flow definition. Editing spec bumps version; runs already started keep their own snapshot."}},"catalog":[{"slug":"aperture-consolidate","label":"Aperture Consolidate \u2014 Narrator","description":"Summarizes\/flags-anomalies for one aperture:consolidate pass. Mechanical graph updates (decay, clustering, link reweighting) already committed before this flow runs \u2014 fire-and-forget, never blocks or gates them.","run":"POST \/v2\/flows\/aperture-consolidate\/run"}]},"billing":{"description":"Prepaid balances for paying accounts and self-service tier onboarding. Internal (0% markup) tokens are exempt from balance checks.","auth":"Bearer fire_sk_* unless noted","endpoints":{"GET \/v1\/billing\/packs":{"description":"Available credit packs.","auth":false},"GET \/v1\/billing\/balance":{"description":"Current account balance.","ability":"read"},"POST \/v1\/billing\/checkout":{"description":"Create a Stripe Checkout session to top up.","ability":"read"},"POST \/v1\/billing\/tier\/redeem":{"description":"Redeem a JP-issued tier code into a new Fire token \u2014 no auth, the caller has none yet.","auth":false}}},"governance":{"description":"Authority, compliance, emergency stop. RFC 9697 \u00a76.6 governance hooks.","status":"hooks_defined","note":"Governance Control Plane not yet deployed. Endpoints are defined and reserved.","auth":"GCP authority credential (not yet implemented)","endpoints":{"POST \/v1\/admin\/freeze":{"description":"Freeze a token or user account pending investigation.","status":"reserved","schema":{"subject_type":"token|user","subject_id":"string","reason":"string","authority":"string"}},"POST \/v1\/admin\/stop":{"description":"Emergency stop \u2014 level 0 (suspend), 1 (terminate), 2 (halt scope).","status":"reserved","schema":{"level":"0|1|2","scope":"string","reason":"string","issued_by":"string","expires":"ISO8601|null"}}}}},"models":[{"species_name":"claude-sonnet-4-5","display_name":"Claude Sonnet 4.5","family":"anthropic","genus":"claude","strengths":["reasoning","coding","long-context","instruction-following"],"tier":"standard","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":true,"capabilities":{"context_window":200000,"min_max_tokens":1024,"supports_streaming":false},"size_policy":null},{"species_name":"whisper-large-v3-turbo","display_name":"Whisper Large v3 Turbo (Groq)","family":"openai","genus":"whisper","strengths":["transcription","multilingual","low-latency"],"tier":"fast","modality":{"in":["audio"],"out":["text"]},"functions":["transcription"],"provider":"edenai","is_default":true,"capabilities":{"modality":"transcription"},"size_policy":null},{"species_name":"jev","display_name":"Jev (TypeSafe)","family":"typesafe","genus":"jev","strengths":["decision","classification","scoring","structured-output","low-latency","calibrated-probabilities"],"tier":"fast","modality":{"in":["text"],"out":["text"]},"functions":["decision"],"provider":"edenai","is_default":true,"capabilities":{"input":["text","json"],"modality":"decision","question_types":["noul","choice","score"],"max_state_tokens":32000,"max_context_tokens":64000},"size_policy":null},{"species_name":"venice-upscaler","display_name":"Venice Upscaler","family":"venice","genus":"upscaler","strengths":[],"tier":null,"modality":{"in":["image"],"out":["image"]},"functions":["upscale"],"provider":"venice","is_default":true,"capabilities":{"modality":"upscale"},"size_policy":null},{"species_name":"tts-kokoro","display_name":"Kokoro TTS","family":"hexgrad","genus":"kokoro","strengths":[],"tier":null,"modality":{"in":["text"],"out":["audio"]},"functions":["speech"],"provider":"venice","is_default":true,"capabilities":{"modality":"speech"},"size_policy":null},{"species_name":"text-embedding-3-small","display_name":"OpenAI text-embedding-3-small","family":"openai","genus":"text-embedding","strengths":["embedding","semantic-search","multilingual","low-cost"],"tier":"fast","modality":{"in":["text"],"out":["vector"]},"functions":["embedding"],"provider":"edenai","is_default":true,"capabilities":{"modality":"embedding","dimensions":1536,"max_input_tokens":8192,"supports_custom_dimensions":true},"size_policy":null},{"species_name":"deepseek-chat","display_name":"DeepSeek Chat","family":"deepseek","genus":"deepseek","strengths":["low-cost","general-purpose"],"tier":"fast","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":128000,"supports_streaming":false},"size_policy":null},{"species_name":"deepseek-reasoner","display_name":"DeepSeek Reasoner","family":"deepseek","genus":"deepseek","strengths":["reasoning","math","low-cost"],"tier":"fast","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":128000,"min_max_tokens":1024,"supports_streaming":false},"size_policy":null},{"species_name":"sdxl","display_name":"Stable Diffusion XL","family":"stabilityai","genus":"stable-diffusion","strengths":["low-cost","speed","versatile"],"tier":"fast","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"edenai","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"fixed_sizes","allowed_sizes":["1024x1024","1152x896","1216x832","1344x768","1536x640","640x1536","768x1344","832x1216","896x1152"]}},{"species_name":"flux-2-pro","display_name":"Flux 2 Pro","family":"blackforestlabs","genus":"flux","strengths":["artistic","quality"],"tier":"standard","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"aspect_ratio","aspect_ratios":["1:1","3:2","16:9","21:9","9:16","2:3","3:4","4:5"]}},{"species_name":"flux-2-max","display_name":"Flux 2 Max","family":"blackforestlabs","genus":"flux","strengths":["quality","artistic","photorealism"],"tier":"frontier","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"aspect_ratio","aspect_ratios":["auto","1:1","3:2","16:9","21:9","9:16","2:3","3:4","4:5"]}},{"species_name":"wai-Illustrious","display_name":"WAI Illustrious (Anime)","family":"illustrious","genus":"wai","strengths":["anime","illustration","nsfw-capable"],"tier":"standard","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"dimension_range","max_dimension":1280}},{"species_name":"az-gpt-4o","display_name":"GPT-4o (Azure)","family":"microsoft","genus":"gpt-azure","strengths":["vision","azure"],"tier":"standard","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":128000,"supports_streaming":false},"size_policy":null},{"species_name":"z-image-turbo","display_name":"Z-Image Turbo","family":"alibaba","genus":"z-image","strengths":["speed","low-cost"],"tier":"fast","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"fixed_sizes","allowed_sizes":["256x256","512x512","1024x1024"]}},{"species_name":"gemini-2.5-flash","display_name":"Gemini 2.5 Flash","family":"google","genus":"gemini","strengths":["speed","low-cost","long-context"],"tier":"fast","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":200000,"supports_streaming":false},"size_policy":null},{"species_name":"mistral-large-latest","display_name":"Mistral Large (latest)","family":"mistral","genus":"mistral","strengths":["multilingual","general-purpose"],"tier":"standard","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":32000,"supports_streaming":false},"size_policy":null},{"species_name":"o3-mini","display_name":"o3 Mini","family":"openai","genus":"o-series","strengths":["reasoning","math","low-cost"],"tier":"fast","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":128000,"min_max_tokens":1024,"supports_streaming":false},"size_policy":null},{"species_name":"venice-sd35","display_name":"Venice SD 3.5","family":"stabilityai","genus":"stable-diffusion-3","strengths":["versatile","uncensored-capable"],"tier":"standard","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"dimension_range","max_dimension":1280}},{"species_name":"tts-elevenlabs-turbo-v2-5","display_name":"ElevenLabs Turbo v2.5 (via Venice)","family":"elevenlabs","genus":"elevenlabs-turbo","strengths":[],"tier":null,"modality":{"in":["text"],"out":["audio"]},"functions":["speech"],"provider":"venice","is_default":false,"capabilities":{"modality":"speech"},"size_policy":null},{"species_name":"gpt-4o","display_name":"GPT-4o","family":"openai","genus":"gpt","strengths":["vision","general-purpose","tool-use"],"tier":"standard","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":128000,"supports_streaming":false},"size_policy":null},{"species_name":"codestral-latest","display_name":"Codestral (latest)","family":"mistral","genus":"mistral","strengths":["coding","code-completion"],"tier":"standard","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":32000,"supports_streaming":false},"size_policy":null},{"species_name":"gpt-4.1-2025-04-14","display_name":"GPT-4.1 (2025-04-14)","family":"openai","genus":"gpt","strengths":["coding","long-context","instruction-following"],"tier":"standard","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":128000,"supports_streaming":false},"size_policy":null},{"species_name":"tts-gemini-3-1-flash","display_name":"Gemini 3.1 Flash TTS","family":"google","genus":"gemini-tts","strengths":[],"tier":null,"modality":{"in":["text"],"out":["audio"]},"functions":["speech"],"provider":"venice","is_default":false,"capabilities":{"modality":"speech"},"size_policy":null},{"species_name":"google-tts-neural","display_name":"Google Cloud TTS (Neural)","family":"google","genus":"google-cloud-tts","strengths":[],"tier":null,"modality":{"in":["text"],"out":["audio"]},"functions":["speech"],"provider":"edenai","is_default":false,"capabilities":{"modality":"speech"},"size_policy":null},{"species_name":"openai-tts-1","display_name":"OpenAI TTS","family":"openai","genus":"openai-tts","strengths":[],"tier":null,"modality":{"in":["text"],"out":["audio"]},"functions":["speech"],"provider":"edenai","is_default":false,"capabilities":{"modality":"speech"},"size_policy":null},{"species_name":"lustify-sdxl","display_name":"Lustify SDXL","family":"lustify","genus":"lustify","strengths":["nsfw","low-cost"],"tier":"fast","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"dimension_range","max_dimension":1280}},{"species_name":"claude-haiku-4-5","display_name":"Claude Haiku 4.5","family":"anthropic","genus":"claude","strengths":["speed","low-cost","classification","compliance-checks"],"tier":"fast","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":200000,"supports_streaming":false},"size_policy":null},{"species_name":"gpt-image-1-5","display_name":"GPT Image 1.5","family":"openai","genus":"dall-e","strengths":["prompt-adherence","quality","editorial"],"tier":"frontier","modality":{"in":["text","image"],"out":["image"]},"functions":["image_generation"],"provider":"edenai","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"fixed_sizes","allowed_sizes":["1024x1024","1536x1024","1024x1536"]}},{"species_name":"seedream-v4","display_name":"Seedream V4.5","family":"bytedance","genus":"seedream","strengths":["aesthetic","stylized"],"tier":"standard","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"aspect_ratio","aspect_ratios":["1:1","3:2","16:9","21:9","9:16","2:3","3:4","4:5"]}},{"species_name":"krea-2-turbo","display_name":"Krea 2 Turbo","family":"krea","genus":"krea","strengths":["nsfw","general-purpose"],"tier":"fast","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"aspect_ratio","aspect_ratios":["1:1","3:2","16:9","21:9","9:16","2:3","3:4","4:5"]}},{"species_name":"qwen-edit-uncensored","display_name":"Qwen Edit Uncensored","family":"alibaba","genus":"qwen-edit","strengths":["nsfw","reference-image-edit"],"tier":"standard","modality":{"in":["text","image"],"out":["image"]},"functions":["image_edit"],"provider":"venice","is_default":false,"capabilities":{"modality":"image","max_reference_images":1,"reference_images_required":true,"supports_reference_images":true},"size_policy":{"mode":"fixed_sizes","allowed_sizes":["256x256","512x512","1024x1024","1024x1536","1536x1024"]}},{"species_name":"lustify-v8","display_name":"Lustify v8","family":"lustify","genus":"lustify","strengths":["nsfw","most_uncensored"],"tier":"standard","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"dimension_range","max_dimension":1280}},{"species_name":"qwen-image","display_name":"Qwen Image","family":"alibaba","genus":"qwen-image","strengths":["illustration","stylized"],"tier":"standard","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"aspect_ratio","aspect_ratios":["1:1","3:2","16:9","21:9","9:16","2:3","3:4","4:5"]}},{"species_name":"seedream-v5-lite","display_name":"Seedream V5 Lite","family":"bytedance","genus":"seedream","strengths":["nsfw","photoreal"],"tier":"fast","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"aspect_ratio","aspect_ratios":["1:1","3:2","16:9","21:9","9:16","2:3","3:4","4:5"]}},{"species_name":"seedream-v5-pro","display_name":"Seedream V5 Pro","family":"bytedance","genus":"seedream","strengths":["nsfw","photoreal","premium"],"tier":"frontier","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"aspect_ratio","aspect_ratios":["1:1","3:2","16:9","9:16","2:3","3:4"]}},{"species_name":"qwen-image-3","display_name":"Qwen Image 3","family":"alibaba","genus":"qwen-image","strengths":["nsfw","photoreal"],"tier":"standard","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"aspect_ratio","aspect_ratios":["1:1","3:2","16:9","21:9","9:16","2:3","3:4","4:5"]}},{"species_name":"qwen-image-3-pro","display_name":"Qwen Image 3 Pro","family":"alibaba","genus":"qwen-image","strengths":["nsfw","photoreal"],"tier":"standard","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"aspect_ratio","aspect_ratios":["1:1","3:2","16:9","21:9","9:16","2:3","3:4","4:5"]}},{"species_name":"text-embedding-3-large","display_name":"OpenAI text-embedding-3-large","family":"openai","genus":"text-embedding","strengths":["embedding","semantic-search","multilingual","high-accuracy"],"tier":"standard","modality":{"in":["text"],"out":["vector"]},"functions":["embedding"],"provider":"edenai","is_default":false,"capabilities":{"modality":"embedding","dimensions":3072,"max_input_tokens":8192,"supports_custom_dimensions":true},"size_policy":null},{"species_name":"qwen-image-3-edit","display_name":"Qwen Image 3 Edit","family":"alibaba","genus":"qwen-image","strengths":["nsfw","reference-image-edit","multi-image"],"tier":"standard","modality":{"in":["text","image"],"out":["image"]},"functions":["image_edit"],"provider":"venice","is_default":false,"capabilities":{"modality":"image","max_reference_images":6,"reference_images_required":true,"supports_reference_images":true},"size_policy":{"mode":"fixed_sizes","allowed_sizes":["256x256","512x512","1024x1024","1024x1536","1536x1024"]}},{"species_name":"qwen-image-3-pro-edit","display_name":"Qwen Image 3 Pro Edit","family":"alibaba","genus":"qwen-image","strengths":["nsfw","reference-image-edit","multi-image"],"tier":"standard","modality":{"in":["text","image"],"out":["image"]},"functions":["image_edit"],"provider":"venice","is_default":false,"capabilities":{"modality":"image","max_reference_images":6,"reference_images_required":true,"supports_reference_images":true},"size_policy":{"mode":"fixed_sizes","allowed_sizes":["256x256","512x512","1024x1024","1024x1536","1536x1024"]}},{"species_name":"seedream-v4-edit","display_name":"Seedream V4 Edit","family":"bytedance","genus":"seedream","strengths":["nsfw","reference-image-edit","multi-image"],"tier":"standard","modality":{"in":["text","image"],"out":["image"]},"functions":["image_edit"],"provider":"venice","is_default":false,"capabilities":{"modality":"image","max_reference_images":6,"reference_images_required":true,"supports_reference_images":true},"size_policy":{"mode":"fixed_sizes","allowed_sizes":["256x256","512x512","1024x1024","1024x1536","1536x1024"]}},{"species_name":"seedream-v5-lite-edit","display_name":"Seedream V5 Lite Edit","family":"bytedance","genus":"seedream","strengths":["nsfw","reference-image-edit","multi-image"],"tier":"standard","modality":{"in":["text","image"],"out":["image"]},"functions":["image_edit"],"provider":"venice","is_default":false,"capabilities":{"modality":"image","max_reference_images":6,"reference_images_required":true,"supports_reference_images":true},"size_policy":{"mode":"fixed_sizes","allowed_sizes":["256x256","512x512","1024x1024","1024x1536","1536x1024"]}},{"species_name":"seedream-v5-pro-edit","display_name":"Seedream V5 Pro Edit","family":"bytedance","genus":"seedream","strengths":["nsfw","reference-image-edit","multi-image","premium"],"tier":"frontier","modality":{"in":["text","image"],"out":["image"]},"functions":["image_edit"],"provider":"venice","is_default":false,"capabilities":{"modality":"image","max_reference_images":6,"reference_images_required":true,"supports_reference_images":true},"size_policy":{"mode":"fixed_sizes","allowed_sizes":["256x256","512x512","1024x1024","1024x1536","1536x1024"]}},{"species_name":"qwen-3-8-27b","display_name":"Qwen 3.8 27B (Uncensored)","family":"alibaba","genus":"qwen","strengths":["uncensored","vision","reasoning","long-context"],"tier":"standard","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"venice","is_default":false,"capabilities":{"modality":"text","max_images":10,"context_window":262144,"supports_vision":true,"supports_streaming":true},"size_policy":null},{"species_name":"venice-uncensored-role-play","display_name":"Venice Role Play Uncensored","family":"venice","genus":"venice-uncensored","strengths":["uncensored","creative-writing","roleplay"],"tier":"standard","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"venice","is_default":false,"capabilities":{"modality":"text","context_window":128000,"supports_streaming":true},"size_policy":null},{"species_name":"glm-4.7-flash-heretic","display_name":"GLM 4.7 Flash Heretic","family":"zai","genus":"glm","strengths":["uncensored","fast","cheap","reasoning"],"tier":"fast","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"venice","is_default":false,"capabilities":{"modality":"text","context_window":200000,"supports_streaming":true},"size_policy":null},{"species_name":"chroma","display_name":"Chroma","family":"lodestones","genus":"chroma","strengths":["nsfw","flux-derivative"],"tier":"fast","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"dimension_range","max_dimension":1280}},{"species_name":"qwen3-embedding-8b","display_name":"Qwen3 Embedding 8B (Venice)","family":"alibaba","genus":"qwen-embedding","strengths":["embedding","semantic-search","multilingual","private","low-cost"],"tier":"standard","modality":{"in":["text"],"out":["vector"]},"functions":["embedding"],"provider":"venice","is_default":false,"capabilities":{"modality":"embedding","dimensions":4096,"max_input_tokens":8192,"supports_custom_dimensions":true},"size_policy":null},{"species_name":"venice-uncensored","display_name":"Venice Uncensored 1.2","family":"venice","genus":"venice-uncensored","strengths":["uncensored","creative-writing"],"tier":"fast","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"venice","is_default":false,"capabilities":{"modality":"text","context_window":32000,"supports_vision":true,"supports_streaming":true},"size_policy":null},{"species_name":"gemma-4-uncensored","display_name":"Gemma 4 Uncensored","family":"google","genus":"gemma","strengths":["uncensored","roleplay","cheap","fast","vision"],"tier":"fast","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"venice","is_default":false,"capabilities":{"modality":"text","max_images":1,"context_window":256000,"supports_vision":true,"supports_streaming":true},"size_policy":null},{"species_name":"claude-opus-4-5","display_name":"Claude Opus 4.5","family":"anthropic","genus":"claude","strengths":["deep-reasoning","agentic","coding","long-context"],"tier":"frontier","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":200000,"min_max_tokens":1024,"supports_streaming":false},"size_policy":null},{"species_name":"gpt-4o-mini","display_name":"GPT-4o Mini","family":"openai","genus":"gpt","strengths":["speed","low-cost","vision"],"tier":"fast","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":128000,"supports_streaming":false},"size_policy":null},{"species_name":"gpt-5-mini","display_name":"GPT-5 Mini","family":"openai","genus":"gpt","strengths":["reasoning","low-cost"],"tier":"fast","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":128000,"min_max_tokens":1024,"supports_streaming":false},"size_policy":null},{"species_name":"gemini-2.5-pro","display_name":"Gemini 2.5 Pro","family":"google","genus":"gemini","strengths":["long-context","vision","reasoning"],"tier":"frontier","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":200000,"min_max_tokens":1024,"supports_streaming":false},"size_policy":null},{"species_name":"lustify-v7","display_name":"Lustify v7","family":"lustify","genus":"lustify","strengths":["nsfw","quality"],"tier":"standard","modality":{"in":["text"],"out":["image"]},"functions":["image_generation"],"provider":"venice","is_default":false,"capabilities":{"modality":"image"},"size_policy":{"mode":"dimension_range","max_dimension":1280}}],"account_setup":{"url":"https:\/\/prosaga.net\/portal","auth":"Google OAuth","note":"Self-service signup, token minting, and Stripe-hosted credit top-up. No programmatic equivalent exists by design \u2014 Stripe requires a browser for card collection."},"cost_model":{"unit":"token","currency":"USD","note":"Per-call token usage logged. Rate depends on model and provider."},"guarantees":{"logging":"mandatory","token_accounting":"mandatory","bypass_possible":false,"content_logging":"opt-in"},"privacy":{"policy_url":"https:\/\/fire.prosaga.net\/privacy","content_logging_default":"off","content_logging_modes":{"off":"Prompts and responses are discarded after the call. Metadata only.","private":"Prompts and responses are stored for your own dashboard and pruned after content_retention_days.","improve":"As private, and you allow Fire to use your inputs\/outputs to improve Fire (evaluation, routing quality). Never sold or shared."},"retention_days_default":30,"per_call_override":"Header X-Fire-Content-Logging: off (or body log_content:false) withholds one call's content even when the account opted in. It can only reduce what is stored.","response_marker":"Every response carries meta.content_logged (true|false).","managed_at":"https:\/\/prosaga.net\/portal"}}