Skip to content

Notifications​

In-app notifications for the authenticated user. Which events also generate email is governed by the toggles on /users/{id}/preferences, not by anything under /notifications.


List notifications​

GET
/notifications

Returns the authenticated user's notifications, newest first, together with the unread count. The count always excludes archived rows, even when archived=true is requested.
There is no offset pagination here — raise limit (max 100) to see further back.

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)

Parameters​

Query Parameters

limit
Type
integer
Default
20
Maximum
100
archived

Pass "true" to return archived notifications instead of the active ones. Any other value returns the active ones.

Type
string
Valid values
"true""false"

Responses​

Notifications payload

application/json
JSON
{
"notifications": [
],
"unreadCount": 0,
"updatesUnreadCount": 0
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Delete notifications​

DELETE
/notifications

Permanently deletes the given notifications for the authenticated user.

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)

Request Body​

application/json
JSON
{
"ids": [
"string"
]
}

Responses​

Deletion result

application/json
JSON
{
"success": true,
"deleted": 0
}

Playground​

Server
Authorization
Body

Samples​


Mark notifications as read​

PATCH
/notifications/mark-read

Marks the given notification ids as read for the authenticated user.

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)

Request Body​

application/json
JSON
{
"ids": [
"string"
]
}

Responses​

Update result

application/json
JSON
{
"success": true,
"updated": 0
}

Playground​

Server
Authorization
Body

Samples​


Mark all notifications as read​

PUT
/notifications/read-all

Marks all of the authenticated user's notifications as read.

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)

Responses​

Update result

application/json
JSON
{
"success": true,
"updated": 0
}

Playground​

Server
Authorization

Samples​


Mark one notification as read​

PUT
/notifications/{id}/read

Marks a single notification as read for the authenticated user.

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)

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Update result

application/json
JSON
{
"success": true,
"updated": 0
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Archive notifications​

PATCH
/notifications/archive

Archives the given notification ids for the authenticated user.

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)

Request Body​

application/json
JSON
{
"ids": [
"string"
]
}

Responses​

Archive result

application/json
JSON
{
"success": true,
"archived": 0
}

Playground​

Server
Authorization
Body

Samples​


List my campaign updates​

GET
/me/campaign-updates

Updates posted on campaigns the authenticated user is connected to, newest first, each with its read state, plus the unread count. Read state is kept on the server, so it is the same on every device.
A campaign is included when the user follows its holder — the person running a personal campaign, or the organization an org campaign belongs to — and the campaign is public and active or ended; or when the user has a paid gift to it and it is active, ended or paused and not private (an unlisted campaign a donor holds the link to is included). The user's own campaigns and own updates are never included, nor deleted campaigns or withdrawn updates.
An update posted before the user started following or first gave is returned with is_read: true and never counts as unread.
Paged by an opaque keyset cursor: pass next_cursor back as cursor until it is null.

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)

Parameters​

Query Parameters

limit
Type
integer
Default
20
Minimum
1
Maximum
50
cursor

The next_cursor of the previous page. A cursor this API did not mint is a 400.

Type
string
lang

Overlay translations into this locale, as GET /projects/{fundraiserId}/updates does.

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

Responses​

One page of the feed

application/json
JSON
{
"data": [
],
"next_cursor": "string",
"unread_count": 0
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Mark all my campaign updates as read​

PUT
/me/campaign-updates/read-all

Marks every unread update in the user's feed read. With until, only updates posted at or before that instant (inclusive to the millisecond), so clearing the list a client is showing does not also clear an update that arrived after it was fetched.

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)

Request Body​

application/json
JSON
{
"until": "string"
}

Responses​

Update result and the new unread count

application/json
JSON
{
"success": true,
"updated": 0,
"unread_count": 0
}

Playground​

Server
Authorization
Body

Samples​


Mark one campaign update as read​

PUT
/me/campaign-updates/{updateId}/read

Marks one update read for the authenticated user. Idempotent: an update already read answers updated: 0 and keeps its first read_at. Any existing, non-withdrawn update may be marked, whether or not it is in the user's feed, so a client can mark an update read wherever it was opened. There is no "mark unread", as for notifications.

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)

Parameters​

Path Parameters

updateId*
Type
string
Required
Format
"uuid"

Responses​

Update result and the new unread count

application/json
JSON
{
"success": true,
"updated": 0,
"unread_count": 0
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Powered by VitePress OpenAPI

Built with VitePress