API keys
For the MCP server (Claude, Cursor) and for confirming orders from your own server. Keys can't create other keys or request payouts.
New key
| Name | Key | Scopes | Created | Last used |
|---|
Confirm orders from your server (S2S)Set the campaign's conversion source to Server. Save the aj_t query value from the landing URL with the visitor's account or cart, and send it when the order is paid — days later is fine (7-day window). Can't be forged from the browser, unlike the page pixel.
curl -X POST https://api.adjoin.dev/v1/conversions/s2s \
-H "Authorization: Bearer $ADJOIN_KEY" -H "Content-Type: application/json" \
-d '{"click_token":"<aj_t>","order_id":"order_1234","value_micros":49900000}'
# refund / cancel inside the return window
curl -X POST https://api.adjoin.dev/v1/conversions/s2s/refund \
-H "Authorization: Bearer $ADJOIN_KEY" -H "Content-Type: application/json" \
-d '{"campaign_id":"cmp_…","order_id":"order_1234"}'MCP (Claude Desktop, Cursor)Use a key with Read + Write to launch campaigns from chat. The server runs from a clone of the repository (it isn't published to npm yet).
{
"mcpServers": {
"adjoin": {
"command": "node",
"args": ["C:/code/adjoin/apps/mcp-server/src/index.mjs"],
"env": { "ADJOIN_API": "https://api.adjoin.dev", "ADJOIN_API_KEY": "adj_live_…" }
}
}
}