Endorsements
Ambassadors publicly vouching for other people's campaigns, and creators asking ambassadors to promote theirs.
List a campaign's endorsers
Who stands behind a campaign: everyone who endorsed it, plus everyone whose share link for it recorded a visit, minus the organizer and profiles set to private. Ordered by impressions (human visits through their link). Authentication is optional; with a session, viewerHasEndorsed says whether the caller is on the list. A deleted campaign returns an empty list.
Authorizations
In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.
Parameters
Path Parameters
The campaign's UUID; anything else answers 400.
"uuid"Responses
Endorsers (unwrapped)
Endorse a campaign
Publicly vouches for a campaign as the signed-in user, with an optional note. Idempotent: endorsing again updates the note and answers 200 with created: false; a new endorsement answers 201 and notifies the campaign owner.
Only public campaigns that are active, paused or ended can be endorsed, and not your own.
Requires permission: endorse_campaigns
Authorizations
In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.
Parameters
Path Parameters
The campaign's UUID; anything else answers 400.
"uuid"Request Body
Responses
Existing endorsement updated
Withdraw an endorsement
Revokes the caller's live endorsement of the campaign and notifies the owner.
Requires permission: endorse_campaigns
Authorizations
In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.
Parameters
Path Parameters
The campaign's UUID; anything else answers 400.
"uuid"Responses
Revoked
List a campaign's endorsement requests
Who the owner has asked to promote the campaign, newest first, and whether each has been emailed yet. Campaign owner only.
Authorizations
In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.
Parameters
Path Parameters
The campaign's UUID; anything else answers 400.
"uuid"Responses
Requests (unwrapped)
Ask ambassadors to promote a campaign
Asks up to 12 ambassadors at once to promote the caller's campaign. Campaign owner only; no special permission is needed. Requires a verified email address.
Ids that are not current ambassadors (and the caller's own id) are dropped and listed in rejected. When the campaign is public and active, the ambassadors are emailed now (status: "sent"); otherwise the requests are queued and sent when the campaign is approved (status: "queued"). Asking the same ambassador again refreshes the request rather than duplicating it.
Authorizations
In the browser, authentication rides on the httpOnly session cookies set by /cognito/signin or the Google / Apple sign-in at /cognito/oauth/{provider}. For scripts and for Swagger UI testing, paste an API key (fh_live_…, created with POST /api-keys); a Cognito JWT is accepted too. Sign-in does not return a token in its body.
Parameters
Path Parameters
The campaign's UUID; anything else answers 400.
"uuid"Request Body
Responses
Requests recorded