apyhub

AI Video Transcriber API

What it does

Speech Transcription turns an audio or video file into text using either Azure or Google transcription services. Send a file or a media URL, choose the provider, and get a structured transcription response back in the data object.

Use the /file endpoint when you want to upload media directly. It accepts file, requested_service, and the provider-specific fields for Azure or Google: azure_region, azure_account_id, azure_access_token, google_language, and google_credential_file. Use the /url endpoint when your media is already hosted remotely. It requires url and requested_service, and supports Azure settings under azure or Google settings under google, including google_language and google_credential_json.

Speech Transcription is a good fit for turning meetings, interviews, support calls, webinars, and recorded demos into text you can index, review, or post-process. The response keeps the provider-specific result under data.azure or data.google, so you can branch on the service you requested without guessing at the payload shape.

If you need transcription from uploaded media or a hosted file, this API gives you a simple way to route the job to the provider you already use.

▣ ENDPOINT 01 / 02
POST
Speech Transcription via URL
https://api.eu.apyverse.com/apyhub/video-speech-transcription/url

QUICKSTART

GUIDE

Quickstart

Transcribe an audio or video file from a public URL using Azure or Google.

curl -X POST "https://api.eu.apyverse.com/apyhub/video-speech-transcription/url" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://assets.apyhub.com/samples/sample.mp4",
    "requested_service": "azure"
  }'

What you'll get back

Returns a JSON object with a data object. That data object contains an azure object when requested_service is azure, or a google object when requested_service is google.

{
  "data": {
    "azure": {}
  }
}
TRY ITLIVE · 500 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
azure
google
google_credential_json
Google Cloud service account JSON (required for Google video routes).

About this endpoint

What it does

Transcribes speech from a media file available at a URL. You choose the transcription service with requested_service, and the response returns a JSON object containing a data object with the corresponding service-specific result.

Request Body

ParameterTypeMandatoryDescription
urlStringYesThe media file URL to transcribe. Must be a URI.
requested_serviceENUMYesWhich transcription service to use. Allowed values: azure, google.
azureObjectNoAzure-specific configuration. Include when requested_service is azure.
azure.regionStringNoAzure region.
azure.account_idStringNoAzure account ID.
azure.access_tokenStringNoAzure access token.
googleObjectNoGoogle-specific configuration. Include when requested_service is google.
google.google_languageStringNoGoogle speech language code.
google.google_credential_jsonObjectNoGoogle Cloud service account JSON. The schema defines the inner credential fields one level deep; see schema for nested fields.

Response

Returns a JSON object with a data object field. The data object may include an azure object when requested_service is azure, or a google object when requested_service is google.

ParameterTypeMandatoryDescription
dataObjectYesContainer for the service-specific transcription result. May include azure or google depending on requested_service.
data.azureObjectNoPresent when requested_service is azure. The schema allows additional properties.
data.googleObjectNoPresent when requested_service is google. The schema allows additional properties.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 02
POST
Speech Transcription via file upload
https://api.eu.apyverse.com/apyhub/video-speech-transcription/file

QUICKSTART

GUIDE

Quickstart

Upload an audio file and tell the endpoint which transcription service to use.

curl -X POST "https://api.eu.apyverse.com/apyhub/video-speech-transcription/file" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/audio.mp3" \
  -F "requested_service=azure"

What you'll get back

Returns a JSON object with a data object. The data object contains either an azure object or a google object, depending on the selected requested_service.

{
  "data": {
    "azure": {}
  }
}
TRY ITLIVE · 500 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*
Service account JSON (Google routes).

About this endpoint

What it does

Uploads an audio file and starts a speech transcription request for either Azure or Google, based on requested_service. The response returns a JSON object with a data object that may contain an azure object or a google object depending on the selected service.

Request Body

ParameterTypeMandatoryDescription
fileStringYesAudio file to transcribe. Binary upload.
azure_regionStringNoAzure region.
google_languageStringNoGoogle language code.
azure_account_idStringNoAzure account identifier.
requested_serviceENUMYesRequired transcription provider. Allowed values: azure, google.
azure_access_tokenStringNoAzure access token.
google_credential_fileStringNoService account JSON for Google routes. Binary upload.

Response

Returns a JSON object with a required data object field. The data object may include an azure object when requested_service is azure, or a google object when requested_service is google.

ParameterTypeMandatoryDescription
dataObjectYesResponse wrapper object. May contain azure and/or google objects depending on requested_service.
data.azureObjectNoPresent when requested_service is azure. Additional properties are allowed.
data.googleObjectNoPresent when requested_service is google. Additional properties are allowed.

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.