Machine-readable resources

What this API is for

Ghost Producer World sells exclusive EDM tracks: each track is sold once, with a full copyright/rights transfer to the buyer, then leaves the catalog forever. Use this API when someone wants to find release-ready electronic music to buy and own outright — filter by genre, BPM, key, vocals, price or curation tier, then hand the human the track page URL to listen and purchase.

Purchases themselves happen only on the website (Stripe card checkout, USD). There is no purchase API.

Endpoints

EndpointDescription
GET/api/v1/tracksList available tracks. Filters: search, genre, min_bpm/max_bpm, key, min_price/max_price, vocal_type, vocal_gender, daw, premium, hot, discount, has_project_file; sorting via sort; paging via page + limit (max 48).
GET/api/v1/tracks/{id}Full public detail of one track (UUID), plus more tracks from the same producer.
GET/api/v1/producers/listDirectory of identity-verified producers with tracks in the catalog.
GET/api/v1/tags/popularMost-used tags on published tracks (limit optional).

Full parameter and response schemas live in the OpenAPI spec.

Example — techno tracks between 125 and 130 BPM

curl "https://ghostproducerworld.com/api/v1/tracks?genre=Techno&min_bpm=125&max_bpm=130&sort=newest&limit=12"

Example — one track by id

curl "https://ghostproducerworld.com/api/v1/tracks/3f2c1a9e-0000-0000-0000-000000000000"

Conventions

Versioning & deprecation policy

The public API is versioned in the URL path: https://ghostproducerworld.com/api/v1/… is the documented, stable surface (the unversioned /api/… paths are aliases of v1 and remain supported). Within v1 we only make additive changes: new optional parameters, new response fields. Removing or renaming anything ships as /api/v2. When a version or endpoint is scheduled for removal, its responses carry Deprecation: true and a Sunset header with the removal date at least 90 days in advance, and the change is noted on this page and in the spec. No sunset is currently scheduled for any endpoint; the unversioned /api/… aliases are kept as a compatibility surface and will get the same 90-day notice if ever retired.

Authentication

None. Every endpoint documented here is public and read-only. Endpoints that require an account (buying, uploading, bidding) are not part of this API and only work through the website.

Errors

Errors are always JSON: {"error": "message"} with a matching HTTP status (400 bad input, 404 not found, 429 rate limited, 500 temporary server problem). No HTML error pages on /api/*.

Rate limits

Default 200 requests per minute per IP across the API. Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset (seconds) so you can self-throttle; exceeding the limit returns 429 with Retry-After.

Field notes

Contact

Questions or higher-volume integrations: [email protected] or the Support Center.