Creators

Set a creator's custom rates

Replaces one creator's custom values on the campaign with the given set: per-video and CPM rates, bonus amounts, the fixed salary, caps and the video target, each naming a payout of the campaign spec by id. An empty set resets them, so the creator follows the campaign. Values equal to the campaign's are not kept. New values apply to every unpaid period of the creator at once; paid payouts keep their snapshots.

put/campaigns/{id}/custom-rates/{creatorId}

Request

  • Base URL: https://viral.app/api/v1
  • URL: https://viral.app/api/v1/campaigns/{id}/custom-rates/{creatorId}
  • Auth: API key in header x-api-key

Path parameters

idstring required

Campaign ID with orgcamp_ prefix

Example:orgcamp_RwmraAffhMt9
creatorIdstring required

Organization creator ID with orgcre_ prefix

Request body

previewHashstring

The previewHash the dry-run returned for these values. When present, a write that differs is refused (CUSTOM_RATES_PREVIEW_MISMATCH).

videoTargetinteger nullable

The creator's own video target per cycle, in the campaign's unit (videos or creatives; per-platform campaigns use videoTargetPlatforms). Setting replaces their set (PUT): omitted or null follows the campaign's. Assigning merges: omitted or null keeps what they have, the campaign's own value resets it. A base payout capped at the campaign target is capped at this one instead.

videoTargetPlatformsobject nullable

For a campaign whose video target counts per platform: the creator's own count per platform (only the campaign's platforms; one left out follows the campaign's), with the same replace and merge rules as videoTarget. E.g. {"tiktok": 20}.

Example request

{
  "videoTarget": 8,
  "values": [
    {
      "id": "rule_A1b2C3d4E5f6",
      "field": "perVideo",
      "value": 12
    }
  ]
}

Response

OK

campaignIdstring required

Campaign ID with orgcamp_ prefix

campaignNamestring required
currencystring required
unavailableReasonstring nullable required
hasCustomRatesboolean required

Example response

{
  "campaignId": "orgcamp_RwmraAffhMt9",
  "rows": [
    {
      "countNoun": "creative",
      "group": "Base payout · TikTok",
      "label": "Per video",
      "unitLabel": "per video"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.