Skip to content

Shares​

Social-share event tracking


Track a share event​

POST
/shares

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​

BearerAuth

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.

Type
HTTP (bearer)
or

Request Body​

application/json
JSON
{
"entity_type": "string",
"entity_id": "string",
"platform": "string"
}

Responses​

Share tracked

application/json
JSON
{
"success": true,
"message": "string"
}

Playground​

Server
Authorization
Body

Samples​


Campaign link-preview image​

GET
/fundraisers/slug/{slug}/og-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

slug*
Type
string
Required

Query Parameters

lang

Language to render in. Without it the locale cookie, then Accept-Language, decide.

Type
string
Valid values
"en""ru""uk""es"

Responses​

PNG image

image/png

Playground​

Server
Variables
Key
Value

Samples​


Campaign square share poster​

GET
/fundraisers/slug/{slug}/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

slug*
Type
string
Required

Query Parameters

lang

Language to render in. Without it the locale cookie, then Accept-Language, decide.

Type
string
Valid values
"en""ru""uk""es"

Responses​

PNG image

image/png

Playground​

Server
Variables
Key
Value

Samples​


Campaign story card​

GET
/fundraisers/slug/{slug}/share-story

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

slug*
Type
string
Required

Query Parameters

lang

Language to render in. Without it the locale cookie, then Accept-Language, decide.

Type
string
Valid values
"en""ru""uk""es"

Responses​

PNG image

image/png

Playground​

Server
Variables
Key
Value

Samples​


Campaign share kit​

GET
/fundraisers/slug/{slug}/share-kit.zip

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

slug*
Type
string
Required

Query Parameters

lang

Language to render in. Without it the locale cookie, then Accept-Language, decide.

Type
string
Valid values
"en""ru""uk""es"

Responses​

Zip archive, sent as an attachment named <slug>-share-kit.zip

application/zip

Playground​

Server
Variables
Key
Value

Samples​


Get a campaign's share impact​

GET
/fundraisers/{id}/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​

BearerAuth

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.

Type
HTTP (bearer)
or

Parameters​

Path Parameters

id*

The campaign's UUID; anything else answers 400.

Type
string
Required
Format
"uuid"

Responses​

Share impact (bare object)

application/json
JSON
{
"impressions": 0,
"viaEndorsers": 0,
"gifts": 0,
"donors": 0,
"value": 0,
"currencies": [
"string"
]
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Get a campaign's shares per channel​

GET
/fundraisers/{id}/share-channels

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​

BearerAuth

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.

Type
HTTP (bearer)
or

Parameters​

Path Parameters

id*

The campaign's UUID; anything else answers 400.

Type
string
Required
Format
"uuid"

Responses​

Per-channel stats (bare object)

application/json
JSON
{
"total": "string",
"channels": {
"additionalProperties": "string"
},
"unattributed": "string"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Powered by VitePress OpenAPI

Built with VitePress