> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usegoro.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Speech to text

> Transcribe an audio file into text, with the detected language, the total duration and per-segment timings when you ask for them.

Transcribe an audio file into text, with the detected language, the total duration and per-segment timings when you ask for them.

<Note>Use when you have a recording and need the words: a voice note, an interview, a podcast, a meeting, a video's audio track. Give a public https link to the file. Billed per second of audio, rounded up, so set max\_duration\_seconds to roughly how long the recording is and the hold on your wallet matches.</Note>

## Price

**\$0.0003 per second of audio.** An exact rate, not an estimate. The total is that rate times the seconds of audio in your request, so you can work out what a call costs before you make it.

No call costs less than $0.0020 or more than $1.08, the price of the largest request this endpoint takes, 3,600 seconds of audio. `discover` and `inspect` quote your exact request before it runs.

## Input

| Field                  | Type      | Required | Notes                                                                                                                                                                                                                             |
| ---------------------- | --------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `language`             | `string`  |          | Language hint as an ISO code, e.g. en or fr. Leave it out to let the model detect the language.                                                                                                                                   |
| `audio_url`            | `string`  | yes      | Public http or https link to the audio file. Links to private, internal or loopback addresses are refused. Up to 50 MB.                                                                                                           |
| `include_timestamps`   | `boolean` |          | Return per-segment start and end times. Adds latency on clips under 30 seconds. Defaults to `false`.                                                                                                                              |
| `max_duration_seconds` | `integer` |          | Roughly how long the recording is. This sizes the hold on your wallet; you are billed for the real duration, which is usually less. Audio longer than this is still transcribed but is billed at this ceiling. Defaults to `600`. |

<Note>
  These are all the fields this endpoint accepts. Anything else is rejected as
  a `validation_error` rather than forwarded to the provider.
</Note>

## Example

```bash theme={null}
curl -X POST https://api.usegoro.ai/v1/run \
  -H "Authorization: Bearer $GORO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"voice.transcribe","input":{"audio_url":"https://example.com/media/team-standup.mp3"}}'
```

## Response

One row of the response. Values are illustrative.

```json theme={null}
{
  "text": "Right, that is everything from me. I will send the notes over this afternoon.",
  "language": "english",
  "segments": [
    {
      "end": 2.31,
      "text": "Right, that is everything from me.",
      "start": 0
    }
  ],
  "language_code": "en",
  "billed_seconds": 7,
  "duration_seconds": 6.42
}
```
