Remly DEVELOPER PLATFORM

Build creative AI into your product.

Use one versioned Remly API for media jobs, uploads, credits, and realtime sessions. Remly keeps provider credentials and media storage behind the server boundary.

Production jobs are asynchronous. A 202 response means accepted—not completed.

const response = await fetch(
  "/api/v1/image/generate",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.REMLY_API_KEY}`,
      "Content-Type": "application/json",
      "Idempotency-Key": crypto.randomUUID()
    },
    body: JSON.stringify({ prompt: "Studio product photo" })
  }
);

const { job } = await response.json();

QUICKSTART

From account to job in four steps.

1

Create an account

Sign up for developer access, then open the dashboard.

2

Create an API key

Keys are shown once and stored only as a server-side hash.

3

Upload source media

Request a signed upload intent, upload directly, then finalize validation.

4

Submit and track

Submit a request with an idempotency key; track its async job lifecycle.

AUTHENTICATION

Keep keys on your server.

Pass your API key in the Authorization header. Never put it in browser code, mobile bundles, source control, or client-side environment variables.

Authorization: Bearer remly_live_...
Content-Type: application/json
Idempotency-Key: 4c5b...

# Legacy x-api-key is also accepted.

API REFERENCE

Current public endpoints.

Only documented, implemented routes are listed here. Availability still depends on configured providers and your account credit balance.

MethodPathPurpose
POST/api/v1/image/generateCreate an asynchronous image-generation job.
POST/api/v1/video/generateCreate an asynchronous video-generation job.
POST/api/v1/voice/convertSubmit an authorized voice-transformation job.
POST/api/v1/motion/from-videoAnimate an owned character with an owned motion reference.
POST/api/v1/face-transformationsCreate a consent-gated image-and-video transformation job.
POST/api/v1/live/character/sessionsCreate a short-lived realtime character session when configured.

REALTIME

Room-scoped transport, never server secrets.

Live session routes return a short-lived LiveKit token and URL only when the selected Remly transport and realtime provider are configured. API secrets are never returned to your application.

Configuration-dependent

A realtime request may return PROVIDER_NOT_CONFIGURED. Treat this as an unavailable feature, not a successful session; Remly does not simulate realtime output.

WEBHOOKS & ERRORS

Build for asynchronous outcomes.

Use idempotency for submissions and handle normalized error codes. Do not interpret a queued job as finished media.

Expected error codes

UNAUTHORIZED_API_KEYINSUFFICIENT_CREDITSINVALID_INPUT_MEDIACONSENT_REQUIREDPROVIDER_NOT_CONFIGUREDTRACKING_PROVIDER_NOT_CONFIGUREDJOB_FAILED

Webhook readiness

Webhook entities and API-key infrastructure are persisted in Remly. Delivery configuration should be tested against your public HTTPS endpoint before production use.

START BUILDING

Your application, powered by Remly.

Create an account, generate a key, and integrate against the documented API surface.