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.
openapi: 3.2.0
info:
title: AskEditor Platform Uploads API
version: 1.0.0-preview
description: The video editing API for AI agents. Every response is wrapped as { success, data }. Templates are addressed by id; synchronous templates return their result in the run call, queued templates resolve through the jobs envelope.
servers:
- url: https://api.askeditor.com
security:
- bearerAuth: []
tags:
- name: Uploads
paths:
/v1/uploads:
post:
summary: Mint an upload ticket
operationId: createUpload
requestBody:
content:
application/json:
schema:
type: object
properties:
purpose:
type: string
responses:
'200':
description: A one-time upload ticket. Browser users open uploadUrl; shells POST the file directly (next endpoint).
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
type: object
properties:
ticket:
type: string
uploadUrl:
type: string
expiresInSec:
type: number
tags:
- Uploads
/v1/uploads/{ticket}/file:
post:
summary: Fill a ticket from a shell (no browser)
operationId: uploadFile
security: []
description: 'The ticket IS the credential: one file, one project, once, within 30 minutes. No API key here on purpose — never put a spending credential in a shell command.'
parameters:
- name: ticket
in: path
required: true
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'200':
description: The material handle to pass to a run.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
type: object
properties:
material:
type: string
bytes:
type: number
status:
type: string
tags:
- Uploads
/v1/uploads/{ticket}:
get:
summary: Poll a ticket
operationId: getUpload
parameters:
- name: ticket
in: path
required: true
schema:
type: string
responses:
'200':
description: Ticket state; material is set once uploaded.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
type: object
properties:
status:
type: string
enum:
- pending
- uploaded
- expired
material:
type: string
tags:
- Uploads