Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/audius-events-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Audius challenges Events API
description: '## Overview
The Audius API provides REST access to the world''s largest open music catalog, built on the [Open Audio Protocol](https://openaudio.org). Use it to query and stream tracks, users, playlists, and more—perfect for building music players, discovery apps, and audio-native products.
## Key Capabilities
- **Users** — Profiles, followers, following, search
- **Tracks** — Search, trending, stream, favorites, reposts
- **Playlists** — Create, update, browse, curate
- **Resolve** — Look up content by Audius canonical URLs (e.g. `audius.co/artist/...`)
- **Explore** — Trending content, charts, discovery
- **Comments, Tips, Rewards** — Social features and engagement
## Authentication
- **Read-only** — Most endpoints work without credentials. Use an API key for higher rate limits.
- **Writes** — Upload, favorite, repost, and other mutations require an API key and secret. Get keys at [api.audius.co/plans](https://api.audius.co/plans) or [audius.co/settings](https://audius.co/settings).
## Resources
- [API Docs](https://docs.audius.co/api) — Full reference and guides
- [API Plans](https://api.audius.co/plans) — Get API keys (free tier available)
- [Log in with Audius](https://docs.audius.co/developers/guides/log-in-with-audius) — OAuth for user actions
- [JavaScript SDK](https://www.npmjs.com/package/@audius/sdk) — `@audius/sdk` for Node and browser
'
version: '1.0'
contact:
name: Audius
url: https://audius.co
x-logo:
url: https://audius.co/favicons/favicon.ico
servers:
- url: https://api.audius.co/v1
description: Production
tags:
- name: events
description: Events related operations
paths:
/events:
get:
tags:
- events
description: Get a list of events by ID
operationId: Get Bulk Events
security:
- {}
- OAuth2:
- read
parameters:
- name: user_id
in: query
description: The user ID of the user making the request
schema:
type: string
- name: id
in: query
description: The ID of the event(s) to retrieve
style: form
explode: true
schema:
type: array
items:
type: string
- name: event_type
in: query
description: The type of event to filter by
schema:
type: string
enum:
- remix_contest
- live_event
- new_release
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/events_response'
'400':
description: Bad request
content: {}
'500':
description: Server error
content: {}
/events/all:
get:
tags:
- events
summary: Get all events
description: Get all events
operationId: Get All Events
security:
- {}
- OAuth2:
- read
parameters:
- name: offset
in: query
description: The number of items to skip. Useful for pagination (page number * limit)
schema:
type: integer
- name: limit
in: query
description: The number of items to fetch
schema:
type: integer
- name: user_id
in: query
description: The user ID of the user making the request
schema:
type: string
- name: sort_method
in: query
description: The sort method
schema:
type: string
default: newest
enum:
- newest
- timestamp
- name: event_type
in: query
description: The type of event to filter by
schema:
type: string
enum:
- remix_contest
- live_event
- new_release
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/events_response'
'400':
description: Bad request
content: {}
'500':
description: Server error
content: {}
/events/entity:
get:
tags:
- events
summary: Get events for a specific entity
description: Get events for a specific entity
operationId: Get Entity Events
security:
- {}
- OAuth2:
- read
parameters:
- name: offset
in: query
description: The number of items to skip. Useful for pagination (page number * limit)
schema:
type: integer
- name: limit
in: query
description: The number of items to fetch
schema:
type: integer
- name: user_id
in: query
description: The user ID of the user making the request
schema:
type: string
- name: entity_id
in: query
description: The ID of the entity to get events for
required: true
style: form
explode: true
schema:
type: array
items:
type: string
- name: entity_type
in: query
description: The type of entity to get events for
schema:
type: string
enum:
- track
- collection
- user
- name: filter_deleted
in: query
description: Whether to filter deleted events
schema:
type: boolean
default: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/events_response'
'400':
description: Bad request
content: {}
'500':
description: Server error
content: {}
/events/unclaimed_id:
get:
tags:
- events
description: Gets an unclaimed blockchain event ID
operationId: Get unclaimed event ID
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/unclaimed_id_response'
'500':
description: Server error
content: {}
components:
schemas:
events_response:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/event'
unclaimed_id_response:
type: object
properties:
data:
type: string
event:
required:
- created_at
- event_data
- event_id
- event_type
- updated_at
- user_id
type: object
properties:
event_id:
type: string
event_type:
type: string
example: remix_contest
enum:
- remix_contest
- live_event
- new_release
user_id:
type: string
entity_type:
type: string
example: track
enum:
- track
- collection
- user
entity_id:
type: string
end_date:
type: string
is_deleted:
type: boolean
created_at:
type: string
updated_at:
type: string
event_data:
type: object
properties: {}
securitySchemes:
OAuth2:
type: oauth2
description: 'OAuth 2.0 Authorization Code flow with PKCE for third-party applications.
Allows apps to authenticate users and obtain access tokens scoped to read or read+write permissions on behalf of the user.
**Scopes:**
- `read` — Read-only access to the user''s public and private data.
- `write` — Read and write access, allowing mutations on behalf of the user.
**PKCE Required:**
All authorization code requests must include `code_challenge` and `code_challenge_method=S256` parameters.
'
flows:
authorizationCode:
authorizationUrl: /v1/oauth/authorize
tokenUrl: /v1/oauth/token
scopes:
read: Read-only access to user data
write: Read and write access on behalf of the user
BasicAuth:
type: http
scheme: basic
description: 'HTTP Basic Authentication with Ethereum private key for write operations.
**Authentication**
Use HTTP Basic Authentication where the password field contains your Ethereum private key:
```
Authorization: Basic <base64(username:privatekey)>
```
The username can be any value. The password must be your Ethereum private key in hex format (with or without 0x prefix).
Example:
```
Authorization: Basic dXNlcm5hbWU6MHgxMjM0NTY3ODkwYWJjZGVmLi4u
```
**How it works:**
1. The API decodes the Basic Auth credentials
2. Extracts the private key from the password field
3. Derives the Ethereum address from the private key
4. Uses this address for authorization checks
**Authorization**
The derived wallet address must be either:
- The wallet of the user being acted upon (direct ownership)
- A wallet with an approved, non-revoked grant for the user (manager mode)
'
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'The API bearer token or OAuth JWT token for the user.
'
x-original-swagger-version: '2.0'