Api

API Reference

HTTP contract for creating and reading transcript jobs.

Production requests use IAM SigV4. The local sandbox exposes the same routes without authentication.

Create Transcript Job

POST /v1/transcripts
Authorization: AWS SigV4
Content-Type: application/json
{
  "callback": {
    "url": "https://your-service.example.com/webhook",
    "events": ["completed", "failed"]
  },
  "metadata": {
    "workspaceId": "ws-abc123",
    "interactionId": "int-xyz789"
  },
  "idempotencyKey": "ws-abc123-int-xyz789",
  "payload": {
    "input": {
      "audio_url": "https://bucket.s3.eu-central-1.amazonaws.com/audio.wav?X-Amz-..."
    },
    "config": {
      "language": "es",
      "keyterms": ["Decathlon", "Pluxee"],
      "context": "Customer support call for Decathlon",
      "context_model": "medium"
    }
  }
}

Accepted jobs return 202 Accepted:

{ "jobId": "550e8400-e29b-41d4-a716-446655440000" }

Request Fields

FieldRequiredDescription
callback.urlYesHTTPS endpoint that receives completion and failure notifications. Production callbacks are SigV4 signed.
callback.eventsYesEvents to emit. Supported values are completed, failed, transcribed, contextualized, and profiled.
metadataYesOpaque caller metadata passed through to status responses and callbacks.
idempotencyKeyYesCaller-provided deduplication key, up to 256 characters.
payload.input.audio_urlYesPre-signed HTTPS URL to the source audio. It must remain valid long enough for the pipeline to fetch it.
payload.config.languageNoISO 639-1 language code. If omitted, the provider may auto-detect.
payload.config.keytermsNoTerms used to bias transcription. Maximum 1000 terms, up to 10 words each.
payload.config.contextNoNatural language context. When present, it enables the Bedrock contextualization step.
payload.config.context_modelNoLLM quality tier for contextualization: fast, medium, or high. Defaults to medium.

Get Job Status

GET /v1/transcripts/{jobId}
Authorization: AWS SigV4

Completed jobs include the canonical result:

{
  "jobId": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "metadata": { "workspaceId": "ws-abc123" },
  "result": { "schema_type": "customer-interaction" }
}

Status Lifecycle

StatusDescription
pendingJob accepted, not yet started.
processingTranscription is running.
transcribedElevenLabs completed and the raw transcript is available for post-processing.
contextualizedOptional Bedrock correction completed.
profiledParticipant roles and actor types were resolved.
completedFinal CustomerInteraction@v1.0 was validated and stored.
failedThe pipeline stopped and error contains failure details.

Health Check

GET /v1/health
{ "status": "healthy" }

Callback Contract

Callbacks include the original metadata and the terminal job state. Consumers must treat callbacks as notifications and use the status endpoint as the source of truth when they need to reconcile state.