Last Updated: February 28, 2025 Migrating from Azure Batch 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.
FeaturesSaladCloud TranscriptionAzure Batch Transcription
TranslationRequires additional API
Audio Transcription
Video Transcription
Multilingual Transcription
SummarizationRequires additional API
Speaker Identification
SRT Output
Transcribe Multiple Files
Max Length2.5 Hours4 Hours
Text Sentiment AnalysisRequires Additional API
Text ClassificationRequired Additional API
Custom LLM Prompt
Custom VocabularyRequires Additional Model

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 Azure Batch Transcription, moving to Salad Transcription API is as simple as updating your API call.

Azure Batch Transcription

Your existing API calls using Azure Batch Transcription should look something like this:
curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "contentUrls": [
	"https://crbn.us/hello.wav",
	"https://crbn.us/whatstheweatherlike.wav"
  ],
  "locale": "en-US",
  "displayName": "My Transcription",
  "model": null,
  "properties": {
	"wordLevelTimestampsEnabled": true,
	"languageIdentification": {
  	"candidateLocales": [
    	"en-US", "de-DE", "es-ES"
  	],
	}
  },
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions"

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
One key difference between Azure Batch Transcription and Salad Transcription API is that Salad Transcription API is only able to transcribe one file per job. Rather than submitting one job containing all of the URLs, you will instead create a unique job for each file. Other than this, all other features available on a simple transcription available via Azure Batch Transcription are also available via the Salad Transcription API. 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 Azure to translate the text to another language, or summarize intent, you can integrate these features into the same API call with Salad Transcription API.

Translation to English:

To activate translation on the same API call as above, just add the translate input parameter. This parameter is only to convert from other languages to English. If you need to translate to another language, you’ll need to use our LLM translation features, also available in the same API call.
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",
  	"translate": "to_eng"
     	"language_code": "de",
     	"return_as_file": true,
     	"word_level_timestamps": true
  	},
  	}
   }'

Translation to other languages:

Utilizing our LLM translation services is similar to the direct to English translation, but uses a different input parameter. Instead, you’ll use llm_translation. Eight languages are currently supported for LLM translation: English, French, German, Italian, Portuguese, Hindi, Spanish, and Thai. You can translate to multiple languages at once, and you’ll receive back the original transcription, along with translations in all the languages requested.
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",
     	"language_code": "en",
     	"return_as_file": true,
     	"word_level_timestamps": true
  	},
  	}
   }'

Intent/summarization:

If you’re also using Azure 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 Azure Batch Transcription is likely made up of two steps, checking the status of the job, and then another step to obtain the files 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.

Azure Batch Transcription

Your flow with Azure Batch Transcription should look something like this:
  • Check the status of the job
curl -v -X GET "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/YourTranscriptionId" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"
  • Obtain the results from the completed job
curl -v -X GET "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/YourTranscriptionId/files" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"

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.