8 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.
Stop a FirstPromoter import
firstpromoter.cancel_importwriteconfirmadmin only
Stop the import that is currently running. Everything it already brought across STAYS — stopping does not undo an import, and there is no action that does. Starting a new import later resumes from a clean read rather than from where this one stopped.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Parameters
Field
Type
Required
Description
import_id
string (uuid)
optional
The import to stop. Omit for the one currently running.
Over MCP the same operation is the tool firstpromoter_cancel_import at https://app.chirply.io/api/mcp, same bearer token, same input.
FirstPromoter import progress
firstpromoter.get_importread
How far a FirstPromoter import has got: which stage it is on, the percentage complete, how many records have come across and how many need a human to look at them. Omit the import id for the one currently running. Reads only — this does NOT push the import forward.
Parameters
Field
Type
Required
Description
import_id
string (uuid)
optional
The import to report on. Omit for the one currently running, if any.
Over MCP the same operation is the tool firstpromoter_get_import at https://app.chirply.io/api/mcp, same bearer token, same input.
Import from FirstPromoter
firstpromoter.importwriteconfirmadmin only
Bring the connected FirstPromoter account across: its campaigns become affiliate programs here, its promoters become affiliates (keeping their FirstPromoter referral codes so links they have already published still work), and their referred customers, commission ledger and payout history come with them. THIS WRITES REAL MONEY RECORDS — imported commissions appear as amounts this account owes its affiliates, and imported payouts appear in its payment history. Safe to run more than once: it updates what it brought last time rather than duplicating it. Imported programs are created PAUSED and nothing is attributed to anybody until tracking is switched over separately. Returns immediately; the import continues in the background.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Parameters
Field
Type
Required
Description
include_referrals
boolean
optional
Bring the referred leads and customers across. Default: true
include_commissions
boolean
optional
Bring the commission ledger across. Turning this off means the affiliates arrive owed nothing here, whatever FirstPromoter says they are owed. Default: true
include_payouts
boolean
optional
Bring the history of payouts already made across, so past payments are not repeated by mistake. Default: true
currency
string
optional
ISO 4217 currency for the imported money, lowercase. FirstPromoter reports amounts in minor units without naming a currency, so this says which one they are in. Default: "usd"
Over MCP the same operation is the tool firstpromoter_import at https://app.chirply.io/api/mcp, same bearer token, same input.
List import issues
firstpromoter.list_import_issuesread
Everything a FirstPromoter import could NOT bring across exactly as it was, one entry each, with the FirstPromoter id so it can be looked up on their side. Read this before switching tracking over: each entry is either money that has not moved (a reward paid in credits rather than cash, a commission whose promoter could not be matched) or a referral code that will not resolve to the person who published it.
Parameters
Field
Type
Required
Description
import_id
string (uuid)
optional
The import to read issues for. Omit for the most recent one.
limit
integer
optional
How many issues to return, newest first. Default: 100
Over MCP the same operation is the tool firstpromoter_list_import_issues at https://app.chirply.io/api/mcp, same bearer token, same input.
Preview a FirstPromoter import
firstpromoter.previewwriteadmin only
Read the connected FirstPromoter account and count what an import WOULD bring across — campaigns, affiliates, referred customers, commissions and payouts. Writes nothing to this account and changes nothing in FirstPromoter. Spends a little of the FirstPromoter account's own API quota. Returns immediately; the preview keeps running in the background, so poll firstpromoter.get_import for the result.
Over MCP the same operation is the tool firstpromoter_preview at https://app.chirply.io/api/mcp, same bearer token, same input.
Hourly FirstPromoter refresh
firstpromoter.set_hourly_refreshwriteadmin only
Turn the automatic hourly read of FirstPromoter on or off, so the roster and ledger shown here stay in step with theirs. Each refresh spends a little of the FirstPromoter account's own API quota. It cannot be switched on once tracking has moved to this account: a refresh then would write FirstPromoter's older figures over commission earned here since.
Parameters
Field
Type
Required
Description
enabled
boolean
required
True to refresh every hour, false to refresh only on request.
Over MCP the same operation is the tool firstpromoter_set_hourly_refresh at https://app.chirply.io/api/mcp, same bearer token, same input.
Choose who tracks affiliates
firstpromoter.set_tracking_ownerwriteconfirmadmin only
Decide which system records affiliate clicks and signups from now on. Set to `this_account` and this account's own website tracking script starts attributing referrals — including every link already published with a FirstPromoter referral code, because the import kept those codes — and FirstPromoter is no longer needed for tracking. Set to `firstpromoter` to hand it back. THIS DECIDES WHO GETS PAID FOR EVERY FUTURE SALE. Only one system attributes at a time, on purpose: two would credit the same sale twice and pay the affiliate twice. Switching to `this_account` requires a completed import first, because the referral codes that keep published links working are created BY the import. Nothing is deleted either way, and it can be switched back.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Parameters
Field
Type
Required
Description
owner
"this_account" | "firstpromoter"
required
`this_account` to track here and stop needing FirstPromoter; `firstpromoter` to hand tracking back to them.
Over MCP the same operation is the tool firstpromoter_set_tracking_owner at https://app.chirply.io/api/mcp, same bearer token, same input.
FirstPromoter status
firstpromoter.statusread
Whether FirstPromoter is connected to this account, which system is currently recording affiliate clicks and signups (FirstPromoter, or this account's own tracking), when this account last read FirstPromoter, whether an import is running right now, and the last few imports with what each one brought across. Reads only — nothing is imported or changed.