ioy.ai
Sign inGet the starter
Developers

API reference

Operations generated from the versioned OpenAPI contract.

Use Bearer authentication and your configured product origin. Never expose keys. See OpenAPI.

How do I use listJobs?

GET /api/v1/jobs — 200 Successful response; 401 Invalid or expired key; 403 Permission missing; 429 Rate limit exceeded.

How do I use createJob?

POST /api/v1/jobs — 200 Successful response; 202 Task queued; 401 Invalid or expired key; 402 Insufficient credits; 403 Permission missing; 409 Operation key conflicts with different input; 429 Rate limit exceeded.

How do I use getJob?

GET /api/v1/jobs/{id} — 200 Successful response; 401 Invalid or expired key; 403 Permission missing; 429 Rate limit exceeded.

How do I use downloadResult?

GET /api/v1/jobs/{id}/result — 200 Successful response; 401 Invalid or expired key; 403 Permission missing; 429 Rate limit exceeded.

How do I use getQuota?

GET /api/v1/quota — 200 Successful response; 401 Invalid or expired key; 403 Permission missing; 429 Rate limit exceeded.

How do I use listConversations?

GET /api/v1/conversations — 200 Successful response; 401 Authentication required; 403 Required scope or verified email missing; 404 Resource not found; 409 Conflicting input or active/unknown conversation turn.

How do I use createConversation?

POST /api/v1/conversations — 201 Successful response; 401 Authentication required; 403 Required scope or verified email missing; 404 Resource not found; 409 Conflicting input or active/unknown conversation turn.

How do I use getConversation?

GET /api/v1/conversations/{id} — 200 Successful response; 401 Authentication required; 403 Required scope or verified email missing; 404 Resource not found; 409 Conflicting input or active/unknown conversation turn.

How do I use renameConversation?

PATCH /api/v1/conversations/{id} — 200 Successful response; 401 Authentication required; 403 Required scope or verified email missing; 404 Resource not found; 409 Conflicting input or active/unknown conversation turn.

How do I use deleteConversation?

DELETE /api/v1/conversations/{id} — 200 Successful response; 401 Authentication required; 403 Required scope or verified email missing; 404 Resource not found; 409 Conflicting input or active/unknown conversation turn.

How do I use sendMessage?

POST /api/v1/conversations/{id}/messages — 200 Existing identical task reused; 202 Successful response; 401 Authentication required; 402 Insufficient credits; 403 Required scope or verified email missing; 404 Resource not found; 409 Conflicting input or active/unknown conversation turn.

How do I use listFiles?

GET /api/v1/files — 200 Successful response; 401 Authentication required; 403 Required scope or verified email missing; 404 Resource not found; 409 Conflicting input or active/unknown conversation turn.

How do I use uploadFile?

POST /api/v1/files — 200 Identical upload reused; 201 Private upload ready; 202 Object acceptance unconfirmed; query metadata or retry identical input with original key; 401 Authentication required; 403 Required scope or verified email missing; 404 Resource not found; 409 Conflicting input or active/unknown conversation turn; 410 Deleted or expired upload receipt; use a new key for a new file; 413 Upload too large; 415 Unsupported MIME or signature.

How do I use downloadFile?

GET /api/v1/files/{id} — 200 Private attachment; 401 Authentication required; 403 Required scope or verified email missing; 404 Resource not found; 409 Conflicting input or active/unknown conversation turn.

How do I use deleteFile?

DELETE /api/v1/files/{id} — 200 Successful response; 401 Authentication required; 403 Required scope or verified email missing; 404 Resource not found; 409 Conflicting input or active/unknown conversation turn.

How do I use getFileMetadata?

GET /api/v1/files/{id}/metadata — 200 Private upload metadata; 404 Private file not found; 409 Stored bytes mismatch original receipt; 410 Upload deleted or expired.

How do I use revokeCurrentKey?

DELETE /api/v1/keys/current — 200 Revoked; 403 Website session cannot revoke an unspecified device key.

How do I use listTrends?

GET /api/v1/trends — 200 Successful response; 400 Invalid input; 401 Invalid or expired key; 403 Permission missing; 404 Module, active workflow, or owned job not found; 429 Rate limit exceeded.

How do I use getTrend?

GET /api/v1/trends/{slug} — 200 Successful response; 400 Invalid input; 401 Invalid or expired key; 403 Permission missing; 404 Module, active workflow, or owned job not found; 429 Rate limit exceeded.

How do I use listTrendJobs?

GET /api/v1/trends/{slug}/jobs — 200 Successful response; 400 Invalid input; 401 Invalid or expired key; 403 Permission missing; 404 Module, active workflow, or owned job not found; 429 Rate limit exceeded.

How do I use createTrendJob?

POST /api/v1/trends/{slug}/jobs — 200 Identical operation key reused; no second reservation; 202 Task queued; 400 Invalid input; 401 Invalid or expired key; 402 Insufficient credits; 403 Permission missing; 404 Module, active workflow, or owned job not found; 409 Operation key conflicts with different input; 429 Rate limit exceeded; 503 Live provider, costs, storage or durable workflow is not ready.

How do I use getTrendJob?

GET /api/v1/trends/{slug}/jobs/{id} — 200 Successful response; 400 Invalid input; 401 Invalid or expired key; 403 Permission missing; 404 Module, active workflow, or owned job not found; 429 Rate limit exceeded.

How do I use downloadTrendResult?

GET /api/v1/trends/{slug}/jobs/{id}/result — 200 Confirmed final private video, bounded by product.limits.maxResultBytes; 400 Invalid input; 401 Invalid or expired key; 403 Permission missing; 404 Module, active workflow, or owned job not found; 409 Final video is not confirmed successful yet; 429 Rate limit exceeded.

Enabled modules: text, image, audio, chat, image-edit, image-caption, web-search. Reuse operation keys for identical retries. Unknown outcomes retain held credits; query the same task and reconcile before another paid request.