Frameo Events API
The Events API from Frameo — 2 operation(s) for events.
The Events API from Frameo — 2 operation(s) for events.
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-events-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 Events API
description: Generate video and images with Frameo's models from your own code.
version: '1'
servers:
- url: https://api.frameo.ai
tags:
- name: Events
paths:
/v1/events:
get:
tags:
- Events
summary: List events
description: What happened in this workspace, newest first, whether or not a webhook was configured.
operationId: list_events_v1_events_get
parameters:
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 20
title: Limit
- name: starting_after
in: query
required: false
schema:
anyOf:
- type: string
maxLength: 40
- type: 'null'
title: Starting After
- name: type
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Type
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EventList'
'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'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKey: []
/v1/events/{event_id}:
get:
tags:
- Events
summary: Get an event
operationId: get_event_v1_events__event_id__get
parameters:
- name: event_id
in: path
required: true
schema:
type: string
title: Event Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
'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'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKey: []
components:
schemas:
EventData:
properties:
object:
$ref: '#/components/schemas/Generation'
type: object
required:
- object
title: EventData
GenerationError:
properties:
code:
type: string
title: Code
examples:
- generation_failed
message:
type: string
title: Message
type: object
required:
- code
- message
title: GenerationError
Output:
properties:
type:
type: string
title: Type
description: video or image
examples:
- video
url:
type: string
title: Url
description: Ready to download. A private file comes back signed for an hour.
width:
anyOf:
- type: integer
- type: 'null'
title: Width
height:
anyOf:
- type: integer
- type: 'null'
title: Height
duration_seconds:
anyOf:
- type: number
- type: 'null'
title: Duration Seconds
type: object
required:
- type
- url
title: Output
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
EventList:
properties:
object:
type: string
const: list
title: Object
default: list
data:
items:
$ref: '#/components/schemas/Event'
type: array
title: Data
has_more:
type: boolean
title: Has More
type: object
required:
- data
- has_more
title: EventList
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
Credits:
properties:
charged:
type: integer
title: Charged
description: 'Net credits charged: debits less refunds.'
standard:
type: integer
title: Standard
description: The same at list price, before the workspace's overrides.
type: object
required:
- charged
- standard
title: Credits
DraftInfo:
properties:
mode:
type: string
enum:
- draft
- finalize
title: Mode
description: 'draft: a preview render; finalize: the full render of one draft.'
type: object
required:
- mode
title: DraftInfo
ErrorResponse:
properties:
error:
$ref: '#/components/schemas/ErrorBody'
type: object
required:
- error
title: ErrorResponse
Event:
properties:
id:
type: string
title: Id
examples:
- evt_01JB4Z6Q1V5T8R2N3M4K5J6H7G
object:
type: string
const: event
title: Object
default: event
type:
type: string
title: Type
examples:
- generation.completed
created_at:
type: string
title: Created At
data:
$ref: '#/components/schemas/EventData'
type: object
required:
- id
- type
- created_at
- data
title: Event
Generation:
properties:
id:
type: string
title: Id
examples:
- gen_01JB4Z6Q1V5T8R2N3M4K5J6H7G
object:
type: string
const: generation
title: Object
default: generation
type:
anyOf:
- type: string
- type: 'null'
title: Type
description: video or image
examples:
- video
model:
type: string
title: Model
examples:
- seedance_2_0
status:
type: string
enum:
- queued
- running
- succeeded
- failed
- cancelled
title: Status
examples:
- succeeded
created_at:
type: string
title: Created At
updated_at:
anyOf:
- type: string
- type: 'null'
title: Updated At
outputs:
items:
$ref: '#/components/schemas/Output'
type: array
title: Outputs
description: Filled once the generation has succeeded.
credits:
anyOf:
- $ref: '#/components/schemas/Credits'
- type: 'null'
description: Null until the first charge lands.
error:
anyOf:
- $ref: '#/components/schemas/GenerationError'
- type: 'null'
description: Set when the generation failed.
draft:
anyOf:
- $ref: '#/components/schemas/DraftInfo'
- type: 'null'
description: Set for a draft-mode video; null otherwise.
metadata:
additionalProperties:
type: string
type: object
title: Metadata
description: Your own key/value pairs, as sent.
type: object
required:
- id
- type
- model
- status
- created_at
- outputs
- credits
- error
- metadata
title: Generation
securitySchemes:
apiKey:
type: http
scheme: bearer
description: Your API key, fk_live_...