AffiLink API

Paths are on the API origin. A single resource is wrapped in data. Lists also return next_cursor when more rows exist. Detail routes use the same path with {id} for products, campaigns, contents, and conversions.

MethodPathWhoWhat it does
GET/api/v1/affilink/meAny keyProduct, role, account id, sub-account id, and display name.
GET/api/v1/affilink/productsAny keyThe brand sees its products. Earners see products from active brands.
GET/api/v1/affilink/campaignsAny keyBrands see their campaigns. Earners see live campaigns, with commission rows and no discount codes.
POST/api/v1/affilink/campaigns/{id}/launchClientDraft to live. Empty body.
POST/api/v1/affilink/campaigns/{id}/pauseClientLive to paused. A default campaign cannot be paused.
GET/api/v1/affilink/contentsAny keyBrands see content on their products. Creators see their own. Influencers see active content they can link.
POST/api/v1/affilink/contents/{id}/submitCreatorDraft with uploaded media becomes approval pending. New files are uploaded in the app.
GET/api/v1/affilink/content_destinationsClientOptional status pending, active, or rejected.
POST/api/v1/affilink/content_destinations/{id}/approveClientApproves one product-page destination. It does not publish the content.
POST/api/v1/affilink/content_destinations/{id}/rejectClientRejects a pending destination.
GET/api/v1/affilink/affilinksInfluencerThe caller’s links, including code, public URL, and earnings.
POST/api/v1/affilink/affilinksInfluencerBody content_id and optional campaign_ids. Each call creates a new link.
GET/api/v1/affilink/walletAny keyINR account balance and this role’s other holdings, such as XP.
GET/api/v1/affilink/conversionsClientOrder and event triggers for the brand. Optional status. No customer contact data.

Earnings on an affilink or a piece of content are realised_earnings, unrealised_earnings, and lost_earnings. Campaign commissions list the active reward rows. See the workflows for the order to call them.