Add or remove a Partnership Ads creator
manage_meta_partnership_creatorAdd or remove a creator from Meta Partnership Ads lists (run-as-advert or tag-approval). Confirms actual status via read-back, not the write reply.
Instructions
Add a creator to — or remove one from — this brand’s Partnership Ads lists. Name at least one list: allowAds (whose content this brand may RUN AS AN ADVERT) and/or allowTagging (who may TAG this brand as a paid partner on their own post). NEITHER DEFAULTS ON, because one of them lets somebody attach this brand’s name to their own post. ADDING IS A REQUEST, NOT AN APPROVAL: Meta’s own name for the operation is "send permission request", the creator accepts on their own Instagram account in their own time, and until the read-back reports approved this brand cannot advertise their content. Never tell anyone a partnership is live off the back of this call — report the status the reply carries. THE OUTCOME IS READ BACK OFF META’S OWN LIST, NEVER TAKEN FROM THE WRITE’S REPLY — because Meta answers the ADD with HTTP 500 (code 1, “Please reduce the amount of data you’re asking for”) while performing it, measured 4/4 on 2026-08-25. If this reply carries metaWriteError alongside a successful summary, that error is Meta noise about a write that HAPPENED: do not retry, and do not tell the user it failed. The reply’s verdict is one of applied / already / unchanged / unknown, and unknown means the list could not be re-read — which is not the same as nothing having changed. REMOVING FLIPS A STATUS TO “Canceled”; it does not delete the row. One tool does both lists because Meta removes from them with two DIFFERENT verbs (DELETE on one, a revoke flag on the other) and a caller who assumes one silently does nothing on the other. 0 credits.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | No | Facebook Page id — omit when only one Page is connected | |
| remove | No | revoke instead of add | |
| creator | Yes | the creator’s Instagram @username, or their numeric Instagram account id. The ad-permission list accepts either; the tag-approval list takes numeric ids ONLY, because Meta publishes no username form for its parameter — use instagram_profile to turn the handle into that id. An id that did not come from Meta is rejected with “An unknown error has occurred.” (HTTP 500, code 1), which names no cause and looks like an outage rather than a bad argument. | |
| allowAds | No | the Partnership Ads permission list — whose content this brand may run as an advert | |
| creatorIds | No | for `allowTagging`, which accepts several NUMERIC ids at once. A handle here is refused by name rather than sent and rejected by Meta — run instagram_profile on each handle first and pass the ids it returns. | |
| allowTagging | No | the tag-approval list — who may tag this brand as a paid partner on their own organic post |