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

# Cloud endpoints & data residency

Choose the endpoint that best fits your application's requirements — whether that's using the default endpoint to route to the nearest data center, or ensuring your audio data stays within a given data residency zone such as EU or US.

## Endpoints

| Endpoint          | URL                                         | Region               |
| ----------------- | ------------------------------------------- | -------------------- |
| Global (default)  | `https://sync.assemblyai.com/transcribe`    | Nearest region       |
| US data residency | `https://sync.us.assemblyai.com/transcribe` | us-west-2, us-east-1 |
| EU data residency | `https://sync.eu.assemblyai.com/transcribe` | eu-north-1           |

## Which endpoint should I use?

* **Default?** Use the **Global endpoint** (`sync.assemblyai.com`). It will route your request to the region with the fastest response time for you.
* **Need US data residency?** Use the **US endpoint** (`sync.us.assemblyai.com`). Your audio and transcription data will remain within the US.
* **Need EU data residency?** Use the **EU endpoint** (`sync.eu.assemblyai.com`). Your audio and transcription data will remain within the EU.

## How to use it

Replace the base URL in your request with the appropriate endpoint. The request format, headers, and parameters are identical for all endpoints.

<Tabs>
  <Tab title="Python" language="python">
    ```python title="Global (default)" theme={null}
    import requests

    with open("sample.wav", "rb") as f:
        audio = f.read()

    response = requests.post(
        "https://sync.assemblyai.com/transcribe",
        headers={
            "Authorization": "<YOUR_API_KEY>",
            "X-AAI-Model": "u3-sync-pro",
        },
        files={
            "audio": ("sample.wav", audio, "audio/wav"),
        },
        timeout=60,
    )
    response.raise_for_status()
    result = response.json()
    print(result["text"])
    ```

    ```python title="US data residency" theme={null}
    import requests

    with open("sample.wav", "rb") as f:
        audio = f.read()

    response = requests.post(
        "https://sync.us.assemblyai.com/transcribe",
        headers={
            "Authorization": "<YOUR_API_KEY>",
            "X-AAI-Model": "u3-sync-pro",
        },
        files={
            "audio": ("sample.wav", audio, "audio/wav"),
        },
        timeout=60,
    )
    response.raise_for_status()
    result = response.json()
    print(result["text"])
    ```

    ```python title="EU data residency" theme={null}
    import requests

    with open("sample.wav", "rb") as f:
        audio = f.read()

    response = requests.post(
        "https://sync.eu.assemblyai.com/transcribe",
        headers={
            "Authorization": "<YOUR_API_KEY>",
            "X-AAI-Model": "u3-sync-pro",
        },
        files={
            "audio": ("sample.wav", audio, "audio/wav"),
        },
        timeout=60,
    )
    response.raise_for_status()
    result = response.json()
    print(result["text"])
    ```
  </Tab>

  <Tab title="JavaScript" language="javascript">
    ```javascript title="Global (default)" theme={null}
    import { readFileSync } from "fs";

    const audio = readFileSync("sample.wav");
    const form = new FormData();
    form.append("audio", new Blob([audio], { type: "audio/wav" }), "sample.wav");

    const response = await fetch("https://sync.assemblyai.com/transcribe", {
      method: "POST",
      headers: {
        Authorization: "<YOUR_API_KEY>",
        "X-AAI-Model": "u3-sync-pro",
      },
      body: form,
    });

    const result = await response.json();
    console.log(result.text);
    ```

    ```javascript title="US data residency" theme={null}
    import { readFileSync } from "fs";

    const audio = readFileSync("sample.wav");
    const form = new FormData();
    form.append("audio", new Blob([audio], { type: "audio/wav" }), "sample.wav");

    const response = await fetch("https://sync.us.assemblyai.com/transcribe", {
      method: "POST",
      headers: {
        Authorization: "<YOUR_API_KEY>",
        "X-AAI-Model": "u3-sync-pro",
      },
      body: form,
    });

    const result = await response.json();
    console.log(result.text);
    ```

    ```javascript title="EU data residency" theme={null}
    import { readFileSync } from "fs";

    const audio = readFileSync("sample.wav");
    const form = new FormData();
    form.append("audio", new Blob([audio], { type: "audio/wav" }), "sample.wav");

    const response = await fetch("https://sync.eu.assemblyai.com/transcribe", {
      method: "POST",
      headers: {
        Authorization: "<YOUR_API_KEY>",
        "X-AAI-Model": "u3-sync-pro",
      },
      body: form,
    });

    const result = await response.json();
    console.log(result.text);
    ```
  </Tab>

  <Tab title="cURL" language="bash">
    ```bash title="Global (default)" theme={null}
    curl -X POST https://sync.assemblyai.com/transcribe \
      -H 'Authorization: <YOUR_API_KEY>' \
      -H 'X-AAI-Model: u3-sync-pro' \
      -F 'audio=@sample.wav;type=audio/wav'
    ```

    ```bash title="US data residency" theme={null}
    curl -X POST https://sync.us.assemblyai.com/transcribe \
      -H 'Authorization: <YOUR_API_KEY>' \
      -H 'X-AAI-Model: u3-sync-pro' \
      -F 'audio=@sample.wav;type=audio/wav'
    ```

    ```bash title="EU data residency" theme={null}
    curl -X POST https://sync.eu.assemblyai.com/transcribe \
      -H 'Authorization: <YOUR_API_KEY>' \
      -H 'X-AAI-Model: u3-sync-pro' \
      -F 'audio=@sample.wav;type=audio/wav'
    ```
  </Tab>
</Tabs>
