Epidemic Sound Users API

These endpoints allows your application to get user specific information such as liked sounds.

Operations 2

GET /v0/users/me User details #
GET /v0/users/me/liked/tracks List users' liked tracks #

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/epidemic-sound-users-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

epidemic-sound-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Partner Content Assets Users API
  version: 0.1.17
  description: These endpoints allows your application to upload assets such as images or audio.
servers:
- url: https://partner-content-api.epidemicsound.com
  description: Epidemic Sound Content API
tags:
- name: Users
  description: These endpoints allows your application to get user specific information such as liked sounds.
paths:
  /v0/users/me:
    get:
      tags:
      - Users
      summary: User details
      description: Get user details of the authenticated user.
      operationId: GET_End_User_Details
      responses:
        '200':
          description: End user details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
              example:
                userId: d8492175-8795-44e6-a1e6-e2198448ba33
                esConnect: false
                hasActiveSubscription: null
                email: null
        '401':
          description: Unauthorized. Most likely your access token has expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              example:
                message: Invalid credentials
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              example:
                message: Rate limit exceeded
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              example:
                message: Bad request
      security:
      - UserAuth: []
      - EpidemicSoundConnectAuth: []
  /v0/users/me/liked/tracks:
    get:
      tags:
      - Users
      summary: List users' liked tracks
      description: 'The liked tracks endpoint lets you list the liked tracks of a connected user.

        Users can add new tracks to their list on epidemicsound.com or via the Epidemic Sound app, giving them a smooth cross-device experience.'
      operationId: GET_Users_Liked_Tracks
      parameters:
      - name: offset
        in: query
        description: Offset for the pagination. For this endpoint the number of results is fixed at 25, so the offset needs to be evenly divisible by 25.
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Liked Tracks response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TracksResponse'
              example:
                tracks:
                - id: 6rUPerw2po
                  mainArtists:
                  - Main Artist
                  featuredArtists:
                  - Featured Artist
                  title: Happy Song
                  bpm: 135
                  length: 3123
                  moods:
                  - id: happy
                    name: Happy
                  - id: eccentric
                    name: Eccentric
                  genres:
                  - id: beats
                    name: Beats
                    parent:
                      id: parent
                      name: Parent Beats
                  - id: trap
                    name: Trap
                  images:
                    default: https://cdn.epidemicsound.com/curation-assets/commercial-release-cover-images/123456/300x300.jpg
                    L: https://cdn.epidemicsound.com/curation-assets/commercial-release-cover-images/123456/1050x1050.jpg
                    M: https://cdn.epidemicsound.com/curation-assets/commercial-release-cover-images/123456/600x600.jpg
                    S: https://cdn.epidemicsound.com/curation-assets/commercial-release-cover-images/123456/300x300.jpg
                    XS: https://cdn.epidemicsound.com/curation-assets/commercial-release-cover-images/123456/128x128.jpg
                  waveformUrl: https://pdn.epidemicsound.com/waveforms/1600/394079.json
                  hasVocals: true
                  added: '2020-10-10'
                  isExplicit: false
                  isPreviewOnly: true
                - id: 0dZCtol3bs
                  mainArtists:
                  - Main Artist
                  featuredArtists:
                  - Featured Artist
                  title: Sad Song
                  bpm: 97
                  length: 2976
                  moods:
                  - id: happy
                    name: Happy
                  - id: eccentric
                    name: Eccentric
                  genres:
                  - id: beats
                    name: Beats
                    parent:
                      id: parent
                      name: Parent Beats
                  - id: trap
                    name: Trap
                  images:
                    default: https://cdn.epidemicsound.com/curation-assets/commercial-release-cover-images/123456/300x300.jpg
                    L: https://cdn.epidemicsound.com/curation-assets/commercial-release-cover-images/123456/1050x1050.jpg
                    M: https://cdn.epidemicsound.com/curation-assets/commercial-release-cover-images/123456/600x600.jpg
                    S: https://cdn.epidemicsound.com/curation-assets/commercial-release-cover-images/123456/300x300.jpg
                    XS: https://cdn.epidemicsound.com/curation-assets/commercial-release-cover-images/123456/128x128.jpg
                  waveformUrl: https://pdn.epidemicsound.com/waveforms/1600/394079.json
                  hasVocals: true
                  added: '2020-10-10'
                  isExplicit: false
                  isPreviewOnly: true
                pagination:
                  page: 2
                  limit: 25
                  offset: 25
                links:
                  next: /users/me/liked/tracks?limit=25&offset=50
                  prev: /users/me/liked/tracks?limit=25&offset=0
        '401':
          description: Unauthorized. Most likely your access token has expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              example:
                message: Invalid credentials
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              example:
                message: Rate limit exceeded
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              example:
                message: Bad request
      security:
      - EpidemicSoundConnectAuth: []
components:
  schemas:
    ParentGenreResponse:
      required:
      - id
      - name
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the parent genre
        name:
          type: string
          description: Name of the parent genre
    MoodResponse:
      required:
      - id
      - name
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the mood
        name:
          type: string
          description: Name of the mood
    UserInfo:
      required:
      - esConnect
      - userId
      type: object
      properties:
        userId:
          type: string
          description: 'is the userId given in the User Token if not ES Connect authenticated or

            the ES Connect user id if user is authenticated against ES Connect.'
        esConnect:
          type: boolean
          description: "is false for a not ES Connect authenticated user but \nis true for a ES Connect authenticated user."
        hasActiveSubscription:
          type:
          - boolean
          - 'null'
          description: 'is true if the user has an active subscription but

            is false if the user has no active subscription.

            Returns null if the user is not ES Connect authenticated.'
        email:
          type:
          - string
          - 'null'
          description: email value will present only for the Epidemic Sound users and will be null otherwise
    Error:
      required:
      - key
      - messages
      type: object
      properties:
        key:
          type: string
          description: Error key
        messages:
          type: array
          description: Error messages
          items:
            type: string
            description: Error messages
    Pagination:
      required:
      - limit
      - page
      type: object
      properties:
        page:
          type: integer
          format: int32
        limit:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
    MessageResponse:
      required:
      - message
      type: object
      properties:
        message:
          type: string
          description: Human readable message
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
    ImagesResponse:
      type: object
      properties:
        default:
          type:
          - string
          - 'null'
        L:
          type:
          - string
          - 'null'
        M:
          type:
          - string
          - 'null'
        S:
          type:
          - string
          - 'null'
        XS:
          type:
          - string
          - 'null'
    PaginationLinks:
      type: object
      properties:
        next:
          type:
          - string
          - 'null'
        prev:
          type:
          - string
          - 'null'
    TrackResponse:
      required:
      - added
      - bpm
      - featuredArtists
      - genres
      - id
      - length
      - mainArtists
      - moods
      - title
      - waveformUrl
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the track
        mainArtists:
          type: array
          description: The main artist that created the track.
          items:
            type: string
            description: The main artist that created the track.
        featuredArtists:
          type: array
          description: Additional artists that contributed to the track.
          items:
            type: string
            description: Additional artists that contributed to the track.
        title:
          type: string
          description: Title of the track
        bpm:
          type: integer
          description: Beats per minute for the track.
          format: int32
        length:
          type: integer
          description: Track length in seconds
          format: int32
        moods:
          type: array
          description: Lists the moods of the track.
          items:
            $ref: '#/components/schemas/MoodResponse'
        genres:
          type: array
          description: Lists the genres of the track.
          items:
            $ref: '#/components/schemas/GenreResponse'
        images:
          $ref: '#/components/schemas/ImagesResponse'
        waveformUrl:
          type: string
          description: Reference to the waveform as a json object.
        hasVocals:
          type:
          - boolean
          - 'null'
          description: Set to true if the track has vocals. Set to false for instrumental tracks.
        added:
          type: string
          description: The date the track was released in the format YYYY-mm-dd.
        tierOption:
          type:
          - string
          - 'null'
          enum:
          - PAID
          - FREE
        isExplicit:
          type:
          - boolean
          - 'null'
        isPreviewOnly:
          type: boolean
    TracksResponse:
      required:
      - links
      - pagination
      - tracks
      type: object
      properties:
        tracks:
          type: array
          items:
            $ref: '#/components/schemas/TrackResponse'
        pagination:
          $ref: '#/components/schemas/Pagination'
        links:
          $ref: '#/components/schemas/PaginationLinks'
        aggregations:
          $ref: '#/components/schemas/TaxonomyAggregations'
    GenreResponse:
      required:
      - id
      - name
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        parent:
          $ref: '#/components/schemas/ParentGenreResponse'
    TaxonomyAggregations:
      type: object
      properties:
        moods:
          type: array
          items:
            $ref: '#/components/schemas/TaxonomyAggregation'
        genres:
          type: array
          items:
            $ref: '#/components/schemas/TaxonomyAggregation'
    TaxonomyAggregation:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        count:
          type: integer
          format: int32
  securitySchemes:
    ApiKeyAuth:
      type: http
      description: 'API key authentication for server-to-server communication.

        Pass your API key as a Bearer token in the Authorization header.

        API keys are prefixed with `epidemic_live_`.


        > **Example Header:** `Authorization: Bearer epidemic_live_your-api-key`'
      scheme: bearer
    PartnerAuth:
      type: http
      description: 'Partner authentication is handled with short lived partner access tokens.

        Use your api credentials to request these tokens.

        The access token is of JWT format and should be passed in a header with your API requests:


        > **Example Header:** `Authorization: Bearer your-partner-token`'
      scheme: Bearer
    UserAuth:
      type: http
      description: "User authentication is handled with short lived user access tokens.\n Use a partner token to request these tokens.\n The access token is of JWT format and should be passed in a header with your API requests:\n\n > **Example Header:** `Authorization: Bearer a-user-token`"
      scheme: Bearer
    EpidemicSoundConnectAuth:
      type: oauth2
      description: 'For users signing in with an Epidemic Sound account, user authentication is

        handled with OpenID Connect, which is a layer on top of OAuth 2.0.


        > **Example Header:** `Authorization: Bearer es-connect-token`'
      flows:
        authorizationCode:
          authorizationUrl: https://login.epidemicsound.com/auth/realms/accounts/protocol/openid-connect/auth
          tokenUrl: https://login.epidemicsound.com/auth/realms/accounts/protocol/openid-connect/token
          scopes: {}