---
title: "Upload a media file"
method: POST
path: "/v2/upload"
tags: ["transcript"]
---

# Upload a media file

`POST /v2/upload`

Upload a media file to AssemblyAI's servers.

<Note>To upload a media file to our EU server, replace `api.assemblyai.com` with `api.eu.assemblyai.com`.</Note>
<Warning>Requests to transcribe uploaded files must use an API key from the same project as the key that was used to upload the file. If you use an API key from a different project you will get a `403` error and "Cannot access uploaded file" message.</Warning>

## Response `200`

Media file uploaded successfully

- UploadedFile
  - `upload_url` string, url, required — A URL that points to your audio file, accessible only by AssemblyAI's servers

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Cannot access uploaded file
- `404` — Not found
- `422` — Upload failed (for example, when the request body is empty). The response body is plain text, not JSON.
- `429` — Too many requests
- `500` — An error occurred while processing the request
- `503` — Service unavailable
- `504` — Gateway timeout

---

[API](https://skmtc.net/assemblyai/apis/assemblyai-api.md) · [All operations](https://skmtc.net/assemblyai/apis/assemblyai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/assemblyai/assemblyai-api/versions/f743e2ea9459/schema)
