> ## 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. In the Python SDK the base URL comes from the `sync_base_url` setting; in the JavaScript SDK it's the `syncBaseUrl` client option. Both default to the global endpoint.

<Tabs groupId="language">
  <Tab title="Python SDK" language="python-sdk">
    ```python title="Global (default)" theme={null}
    from assemblyai.sync.v1 import SyncTranscriber

    transcriber = SyncTranscriber(api_key="<YOUR_API_KEY>")
    result = transcriber.transcribe("sample.wav")
    print(result.text)
    ```

    ```python title="US data residency" theme={null}
    from assemblyai import Client, Settings
    from assemblyai.sync.v1 import SyncTranscriber

    client = Client(
        settings=Settings(
            api_key="<YOUR_API_KEY>",
            sync_base_url="https://sync.us.assemblyai.com",
        ),
    )

    transcriber = SyncTranscriber(client=client)
    result = transcriber.transcribe("sample.wav")
    print(result.text)
    ```

    ```python title="EU data residency" theme={null}
    from assemblyai import Client, Settings
    from assemblyai.sync.v1 import SyncTranscriber

    client = Client(
        settings=Settings(
            api_key="<YOUR_API_KEY>",
            sync_base_url="https://sync.eu.assemblyai.com",
        ),
    )

    transcriber = SyncTranscriber(client=client)
    result = transcriber.transcribe("sample.wav")
    print(result.text)
    ```
  </Tab>

  <Tab title="JavaScript SDK" language="javascript-sdk">
    ```javascript title="Global (default)" theme={null}
    import { AssemblyAI } from "assemblyai";

    const client = new AssemblyAI({ apiKey: process.env.ASSEMBLYAI_API_KEY });

    const result = await client.sync.transcribe("sample.wav");
    console.log(result.text);
    ```

    ```javascript title="US data residency" theme={null}
    import { AssemblyAI } from "assemblyai";

    const client = new AssemblyAI({
      apiKey: process.env.ASSEMBLYAI_API_KEY,
      syncBaseUrl: "https://sync.us.assemblyai.com",
    });

    const result = await client.sync.transcribe("sample.wav");
    console.log(result.text);
    ```

    ```javascript title="EU data residency" theme={null}
    import { AssemblyAI } from "assemblyai";

    const client = new AssemblyAI({
      apiKey: process.env.ASSEMBLYAI_API_KEY,
      syncBaseUrl: "https://sync.eu.assemblyai.com",
    });

    const result = await client.sync.transcribe("sample.wav");
    console.log(result.text);
    ```
  </Tab>

  <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": "universal-3-5-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": "universal-3-5-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": "universal-3-5-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": "universal-3-5-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": "universal-3-5-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": "universal-3-5-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: universal-3-5-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: universal-3-5-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: universal-3-5-pro' \
      -F 'audio=@sample.wav;type=audio/wav'
    ```
  </Tab>
</Tabs>
