firstpromoter_accept_ promotersAccepts promoters into one campaign.
Ask who your best promoters are, review the commissions waiting for approval, see who is due a payout, and accept new promoters, all in the FirstPromoter account that already runs your affiliate program.
PopMCPFirstPromoter
Every route a FirstPromoter API key can call, with the everyday program tools loaded by default, plus one-call answers for how the program is doing, how one promoter is doing and who is owed money.
174 tools in the full catalog: 76 read and 98 write. 37 load by default, and the rest are found with tool search.
firstpromoter_accept_ promotersAccepts promoters into one campaign.
firstpromoter_add_ promoters_ to_ campaignAdds promoters to one more campaign, keeping the ones they are in.
firstpromoter_block_ promotersBlocks promoters on one campaign, which stops them earning there.
firstpromoter_create_ promoterAdds a promoter.
firstpromoter_get_ promoterReads one promoter in full.
firstpromoter_list_ promotersLists promoters (affiliates), with stats and the campaigns each one is in.
firstpromoter_move_ promoters_ to_ campaignMoves promoters from one campaign to another, keeping their referral id.
firstpromoter_reject_ promotersRejects promoters from one campaign.
firstpromoter_update_ promoterChanges a promoter's email, cust_id, custom fields or profile.
firstpromoter_get_ referralReads one referral with its promoter and campaign.
firstpromoter_list_ referralsLists referrals: the leads and customers promoters brought in.
firstpromoter_get_ due_ payout_ statsReads what is due to be paid, with the program's payout terms.
firstpromoter_list_ payoutsLists payouts to promoters.
firstpromoter_list_ payouts_ by_ promoterLists what each promoter is owed, grouped by promoter, with their payout method.
firstpromoter_mark_ payouts_ as_ paidRecords payouts as paid, for money sent outside FirstPromoter.
firstpromoter_approve_ commissionsApproves commissions, making them payable to promoters.
firstpromoter_create_ commissionCreates a commission, which is money owed to a promoter once approved.
firstpromoter_deny_ commissionsDenies commissions, so they are not paid.
firstpromoter_get_ campaigns_ reportReports each campaign's performance.
firstpromoter_get_ overview_ reportReports the whole program over time: revenue, referrals, customers, clicks and more.
firstpromoter_get_ promoters_ reportReports each promoter's performance.
firstpromoter_list_ commissionsLists commissions: what promoters earned.
firstpromoter_create_ promo_ codeCreates a promo code for a promoter.
firstpromoter_get_ campaignReads one campaign in full.
firstpromoter_list_ campaignsLists campaigns, with their stats, links and rewards.
firstpromoter_list_ promo_ codesLists promo codes.
firstpromoter_payouts_ dueShows what is due to be paid and who is owed what, with each promoter's payout method and the program's payout terms, in one call.
firstpromoter_program_ overviewShows how the affiliate program stands now in one call: revenue, referrals, customers, promoters, pending commissions, what is due to pay, and who is trending.
firstpromoter_promoter_ snapshotShows everything about one promoter in one call: profile and campaigns, referral links, results over a date range, and commissions waiting for review.
firstpromoter_search_ promoter_ campaignsFinds a promoter campaign by text, such as a promoter's name or email.
firstpromoter_top_ promotersRanks promoters by one measure over a date range, such as who brought the most revenue last month.
firstpromoter_wait_ for_ batchWaits up to about 25 seconds for a bulk action to finish, then answers how many worked and how many failed.
firstpromoter_get_ dashboard_ statsReads the headline numbers on the dashboard: revenue, referrals, customers, promoters and pending commissions.
firstpromoter_list_ rewardsLists reward rules: how promoters earn and what referred customers get.
firstpromoter_track_ saleRecords a sale, which creates commissions for the promoter.
firstpromoter_track_ signupRecords a signup as a lead for the promoter who referred it.
firstpromoter_get_ batch_ processReads one background job: status, how many it processed and any that failed.
firstpromoter_v1_ add_ promoter_ to_ campaignOlder V1 API: adds one promoter to another campaign.
firstpromoter_v1_ create_ payoutOlder V1 API: creates a payout for a promoter from what they are due.
firstpromoter_v1_ create_ promoterOlder V1 API: adds a promoter.
firstpromoter_v1_ create_ rewardOlder V1 API: gives a non-cash reward such as points, credits or free months.
firstpromoter_v1_ delete_ leadOlder V1 API: deletes one lead by id, uid or email.
firstpromoter_v1_ delete_ promoterOlder V1 API: deletes a promoter.
firstpromoter_v1_ get_ campaigns_ reportOlder V1 API: reports by campaign.
firstpromoter_v1_ get_ leadOlder V1 API: reads one lead by id, uid or email.
firstpromoter_v1_ get_ overview_ reportOlder V1 API: reports the whole program.
firstpromoter_v1_ get_ promoterOlder V1 API: reads one promoter by id, promoter_email, cust_id, ref_id or auth_token.
firstpromoter_v1_ get_ promoters_ reportOlder V1 API: reports by promoter.
firstpromoter_v1_ list_ leadsOlder V1 API: lists leads and customers.
firstpromoter_v1_ list_ payoutsOlder V1 API: lists payouts.
firstpromoter_v1_ list_ promotersOlder V1 API: lists promoters.
firstpromoter_v1_ list_ rewardsOlder V1 API: lists rewards and commissions.
firstpromoter_v1_ move_ promoter_ to_ campaignOlder V1 API: moves one promoter between campaigns.
firstpromoter_v1_ refresh_ promoter_ tokenOlder V1 API: replaces a promoter's auth token, which stops the old one working, and answers the new one.
firstpromoter_v1_ track_ cancellationOlder V1 API: records that a customer cancelled.
firstpromoter_v1_ track_ refundOlder V1 API: records a refund, which takes commission back.
firstpromoter_v1_ track_ saleOlder V1 API: records a sale, creating commissions.
firstpromoter_v1_ track_ signupOlder V1 API: records a signup.
firstpromoter_v1_ track_ subscriberOlder V1 API: records a newsletter or mailing list subscriber as a lead.
firstpromoter_v1_ update_ leadOlder V1 API: changes a lead.
firstpromoter_v1_ update_ payoutOlder V1 API: changes a payout's status.
firstpromoter_v1_ update_ promoterOlder V1 API: changes a promoter.
firstpromoter_v1_ update_ rewardOlder V1 API: changes a reward's status.
firstpromoter_archive_ promotersArchives promoters, hiding them from everyday lists.
firstpromoter_assign_ parent_ promoterMakes one promoter the parent of others, for sub-affiliate commissions.
firstpromoter_get_ promoter_ chart_ dataReads one promoter's daily or monthly series for one measure: revenue, clicks, referrals, customers or cancellations.
firstpromoter_list_ promoter_ referral_ linksLists one promoter's referral links: their default link and any campaign or custom links.
firstpromoter_restore_ promotersBrings archived promoters back, with their history.
firstpromoter_approve_ referralsApproves referrals waiting for review.
firstpromoter_create_ referralAdds a referral by hand, credited to one promoter.
firstpromoter_delete_ referralsDeletes referrals.
firstpromoter_disable_ referralsDisables referrals, so they stop earning commissions.
firstpromoter_enable_ referralsEnables disabled referrals again, so they earn commissions.
firstpromoter_import_ referral_ eventsImports a referral's earlier sales from Stripe, which can create commissions.
firstpromoter_list_ custom_ referral_ statusesLists your own referral statuses, such as Contacted or Qualified.
firstpromoter_move_ referrals_ to_ promoterMoves referrals to another promoter.
firstpromoter_update_ custom_ referral_ statusesAdds, renames, orders or deletes your own referral statuses.
firstpromoter_update_ referralChanges a referral's email, uid, username, promoter_campaign_id, fraud_check, split_details, or custom status.
firstpromoter_copy_ emailMakes a copy of an email, to edit without touching the original.
firstpromoter_create_ emailCreates an email to promoters.
firstpromoter_delete_ emailDeletes an email.
firstpromoter_delete_ invoicesDeletes invoices.
firstpromoter_export_ invoices_ csvAnswers invoices as CSV text.
firstpromoter_export_ invoices_ zipStarts a background job that makes one zip of every invoice PDF.
firstpromoter_finalize_ invoicesFinalizes draft invoices, so they can no longer be edited.
firstpromoter_get_ emailReads one email with its full HTML and trigger.
firstpromoter_get_ email_ templateReads the HTML theme around all your emails.
firstpromoter_get_ invoiceReads one invoice, with a link to its PDF.
firstpromoter_get_ invoice_ templateReads the HTML of the invoice template.
firstpromoter_list_ emailsLists emails to promoters.
firstpromoter_list_ invoicesLists promoter invoices.
firstpromoter_preview_ invoiceRenders the invoice a promoter would get, as HTML, creating nothing.
firstpromoter_preview_ invoice_ templateRenders template HTML as a sample invoice, saving nothing.
firstpromoter_send_ email_ nowSENDS TO REAL PEOPLE: sends this email to its promoters now, which cannot be undone.
firstpromoter_send_ test_ emailSends a test of this email to the account's own user, not to promoters.
firstpromoter_send_ test_ email_ templateSends a test of the email theme to the account's own user.
firstpromoter_update_ emailReplaces an email.
firstpromoter_update_ email_ templateReplaces the HTML theme around all your emails with html.
firstpromoter_update_ invoice_ templateReplaces the invoice template with the HTML in html.
firstpromoter_void_ invoicesVoids invoices.
firstpromoter_create_ payments_ batchCreates a batch to pay all due payouts for one method: paypal, bank, wise, crypto or dots.
firstpromoter_create_ webhookSubscribes a URL to events.
firstpromoter_delete_ payments_ batchDeletes a payments batch that has not been paid.
firstpromoter_delete_ payoutsDeletes payouts.
firstpromoter_delete_ webhookDeletes a webhook subscription, which stops its events at once.
firstpromoter_get_ payout_ statsReads payout totals.
firstpromoter_get_ webhookReads one webhook subscription.
firstpromoter_get_ webhook_ deliveryReads one webhook delivery with its status and response.
firstpromoter_list_ webhook_ deliveriesLists what a webhook sent and whether it arrived.
firstpromoter_list_ webhook_ event_ typesLists every event a webhook can subscribe to, such as commission.created.
firstpromoter_list_ webhooksLists webhook subscriptions.
firstpromoter_mark_ payouts_ as_ unpaidReverses a paid record, so the payout is due again.
firstpromoter_pay_ payments_ batchSENDS REAL MONEY: starts paying a payments batch.
firstpromoter_retry_ webhook_ deliverySends a failed webhook delivery again.
firstpromoter_test_ webhookSends a sample event to a URL now, to check it works.
firstpromoter_update_ webhookChanges a webhook's URL, events or campaigns, or pauses it with active false.
firstpromoter_delete_ commissionsDeletes commissions, removing what promoters are owed.
firstpromoter_download_ reportAnswers a report as CSV text.
firstpromoter_generate_ payouts_ for_ commissionsCreates payouts now for approved commissions, without waiting for the payout cycle.
firstpromoter_get_ promoter_ overview_ reportReports one promoter's performance over time.
firstpromoter_get_ promoter_ traffic_ sources_ reportReports where one promoter's traffic comes from, by source and over time.
firstpromoter_get_ promoter_ urls_ reportReports one promoter's results by landing page URL.
firstpromoter_get_ traffic_ sources_ reportReports where referral traffic comes from.
firstpromoter_get_ urls_ reportReports results by landing page URL.
firstpromoter_mark_ commissions_ fulfilledMarks non-cash commissions, such as credits or free months, as delivered.
firstpromoter_mark_ commissions_ unfulfilledMarks non-cash commissions as not yet delivered.
firstpromoter_update_ commissionChanges a commission's internal_note or external_note.
firstpromoter_create_ assetAdds a marketing asset.
firstpromoter_delete_ assetsDeletes assets.
firstpromoter_get_ assetReads one asset.
firstpromoter_list_ asset_ categoriesLists asset categories.
firstpromoter_list_ assetsLists marketing assets promoters can use: images, documents, links and text.
firstpromoter_update_ assetChanges an asset.
firstpromoter_update_ asset_ categoriesAdds, renames, orders or deletes asset categories.
firstpromoter_update_ assets_ categoryMoves assets to a category.
firstpromoter_create_ contractCreates an agreement.
firstpromoter_delete_ contractDeletes an agreement.
firstpromoter_get_ contractReads one agreement.
firstpromoter_get_ contract_ documentReads one signed or pending agreement.
firstpromoter_list_ contract_ documentsLists the agreements promoters have to sign or have signed.
firstpromoter_list_ contractsLists affiliate agreements promoters must accept.
firstpromoter_update_ contractChanges an agreement, which can ask promoters to accept it again.
firstpromoter_archive_ promo_ codeArchives a promo code.
firstpromoter_create_ campaignCreates a campaign.
firstpromoter_create_ payout_ methodAdds a payout method for a promoter, which decides where their money goes.
firstpromoter_create_ productAdds a product.
firstpromoter_delete_ campaignDeletes a campaign.
firstpromoter_delete_ payout_ methodRemoves a promoter's payout method.
firstpromoter_delete_ productDeletes a product.
firstpromoter_get_ payout_ methodReads one payout method.
firstpromoter_get_ productReads one product.
firstpromoter_get_ promo_ codeReads one promo code.
firstpromoter_get_ promoter_ campaign_ chart_ dataReads the series for one measure, for one promoter on one campaign.
firstpromoter_list_ payout_ methodsLists one promoter's payout methods.
firstpromoter_list_ productsLists products that can have their own commission rules.
firstpromoter_list_ promoter_ campaign_ referral_ linksLists the referral links for one promoter on one campaign.
firstpromoter_list_ promoter_ campaignsLists promoter campaigns: the records linking one promoter to one campaign.
firstpromoter_update_ campaignChanges a campaign's name, landing page, cookie life, visibility, links or rewards.
firstpromoter_update_ payout_ methodChanges a payout method, which decides where a promoter's money goes.
firstpromoter_update_ productChanges a product's name, ext_id or prices.
firstpromoter_update_ promo_ codeChanges a promo code's code, description or promoter.
firstpromoter_update_ promoter_ campaignChanges one promoter's terms on one campaign: ref_token, state, coupon, display_coupon, direct_url, or their own rewards.
firstpromoter_create_ rewardCreates a reward rule.
firstpromoter_get_ dashboard_ chart_ dataReads the dashboard's series for one measure: revenue, commissions, clicks, referrals, customers or cancellations.
firstpromoter_get_ dashboard_ payouts_ and_ commissionsReads the dashboard's payout and commission totals.
firstpromoter_get_ dashboard_ trendingsReads the trending promoters and campaigns.
firstpromoter_hide_ rewardHides a reward so it cannot be attached to anything new.
firstpromoter_track_ cancellationRecords that a customer cancelled, which lowers the monthly revenue they count for.
firstpromoter_track_ refundRecords a refund, which takes commission back.
firstpromoter_update_ rewardChanges a reward rule.
firstpromoter_get_ batch_ progressReads the progress of background jobs.
firstpromoter_list_ batch_ processesLists background jobs from bulk actions.
firstpromoter_create_ embed_ login_ tokenMints a short-lived login token for one promoter, for embedding their dashboard in your own app.
firstpromoter_end_ embed_ login_ sessionsEnds a promoter's embedded dashboard sessions.
Credentials off one FirstPromoter screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
In FirstPromoter open Settings, then Integrations, then Manage API Keys. Add a new key, copy it, and paste it into PopMCP with the Account ID shown in the same panel. There is no app to review and nothing to deploy.
••••••••••••3f7a123456••••••••••••3f7aAccepting promoters, approving commissions, marking payouts as paid and starting payment batches are writes and wait until an owner or admin allows write actions; new connections start read-only. A FirstPromoter API key has no narrower kind, so this switch in PopMCP is the limit that counts. The AI is told to ask before anything that touches money, and paying a batch also needs a one-time code from you.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your FirstPromoter credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
How is our affiliate program doing, and how much is due to be paid?
firstpromoter_program_overviewok
Then just ask for the work
“How is our affiliate program doing, and how much is due to be paid?”
“Who were our top ten promoters by revenue last month?”
“Show me everything on ann@example.com: her links, recent results and commissions waiting”
“Which commissions are waiting for approval? Approve the ones for Ann”
“Who is due a payout, and how does each of them get paid?”
“Which promoters are waiting for review? Accept the ones with a company website”
“Add Priya Shah as a promoter on the partners campaign and give her the code PRIYA20”
“Which referrals became customers this month, and which landing pages brought them in?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting FirstPromoter behind an AI client.
An API key and your Account ID, both from Settings, Integrations, Manage API Keys in FirstPromoter. PopMCP stores them encrypted and checks them against FirstPromoter when you connect. They never reach your AI client.
Any of them. FirstPromoter's pricing page lists its developer APIs and webhooks on Starter, Business and Enterprise. Embedding the promoter dashboard in your own app needs Business or higher and a custom domain.
Yes, and new connections start that way. A FirstPromoter API key can always do everything in the account, so the limit is PopMCP's: while write actions are off, every tool that changes something is hidden and refused.
Only if you allow write actions and ask for it. Marking a payout as paid is only a record. Paying through FirstPromoter takes a payment batch and a one-time code that only you can give, and that tool stays out of the default set.
No. Bank account and wallet numbers are cut to their last four characters before they reach the AI, and promoter login tokens are removed from every answer.
FirstPromoter describes its own server as experimental, and it leaves out paying promoters, invoices and creating commissions. PopMCP covers those routes too, behind the same read-only switch and team controls as the rest of your connectors.
Only if FirstPromoter refuses your main key on them. The form has an optional V1 API key field under More options. The newer tools cover almost everything, so most people can leave it blank.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect FirstPromoter in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking FirstPromoter on the consent screen. The FirstPromoter tools are then available in that session, and no FirstPromoter credential is stored on your machine.
Loading 174 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 37-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 174 here. A trigger is something PopMCP watches for you: 20 FirstPromoter events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into FirstPromoter.
Launch a hosted MCP endpoint for FirstPromoter, keep tool access under control, and start testing real workflow prompts right away.