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:
- Submit the job into our system
- Our system assigns a Job ID, which is returned to your application for your tracking purposes
- We transcribe the file into text
- 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:
- PHP - XML-RPC for PHP
- Ruby - xmlrpc4r
- Java - Apache XML-RPC
- Python - XML-RPC Lib
- ASP.NET - XML-RPC.net
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.