{"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. 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 for whisper-1) \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"},"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"}}}}}}}}},"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). 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-1","display_name":"Whisper-1","family":"openai","genus":"whisper","strengths":["transcription","multilingual"],"tier":"standard","modality":{"in":["audio"],"out":["text"]},"functions":["transcription"],"provider":"edenai","is_default":true,"capabilities":{"modality":"transcription"},"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}},{"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":"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":"fixed_sizes","allowed_sizes":["256x256","512x512","1024x1024","1024x1536","1536x1024"]}},{"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":"gpt-image-1","display_name":"GPT Image 1","family":"openai","genus":"dall-e","strengths":["prompt-adherence","text-in-image","editorial"],"tier":"frontier","modality":{"in":["text","image"],"out":["image"]},"functions":["image_generation","image_edit"],"provider":"edenai","is_default":false,"capabilities":{"modality":"image","max_reference_images":16,"supports_reference_images":true},"size_policy":{"mode":"fixed_sizes","allowed_sizes":["1024x1024","1536x1024","1024x1536"]}},{"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":"gpt-3.5-turbo","display_name":"GPT-3.5 Turbo","family":"openai","genus":"gpt","strengths":["low-cost","legacy"],"tier":"nano","modality":{"in":["text"],"out":["text"]},"functions":["chat"],"provider":"edenai","is_default":false,"capabilities":{"context_window":32000,"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":"o4-mini","display_name":"o4 Mini","family":"openai","genus":"o-series","strengths":["reasoning","math"],"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-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":"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":"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":"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":"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","image_edit"],"provider":"edenai","is_default":false,"capabilities":{"modality":"image","max_reference_images":16,"supports_reference_images":true},"size_policy":{"mode":"fixed_sizes","allowed_sizes":["1024x1024","1536x1024","1024x1536"]}},{"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":"fixed_sizes","allowed_sizes":["256x256","512x512","1024x1024","1024x1536","1536x1024"]}},{"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":"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":"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":"fixed_sizes","allowed_sizes":["256x256","512x512","1024x1024","1024x1536","1536x1024"]}},{"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":"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":"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}],"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}}