---
title: "The method for uploading songs"
description: "If you want to recognize music among the songs you've uploaded, this is the endpoint you use for uploading your songs."
url: "https://docs.audd.io/upload_audio_endpoint"
source: "https://docs.audd.io/upload_audio_endpoint.md"
---
# Songs uploading 

If you want to recognize music among the songs you've uploaded, this is the endpoint you use for uploading your songs.

:::important Access to uploading

To get access to the endpoint, contact the AudD representative that you work with. Access to this endpoint isn't available by default.

:::

:::important Uploading music to our main DB

This is **not** the information for our partners. To upload your catalog to our main DB and to update it, ask the AudD representative you work with to give you a link to the correct page.

The songs uploaded via this endpoint will be available for recognition only to you.

:::

:::important Necessary rights

By uploading any audio files, you confirm that you have the rights to do so and to give us the rights to process these files, to store the files for up to 72 hours, to make digital "fingerprints" from the files and to store and process those fingerprints for an unrestricted period of time.

:::

:::tip Adding additional metadata

We strongly recommend to store any metadata on your side and send us integer IDs linked to the metadata. Contact us if you want to store on our side and get with the recognition results not just the IDs, but also the additional metadata.

:::

## How to send files

There are two ways of sending files to the API:
* Provide a URL of the file. Our server will download and recognize the file. Send the URL in the `url` parameter.
* Post the file using multipart/form-data in the [usual way](https://stackoverflow.com/questions/8659808/how-does-http-file-upload-work) the files are uploaded via the browser. Send the file in the `file` parameter, by POST. Useful if the file is not available by a URL.

You can try to send a file from a browser [here](https://audd.io/upload/?params=method=upload&specify=audio_id).

### POST Upload a song 

```text
https://api.audd.io/upload/
```

**Parameters** (form data; POST or GET)

| Parameter | Type | Required | Description |
|---|---|---|---|
| `api_token` | string | required | Your api_token |
| `url` | string | see description | The URL of the song |
| `file` | binary | see description | The file of the song |
| `audio_id` | integer | required | ID of the song. You will get the ID you set with the recognition results |

**Example request**

```bash
curl https://api.audd.io/upload/ \
    -F api_token='your api_token' \
    -F url='https://music.audd.io/ED.wav' \
    -F audio_id='51885'
```

To upload a local file instead of a URL, send it as the `file` multipart field: `-F file=@/path/to/song.wav`.

**With the SDK** (Python shown; the same call in [Node](/sdks/node.md#add-a-song-to-your-custom-catalog) · [Go](/sdks/go.md#add-a-song-to-your-custom-catalog) · [Rust](/sdks/rust.md#add-a-song-to-your-custom-catalog) · [PHP](/sdks/php.md#add-a-song-to-your-custom-catalog) · [Swift](/sdks/swift.md#add-a-song-to-your-custom-catalog) · [Kotlin](/sdks/kotlin.md#add-a-song-to-your-custom-catalog) · [C#](/sdks/dotnet.md#add-a-song-to-your-custom-catalog) · [Java](/sdks/java.md#add-a-song-to-your-custom-catalog) · [C](/sdks/c.md#add-a-song-to-your-custom-catalog) · [C++](/sdks/cpp.md#add-a-song-to-your-custom-catalog))

```bash
pip install audd
```

```python
from audd import AudD

audd = AudD("your-api-token")
audd.custom_catalog.add(audio_id=42, source="https://my.song.mp3")
```

**Example response** — The song was successfully uploaded.

```json
{
  "status": "success",
  "result": null
}
```

## Sitemap

See the [docs sitemap](https://docs.audd.io/sitemap.md) for every page and the [glossary](https://audd.io/resources/reference/glossary.md) for AudD terms.
