Audiomack Artist API

Artist profiles, uploads, favorites, followers, and pinned items.

OpenAPI Specification

audiomack-artist-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Audiomack Data Artist API
  version: '1.0'
  description: The Audiomack Data API provides programmatic access to Audiomack's music streaming catalog, artists, playlists, charts, search, and authenticated user resources. All requests use HTTPS against https://api.audiomack.com/v1 and authenticated requests are signed with OAuth 1.0a. Response payloads are JSON and most list endpoints support page-based pagination, the `fields` parameter for sparse fieldsets, and a `limit` parameter.
  contact:
    name: Audiomack Business
    url: https://creators.audiomack.com/contact-us
  license:
    name: Audiomack Terms of Service
    url: https://audiomack.com/about/terms-of-service
servers:
- url: https://api.audiomack.com/v1
  description: Production
security:
- oauth1: []
tags:
- name: Artist
  description: Artist profiles, uploads, favorites, followers, and pinned items.
paths:
  /artist/{slug}:
    get:
      tags:
      - Artist
      summary: Get Artist
      description: Retrieve artist profile and aggregate statistics.
      operationId: getArtist
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      responses:
        '200':
          description: Artist object.
  /artist/{slug}/uploads:
    get:
      tags:
      - Artist
      summary: List Artist Uploads
      operationId: getArtistUploads
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Uploads collection.
  /artist/{slug}/favorites:
    get:
      tags:
      - Artist
      summary: List Artist Favorites
      operationId: getArtistFavorites
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      - in: query
        name: show
        schema:
          type: string
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Favorites collection.
  /artist/{slug}/favorites/search:
    get:
      tags:
      - Artist
      summary: Search Artist Favorites
      operationId: searchArtistFavorites
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      - in: query
        name: q
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Favorites matching query.
  /artist/{slug}/playlists:
    get:
      tags:
      - Artist
      summary: List Artist Playlists
      operationId: getArtistPlaylists
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      - in: query
        name: genre
        schema:
          type: string
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Playlists collection.
  /artist/{slug}/follow:
    put:
      tags:
      - Artist
      summary: Follow Artist
      operationId: followArtist
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      responses:
        '200':
          description: Followed.
    delete:
      tags:
      - Artist
      summary: Unfollow Artist
      operationId: unfollowArtist
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      responses:
        '200':
          description: Unfollowed.
  /artist/{slug}/following:
    get:
      tags:
      - Artist
      summary: List Artist Following
      operationId: getArtistFollowing
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Artists this artist follows.
  /artist/{slug}/follows:
    get:
      tags:
      - Artist
      summary: List Artist Followers
      operationId: getArtistFollowers
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Followers collection.
  /artist/{slug}/feed:
    get:
      tags:
      - Artist
      summary: Get Artist Feed
      operationId: getArtistFeed
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Activity feed.
  /artist/{id}/metrics:
    get:
      tags:
      - Artist
      summary: Get Artist Metrics
      description: Retrieve artist-level metrics plus top 10 tracks metrics.
      operationId: getArtistMetrics
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Metrics response.
  /artist/{slug}/pinned:
    get:
      tags:
      - Artist
      summary: Get Artist Pinned
      operationId: getArtistPinned
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      responses:
        '200':
          description: Pinned items.
    post:
      tags:
      - Artist
      summary: Add Artist Pinned
      operationId: addArtistPinned
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      responses:
        '200':
          description: Pinned items added.
    put:
      tags:
      - Artist
      summary: Update Artist Pinned
      operationId: updateArtistPinned
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      responses:
        '200':
          description: Pinned items updated.
    delete:
      tags:
      - Artist
      summary: Remove Artist Pinned
      operationId: removeArtistPinned
      parameters:
      - $ref: '#/components/parameters/ArtistSlug'
      responses:
        '200':
          description: Pinned items removed.
components:
  parameters:
    Fields:
      in: query
      name: fields
      schema:
        type: string
      description: Comma-separated list of fields to include (sparse fieldsets), e.g. `id,title,artist:name`.
    ArtistSlug:
      in: path
      name: slug
      required: true
      schema:
        type: string
      description: Artist slug (e.g. `drake`).
    Limit:
      in: query
      name: limit
      schema:
        type: integer
        default: 20
      description: Maximum results to return. Pass `0` to return all results.
  securitySchemes:
    oauth1:
      type: http
      scheme: OAuth
      description: OAuth 1.0a signed request. Obtain a request token via `POST /v1/request_token`, redirect the user to `https://audiomack.com/oauth/authenticate?oauth_token=...`, then exchange for an access token via `POST /v1/access_token`. Access tokens are valid for one year.