Post-Production API

Overview

Post-production API provides programmatic access to Verbit's premium transcription, captioning, translation and audio description solution, featuring:

  • State-of-the-art ASR (Automatic Speech Recognition) engine
  • Professional human review
  • Seamless integration with customer systems
  • Rich transcription and closed captioning for video/audio content

Learn more how to use the Post-Production endpoints here in the API Reference.

API Endpoints

  • Production API: https://api.verbit.co/api/
  • Sandbox API: https://sandbox-api.verbit.co/api/

Authentication Methods

Verbit Post-Production API supports two authentication methods:

  1. API Token: Customer-specific tokens
  2. OAuth 2.0: Standard OAuth flow

API Key Authentication

  1. Obtain the Production API key from your Verbit "My account" page
  2. Include it in your requests using either:
    • Header: Authorization: ApiToken <KEY>
    • Parameter: api_token=<KEY>

OAuth 2.0 Authentication

  1. Obtain access token
  2. Include it in the header of your requests: Authorization: Bearer <TOKEN>

Note: Contact support to register your application for OAuth authentication

API Basics

Request Methods

  • Primary methods: POST and GET (specified per endpoint)
  • Legacy support: All POST endpoints accept GET (not recommended)

Response Format

  • Default format: JSON
  • Exceptions:
    • /job/get_caption: Returns caption file
    • /job/draft: Returns draft content

Error Responses

All errors follow this format:

{
  "ErrorType": "ERROR_TYPE_STRING",
  "ErrorComment": "Error explanation"
}

For the immediate API error response refer here

Core Functionality

Main Workflow

The primary object in Verbit's API is the transcription job (/job endpoint). Here's the typical workflow:

  1. Create Job (POST /job/new)

    • Set job name and profile
    • Configure optional parameters
  2. Add Media (POST /job/add_media)

    • Upload via asset ID (from POST /job/add_asset)
    • Or provide direct media URL
  3. Optional Additions

    • Add notes for transcribers
    • Add backup recordings
    • Attach supporting documents
  4. Start Processing (POST /job/perform_transcription)

    • Initiates ASR and human review
    • Configure processing options
  5. Monitor Progress

    • Poll status via GET /job/info
    • Or set up webhook notifications
  6. Get Results (GET /job/get_caption)

    • Download when status is "Completed"
    • Choose from multiple output formats

Additional Features

  • User Management: Read-only access to organization users
  • Profile Management: Configure job processing settings

Webhook Integration

Setup Options

  1. Global Webhook: Configure in customer profile (one URL per customer)
  2. Per-Job Webhook: Set via callback_url parameter (overrides global webhook)

Technical Requirements

  1. Endpoint:

    • HTTP POST endpoint on your server
    • Accessible without authentication (or include auth in URL)
  2. Request Format:

    • Form-encoded payload
    • Sample payload (test via "Send Test Event" button):
    job_id="<verbit job id>"&
    external_id="<your reference id>"&
    status="'Completed' or 'Failure'"&
    draft_ready="<true/false>"
    
  3. Security:

    • Header: X-JWT-Assertion contains JWT token
    • Verify via JWKS: /.well-known/jwks.json
    • JWT payload includes job_id and timestamp
  4. Response Handling:

    • Success: Return "OK" (exact match)
    • Failure: Verbit retries with backoff
    • Max retry period: 48 hours

Testing with Sandbox

  • Use sandbox token from profile page
  • No real processing occurs in sandbox mode
  • Additional parameters available to simulate different API states
  • See "Create new job" section for details