# Airbit — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Browse and discover beats across the Airbit marketplace by searching tracks, exploring top charts, viewing producer catalogs, and discovering featured playlists. Get detailed information about specific beats and find exactly what you're looking for in the music production community.

**Category:** Music | **Website:** [airbit.com/](https://airbit.com/) | **Docs:** [parse.bot/marketplace/e6ec6162-cdaf-4b40-85f6-6296295dc312/airbit-com-api](https://parse.bot/marketplace/e6ec6162-cdaf-4b40-85f6-6296295dc312/airbit-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-airbit-com-api-e6ec6162/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_beat_details

Get detailed information for a specific beat by producer username and beat slug. The slug is the URL-friendly identifier visible in the beat's marketplace URL (e.g. airbit.com/username/slug). Returns comprehensive beat data including pricing, licensing terms, play/like counts, comments, tags, moods, and full producer profile.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Beat slug from the marketplace URL (e.g. 'standing-ovation-buy-1-get-4-free'). |
| `username` | string | Yes | Producer username (e.g. 'NlProduction'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-airbit-com-api-e6ec6162/get_beat_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>","username":"<string>"}'
```

### get_featured_playlists

Get featured playlists curated by the Airbit platform. Returns paginated playlist summaries sorted by most recently updated, including playlist metadata, owner info, artwork, and follower/item counts.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of playlists per page. |
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-airbit-com-api-e6ec6162/get_featured_playlists \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","page":"<integer>"}'
```

### get_producer_beats

Get all marketplace beats for a specific producer by their user ID. Supports keyword search within the producer's catalog and pagination. Returns 20 beats per page sorted by most recent.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `search` | string | No | Search keyword to filter within the producer's beats. |
| `user_id` | string | Yes | Producer numeric ID (e.g. '30066'). Available from beat details or chart data user.id field. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-airbit-com-api-e6ec6162/get_producer_beats \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","search":"<string>","user_id":"<string>"}'
```

### get_top_charts

Get top charts for beats or producers on the Airbit marketplace. Returns ranked items with position and full beat/user details. Charts are available for top selling beats, top earning producers, and top selling newcomer producers, each filterable by time period. Returns a flat structure with chart metadata, items array, and pagination info.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `alias` | string | Yes | Chart alias. Accepted values: marketplace_top_selling_beats, marketplace_top_earning_producers, marketplace_top_selling_newcomer_producers. |
| `page` | integer | No | Page number for pagination. |
| `period` | string | No | Time period for chart data. Accepted values: week, month, all_time. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-airbit-com-api-e6ec6162/get_top_charts \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"alias":"<string>","page":"<integer>","period":"<string>"}'
```

### search_beats

Search for beats on the Airbit marketplace with various filters including genres, moods, tags, BPM range, price range, and duration. Genre aliases are resolved to internal IDs automatically. Returns paginated results of 20 beats per page. When no filters are applied, returns the most recently active beats.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `bpm` | string | No | JSON object with min/max BPM (e.g. '{"min":120,"max":160}'). |
| `duration` | string | No | JSON object with min/max duration in seconds (e.g. '{"min":60,"max":240}'). |
| `exclusiveOnly` | boolean | No | Only return beats with exclusive licenses available. |
| `freeDownloadOnly` | boolean | No | Only return beats available for free download. |
| `genres` | string | No | JSON array of genre aliases (e.g. '["hip-hop","trap"]'). Over 100 genres available including hip-hop, trap, pop, rnb, soul, rock, jazz, afrobeat, drill, reggaeton, lo-fi, cinematic, edm, country, gospel, and many more. |
| `keys` | string | No | JSON array of musical keys (e.g. '["C min","D maj"]'). |
| `moods` | string | No | JSON array of mood aliases (e.g. '["dark","chill"]'). |
| `page` | integer | No | Page number for pagination. |
| `price` | string | No | JSON object with min/max price in USD (e.g. '{"min":10,"max":50}'). |
| `proSellersOnly` | boolean | No | Only return beats from pro sellers. |
| `tags` | string | No | JSON array of tag strings (e.g. '["future","drake"]'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-airbit-com-api-e6ec6162/search_beats \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bpm":"<string>","duration":"<string>","exclusiveOnly":"<boolean>","freeDownloadOnly":"<boolean>","genres":"<string>","keys":"<string>","moods":"<string>","page":"<integer>","price":"<string>","proSellersOnly":"<boolean>","tags":"<string>"}'
```
