Skip to main content

Usage metering and reporting

Epidemic Sound records your app's usage in two separate ways. They work independently, and each covers different events.

Metered by the APIReported by your app
WhatDownloads, previews, created versions and soundtracking jobsExports
How it's recordedAutomatically, on each successful callYour app calls the usage endpoints
What you doNothingReport each export
CoversMusic, sound effects and soundtrackingMusic tracks only

Your partnership agreement defines which of these your pricing is based on.

How usage is metered​

The API meters downloads, previews, created versions and soundtracking jobs as your app calls the endpoints below. Your app doesn't report them.

What the API meters​

Metered itemWhat it isWhat adds to it
DownloadsA track or sound effect file to use in content. A track with its stems is one download.Each successful call to GET /v0/tracks/{trackId}/download or GET /v0/sound-effects/{soundEffectId}/download
PreviewsA track or sound effect preview.Each successful call to GET /v0/tracks/{trackId}/stream or GET /v0/sound-effects/{soundEffectId}/preview
Created versionsA track edited to a new length with Create versions.Each successful call to POST /v0/tracks/versions
Soundtracking jobsA video scored with music by Soundtracking. Each job costs 2,500 credits.Each job whose video upload completes

Every successful call counts, including repeat calls for a track the same user has already downloaded. Fetching the file from the returned URL doesn't count, however many times you fetch it. Requests from users who sign in with their own Epidemic Sound account through Connect aren't included.

Metadata, search and browse​

Only the endpoints in the table add to these counts. Fetching metadata, such as ISRC codes from GET /v0/tracks/metadata, doesn't count as a download. Neither do search, browse, collections, or track analysis such as beats and highlights. These requests count only toward your daily request limit.

Reuse download URLs​

Keep the URL from a download call and reuse it until the time in expires: 24 hours at normal quality, 1 hour at high. After that, call the endpoint again for a new URL. That call counts as a new download.

Sound effect previews and downloads​

Calls to the sound effect preview endpoint count as previews, not downloads. Request a preview link each time a user plays a sound effect; it expires after 1 hour. Only calls to the download endpoint count as sound effect downloads in the Developer Portal, and those are subtracted from your usage when usage-based invoices are prepared. See Sound effects.

Check your usage in the Developer Portal​

Sign in to the Developer Portal and open Overview. The Usage card shows your app's downloads, previews and created versions for the current period, and the date the figures reset. If your plan has limits, the card shows your usage against them. Soundtracking jobs show as Credits: the credits your app has used against its allowance, rather than a count of jobs.

The Usage card doesn't show:

  • Music and sound effects separately. Downloads combine both. Your invoice excludes the sound effect downloads.
  • Exports. Usage you report isn't included.
  • Individual end users. Figures are totals for the app.
  • Connect users. Their requests aren't counted.

Report usage​

Exports are the one thing your app reports. The API can't see what your users do with a track after your app downloads it, so report each export to Epidemic Sound when users export their content to social media platforms, or save the finished video with the music to their device. This data is used for billing and analytics.

Reporting and counting don't overlap. A reported export doesn't add to your download count, and a download doesn't count as an export.

Music tracks only

Usage reporting is for music tracks. It doesn't cover sound effects usage.

Unlike /v0/usage, the bulk /v0/analytics/report endpoint doesn't validate track IDs against the catalog — unrecognized IDs are silently dropped rather than rejected, so a 200 response doesn't guarantee every ID was recorded.

When to report usage​

Report usage when:

  • User exports their content to a social media platform
  • User downloads the complete video+music composition to their device (use platform LOCAL)

Do not report usage for:

  • Preview playback during browsing
  • Your application is downloading tracks (such as music used in a video editor)

Per-user reporting​

Use the usage endpoint for individual usage events. The x-partner-user-id header identifies which end user is using the track for per-user analytics and billing attribution:

POST /v0/usage
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
x-partner-user-id: user123

{
"eventType": "EXPORTED",
"platform": "YOUTUBE",
"trackIds": ["1a8d1f60-398c-3cec-83bf-4ed5efd3b851"]
}

trackIds is an array — batch multiple tracks used together in one call instead of one request per track.

Supported platforms:

  • YOUTUBE
  • TWITTER
  • TWITCH
  • FACEBOOK
  • INSTAGRAM
  • TIKTOK
  • OTHER
  • LOCAL (for downloads to device)

Bulk reporting​

Use the bulk reporting endpoint for batch processing. Each event needs a timestamp and an analyticsEvent object with a type discriminator — trackPreviewed, trackDownloaded, or tracksExported:

POST /v0/analytics/report
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY

{
"events": [
{
"userId": "user123",
"timestamp": "2026-09-22T10:00:00Z",
"analyticsEvent": {
"type": "tracksExported",
"trackIds": ["1a8d1f60-398c-3cec-83bf-4ed5efd3b851"],
"platform": "YOUTUBE"
}
},
{
"userId": "user456",
"timestamp": "2026-09-22T10:01:00Z",
"analyticsEvent": {
"type": "tracksExported",
"trackIds": ["2b9e2d71-499d-4dfd-94cd-5fe6dde4c962"],
"platform": "TIKTOK"
}
}
]
}

Batch limits: Up to 100 events per request, and up to 50 track IDs per event. Each event's timestamp must be in the past and no more than 7 days old.

Backend authentication required for bulk reporting

The bulk reporting endpoint must be called from your backend using your API key. For client-side per-user reporting, use the /v0/usage endpoint with the x-partner-user-id header.