Frameo Models API
The Models API from Frameo — 2 operation(s) for models.
The Models API from Frameo — 2 operation(s) for models.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/frameo-ai:frameo-ai-models-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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:
title: Frameo Models API
description: Generate video and images with Frameo's models from your own code.
version: '1'
servers:
- url: https://api.frameo.ai
tags:
- name: Models
paths:
/v1/catalog:
get:
tags:
- Models
summary: List what each model accepts
description: 'What every model the API offers by default accepts. Public: the docs read it without a key.
A workspace''s own list and prices, overrides included, are in /v1/models.'
operationId: catalog_models_v1_catalog_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ModelList'
'400':
description: The request is invalid (invalid_request_error)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Missing, invalid, revoked or expired API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'402':
description: Not enough credits (billing_error)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: The key lacks a scope, or the workspace can't use this
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: No such object in this workspace
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate or concurrency limit; see Retry-After
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'502':
description: Upstream failure (api_error); safe to retry
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'503':
description: Briefly unavailable (api_error); safe to retry
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'504':
description: Timed out upstream (api_error); safe to retry
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security: []
/v1/models:
get:
tags:
- Models
summary: List models with this workspace's rates
description: 'The models this workspace can use: what each accepts (the catalog) and its credit rates
after the workspace''s overrides (the gateway). A model the gateway doesn''t serve right now is
left out.'
operationId: models_v1_models_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ModelList'
'400':
description: The request is invalid (invalid_request_error)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Missing, invalid, revoked or expired API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'402':
description: Not enough credits (billing_error)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: The key lacks a scope, or the workspace can't use this
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: No such object in this workspace
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate or concurrency limit; see Retry-After
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'502':
description: Upstream failure (api_error); safe to retry
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'503':
description: Briefly unavailable (api_error); safe to retry
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'504':
description: Timed out upstream (api_error); safe to retry
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- apiKey: []
components:
schemas:
DraftMode:
properties:
resolutions:
items:
type: string
type: array
title: Resolutions
description: What a draft renders at.
finalize_resolutions:
items:
type: string
type: array
title: Finalize Resolutions
description: What a finalize of a draft may target.
source_lifetime_days:
anyOf:
- type: integer
- type: 'null'
title: Source Lifetime Days
description: How long a draft can be finalized, at most.
type: object
required:
- resolutions
- finalize_resolutions
title: DraftMode
ErrorBody:
properties:
type:
type: string
title: Type
examples:
- invalid_request_error
code:
type: string
title: Code
examples:
- parameter_invalid
message:
type: string
title: Message
type: object
required:
- type
- code
- message
title: ErrorBody
ModelList:
properties:
object:
type: string
const: list
title: Object
default: list
data:
items:
$ref: '#/components/schemas/Model'
type: array
title: Data
type: object
required:
- data
title: ModelList
Model:
properties:
object:
type: string
const: model
title: Object
default: model
id:
type: string
title: Id
examples:
- seedance_2_0
type:
type: string
title: Type
description: video or image
label:
anyOf:
- type: string
- type: 'null'
title: Label
text_to_video:
anyOf:
- type: boolean
- type: 'null'
title: Text To Video
image_to_video:
anyOf:
- type: boolean
- type: 'null'
title: Image To Video
last_frame:
anyOf:
- type: boolean
- type: 'null'
title: Last Frame
description: Accepts an image with role last_frame.
last_frame_requires_first_frame:
anyOf:
- type: boolean
- type: 'null'
title: Last Frame Requires First Frame
aspect_follows_first_frame:
anyOf:
- type: boolean
- type: 'null'
title: Aspect Follows First Frame
description: With a first frame, the output takes that image's aspect ratio.
min_seconds:
anyOf:
- type: integer
- type: 'null'
title: Min Seconds
max_seconds:
anyOf:
- type: integer
- type: 'null'
title: Max Seconds
only_seconds:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Only Seconds
description: When set, the only durations allowed.
aspect_ratios:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Aspect Ratios
resolutions:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Resolutions
max_reference_images:
anyOf:
- type: integer
- type: 'null'
title: Max Reference Images
max_input_images:
anyOf:
- type: integer
- type: 'null'
title: Max Input Images
sound:
anyOf:
- type: string
- type: 'null'
title: Sound
description: optional, always or none
max_prompt_chars:
anyOf:
- type: integer
- type: 'null'
title: Max Prompt Chars
draft:
anyOf:
- $ref: '#/components/schemas/DraftMode'
- type: 'null'
description: Draft mode, on models that offer it; null otherwise.
credits:
anyOf:
- additionalProperties:
type: integer
type: object
- type: 'null'
title: Credits
description: 'This workspace''s credits: per second by resolution for video, per image for images.'
type: object
required:
- id
- type
title: Model
ErrorResponse:
properties:
error:
$ref: '#/components/schemas/ErrorBody'
type: object
required:
- error
title: ErrorResponse
securitySchemes:
apiKey:
type: http
scheme: bearer
description: Your API key, fk_live_...