Online API

API documentation

Submit media generation and transcription jobs, then poll for results. All endpoints are asynchronous: requests return a job ID immediately; processing happens in the background.

Base URL

https://api.ricsoft.com

Version prefix: /v1

Authentication

Create an API key in the user dashboard. Keys are shown only once at creation.

Send the key with either header:

Authorization: Bearer oa_your_api_key
X-API-Key: oa_your_api_key

Async job flow

  1. Call an API endpoint with your parameters (and files when required).
  2. Receive 202 Accepted with a job id.
  3. Poll GET /v1/jobs/{id} until status is completed or failed.

Statuses: queuedprocessingcompleted | failed

Submit response

{
  "id": "019f66eb-8bee-7066-8e36-8e2097b0c97b",
  "status": "queued",
  "api": "tts"
}

Errors & limits

Code Meaning
401Missing or invalid API key
403Account disabled or API not assigned
422Validation error (missing fields, bad file type)
429Rate limit or monthly usage limit reached
404Job not found (or not owned by this key’s user)
  • Rate limit: 60 requests / minute per API key
  • Usage is billed in seconds (audio or video) when a job completes, against your monthly per-API limit
GET

/v1/jobs/{id}

Retrieve job status and result (when completed).

Example

curl https://api.ricsoft.com/v1/jobs/JOB_ID \
  -H "Authorization: Bearer oa_your_api_key"

Completed response

{
  "id": "JOB_ID",
  "api": "tts",
  "status": "completed",
  "created_at": "2026-07-15T18:00:00+00:00",
  "started_at": "2026-07-15T18:00:01+00:00",
  "completed_at": "2026-07-15T18:00:12+00:00",
  "result": { },
  "result_files": { },
  "usage_units": 12
}
POST

/v1/tts

Generate audio from text using a selected voice. Usage: audio seconds.

Body (JSON)

Field Type Description
textstringRequired. Max 10,000 characters.
voicestringRequired. Voice identifier.

Example

curl -X POST https://api.ricsoft.com/v1/tts \
  -H "Authorization: Bearer oa_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello from the API","voice":"alloy"}'
POST

/v1/voice-clone

Generate speech from text using a reference audio sample. Multipart form. Usage: audio seconds.

Body (multipart/form-data)

Field Type Description
textstringRequired. Max 10,000 characters.
audiofileRequired. Reference audio (mp3, wav, ogg, webm, m4a, flac). Max 25 MB.

Example

curl -X POST https://api.ricsoft.com/v1/voice-clone \
  -H "Authorization: Bearer oa_your_api_key" \
  -F "text=Speak like this" \
  -F "audio=@./reference.wav"
POST

/v1/transcribe

Convert audio to text. Multipart form. Usage: audio seconds (input duration).

Body (multipart/form-data)

Field Type Description
audiofileRequired. Audio file (mp3, wav, ogg, webm, m4a, flac). Max 50 MB.

Example

curl -X POST https://api.ricsoft.com/v1/transcribe \
  -H "Authorization: Bearer oa_your_api_key" \
  -F "audio=@./speech.mp3"
POST

/v1/video

Generate video from a prompt; optional audio and reference image. Multipart form. Usage: video seconds.

Body (multipart/form-data)

Field Type Description
promptstringRequired. Max 5,000 characters.
audiofileOptional. Formats: mp3, wav, ogg, webm, m4a, flac.
imagefileOptional. Formats: jpg, jpeg, png, webp.

Example

curl -X POST https://api.ricsoft.com/v1/video \
  -H "Authorization: Bearer oa_your_api_key" \
  -F "prompt=A calm lake at sunrise" \
  -F "image=@./reference.png"
POST

/v1/lipsync

Generate a lip-synced video from audio, an image, and a prompt. Multipart form. Usage: video seconds.

Body (multipart/form-data)

Field Type Description
promptstringRequired. Max 5,000 characters.
audiofileRequired. Formats: mp3, wav, ogg, webm, m4a, flac.
imagefileRequired. Formats: jpg, jpeg, png, webp.

Example

curl -X POST https://api.ricsoft.com/v1/lipsync \
  -H "Authorization: Bearer oa_your_api_key" \
  -F "prompt=Neutral talking head" \
  -F "audio=@./speech.wav" \
  -F "image=@./face.png"