Quicktate Developer Documentation

The Quicktate API allows you to seemlessly integrate our audio transcription backend into your applications. Now you can leverage our quick turnaround times and professional quality to provide audio transcription services to your customers.

Example uses

  • Transcribe your PBX's voicemails into text
  • Make your audio or video files searchable by sending them to be transcribed
  • Use Quicktate in telephony applications to transcribe calls
  • Automatically have surveillance audio transcribed into text
  • Anything which requires audio files to be accurately converted to text

How to begin

To use Quicktate's API, you must sign up for a developer account. Visit our sign up page and check the "I'm a developer" box. You will be assigned an API Key which you will use to communicate with our transcription platform.

Technical Overview

Using our API consists of two steps. The first step is to submit your audio file into our system, along with any metadata you would like to be returned along with the transcription. This will be referred to as "Job Submission". The second step, is our system submitting the results back to you. This will be referred to as the "Result Callback"

The overall process of successfully transcribing an audio file is as follows:

  1. Submit the job into our system
  2. Our system assigns a Job ID, which is returned to your application for your tracking purposes
  3. We transcribe the file into text
  4. Our servers send the results via HTTP POST to a Callback URL you specify

You can also reference the Job ID to check the status of a transcription at any time using our "job.status" command.

XML-RPC API Specifications

Our API is powered by the XML-RPC protocol. Examples on this page will be provided for PHP, but XML-PRC libraries are available for every mainstream programming language. A few example libraries are:

Quicktate's XML-RPC API is hosted at http://api.quicktate.com/api/xml-rpc on port 80.

Methods

job.submit

This command submits an audio file into our system for transcription, and returns a unique Job ID which you can use to check the status of the submitted job.

  • user (str) - your username
  • key (str) - your API key, obtain this by checking "I'm a developer" during the Quicktate signup process
  • audiodata (str) - Base 64 encoded audio file (or use audiourl)
  • audiourl (str) - URL to the audio file you would like to be transcribed (or use audiodata)
  • filetype (str) - We currently support "wav" or "mp3"
  • language_id (int) - 1 for English, 2 for Spanish
  • timestamp (int) - 1 if you want timestamps provided for each transcribed word, 0 otherwise. Read more about the timestamp result format
  • metadata (str) - Block of text you would like to be posted back to you along with the completed job
  • callbackmethod (str) - Should always be "HTTPPOST"
  • callbackdest (str) - If XMLRPC or HTTPPOST, this will be the URL you want the results to be sent to (SSL recommended!). If EMAIL, specify the destination email address.

Returns:

  • job_id (int)

PHP Example:

job.status

Checks the status of a submitted job, returning the partial transcription if the job is still being processed, and the full transcription if the job is complete.

  • user (str) - your username
  • key (str) - your API key
  • job_id (int) - the value returned when you submitted the job into our system

Returns:

  • status (int) - (0 = unassigned, 1 = currently being transcribed, 2 = complete, 3 = timed out)
  • result (str) - full text transcription result, partial transcription if result has status < 2
  • metadata (str) - the metadata you
  • datetime_submitted (str) - MySQL datetime format (YYYY-MM-DD HH:mm:SS)
  • datetime_completed (str) - MySQL datetime format (YYYY-MM-DD HH:mm:SS)

job.cancel

Cancels an unassigned transcription. Can only be executed when status = 0

  • user (str) - your username
  • key (str) - your account's API key
  • job_id (int) - the ID of the job you would like to cancel

Returns:

  • status (int) - (0 = unassigned, 1 = currently being transcribed, 2 = complete, 3 = timed out)
  • result (str) - full text transcription result, partial transcription if result has status < 2
  • metadata (str) - the metadata you
  • datetime_submitted (str) - MySQL datetime format (YYYY-MM-DD HH:mm:SS)
  • datetime_completed (str) - MySQL datetime format (YYYY-MM-DD HH:mm:SS)

Callback Method: HTTP POST

Sends POST data to the URL of your choice. Specify the URL you would like the data to be posted to in the 'callbackdest' field when submitting your job. The following variables will be posted:

  • job_id (int)
  • result (str) - text of transcription
  • metadata (str) - the metadata you submitted with the job (if any)
  • datetime_submitted (str) - MySQL datetime format
  • datetime_completed (str) - MySQL datetime format

We advise that you don't completely rely on callback URLs for receiving transcription results. In the event that your callback server has a connectivity issue, you will never receive the result. We recommend using both a callback URL, and also periodically polling the job.status command for incomplete jobs.

Timestamp Result Format

If you specify timestamp=1 when submitting an audio file, the result will be returned with timestamped words. This is very useful for closed captioning, call auditing, and generating podcast transcriptions.

The timestamped result will return in the standard "result" field of both our HTTP POST callback and the job.status command. Timestamps are provided in HH:MM:SS.m format.

Example:

API Questions

If you have any questions regarding implementing our API in your application, feel free to contact our friendly support team at support@quicktate.com

Building something cool?

We're always excited to see our customers' innovations - let us know what you're working on.


Become a Customer - Try it for FREE.