?limit=50 to get the whole catalogue in one call — see Fetching the live model list.
Fetching the live model list
Before you start building, call the models endpoint to discover what’s available. Always send?limit=50 — it is the maximum page size and returns the entire catalogue in a single call:
data array of model objects. Each object contains:
Not every model returns all fields. For example, a transcription model may return an empty
info, while an image-generation model will include detailed limits, features, and defaults. Always check for the presence of fields before using them.filter[inference_types] query parameter:
How model selection works
- Every task endpoint requires a model parameter. Pass the
slugvalue returned by the models endpoint — not the display name. - Quality ↔ Speed trade-off. Larger models often yield higher quality but cost more and take longer. See the Pricing page for per-task rates.
- Versioning & lifecycle. Models may be updated, superseded, or deprecated. Re-fetch the model list periodically to stay current.
Partner (external) models
Alongside the models running on deAPI’s own decentralized GPU network, the model list also includes partner models — large, heavy models that run on our partners’ infrastructure. These are typically models that can’t run on consumer GPUs (very high VRAM requirements, proprietary weights, or specialized hardware), so we make them available through the same unified API. Nothing changes on your side. Partner models are returned by the same Model Selection endpoint, listed as external models with their ownslug, inference_types, and info (limits, features, defaults). You discover and call them exactly like any other model — fetch the list, pick a slug, and pass it as the model parameter.
How to identify one. A partner model carries the experimental tag in its tags array, and its status is test_model (native fleet models are standard_model):
For partner models, pricing, availability, and inference time are set by the partner. deAPI acts as the provider (gateway) that routes your request and handles billing — it does not control the underlying infrastructure. As a result, response times and costs for these models can differ from the models running on deAPI’s own network, and a partner model may occasionally be unavailable independently of the rest of the platform.
Availability requires a Premium account
Partner models are not available on the free tier. To unlock them, make at least one payment to deAPI — this moves your account to Premium, and the models then appear in the/models endpoint response.
Until then they are absent from your model list entirely, and calling one by its slug is rejected:
Supported tasks
The table below shows which task types deAPI supports. To see which models are currently available for a given task, query the models endpoint with the correspondingfilter[inference_types] value.
Some models support multiple tasks (e.g. both
txt2img and img2img). The models endpoint will list all supported inference_types for each model.Unified transcription. The transcription endpoint (
POST /api/v2/audio/transcriptions, v1: POST /api/v1/client/transcribe) auto-detects URL vs. file upload and covers all four transcription tasks. It is an endpoint, not a separate inference_types value — filter models by audio2text, video2text, audio_file2text or video_file2text.Choosing the right model
When the models endpoint returns several options for the same task, use these guidelines: Image generation — Start with the fastest model for iteration. Increase steps and resolution for final quality. If the model object includes a non-emptyloras array, you can use LoRA adapters for style control.
Speech generation (TTS) — Check the model’s languages array for available languages and voices. Use info.defaults for recommended speed and format settings. The endpoint supports three modes: custom_voice (preset speakers), voice_clone (clone from reference audio), and voice_design (create voice from a text description). Not all models support all modes — check model capabilities before selecting a mode.
Music generation — Provide a text description (caption) of the desired music style. lyrics is required and must be non-empty — send "[Instrumental]" for instrumental tracks. Optionally include bpm, keyscale, and timesignature (an integer: 2, 3, 4 or 6 — not a notation string like "4/4") to fine-tune the output. format should be mp3 — the only format the current models actually produce. You can also upload a reference_audio file for style transfer. Check info.limits for supported duration range and inference steps. Use fewer steps with turbo models (e.g. 8) and more steps with base models (e.g. 32+).
Transcription (Video/Audio-to-Text) — Transcription models support both URL-based and file-upload transcription. For long content, enable timestamps (include_ts: true). URL-based transcription works with YouTube, Twitch, Kick, TikTok and X/Twitter — but TikTok is served by WhisperLargeV3Ct2 only, and a TikTok URL sent with any other model is rejected with 422.
OCR (Image-to-Text) — Check info.limits for the maximum supported image dimensions. For complex layouts, consider multiple passes or post-processing.
Video generation — Start with low frame counts to validate aesthetics, then scale up. Check info.limits.max_frames, min_frames, and max_fps for each model. Some models support a last_frame feature (see info.features.supports_last_frame). For audio-to-video, provide an audio file to condition the video generation alongside your text prompt — some models (Ltx2_3_22B_Dist_INT8 and Ltx2_5_22B_Dist_INT8) support txt2video, img2video, and audio2video in one model. Ltx2_5_22B_Dist_INT8 is the newest of them: same 49–241 frames @ 24 fps, but a larger frame (up to 1344 px on a side, subject to a max_pixels budget) and a slightly shorter reference-audio window (1–10 s against 1–11 s on 2.3).
Video replace (Animate) — Upload a video and a reference character image. The model replaces the person in the video with the character from the image. Optionally provide a text prompt to guide the replacement. Check info.limits for supported video duration and resolution.
Embeddings — Check info.limits.max_input_tokens and max_total_tokens for batch sizing. Use for semantic search, clustering, and retrieval-augmented generation (RAG).
Background removal — Check info.limits.max_width and max_height for the maximum supported resolution.
Image upscale — Check info.limits for input size constraints.
Video upscale — RealESRGAN_Vid_x2 / _x4 are the fast, low-cost option and deliver a mild sharpen, while FlashVSR_Tiny reconstructs detail that is not resolvable in the source — at roughly an order of magnitude more processing time and cost, so pick it per job rather than as a default. Check info.limits for input size and duration constraints. Some models support a configurable scale factor (currently only FlashVSR_Tiny, range 2–4); others are fixed-scale (RealESRGAN_Vid_x2, RealESRGAN_Vid_x4) and reject the scale field. Check the per-model min_scale/max_scale in info.limits before sending the request.
Parameter limits & resolution rules
Each model defines its own limits in theinfo.limits object. These limits vary between models and task types. Common fields include:
- Dimensions:
min_width,max_width,min_height,max_height, and (for image models)resolution_step— the value that width/height must be divisible by. - Pixel budget (newer models):
min_side,max_side,max_pixels,max_ratio,dimension_multiple. These bound the frame as a whole rather than each axis, so a size can be insidemax_width/max_heightand still be rejected — onLtx2_5_22B_Dist_INT8,1024x1024fails withSize 1024x1024 (1,048,576 px) exceeds the model limit of 1,032,192 px.and1344x512fails withhas an aspect ratio of 2.62:1, above the model limit of 2.00:1., while1344x768passes. - Steps:
min_steps,max_steps— how many inference steps the model supports. - Video-specific:
min_frames,max_frames,min_fps,max_fps. - Text-specific:
max_input_tokens,max_total_tokens(for embedding models),min_text,max_text(for speech models).
width and height to a multiple of the model’s resolution_step before sending the request.
Some models do not support guidance. Check info.features.supports_guidance — if it’s false, do not send a guidance value, or set it to 0.
API usage examples
1. Discover models for your taskrequest_id. Poll results with GET /api/v2/jobs/{request_id}.
Best practices
- Resolve models during integration. Fetch the model list when building your integration and re-fetch periodically (e.g. daily or on deployment) to stay current. There’s no need to call it on every request — the list doesn’t change that often.
- Respect info.limits and info.defaults. Use the returned defaults as a starting point. Stay within min/max boundaries to avoid unexpected rounding or errors. Note that some required fields (like
seedfor image generation) may not be listed in the model response — refer to the task endpoint docs for the full set of required parameters. - Pin slugs only when you need reproducibility. If you need consistent results across calls, keep the same slug and seed. But check the model list periodically — a slug may be retired and replaced.
- Budget before scaling. Larger models and higher resolution/steps cost more — see the Pricing page for per-task rates.
- Handle deprecation gracefully. If a model returns an error, re-fetch the model list and switch to a suitable alternative.
For AI agents & LLMs
If you are an AI agent, MCP client, or LLM integrating with deAPI:- Call
GET /api/v2/models?limit=50at the start of your session to get the current model list. Always sendlimit=50— without it you receive only the first 25 models, with no error to tell you the rest are missing. Do not rely on model slugs from training data, cached documentation, or prior conversations — they may be outdated. - Use
filter[inference_types]to narrow down to the task you need (e.g.txt2img,txt2audio,audio2video). - Read
info.limitsandinfo.defaultsfrom the response to construct valid request parameters. Also consult the task endpoint docs for required fields that may not appear in the model response (e.g.seedfor image generation). - Pass the
slugfield (notname) as themodelparameter in task endpoints. - If a model slug returns an error, re-fetch the model list — the model may have been deprecated or replaced.
Related docs
- Model Selection endpoint — the live API spec for fetching models.
- Pricing — cost per task and model tier.
- Execution Modes — sync, async, webhooks, WebSockets.
- OpenAI Compatibility — call deAPI with the OpenAI SDK using native model slugs.