REST API Documentation
Use our services to create your own unique application!
Overview
The Scribie.com REST API provides a programmable interface to our transcription service. The core functionality provided by our web interface is made available through this API. An application can upload files to our servers, pay for transcription, check the transcript progress, fetch the transcripts and delete the files.
This document describes the resources and methods which are exposed by the API. The target audience for this document are server side application developers. The curl
examples are used throughout this document to illustrate the usage of the API.
This API exposes two resources: files
and file
. The file
resource refers to an individual file whereas the files
resource is a collection of file
's. The GET
requests can be used to retrieve the resource and any meta data associated with it. The POST
request modifies the state of the resource.
The endpoint URL for the API is https://api.scribie.com/v1/
. Only HTTPS is supported. HTTP requests will be redirected to HTTPS. The API is currently in version 1. The encoding used is application/json; charset=utf-8
, except for the files
POST
request which is multipart/form-data
.
A sandbox environment is available for testing at the endpoint URL https://api-sandbox.scribie.com/v1/
. The data is retained for 24 hours only.
An account on Scribie.com with a saved payment method is required in order to use this API. Please sign-up if you do not have an account yet.
Only email support is available for the API. Please send your questions to support@scribie.com.
Authentication
This API uses HTTP Basic authentication with the API key as the user. The API key can be generated from the account settings page. All requestsmust be authenticated.
Example Request
curl -X GET --user 764118cada1d4d7c899999434c00e761ac24b5c3: https://api.scribie.com/v1/files
The API key should be kept secret in order to prevent misuse of the account.
Errors
This API returns errors via HTTP response codes. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information (e.g. a required parameter was missing, or file type is unsupported, etc.). The 500 error code is returned if an unexpected application error occurs during processing. Additionally a error string is provided as a hint in the response body.
Example Response
{"error":"incorrect api key"}
Error Reference
Code | Description | API | Resolution |
---|---|---|---|
400 | Bad request | files POST | The file parameter is missing Options parameter is incorrectly formatted |
401 | Unauthorized | All | The API Key is missing or was not found |
404 | Not found | file GET | Incorrect file id File was deleted |
405 | Method not allowed | All | The error message has a list of allowed methods |
409 | Conflict | file DELETE | The transcript progress is >= 60% and file cannot be deleted at this stage, try again after 100% |
413 | Request entity too large | files POST | File size is > 10 GB |
415 | Unsupported file type | files POST file GET | The error message has a list of supported file types |
500 | Internal server error | All | Contact support with the error message |
Files Resource
Methods allowed: GET
, POST
This resource represents a collection of the file
resource. The GET
method returns a list of file identifiers. The identifier can be used to send requests to the individual file
resource.
Example Request
curl -X GET --user 764118cada1d4d7c899999434c00e761ac24b5c3: https://api.scribie.com/v1/files
Example Response
This POST
request is used to create a new file
. The following pre-conditions should be met for this request to be processed.
- The request must contain a
file or link
parameter in the body. - The content type must be
multipart/form-data
. - If the paramter in the body is
link
then it should be publicly downloadable link. - The file size must be less than 10 GB.
- The file format must be one of the following: mp3, wav, wma, wmv, avi, flv, mpg, mpeg, mp4, m4a, m4v, mov, ogg, webm, aif, aiff, amr, 3gp, 3ga, mts, ogv, aac, mkv, mxf, opus, flac. The format is determined from the MIME type of the file.
The response code is 201
if the file
creation was successful. The credit card is charged towards the transcription cost on successful creation.
Example Request
Example Response
{"id":"hmabyoc74787b392e31bfc81124ec11c9abf622c"}
Options
The following options can be specified in the query parameters. The default transcript order options is applied if an option is not found. Please note that spaces in the values have to be escaped.
Example Request
Field | Values | Default |
---|---|---|
transcript_type | manual | manual |
strict_verbatim | on off | off |
subtitle_file | on off | off |
time_coding | on off | on |
speaker_tracking | on off | on |
speaker_tracking_format | initials full names | initials |
spelling_style | american british canadian australian | american |
transcript_template | scribie single line spaced scribie double line spaced blank single line spaced blank double line spaced | scribie single line spaced |
speaker_names | Comma separated list. Eg. John Doe, Jane Doe | None |
instructions | Any special instructions for transactions. Eg. Hello this is a test instructions. | None |
custom_formatting | yes no | no |
custom_formatting_details | Custom Formatting Details. Eg. {data: 'cddc'} | None |
The options are case insensitive. The default options can be overridden from the settings page. Some of these options are charged. Please check the Pricing and the service details page for more information. For the automated
transcript type, all options are ignored.
For using custom formatting, you have to enabled it first and contact support to use this option.
File Resource
Methods allowed: GET
, POST
, DELETE
This resource represents an individual file
. The HEAD
method returns meta data in the X-Scribie-Metadata
header as a JSON string. All dates in the meta data are in the ISO 8601 format. It also contains the options which were applied. The scheduled delivery date is returned in the delivery parameter. The progress_percent
parameter is a measure of the completeness of the transcript.
Example Request
Example Response
GET
requests to this resource returns the transcript. We provide transcripts in .doc, .pdf, .odt, .txt, .sbv, .srt and .json formats. The extension can be appended to the file
identifier to retrieve the desired format. The default format is .txt. If the progress is less than 100% then the Work-In-Progress transcript is returned in .txt format.
Example Request
Example Response
The JSON format is an array of objects. The description of each key in the object is provided below:
Key | Values |
---|---|
word | The predicted word. This may or may not contain punctuation marks. |
start | The second in the audio file where the utterance of this word starts. |
end | The second in the audio file where the utterance of this word ends. |
duration | The length if the word in seconds. |
conf | The confidence value of the acoustic model. This is a float value between 0 to 1, where 1 is the highest confidence. |
turn | The presence of this indicates that there is a speaker turn after this word. This may or may not be present for all objects. |
turn_conf | The confidence level of the acoustic model associated with the turn. This is a float value between 0 to 1, where 1 is the highest confidence. |
The following code snippet illustrates how to get the transcript from JSON file in Python
Example Request
The DELETE
request removes the file
from our server and all the meta data associated with it. The file
can be deleted only if the progress is below 60%, or when the transcript is complete, i.e., 100%. In the former case, a refund is also issued. The refund amount proportional to the progress and is issued after 1 business day. The response body is empty if the operation is successful.
Example Request
A subsequent GET
will return a 404
not found error.
Webhook
A webhook URL can be configured from the settings page. On any progress update, the file id is POST
'ed to the URL. The request is JSON encoded. A subequent HEAD
on the id returns the updated progress value in the X-Scribie-Metadata
header.
Sample POST Body
Usage Example
Assuming that your Scribie.com account is set up (signed up, saved a credit card and generated an API key), the following steps have to be performed in order get the transcript of test.wav file.
Step 1: POST
the file to the files
resource. This returns the id
of the file
which should be saved.
Step 2: Send a GET
request to the file
with the id
, parse the X-Scribie-Metadata
header in the response and check the progress_percent
field. If progress is less than 100 then the Work-In-Progress transcript will be returned, otherwise the final transcript in text format will be returned. If the Webhook is configured, this request should be sent immediately after receiving the Webhook POST.
Step 3: When the progress_perecent
is 100, you can send a GET
request for the Word Document as well and save it somewhere.
That's it! These three requests are equivalent to uploading a file, ordering the transcript and then downloading the transcript through our web interface.
Support
We provide only email support for the API. Please send an email to support@scribie.com for any questions or assistance.