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/azurade-com:azurade-com-models-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: 3.2.0
info:
contact:
email: support@azurade.com
name: Azurade AI support
description: 'Image and video generation, prompt tools and account access for Azurade AI.
Credits: one balance per account, shared with the web app, same prices. Credits do not expire and are not reset by any billing cycle. A failed generation is refunded automatically. Prices are in credits; the model catalogue carries the price of a default request and POST /api/v2/generations/estimate the exact price of a specific one.
Errors: every non-2xx body is {"error": , "code": }. Codes worth handling: unknown_model, validation_failed, insufficient_credits (402; POST /api/v2/checkout returns a link for the account holder to buy more), prompt_rejected (400, revise the prompt, do not retry it unchanged), moderation_unavailable and enhance_unavailable (503, safe to retry), generation_failed (502, the job could not be started and nothing was charged; its id is in the body and GET /api/v2/generations/{id} carries the reason), not_found (404, also for records that belong to another account).
Generations are asynchronous: POST answers 202 with an id, GET /api/v2/generations/{id} moves from pending to completed or failed, and completed carries the output files. The files are attached a moment after the status turns completed, so poll until status is failed, or completed with a non-empty outputs array.'
title: Azurade AI Models API
version: '2'
servers:
- url: https://azurade.com
tags:
- description: What can be generated, with the parameters and price of each model. Public.
name: Models
paths:
/api/v2/models:
get:
description: 'Every model the generation endpoint accepts: display name, what it is best for, the kinds of input it takes, its largest resolution and longest duration, the fields it takes with their defaults and allowed values, and the credits a request that sends only a prompt costs, the same figure POST /api/v2/generations/estimate returns for it. When pricing.varies is true, other resolutions, durations or inputs cost differently: estimate those before submitting. Public.'
operationId: listModels
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ModelList'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Invalid request
security: []
summary: List models
tags:
- Models
/api/v2/models/{id}:
get:
description: Fields, defaults, allowed values (enum, matched without case, or minimum and maximum for a numeric range) and default price of one model. Public.
operationId: getModel
parameters:
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Model'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Invalid request
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Not found
security: []
summary: Describe one model
tags:
- Models
components:
schemas:
Error:
properties:
balance:
type: number
code:
type: string
cost:
type: number
error:
type: string
id:
description: The failed generation, on generation_failed
type: string
required:
- error
- code
type: object
Model:
properties:
best_for:
description: What the model is best at, in one clause
type: string
fields:
items:
$ref: '#/components/schemas/FieldInfo'
type: array
id:
type: string
inputs:
description: Kinds of input the model takes
items:
enum:
- text
- image
- video
- audio
type: string
type: array
max_duration:
description: Longest duration in seconds; absent when the model has no duration field
type: integer
max_resolution:
description: Largest resolution value the model accepts; absent when it has no resolution field
type: string
name:
description: Display name
type: string
pricing:
properties:
changes:
description: 'The request that sends only a prompt with one field changed, where that changes the price; absent when none does. Changes combined are not listed: estimate them'
items:
properties:
credits:
description: Total credits for that whole request, every other field at its default (a video model's clip at its default duration)
type: number
field:
type: string
value:
description: The field's value; "any" for an input file field, meaning a file is given
type: object
type: array
credits:
description: Total credits for a request that sends only a prompt, the figure the estimate endpoint returns for it (a video model's is the whole default clip); absent when the pricing row is missing
type: number
per:
description: 'The unit the price multiplies by: each second of video, or each image asked for. Absent when the price is per request'
enum:
- second
- image
type: string
unit_credits:
description: Credits per unit named by per; absent when the pricing row is missing
type: number
varies:
description: 'True when a request can cost something other than the default price (credits): the price is per unit (per), or a change in changes costs something else. The estimate prices any request'
type: boolean
type: object
requires_image:
description: True when an image or video input is required, so a prompt alone is refused
type: boolean
type:
enum:
- image
- video
type: string
type: object
FieldInfo:
properties:
default: {}
description:
type: string
enum:
description: Allowed values, matched without case
items:
type: string
type: array
input:
description: Kind of file whose public URL the field takes (upload one with POST /api/v2/uploads); absent for every other field
enum:
- image
- video
- audio
type: string
maximum:
description: Largest value accepted (integer and number fields)
type: number
minimum:
description: Smallest value accepted (integer and number fields)
type: number
name:
type: string
required:
type: boolean
type:
enum:
- string
- integer
- number
- boolean
- array
type: string
type: object
ModelList:
properties:
models:
items:
$ref: '#/components/schemas/Model'
type: array
type: object
securitySchemes:
ApiKeyAuth:
bearerFormat: sk-...
description: 'API key as `Authorization: Bearer sk-...`. The same secret is also accepted in an `X-API-Key` header, with or without the `Bearer ` prefix. Keys are created and deleted on the profile page; a key signs the routes in this document, can revoke itself at /api/oauth/revoke, and cannot create keys, delete other keys or change the account. It can start a checkout, which only a person paying by card completes.'
scheme: bearer
type: http
SessionAuth:
description: PocketBase session token, as issued to the web app.
in: header
name: Authorization
type: apiKey