Track a share event
Records a social-share event for a fundraiser or profile. Authentication is optional — the sharing user is recorded when a session is present, otherwise the row is anonymous.
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.
Request Body
Responses
Share tracked
Campaign link-preview image
A 1200×630 PNG Open Graph card for the campaign: title, cover, organizer, raised and goal amounts and donor count. Public; served to social crawlers.
Only a campaign anyone may open by link (live, ended or paused; not private; not deleted) has an image. Any other campaign is a 404, the same as an unknown slug, for every caller.
The language comes from ?lang=, else the locale cookie, else Accept-Language, else the original text. Without ?lang= the response varies on Accept-Language, Cookie. Cached for 30 seconds.
Parameters
Path Parameters
Query Parameters
Language to render in. Without it the locale cookie, then Accept-Language, decide.
"en""ru""uk""es"Responses
PNG image
Campaign square share poster
A 1080×1080 PNG for feed posts (Instagram and similar). Same data, language rules, caching and 404 for a campaign that is not readable by link as the link-preview image.
Parameters
Path Parameters
Query Parameters
Language to render in. Without it the locale cookie, then Accept-Language, decide.
"en""ru""uk""es"Responses
PNG image
Campaign story card
A 1080×1920 PNG for Instagram and Facebook Stories. Same data, language rules, caching and 404 for a campaign that is not readable by link as the link-preview image.
Parameters
Path Parameters
Query Parameters
Language to render in. Without it the locale cookie, then Accept-Language, decide.
"en""ru""uk""es"Responses
PNG image
Campaign share kit
The link-preview image, the square poster and the story card in one zip download (<slug>-link.png, <slug>-post.png, <slug>-story.png), as linked from the ambassador endorsement-request email. Same language rules, 30-second caching and 404 for a campaign that is not readable by link as the single images. All three must render, or the call answers 404.
Parameters
Path Parameters
Query Parameters
Language to render in. Without it the locale cookie, then Accept-Language, decide.
"en""ru""uk""es"Responses
Zip archive, sent as an attachment named <slug>-share-kit.zip
Get a campaign's share impact
What sharing has done for this campaign, all-time: human visits that arrived through a shared link, how many came through endorsers' links, and the paid, non-self-referred gifts traced back to a share. Public. A campaign nobody has shared returns zeros. Readable exactly when GET /fundraisers/{id} is: a campaign that is not active, paused or ended, is private, or has been deleted answers 404 to everyone but its owner. Authentication is optional.
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
Share impact (bare object)
Get a campaign's shares per channel
Human clicks through shared links, and the gifts they led to, per share channel, all-time. Every channel is present, with zeros when none. Public. Readable exactly when GET /fundraisers/{id} is: a campaign that is not active, paused or ended, is private, or has been deleted answers 404 to everyone but its owner. Authentication is optional.
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
Per-channel stats (bare object)