WHITE LABEL API
WHITE LABEL PARTNER DOCUMENTATION · V1.0

Build your own
music distribution panel.

Integrate release uploads, artist and track metadata, release status synchronization, and release details with the AATISTIC White Label API.

Start integrating →Explore endpoints ↓
BearerAUTHENTICATION
JSONAPI RESPONSES
MP3 / WAVAUDIO FORMATS
v1.0API VERSION
Implementation note: This page combines the supplied AATISTIC API PDF with the endpoints shown in the current integration. The PDF lists /api/api-releases.php and /api/api-release-details.php; the custom /api/release-status.php endpoint is described separately. Verify the exact deployed endpoint names before production use.
01 / Introduction

Overview

Production API

The AATISTIC White Label API lets an authorized partner connect a separate music distribution panel to AATISTIC. Requests are authenticated using a partner API key, and release ownership is validated by the API.

BASE URLhttps://monthly.aatistic.com/api/
Release uploadTrack metadataMultiple artistsRelease statusRelease details
API key: Keep it on your server. Never put a private API key in browser JavaScript, HTML, screenshots, or publicly accessible source code.
02 / Security

Authentication

Required on every request

Send the API key in the HTTP Authorization header using the Bearer scheme. Do not send it as a URL query parameter.

HTTP header
Authorization: Bearer YOUR_API_KEY
Accept: application/json

cURL example

Shell
curl -H 'Authorization: Bearer YOUR_API_KEY' \\
     -H 'Accept: application/json' \\
     'https://monthly.aatistic.com/api/api-releases.php'
Domain validation: The current API authentication code can validate the request Origin/Referer against the API key's allowed domain. Server-to-server requests may not send these headers; check your deployed configuration if you receive a “Domain not allowed” response.
03 / API reference

Available endpoints

MethodEndpointPurposeDocumented in
POST/api/api-release-upload.phpUpload a release and its metadata/files.PDF v1.0
GET/api/api-releases.phpList releases belonging to the authenticated partner.PDF v1.0
GET/api/api-release-details.php?id=52Fetch one release, its tracks and artists.PDF v1.0
GET/POST/api/release-status.php?release_id=52Custom status endpoint returning status, rejection reason and push status.Current integration code

The HTTP method shown for release-status.php reflects the supplied PHP code, which accepts the ID from either GET or POST. The three PDF endpoints are documented as listed in the PDF.

04 / Endpoint

Upload a release

POST

Send a multipart/form-data request. Artwork is uploaded as artwork. Track metadata uses array fields; audio files use individually indexed field names such as audio_1, audio_2.

POST https://monthly.aatistic.com/api/api-release-upload.php

Minimal cURL example

Shell · example values
curl -X POST 'https://monthly.aatistic.com/api/api-release-upload.php' \\
  -H 'Authorization: Bearer YOUR_API_KEY' \\
  -F 'title=Example Single' \\
  -F 'release_type=Single' \\
  -F 'release_date=2026-11-01' \\
  -F 'label_name=Example Label' \\
  -F 'artwork=@cover.jpg' \\
  -F 'track_title[]=Example Track' \\
  -F 'genre[]=Pop' \\
  -F 'language[]=English' \\
  -F 'audio_1=@track.wav'

Successful upload response

JSON
{
  "success": true,
  "message": "Release uploaded successfully.",
  "release_id": 52,
  "user_id": 7,
  "white_label_id": "Example-Label",
  "status": "pending",
  "white_label_status": "Pushed"
}
Keep both IDs straight: release_id returned by AATISTIC is the remote AATISTIC release ID. Your own website's local release ID is a separate ID. Save the remote ID in a dedicated field such as aatistic_release_id so later status/details calls use the correct identifier.
05 / Request reference

Release & track fields

Release fields

FieldType / formatRequiredDescription
titleStringYesRelease title.
release_typeSingle / EP / AlbumYesRelease format.
release_dateYYYY-MM-DDYesScheduled release date.
upcStringOptionalUPC/EAN if already assigned.
label_nameStringOptionalLabel name.
c_lineStringOptionalCopyright line.
p_lineStringOptionalPhonographic copyright line.
is_ai1OptionalInclude when the release is marked AI-generated, according to the deployed API rules.
artworkJPG / PNG fileYes for uploadCover artwork file; see requirements below.

Track fields (array notation)

FieldExampleNotes
track_title[]AloneTrack title.
isrc[]INXXX2600001Track ISRC, if assigned/required by your workflow.
composer[]JohnComposer credit.
lyricist[]SmithLyricist credit.
producer[]MikeProducer credit.
genre[]PopPrimary genre.
sub_genre[]Indie PopSubgenre.
language[]EnglishTrack language.
lyrics[]Optional lyricsLyrics text when applicable.
explicit[]Yes / NoExplicit content flag.
content_id[]Yes / NoContent ID setting.
clip_time[]00:45Preview clip time.
audio_1, audio_2File uploadAudio fields are individually indexed, not arrays.
06 / Media requirements

Artwork & audio uploads

ArtworkJPG or PNG · 3000 × 3000 px · maximum 10 MB per the supplied PDF.
AudioWAV or MP3. Send each audio file as audio_1, audio_2, audio_3…

Audio field mapping

Multipart field names
audio_1 = track-one.wav
audio_2 = track-two.mp3
audio_3 = track-three.wav
Important: Keep the track metadata array order aligned with the indexed audio fields. Validate artwork dimensions, file type, file size, and audio format before making the request.
07 / Credits

Track artists & release artists

Multiple artists on a track

Use indexed artist arrays so each track can have its own primary and featured artists.

Multipart field example
tracks_artist[1][]=Hudaif
tracks_artist[1][]=Ayaan
tracks_artist_role[1][]=Primary
tracks_artist_role[1][]=Feature

tracks_artist[2][]=John
tracks_artist_role[2][]=Primary

Release artist fields

FieldRequiredPurpose
artist_name[]YesRelease artist name.
artist_role[]YesArtist role, e.g. Primary or Feature.
spotify[]OptionalSpotify artist URL.
apple[]OptionalApple Music artist URL.
instagram[]OptionalInstagram profile URL.
08 / Endpoint

My Releases API

GET

Returns releases available to the authenticated partner. The PDF specifies this endpoint for refreshing the partner's release list when the page opens.

GET https://monthly.aatistic.com/api/api-releases.php
Example JSON response
{
  "success": true,
  "releases": [
    {
      "release_id": 52,
      "title": "Testing EP",
      "artwork": "uploads/artwork/abc.jpg",
      "release_date": "2026-09-20",
      "tracks": 3,
      "primary_artist": "Hudaif",
      "status": "approved",
      "white_label_status": "Delivered"
    }
  ]
}
Recommended: Refresh the release list from the server when the partner opens the page, so changes made by AATISTIC admins are reflected after refresh.
09 / Endpoint

Release Details API

GET

Fetch details for one remote AATISTIC release. The PDF shows the release ID in the id query parameter.

GET https://monthly.aatistic.com/api/api-release-details.php?id=52
Response shape · shortened
{
  "success": true,
  "release": {
    "title": "Testing EP",
    "release_date": "2026-09-20",
    "status": "approved",
    "artwork": "uploads/artwork/abc.jpg",
    "upc": "123456789012",
    "tracks": [
      {
        "title": "Alone",
        "isrc": "INAAA2600001",
        "genre": "Pop",
        "language": "English",
        "composer": "John",
        "lyricist": "Smith",
        "producer": "Mike",
        "explicit": "No",
        "content_id": "Yes",
        "clip_time": "00:45"
      }
    ],
    "artists": [
      {"name":"Hudaif","role":"Primary","spotify":"...","apple":"...","instagram":"..."}
    ]
  }
}
Identifier: Use the AATISTIC remote release ID returned by the upload API—not the local release row ID from your own website.
10 / Current integration endpoint

Release Status API

GET / POST

The supplied custom release-status.php reads release_id from the query string or POST body and returns the current status, rejection reason, release date, creation date, white-label ID, and push status.

GET https://monthly.aatistic.com/api/release-status.php?release_id=52
Example response
{
  "success": true,
  "release": {
    "id": 52,
    "title": "Testing EP",
    "status": "approved",
    "reject_reason": null,
    "release_date": "2026-09-20",
    "created_at": "2026-09-10 12:00:00",
    "white_label_id": "Example-Label",
    "push_status": "Delivered"
  }
}

Partner-side status sync pattern

  1. Store the remote ID. Save the AATISTIC release_id in your local release row after upload.
  2. Authenticate server-side. Make the status request from PHP using Authorization: Bearer YOUR_API_KEY.
  3. Fetch when the page opens. Query each local release that has a remote AATISTIC ID.
  4. Display remote values. Use release.status and release.push_status; show reject_reason when present.
  5. Fallback safely. If the remote API fails, show a clearly identified cached/local status rather than treating the fallback as live.
Endpoint distinction: The PDF's recommended list endpoint is api-releases.php. If it returns all the status fields you need, prefer that endpoint for the entire list to avoid making one request per release. Use release-status.php only if that endpoint is deployed and needed.
11 / Status reference

Release & delivery statuses

Release status

pendingPending ReviewRelease is awaiting review.
approvedApprovedRelease has been approved.
rejectedRejectedRelease was rejected. Display the rejection reason if supplied.
resubmittedResubmittedPDF lists this as a valid status; ensure your UI badge supports it.

White Label / delivery status

ValueMeaning in supplied PDFSuggested UI label
PushedSuccessfully received by AATISTIC.Received
ProcessingUnder distribution.Processing
DeliveredLive on stores.Live on stores

Treat the release status and white-label delivery status as two separate values. A release may be approved while distribution delivery is still processing.

12 / Security & ownership

Security and user ownership

  • Store the API key in server-side configuration or environment variables. Do not print it to the browser.
  • Send the Bearer token over HTTPS for every API request.
  • Do not trust a client-supplied remote release ID without checking that it belongs to the logged-in user in your local database.
  • Keep your website's local users.id and local releases.user_id separate from the remote AATISTIC user ID.
  • In the current ROVM integration, the remote AATISTIC upload is intended to use user_id = 853. This is a custom integration rule, not a standard field described in the supplied PDF.
  • The API key row must be configured for the intended AATISTIC account and white-label permissions. Never alter a key hash manually to change account routing.
Important implementation detail: The supplied api-auth.php sets $apiUser['user_id'] from the API-key row. The custom status endpoint checks the release against that authenticated ID. If uploads are stored under remote user ID 853, the API key used for status checks must resolve to the same user ID, unless the endpoint's ownership logic is deliberately redesigned and securely validated.
13 / Troubleshooting

Errors & troubleshooting

HTTP / messageLikely reasonWhat to check
401 API key missingAuthorization header absent or not parsed.Send Authorization: Bearer YOUR_API_KEY from the server.
401 Invalid API keyKey is incorrect, inactive, or hash verification failed.Regenerate/check the key and confirm its row is active.
403 Domain not allowedRequest Origin/Referer does not match the configured domain.Check allowed domain and server-to-server header behaviour.
400 release_id requiredMissing or invalid ID on the custom status endpoint.Send the remote AATISTIC release ID as release_id.
404 Release not foundID does not exist for the authenticated API user.Check remote ID and API key's mapped user_id.
Undefined variableConfiguration file was not included or variable name differs.Include the config using the correct relative path and verify variable names.
Artwork validation errorWrong format, dimensions or file size.Use JPG/PNG, 3000 × 3000 px, maximum 10 MB per the PDF.
14 / Go-live

Integration checklist

  1. Configure API credentials. Confirm the API key is active, stored server-side, and mapped to the intended white-label account.
  2. Implement upload. Send release metadata as multipart form data, artwork as artwork, track arrays in order, and audio as audio_N.
  3. Store the remote release ID. Persist the AATISTIC release_id separately from your local primary key.
  4. Build My Releases. Use GET /api/api-releases.php as documented in the PDF; refresh on page load for current status.
  5. Build Release Details. Use GET /api/api-release-details.php?id=REMOTE_ID for track and artist details.
  6. Test status and errors. Verify pending, approved, rejected, resubmitted, push statuses, invalid key, and release-not-found cases.
  7. Protect secrets and logs. Do not display API keys or full Authorization headers in error output or logs.
Ready for integration: Implement against the endpoint paths and response fields that actually exist on your deployed AATISTIC server. The PDF is version 1.0; custom endpoints and custom user-routing rules should be verified separately.

Documentation version 1.0 · Prepared 06 Oct 2026 · Base URL: https://monthly.aatistic.com/api/