DistroKid API and MCP server Let your AI agent read your DistroKid Bank.

Releases, earnings, stats and splits from your DistroKid account. Use it in ChatGPT, Claude or any AI agent over MCP, or in n8n, Make and scripts over REST.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with DistroKid
DistroKid logo DistroKid Cloud Browser

10 tools Read and write

Money, status, splits

What can you automate in DistroKid? Use an AI agent, a workflow or a script.

  • Earnings by store, song or artist

  • Spot releases stuck in yellow or red

  • Daily streams from Spotify and Apple Music

  • Pay collaborators with Splits

  • Count HyperFollow followers

  • Submit a metadata edit request

No official API

Does DistroKid have an MCP server or an API? No, only a CSV you download.

DistroKid has no public API, no developer docs, no webhooks and no MCP server (checked 28 Oct 2026). Your money and stats leave the dashboard only as a Bank file you download by hand. Cotlet runs 10 DistroKid tools hosted, over MCP for agents and REST for scripts.

  • Zapier, n8n, Pipedream and Composio have no DistroKid app; each answers 404 for it.
  • A DistroKid job ad for an API engineer names "Model Context Protocol (MCP) server implementations" as future work. Nothing has shipped.
  • Community code on GitHub calls the private API of the iOS app with a token you intercept. DistroKid's terms ban reverse engineering.
DistroKid Bank export, a GitHub wrapper and Cotlet compared
What you need Bank CSV by handGitHub wrapperCotlet
Earnings by store, song or month Download, then a spreadsheet If you write it Yes, filtered
Release status and daily stats No If you write it Yes
Read and change Splits No If you write it Yes, change after your OK
Runs while your computer sleeps No No Yes, hosted
Kept working when DistroKid changes Yes, official Up to you Yes, tested every 12 h

Checked 28 Oct 2026. Sources: DistroKid Help: Using the DistroKid Bank to see your earnings · DistroKid Help: Saving your earnings information as a spreadsheet file · DistroKid API Engineer job ad · DistroKid Terms of Service

Set up once

How does Cotlet connect to DistroKid? One account, two ways to connect.

  1. 1Sign in to DistroKid

    Use your own account in its Cotlet Cloud Browser.

  2. 2Choose MCP or REST

    Connect your agent or create a Cotlet API key.

  3. 3Run your workflow

    Ask your agent or send an HTTP request.

We never keep your DistroKid password, no tool withdraws money, and a split change waits for your approval. Who can see your session

Any MCP client

Connect DistroKid to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.

  1. 1

    Sign in to DistroKid in a Cloud Browser. Make a Cotlet account, open DistroKid in its Cloud Browser, sign in as the account owner, type the emailed code and press Enable for agents.

  2. 2

    Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as a new MCP server or connector in your agent.

  3. 3

    Allow the agent. Chat apps open a Cotlet sign-in window. Code editors, n8n and cron scripts use an API key from the console instead.

DistroKid shares https://cotlet.dev/mcp/v1 with every other app in your workspace. Turned DistroKid on after you connected? Refresh the connector and its 10 tools appear.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-distrokid \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-distrokid": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet-distrokid]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: distrokid_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: distrokid_write
Scripts and HTTP

How to use the DistroKid REST API

Create your Cotlet API key

Create a Cotlet API key with access to DistroKid and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.

Connect DistroKid in Cotlet and enable it for agents. Account access: Your own DistroKid account (the account owner; Daily Stats needs the Musician Plus or Ultimate plan).

Make your first DistroKid API request

REST
curl https://cotlet.dev/api/v1/distrokid/releases \
  -H "Authorization: Bearer $COTLET_API_KEY"

Read releases and apply the operation limits

A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.

Illustrative response excerpt
{
  "status": "success",
  "app": "distrokid",
  "tool": "list_releases",
  "result": {
    "releases": [
      {
        "release_id": "r_8f3a21",
        "title": "Night Drive",
        "artist": "Mara Quill",
        "release_date": "2026-09-12",
        "status": "delivered"
      },
      {
        "release_id": "r_71c0be",
        "title": "Low Tide EP",
        "artist": "Mara Quill",
        "release_date": "2026-10-24",
        "status": "processing"
      }
    ],
    "next_cursor": null
  }
}

Returns title, artist, release date and status for each release, newest first, one page at a time with next_cursor. The status mirrors the colored circle left of the artwork on MyMusic: green is delivered to services, yellow is still processing or being delivered, red is an error that blocks delivery.

Release review, approval and delivery can take several days, so yellow is normal for a new upload.

cursor: next_cursor from the previous page.

Keep the same selection when continuing a list. Compare changed record values as well as identifiers when refreshing your destination.

DistroKid workflows for agents and automations

DistroKid workflows you configure
ToolConnect throughExample workflow
n8nHTTP RequestGet one release: tracks, label, release date, status and whether an edit request is pending. Use get_release in your configured content report.
MakeHTTP > Make a requestList the detail rows behind the Bank totals, as under "See excruciating detail". Use list_earnings_rows in your configured content report.
Python or Node.jsREST APIEstimated daily streams and sales for the last days, from the Stats page. Use get_daily_stats in your configured content report.

Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.

Cotlet reads DistroKid; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.

Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.

The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.

7 read, 3 write

DistroKid API endpoints and MCP tools

Bank earnings, daily stats and HyperFollow4

Stores report every 1 to 2 months, so the last months of the Bank can be empty. Daily stats need Musician Plus or Ultimate. Fan emails from HyperFollow are never returned.

  • get_earnings_summary Earnings totals from the Bank page, grouped by artist, song or service. read

    Returns one row per group with earnings and quantity (streams or downloads, depending on the service). Streaming services report every 1 to 2 months and cover streams from a few months earlier, so recent months can be empty. Amounts are the Bank totals as the page shows them. It reads totals only and never starts a withdrawal.

    MCP calldistrokid_read → get_earnings_summary

    REST endpointGET https://cotlet.dev/api/v1/distrokid/earnings-summary

    Parameters

    Parameters: get_earnings_summary
    NameTypeDescription
    group_by string required string artist, song or service.
    from string string Start of the period, YYYY-MM-DD.
    to string string End of the period, YYYY-MM-DD.

    Example input

    {
      "group_by": "group by"
    }

    Example response

    {
      "group_by": "service",
      "currency": "USD",
      "rows": [
        {
          "service": "Spotify",
          "earnings": 412.6,
          "quantity": 128400
        },
        {
          "service": "Apple Music",
          "earnings": 188.2,
          "quantity": 24100
        }
      ],
      "total_earnings": 600.8
    }
  • list_earnings_rows List the detail rows behind the Bank totals, as under "See excruciating detail". read

    Returns the rows of the detail view with the QUANTITY column, one page at a time with next_cursor. DistroKid builds large reports (over 50,000 records) as files that stay available for 7 days, so a wide period can take longer than a narrow one. Use filters to keep reads small.

    MCP calldistrokid_read → list_earnings_rows

    REST endpointGET https://cotlet.dev/api/v1/distrokid/earnings-rows

    Parameters

    Parameters: list_earnings_rows
    NameTypeDescription
    from string string Start of the period, YYYY-MM-DD.
    to string string End of the period, YYYY-MM-DD.
    store string string Filter by store name as the Bank shows it.
    release_id string string Filter by release id from list_releases.
    cursor string string next_cursor from the previous page.

    Example response

    {
      "rows": [
        {
          "sale_month": "2026-08",
          "store": "Spotify",
          "title": "Night Drive",
          "quantity": 61200,
          "earnings": 198.4
        },
        {
          "sale_month": "2026-08",
          "store": "Apple Music",
          "title": "Night Drive",
          "quantity": 9800,
          "earnings": 76.1
        }
      ],
      "next_cursor": null
    }
  • get_daily_stats Estimated daily streams and sales for the last days, from the Stats page. read

    Returns one row per day with estimates from Spotify, Apple Music, iTunes and Amazon. Services update them about every 24 hours for the previous day, and they often differ from the Bank earnings. Numbers can drop to zero for a day when a service reports late. Needs the Musician Plus or Ultimate plan; on Musician the call fails with APP_PERMISSION_DENIED.

    MCP calldistrokid_read → get_daily_stats

    REST endpointGET https://cotlet.dev/api/v1/distrokid/daily-stats

    Parameters

    Parameters: get_daily_stats
    NameTypeDescription
    from string string Start date, YYYY-MM-DD.
    to string string End date, YYYY-MM-DD.

    Example response

    {
      "days": [
        {
          "date": "2026-10-26",
          "spotify": 1840,
          "apple_music": 220,
          "itunes": 3,
          "amazon": 41
        },
        {
          "date": "2026-10-27",
          "spotify": 1910,
          "apple_music": 205,
          "itunes": 1,
          "amazon": 38
        }
      ]
    }
  • get_hyperfollow_stats Visitors and followers added by the HyperFollow page of a release. read

    Returns how many people visited the release's HyperFollow page and how many followers it added. DistroKid creates a HyperFollow page for every upload. Fan email addresses are not returned.

    MCP calldistrokid_read → get_hyperfollow_stats

    REST endpointGET https://cotlet.dev/api/v1/distrokid/releases/{release_id}/hyperfollow-stats

    Parameters

    Parameters: get_hyperfollow_stats
    NameTypeDescription
    release_id string required string Release id from list_releases.

    Example input

    {
      "release_id": "release_8c41d2"
    }

    Example response

    {
      "release_id": "r_8f3a21",
      "visitors": 1520,
      "followers_added": 214
    }

Releases and edit requests4

Status follows the colored circle on MyMusic. One edit request at a time; track order, genres and ISRCs stay locked. A removal cannot be called back.

  • list_releases List the releases on the account, as on the MyMusic page, with their delivery status. read

    Returns title, artist, release date and status for each release, newest first, one page at a time with next_cursor. The status mirrors the colored circle left of the artwork on MyMusic: green is delivered to services, yellow is still processing or being delivered, red is an error that blocks delivery. Release review, approval and delivery can take several days, so yellow is normal for a new upload.

    MCP calldistrokid_read → list_releases

    REST endpointGET https://cotlet.dev/api/v1/distrokid/releases

    Parameters

    Parameters: list_releases
    NameTypeDescription
    status string string Filter by the status circle: delivered (green), processing (yellow), error (red). Omit for all.
    cursor string string next_cursor from the previous page.

    Example response

    {
      "releases": [
        {
          "release_id": "r_8f3a21",
          "title": "Night Drive",
          "artist": "Mara Quill",
          "release_date": "2026-09-12",
          "status": "delivered"
        },
        {
          "release_id": "r_71c0be",
          "title": "Low Tide EP",
          "artist": "Mara Quill",
          "release_date": "2026-10-24",
          "status": "processing"
        }
      ],
      "next_cursor": null
    }
  • get_release Get one release: tracks, label, release date, status and whether an edit request is pending. read

    Returns the fields the Edit Release page shows and the status circle. DistroKid allows one edit request at a time, so edit_pending tells you whether a new one can be submitted. Track order, release language, Album Extras, genres and ISRCs are locked after upload.

    MCP calldistrokid_read → get_release

    REST endpointGET https://cotlet.dev/api/v1/distrokid/releases/{release_id}

    Parameters

    Parameters: get_release
    NameTypeDescription
    release_id string required string Release id from list_releases.

    Example input

    {
      "release_id": "release_8c41d2"
    }

    Example response

    {
      "release_id": "r_71c0be",
      "title": "Low Tide EP",
      "artist": "Mara Quill",
      "label": "Mara Quill",
      "release_date": "2026-10-24",
      "status": "processing",
      "edit_pending": false,
      "tracks": [
        {
          "position": 1,
          "title": "Low Tide"
        },
        {
          "position": 2,
          "title": "Salt Lines"
        }
      ]
    }
  • edit_release Submit an edit request for a release, as with Edit Release and Submit Edit Request. writeasks first

    Submits one edit request. Once submitted, DistroKid cannot speed it up or cancel it, and you cannot submit another until it is approved. Most services apply edits within a few days, some take 1 to 2 weeks. Track order, release language, Album Extras, genres and ISRCs cannot be edited. By default you confirm each call; you can switch that off for this tool.

    MCP calldistrokid_write → edit_release

    REST endpointPATCH https://cotlet.dev/api/v1/distrokid/releases/{release_id}

    Parameters

    Parameters: edit_release
    NameTypeDescription
    release_id string required string Release id from list_releases.
    changes object required object Fields to change, as named on the Edit Release page, for example {"label": "Harbor Lane Records"}.

    Example input

    {
      "release_id": "release_8c41d2",
      "changes": "changes"
    }

    Example response

    {
      "release_id": "r_71c0be",
      "status": "edit_requested",
      "changes": {
        "label": "Harbor Lane Records"
      }
    }
  • remove_release Remove a release from all stores, as with "Remove this release from all stores". writeasks first

    Starts the removal at the bottom of Edit Release. It takes up to 1 to 2 weeks to disappear everywhere, and a submitted removal cannot be undone. Removal from only some stores or countries goes through DistroKid support, not this tool. By default you confirm each call; you can switch that off for this tool.

    MCP calldistrokid_write → remove_release

    REST endpointDELETE https://cotlet.dev/api/v1/distrokid/releases/{release_id}

    Parameters

    Parameters: remove_release
    NameTypeDescription
    release_id string required string Release id from list_releases.

    Example input

    {
      "release_id": "release_8c41d2"
    }

    Example response

    {
      "release_id": "r_71c0be",
      "status": "removal_requested"
    }

Splits2

Percentages on a song add up to 100. Any change sends collaborators a fresh invitation to accept.

  • get_splits Get the collaborators and percentages set on a release. read

    Returns each song with its collaborators, percentage and invitation state. With no Splits set up, 100% belongs to the account owner. Percentages on a song always add up to 100. A collaborator who has not accepted yet is marked pending; DistroKid holds their share until they join.

    MCP calldistrokid_read → get_splits

    REST endpointGET https://cotlet.dev/api/v1/distrokid/releases/{release_id}/splits

    Parameters

    Parameters: get_splits
    NameTypeDescription
    release_id string required string Release id from list_releases.

    Example input

    {
      "release_id": "release_8c41d2"
    }

    Example response

    {
      "release_id": "r_8f3a21",
      "songs": [
        {
          "title": "Night Drive",
          "collaborators": [
            {
              "email": "mara@example.com",
              "percent": 100,
              "state": "owner"
            }
          ]
        }
      ]
    }
  • set_splits Replace the collaborators and percentages on a song. writeasks first

    Fills in the Splits form and saves it with Review Changes and Save Changes. It invites every new collaborator by email and sends money by percentage from the next earnings on, and any change to an existing Split makes collaborators accept their invitation again. A bad total fails before anything is saved. By default you confirm each call; you can switch that off for this tool.

    MCP calldistrokid_write → set_splits

    REST endpointPUT https://cotlet.dev/api/v1/distrokid/releases/{release_id}/splits

    Parameters

    Parameters: set_splits
    NameTypeDescription
    release_id string required string Release id from list_releases.
    song string required string Song title as in get_splits.
    collaborators array required array List of {email, percent}. Percentages must add up to 100.

    Example input

    {
      "release_id": "r_8f3a21",
      "song": "Night Drive",
      "collaborators": [
        {
          "email": "mara@example.com",
          "percent": 70
        },
        {
          "email": "producer@example.com",
          "percent": 30
        }
      ]
    }

    Example response

    {
      "release_id": "r_8f3a21",
      "song": "Night Drive",
      "status": "saved",
      "collaborators": [
        {
          "email": "mara@example.com",
          "percent": 70,
          "state": "owner"
        },
        {
          "email": "producer@example.com",
          "percent": 30,
          "state": "pending"
        }
      ]
    }
Encrypted, revocable

Who can see my DistroKid session, and how do I revoke it?

  • What we store

    Your signed-in DistroKid profile, AES-256-GCM encrypted, in Finland. No password.

  • What your agent gets

    The 10 DistroKid tools, never the cookie.

  • What the session sees

    Your releases, Bank totals, stats and collaborator emails in Splits.

  • What no tool touches

    Withdrawals, payout details, tax forms, your plan and new uploads.

  • The emailed sign-in code

    DistroKid emails a code on a new device. You type it; we never do.

  • How to cut access

    Disable for agents, reset the browser, or change your DistroKid password.

cotlet.dev rates A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). We have no SOC 2 report or third-party pentest yet.

Account risk

Is it against DistroKid's terms? Account safety The terms ban automated access.

"You may not: ... use any high volume, automated, or electronic means to access the Services (including, without limitation, robots, spiders or scripts)."
DistroKid Terms of Service, Restrictions, 24 Sep 2026

The same list bars combining the Services "with hardware, software or other technology or materials not provided by us", and DistroKid may close an account "at any time without notice". That covers every DistroKid tool outside the dashboard, GitHub wrappers too. The takedowns artists report are for fake streams on Spotify, which no tool here creates. We found no case of an account closed for automation (checked 28 Oct 2026).

How we keep your account looking like you

  • Your own artist account, signed in by you
  • One Cloud Browser that keeps its cookies, so DistroKid sees a known device
  • Split changes, edit requests and removals wait for your OK
  • No tool uploads, withdraws or plays your music
  • If DistroKid objects, we pause the DistroKid tools for everyone within 24 h

Read wide Bank periods with filters, a month or a store at a time. DistroKid builds reports over 50,000 rows as files, and the terms name "high volume" access.

Tested every 12 h

What happens when DistroKid changes? We fix the tool, your prompt stays.

between tests of the DistroKid reads
12 h
between tests of writes your collaborators would notice
24 h
for a call to a DistroKid tool paused for a fix
$0

DistroKid reworked its Bank export in July 2025, from one TSV to a zip of CSV files. A change like that is ours to absorb, not yours. status.cotlet.dev checks the site, console and API every 3 minutes.

3 tools ask first

Approvals, undo and mistakes Nothing changes for collaborators without you.

  1. 01 Reads the current split Who is on the song, at what share, accepted or pending.
  2. 02 Checks the new shares They must add up to 100, or nothing is saved.
  3. 03 Waits for your OK The change shows up in your Cotlet console first.
  4. 04 Reports who was invited Saved shares and each collaborator's state.
Which DistroKid actions can be undone
ActionUndo
Set splitsSet them again; collaborators accept anew
Submit an edit requestNo, it cannot be cancelled or sped up
Remove a release from storesNo, and it takes up to 2 weeks
Any readNothing to undo

3 of 10 tools ask first: set_splits, edit_release and remove_release, the three that change what stores or collaborators get. The other 7 only read. You can switch the wait off per tool for a scheduled run.

A pending collaborator's share is held by DistroKid until they join, so a typo in an email only delays their money.

MCP call
{
  "name": "set_splits",
  "arguments": {
    "release_id": "r_8f3a21",
    "song": "Night Drive",
    "collaborators": [
      {
        "email": "mara@example.com",
        "percent": 70
      },
      {
        "email": "producer@example.com",
        "percent": 30
      }
    ]
  }
}
REST
curl -X PUT https://cotlet.dev/api/v1/distrokid/releases/r_8f3a21/splits \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song":"Night Drive","collaborators":[{"email":"mara@example.com","percent":70},{"email":"producer@example.com","percent":30}]}'
Response
{
  "release_id": "r_8f3a21",
  "song": "Night Drive",
  "status": "saved",
  "collaborators": [
    {
      "email": "mara@example.com",
      "percent": 70,
      "state": "owner"
    },
    {
      "email": "producer@example.com",
      "percent": 30,
      "state": "pending"
    }
  ]
}

A royalty spreadsheet or cron job can call the same tools over REST at /api/v1/distrokid, one key, one price. get_daily_stats on the Musician plan fails with APP_PERMISSION_DENIED, and a failed call is free. The tools table lists the REST path of each tool.

Pay per call

How much does the DistroKid MCP server cost?

About $12 a monthfor one artist with about a release a month, 2,120 credits. Your DistroKid plan stays billed by DistroKid.

A month of DistroKid jobs for one artist, in credits
JobCallsCredits
Delivery check on new releases, daily1 × 30300
Bank earnings by store and song, weekly4 × 4160
Daily stats and HyperFollow digest, weekly3 × 4120
Splits for the new release2 × 120
Label name fix by edit request2 × 120
Cloud Browser, 30 days1,500
Total2,120
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Works on Musician, Musician Plus and Ultimate

The month is our example: one artist on Musician Plus ($44.99 a year at DistroKid), on the 6 to 12 singles a year most release advice gives independents. Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

DistroKid MCP server on GitHub, royalty tools or hosted: which to use Nothing else reads the account itself.

Other DistroKid tools on GitHub and elsewhere, checked 28 Oct 2026
OptionWhat it doesWhere it stops
sowahq/distrogoGo wrapper of the private API behind the DistroKid iOS app, 21 stars, MIT.You intercept the app's token yourself; last push 29 Jul 2024; the terms ban reverse engineering.
Xtvback/solvero-distrokid-mcpThe only DistroKid MCP server on GitHub: prepares release manifests and checks audio and cover files.By its own README it has no live link to a DistroKid account.
Infinite Catalog, Royalti.ioRoyalty accounting with a DistroKid statement importer.You still download each Bank file and upload it by hand.
Sheet Split, Good SplitsFree calculators that split the DistroKid export among collaborators.DistroKid Splits already pays shares; these work on a file, not the account.

For a yearly royalty statement, a royalty tool on the CSV is enough. For a weekly look at money, release status and splits without downloading anything, Cotlet lets an agent read your DistroKid account directly.

EU company, since 2019

Who runs Cotlet A company you can look up.

Cotlet belongs to Take Group sp. z o.o., a Polish software company in the EU (VAT PL6342984273) working since 2019. Its founders are Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the DistroKid tools go to contact@cotlet.dev.

DistroKid API and MCP: questions

How do I get access?

Sign up free at https://cotlet.dev, open DistroKid under Integrations in the console and sign in to DistroKid in its Cloud Browser, with the code DistroKid emails you. The trial starts with your first app and needs no card.

How do I connect DistroKid to ChatGPT or Claude?

Sign up at cotlet.dev, log in to DistroKid once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your DistroKid account through Cotlet, in their phone apps too.

What can ChatGPT do in DistroKid?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in DistroKid: monthly earnings report by store; check release delivery status; set up splits for a new release. You ask in plain words, and anything that reaches other people waits for your OK first.

Can my agent upload a release or withdraw money?

No. Uploading new releases and withdrawals are outside these tools, and money leaves your Bank only when you withdraw it in DistroKid. The tools read earnings and stats, set splits, and submit edit and removal requests. DistroKid also documents that earnings are paid out after streaming services report them, 2 to 3 months later.

Which DistroKid plan do I need?

Earnings, releases, splits and HyperFollow stats work on any plan. get_daily_stats needs Musician Plus or Ultimate, because DistroKid shows Daily Stats only on those plans.

Does DistroKid have webhooks?

No. DistroKid sends no events out, so nothing tells an agent that a release went green or new earnings arrived. Run it on a schedule instead: a daily list_releases and a weekly get_earnings_summary cover most needs.

Is DistroKid building its own API or MCP server?

A DistroKid job ad for an API engineer lists MCP server work among its duties, but nothing is public as of 28 Oct 2026. If an official route appears, this page will say what it covers.

Is the MCP server different from the REST API?

Only in how you call it. Both carry the same 10 tools, inputs and answers, with one API key and one price. Agents use MCP; spreadsheets, scripts and HTTP steps use REST.

Is Cotlet affiliated with DistroKid?

No. Cotlet is independent and not affiliated with DistroKid LLC.

Can I use the DistroKid API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.

Give your agent access to DistroKid.

Free 7-day trial with 2,000 credits, no card needed.