Change a creator group's pay
Change what a creator group pays its members: base pay per set, the bonus, the minimum-views threshold, or the note. Moves money: every member whose pay changes has their unpaid cycles repriced right away (paid cycles never change), and repriced says how many. Send only what changes: an omitted field keeps its value, null makes the group stop setting it so members inherit the brand's rule. The bonus is replaced as a whole. A creator's own deal still wins over the group's, and a higher group in the brand's order wins over a lower one. Refused with 409 conflict while a payment is being sent to a member. Full admins only. A preview's changes says which of base pay, bonus, minimum views and note would change; a note alone reprices nobody. With ?dryRun=true nothing is written: the answer adds payImpact (how many creators' group-level pay would change, so their unpaid cycles would be repriced, and for up to 100 of them their group pay before and after; the rates are left out, with payShown: false, unless the token can also read money (Payout settings, cycles and payouts, full admin)) and fails with the same 403, 404 or 409 the real call would.
bearerAuth payouts:writeAuthorizationBearer <token>Personal access token. Scopes: account:read, creator:read, creator:earnings, managed:read, coach:read, brand:read, creators:read, videos:read, analytics:read, onboarding:read, onboarding:signatures, engagement:read, support:read, integrations:read, payouts:read, funds:read, billing:read, groups:write, videos:write, onboarding:write, sync:write, payouts:write.
Scope: payouts:write
brandId*stringA brand id from GET /me or GET /creator/brands.
1 <= lengthgroupId*stringA group id from GET /brands/{brandId}/creator-groups.
1 <= lengthdryRun?string"true": run every check and return { dryRun: true, wouldChange } without changing anything.
"true""false"application/json- body
customBasePay?Base pay per set (pair), US dollars with at most 2 decimals. Send only the rates that change; null = the group stops setting that rate (members inherit the brand's). Per-platform rates apply when the brand pays per platform.
customBonus?||The group's bonus, replaced as a whole. null = the group stops setting a bonus (members inherit the brand's).
minimumViewsThreshold?|Views a set needs before it earns base pay; 0 = no minimum; null = inherit.
note?|A note on the group's pay, up to 500 characters; null clears it.
Success.
application/json- response
customBasePay*Base pay per set (US dollars). Per-platform rates apply when the brand pays per platform; null = not set here, so the next level's rate applies.
customBonus*|The bonus, as a whole; null = not set here.
minimumViewsThreshold*|Views a set needs before it earns base pay; 0 = no minimum; null = not set here.
currency*stringgroup*note*|The admin's note on the group's pay.
setAt*|When the group's pay was last set (ISO-8601); null when it sets none.
brandDefaults*The brand's live rules: what a field left null here inherits (unless a cycle's locked-in rules apply).
members*locked*booleanA payment is in flight for a member, so the group's pay can't be changed right now.
repriced*integerCreators whose unpaid cycles were repriced by this change.
-9007199254740991 <= value <= 9007199254740991curl -X PATCH 'https://example.com/api/v1/brands/string/creator-groups/string/pay' \ -H 'Content-Type: application/json' \ -d '{}'{ "customBasePay": { "uniform": 0, "instagram": 0, "tiktok": 0, "youtube": 0, "facebook": 0 }, "customBonus": { "model": "tiered", "tiers": [ { "viewThreshold": -9007199254740991, "bonus": 0 } ], "linearRatePerThousand": 0, "linearCap": 0 }, "minimumViewsThreshold": -9007199254740991, "currency": "USD", "group": { "id": "string", "name": "string" }, "note": "string", "setAt": "string", "brandDefaults": { "customBasePay": { "uniform": 0, "instagram": 0, "tiktok": 0, "youtube": 0, "facebook": 0 }, "customBonus": { "model": "tiered", "tiers": [ { "viewThreshold": -9007199254740991, "bonus": 0 } ], "linearRatePerThousand": 0, "linearCap": 0 }, "minimumViewsThreshold": -9007199254740991, "payMode": "uniform" }, "members": { "total": -9007199254740991, "withOwnBonus": -9007199254740991, "withOwnBase": -9007199254740991, "withOwnMinimumViews": -9007199254740991, "inHigherGroup": -9007199254740991 }, "locked": true, "repriced": -9007199254740991}A creator group's pay GET
The pay a creator group sets for its members, as in the group's pay dialog on the Creators page: base pay per set (one rate or per platform), a bonus (view tiers or a rate per 1,000 views with an optional cap) and a minimum-views threshold. A null field isn't set by the group, so the brand's rule applies (shown in `brandDefaults`). A creator's own deal wins over their group's; a creator in several pay-setting groups gets each field from the highest group in the brand's group order. Also how many members the group's pay doesn't fully reach, and whether a payment in flight locks it. Change it with brand.group.pay.update.
Create a creator group POST
Create an empty creator group at the end of the brand's group order. A brand can have up to 25 groups. A name already in use answers 409 conflict. Add creators with brand.groups.members.add. A new group sets no pay; set it with brand.group.pay.update.