deapi-ai Client API v2 API

Current client endpoints (OpenAI-aligned noun-based paths)

Operations 46

GET /api/v2/account/balance Get account balance #
GET /api/v2/jobs/{job_request} Get job status and result #
GET /api/v2/models List available models #
POST /api/v2/prompts/enhancements Enhance a prompt #
POST /api/v2/prompts/enhancements/price Estimate prompt enhancement price #
POST /api/v2/videos/audio-syncs Generate a video conditioned on an audio track #
POST /api/v2/videos/audio-syncs/price Estimate the price of an audio-to-video sync request #
POST /api/v2/images/edits/price Estimate the price of an image edit request #
POST /api/v2/images/ocr/price Estimate the price of an image OCR request #
POST /api/v2/videos/animations/price Estimate the price of an image-to-video animation request #
POST /api/v2/images/background-removals/price Estimate the price of an image background removal request #
POST /api/v2/images/upscales/price Estimate the price of an image upscale request #
POST /api/v2/images/generations/price Estimate the price of a text-to-image generation request #
POST /api/v2/audio/speech/price Estimate the price of a text-to-speech generation request #
POST /api/v2/embeddings/price Estimate the price of an embedding request #
POST /api/v2/videos/generations/price Estimate the price of a text-to-video generation request #
POST /api/v2/audio/transcriptions/price Estimate the price of a transcription request #
POST /api/v2/audio/music/price Estimate the price of a text-to-music generation request #
POST /api/v2/videos/background-removals/price Estimate the price of a video background removal request #
POST /api/v2/videos/upscales/price Estimate the price of a video upscale request #
POST /api/v2/images/edits Edit an image guided by a text prompt #
POST /api/v2/images/ocr Extract text from an image via OCR #
POST /api/v2/videos/animations Animate a still image into a video #
POST /api/v2/images/background-removals Remove the background from an image #
POST /api/v2/images/upscales Upscale an image to a higher resolution #
POST /api/v2/audio/speech Generate speech audio from text #
POST /api/v2/embeddings Generate embeddings for one or more input texts #
POST /api/v2/images/generations Generate an image from a text prompt #
POST /api/v2/audio/music Generate music from a text prompt #
POST /api/v2/videos/generations Generate a video from a text prompt #
POST /api/v2/audio/transcriptions Transcribe audio or video to text #
POST /api/v2/videos/background-removals Remove the background from a video #
POST /api/v2/videos/upscales Upscale a video to a higher resolution #
POST /api/v2/videos/descriptions/price Estimate the price of a video description #
POST /api/v2/videos/descriptions Describe what happens in a video #
GET /api/v2/key Get the calling API key #
GET /api/v2/key/usage Usage of the calling API key #
GET /api/v2/keys List the account's API keys #
POST /api/v2/keys Create an API key #
GET /api/v2/keys/{id} Get an API key #
PATCH /api/v2/keys/{id} Change an API key #
DELETE /api/v2/keys/{id} Delete an API key #
GET /api/v2/keys/{id}/usage Usage of an API key #
GET /api/v2/account Get the account's billing #
GET /api/v2/account/usage Usage of the whole account #
GET /api/v2/account/payments List the account's payments #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/deapi-ai:deapi-ai-client-api-v2-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

deapi-ai-client-api-v2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: deAPI REST Client API v2 API
  description: 'Decentralized AI inference API for image generation, video processing, audio transcription, and more.


    ## Rate limits


    Two windows can apply to a request: a per-minute one (RPM) and a per-day one (RPD). Every

    throttled response — success or 429 — carries the `X-RateLimit-*` headers, so you can pace

    traffic without waiting to be rejected. Each header documents itself: see `components/headers`,

    or the headers listed on any response. What follows is only what a header cannot say about

    itself.


    Windows open on your first request into a bucket and run their full length from that second —

    never to a calendar boundary, in any timezone. That is deliberate: a boundary every account

    shares is a boundary every account can double up on.


    **The headers describe the pool *this* request landed in, and `X-RateLimit-Source` is what

    identifies it — not `X-RateLimit-Limit` alone.** A per-model limit is keyed to the model you

    named, so a request that carried no recognised `model` — rejected at validation, an unknown

    slug, an empty body — was counted against your tier pool, and it is the tier pool the headers

    then describe. The two pools are fully independent: separate minute window, separate day,

    separate `X-RateLimit-Daily-Reset`. This is a consequence of rate limiting running *before*

    validation, which is what keeps malformed traffic from reaching the rest of the API

    uncounted. Compare headers only across responses carrying the same `X-RateLimit-Source`.


    **Buckets are shared in ways worth knowing.** API **v1 and v2 count against the same bucket**,

    so migrating grants no fresh allowance and mixed traffic behaves as one stream. All `*/price`

    and `*/price-calculation` endpoints share a single quote bucket, separate from generation.

    Prompt enhancement (`/v2/prompts/enhancements`) has its own bucket as well, so heavy prompt

    work no longer eats into your image throughput.


    **Counting is exact in sequence, best-effort in parallel.** Sent one after another, your

    requests are counted precisely: the one that crosses the limit is the one that gets 429. Sent

    in parallel, a few beyond the limit can slip through, because the counter is read and then

    incremented as two steps and requests already in flight are not yet visible to one another.

    The excess is bounded by how many of your own requests are in flight at once, and it only

    ever runs in your favour — you are never rejected while below your limit. So do not treat

    `X-RateLimit-Remaining` as a reservation: it is a snapshot, and a request you sent a

    millisecond ago may already have spent what it shows.


    Requests rejected before authentication (HTTP 401) never reach the limiter and carry no

    rate-limit headers at all.'
  contact:
    name: deAPI Support
    url: https://deapi.ai
    email: support@deapi.ai
  version: 0.0.1
servers:
- url: https://api.deapi.ai
  description: Production API Server base URL
security:
- bearerAuth: []
tags:


# --- truncated at 32 KB (293 KB total) ---
# Full source: https://artifacts.apis.io/deapi-ai/openapi/deapi-ai-client-api-v2-api-openapi.yml