Documentation Index
Fetch the complete documentation index at: https://docs.salad.com/llms.txt
Use this file to discover all available pages before exploring further.
Last Updated: February 12, 2025
Migrating from Rev Transcription to Salad Transcription API will require only a simple API call modification. Depending
on which features you are using, you may also be able to reduce the number of API calls required, as Salad Transcription
API is able to handle multiple steps in one.
| Features | SaladCloud Transcription | Rev Transcription |
|---|
| Translation | ✅ | Requires additional API |
| Audio Transcription | ✅ | ✅ |
| Video Transcription | ✅ | ✅ |
| Multilingual Transcription | ✅ | ✅ |
| Summarization | ✅ | Requires additional API |
| Speaker Identification | ✅ | ✅ |
| SRT Output | ✅ | ❌ |
| Transcribe Multiple Files | ❌ | ❌ |
| Max Length | 2.5 Hours | 17 Hours |
| Text Sentiment Analysis | ✅ | Requires Additional API |
| Text Classification | ✅ | Required Additional API |
| Custom LLM Prompt | ✅ | ❌ |
| Custom Vocabulary | ✅ | Requires Additional API |
1. Get your Salad API Key.
- Open up https://portal.salad.com and sign up/log into your account.
- Navigate to your profile at the top right, and select API Access. Here you can find your API Key.
2. Updating job creation API calls.
If you’re just using the basic Speech To Text features from Rev Transcription, moving to Salad Transcription API is as
simple as updating your API call.
Rev Transcription
Your existing API calls using Rev Transcription should look something like this:
curl -X POST "https://api.rev.ai/speechtotext/v1/jobs" \
-H "Authorization: Bearer <REVAI_ACCESS_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"source_config": {"url": "https://www.rev.ai/FTC_Sample_1.mp3"},"metadata":"This is a test"}'
Salad Transcription API Equivalent
When using Salad Transcription API, you’ll update that job creation call to instead look like this:
curl -X POST https://api.salad.com/api/public/organizations/{my-organization}/inference-endpoints/transcribe/jobs \
-H "Salad-Api-Key: {your-api-key}" \
-H "Content-Type: application/json" \
-d '{
"input": {
"url": "https://example.com/path/to/file.mp3",
"language_code": "en",
"return_as_file": true,
"word_level_timestamps": true
},
}'
- If you’re copy/pasting this call, you’ll update the URL to include your Salad Organization Name.
- You’ll also need to include your SaladCloud API Key in the header.
- Next, you’ll add the URL to the file to transcribe into the URL object. Make sure the file length is less than 2.5
hours, and less than 3GB. Make sure the URL provided is to a direct download of the file. Header based security is not
compatible with Salad Transcription API, so you’ll need to use a signed URL like that offered by
Salad Simple Storage Service
A breakdown of all our input parameters are available
here.
You will receive this JSON body from the POST response. You’ll need to cache the ID you receive, as this is how you’ll
pull your job results.
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"inference_endpoint_name": "transcribe",
"input": {
"property1": "value1",
"property2": "value2"
},
"metadata": null,
"organization_name": "example-corp",
"status": "pending",
"events": [],
"create_time": "2025-01-016T19:00:00Z",
"update_time": "2025-01-016T19:00:00Z"
}
3. More advanced jobs
If you are utilizing additional features offered by Rev to run analysis, or summarize intent, you can integrate these
features into the same API call with Salad Transcription API.
Intent/summarization:
If you’re using Rev services to obtain the intent or summarization of transcribed text, you can also integrate this
easily with Salad Transcription API with the same API call. For this, you’ll add the summarize input parameter, with
the word limit for the summarization.
curl -X POST https://api.salad.com/api/public/organizations/{my-organization}/inference-endpoints/transcribe/jobs \
-H "Salad-Api-Key: {your-api-key}" \
-H "Content-Type: application/json" \
-d '{
"input": {
"url": "https://example.com/path/to/file.mp3",
"llm_translation": "italian, french",
"summarize: 50,
"language_code": "en",
"return_as_file": true,
"word_level_timestamps": true
},
}
}'
4. Updating your job retrieval:
You’ll also need to update the code you’re using to retrieve your job results. Currently, your process with Rev
Transcription is likely made up of two steps, checking the status of the job, and then another step to obtain the
transcription once complete. With Salad Transcription API, this is compacted into a single API call which contains the
job status, as well as the completed results once the job succeeds.
Rev Transcription
Your flow with Rev Transcription should look something like this:
- Check the status of the job
curl -X GET https://api.rev.ai/speechtotext/v1/jobs/<ID> \
-H "Authorization: Bearer <REVAI_ACCESS_TOKEN>"
- Obtain the results from the completed job
curl -X GET "https://api.rev.ai/speechtotext/v1/jobs/<ID>/transcript" \
-H "Authorization: Bearer <REVAI_ACCESS_TOKEN>" \
-H "Accept: application/vnd.rev.transcript.v1.0+json"
Salad Transcription API Equivalent
Instead, you’ll update your API call to this:
curl --request GET \
--url https://api.salad.com/api/public/organizations/{organization_name}/inference-endpoints/transcribe/jobs/{job_id} \
--header 'Salad-Api-Key: <api-key>'
This method will return this JSON body:
{
"id":"7c425fc0-dd3d-4c6c-8b6a-a010187492dd",
"input":{
"url":"https://example.com/path/to/file.mp3",
"language_code":"en",
"return_as_file":true,
"word_level_timestamps":true
},
"inference_endpoint_name":"transcribe",
"status":"succeeded",
"events":[
{
"action":"created",
"time":"2025-01-22T15:57:26.0815348+00:00"
},
{
"action":"started",
"time":"2025-01-22T15:57:26.2061428+00:00"
},
{
"action":"succeeded",
"time":"2025-01-22T15:58:13.9323189+00:00"
}
],
"organization_name":"salad",
"output":{
"url":"https://storage-api.salad.com/organizations/salad/files/transcription/73b2ee75-664e-4332-a853-9210dde5c5fd?token=ac34664a-088d-4c72-b53c-c99cfbf538",
"duration_in_seconds":320.4135,
"duration":0.09,
"processing_time":46.076966285705566
},
"create_time":"2025-01-22T15:57:26.0815348+00:00",
"update_time":"2025-01-22T15:58:13.9323189+00:00"
}
Once the job is completed, the response will automatically update to include the URL for the file containing your job
results.
5. SDK Equivalent
If you’re using the Rev SDK to handle your transcription, you’ll need to update your code accordingly. Whilst we do not
offer an SDK, we do have example functions that will mimic them.
Rev Transcription
Your existing Python code with Rev Transcription should look something like this:
from rev_ai import apiclient
token = "<REVAI_ACCESS_TOKEN>"
filePath = "<FILEPATH>"
# create your client
client = apiclient.RevAiAPIClient(token)
# send a local file
job = client.submit_job_local_file(filePath)
# check job status
job_details = client.get_job_details(job.id)
# retrieve transcript as text
transcript_text = client.get_transcript_text(job.id)
# retrieve transcript as JSON
transcript_json = client.get_transcript_json(job.id)
# retrieve transcript as a Python object
transcript_object = client.get_transcript_object(job.id)
Salad Transcription API Equivalent
When converting to Salad Transcription API, the following code will mimic the actions of Rev Transcription.
import requests
import json
def salad_transcribe(file, Salad-Api-Key):
url = "https://api.salad.com/api/public/organizations/{organization_name}/inference-endpoints/transcribe/jobs"
payload = {
"input": {
"url": file,
"language_code": "en",
"return_as_file": true,
"word_level_timestamps": true
}
}
headers = {
"Salad-Api-Key": Salad-Api-Key,
"Content-Type": "application/json"
}
response = requests.request("POST", url, json=payload, headers=headers)
return response
def get_result(job_id, Salad-Api-Key):
url = "https://api.salad.com/api/public/organizations/{organization_name}/inference-endpoints/transcribe/jobs/" + job_id
headers = {"Salad-Api-Key": Salad-Api-Key}
response = requests.request("GET", url, headers=headers)
return response
Salad-Api-Key = "{Salad-Api-Key}"
file = "https://example.com/path/to/file.mp3"
job = salad_transcribe(file)
print(job.text)
data = json.loads(job)
job_id = data['id']
result = get_result(job_id, Salad-Api-Key)
print(result.text)