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

# Quickstart

> Send, check and submit a first release with curl.

This walks through one single from start to submission. You need a key with **Send releases** access (see [Getting access](/getting-access.md)).

```bash theme={"dark"}
export AMMD_API_KEY="ammd_ing_…"
export BASE="https://api.ammdistro.com/api/v2/external"
```

**1. Check the key**

```bash theme={"dark"}
curl -s "$BASE/delivery/accounts" -H "Authorization: Bearer $AMMD_API_KEY"
```

```json theme={"dark"}
{ "accounts": [{ "id": "AB12CD34", "displayName": "Nova Records" }] }
```

If more than one account comes back, add `"accountId"` to the release body in the next step.

**2. Send the release**

Pick your own ID for the release (here `NOVA-004`). Sending the same ID again later updates this release instead of creating another.

```bash theme={"dark"}
curl -s -X PUT "$BASE/delivery/releases/NOVA-004" \
  -H "Authorization: Bearer $AMMD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Night Drive",
    "releaseDate": "2026-12-04",
    "genre": { "primary": "Electronic" },
    "artists": [{ "name": "Nova", "legalFirstName": "Nora", "legalLastName": "Vance" }],
    "artwork": { "url": "https://your-bucket.s3.amazonaws.com/nova/cover.jpg" },
    "tracks": [{
      "externalId": "NOVA-004-01",
      "title": "Night Drive",
      "audio": { "url": "https://your-bucket.s3.amazonaws.com/nova/night-drive.wav" },
      "credits": [
        { "firstName": "Nora", "lastName": "Vance", "roles": ["Composer", "Producer", "Vocals"] }
      ]
    }]
  }'
```

The response is `201 Created` with the release. Its files show `"status": "pending"` while they're downloaded and checked.

**3. Wait for the files**

```bash theme={"dark"}
curl -s "$BASE/delivery/releases/NOVA-004" -H "Authorization: Bearer $AMMD_API_KEY"
```

When `artwork.file.status` and each track's `audio.file.status` are `ready`, the files are in place. If one is `failed`, its `error` says why.

**4. Validate**

```bash theme={"dark"}
curl -s -X POST "$BASE/delivery/releases/NOVA-004/validate" -H "Authorization: Bearer $AMMD_API_KEY"
```

`"ready": true` means it can be submitted. Otherwise `errors` lists what to fix. Fix it by sending the release again with `PUT`.

**5. Submit**

```bash theme={"dark"}
curl -s -X POST "$BASE/delivery/releases/NOVA-004/submit" -H "Authorization: Bearer $AMMD_API_KEY"
```

The status becomes `in_review`. Follow it with `GET /delivery/releases/NOVA-004`, as described in [Release status](/guides/release-status.md).

> [!TIP]
>
> No UPC or ISRC was sent, so they're assigned when the release is approved. They appear in the release once assigned.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.