Modulate

Jobs API

Submit, monitor, and retrieve results for long-running voice processing jobs — batch transcription, deepfake detection, and more.

Modulate Platform API (0.2.0)

Download OpenAPI specification: Download
URL: https://modulate.ai/contact | License: Proprietary

Overview

High-performance API that transforms spoken audio into sharp, actionable insights: detecting fraud, surfacing social toxicity, and spotlighting positive human behavior with impressive speed and precision.

Please Read: This is an Early Access Version

This documentation is for a version of the Modulate Platform API that is not yet publicly accessible. Furthermore, until version 1.0.0 is released, we will do our best to communicate about changes and to minimize high-impact, breaking changes, but please be advised that any part of this API is subject to change at any time (especially the shapes of analysis result responses).

Authentication

All endpoints require HTTP Basic authentication via the Authorization header, as follows:

  • The username should be equal to your account ID.
  • The password should be equal to your API key.

Workflow

This section is intentionally high-level. For exact payload shapes, media types, and field constraints, consult endpoint-level docs (especially POST /jobs and PATCH /job/{job_id}).

  1. Create a job with a POST to /jobs and keep the returned job_id.
    • Choose between a file-based job and a realtime job.
    • Set analysis types.
    • Pick results_deliveries.
  2. Submit audio to the job.
    • For a file-based job: media files can be added to the job via a POST to /job/{job_id}/sources/media-files.
    • For a realtime job: connect to WebSocket stream endpoints via a GET to /job/{job_id}/sources/streams/{alias}.
  3. Finalize processing. Jobs can finalize automatically based on one or more finalization_trigger options, or explicitly via a PATCH to /job/{job_id}.
  4. Retrieve results. Poll GET /job/{job_id} and results endpoints, or receive webhook deliveries via results_deliveries.

If uploading media files in multiple batches, avoid premature finalization by using a manual finalization strategy and finalize only after the last upload.

Jobs move through three statuses: activefinalizingfinalized.

Retrieve results via:

  • Polling: GET /job/{job_id} to check status, then GET /job/{job_id}/results for full results.
  • Webhook: Provide a results_deliveries entry at job creation to receive results as they are processed.
GET /jobs

Response samples

200 400 401 403 500

Content type

application/vnd.modulate.v0+json
Copy Expand all Collapse all
{
   "meta": {
        "total_count": 150,
        "per_page": 20
  },
   "links": {
        "prev": "https://api.modulate.ai/jobs?cursor=…",
        "self": "https://api.modulate.ai/jobs?cursor=…",
        "next": "https://api.modulate.ai/jobs?cursor=…"
  },
   "data": [
    + { … }
  ]
}