Version
GET

List the caller's notifications

/v1/me/notifications in the Notifications API.

curl "https://api.subscriby.net/v1/me/notifications?unread=1&class=support" \  -H "Authorization: Bearer $SUBSCRIBY_TOKEN"

Newest first, paginated with page and per_page like every list. unread=1 narrows to entries not yet read (unread=0 to the ones already read); class narrows to one class; q to entries whose title or body contains the words.

  • class is the alert class the creator routes on Settings → Notifications: sales, support, recovery, billing, security, passes or onboarding; class_label is its name in the creator's language.
  • title and body are the alert's heading and one sentence of context, the same words the email used, in the creator's language at the time it was sent.
  • route and params name the dashboard screen the entry opens, as a named route and its parameters, for a client that maps routes to screens; url is the same place resolved, for a client that does not. All three are null when the alert points nowhere.
  • read is whether the creator opened it; read_at says when.

Every creator alert is written to the notification centre beside whatever else it sends (the email, the message on a connected account the creator routed it to on Settings → Notifications). The entry is shaped from the alert's email: its subject becomes the title, its first line the body, its call to action the route and URL. There is no webhook for a new entry; the alerts that matter to an integration already fire their own events (recovery.*, connector.*, support.*), and a Zap that wants the inbox itself polls the notification_received trigger.

GET
/v1/me/notifications

Requires ability

The token must hold this ability, or the call is refused with 403.

Runs the same action from an agent, behind the same ability.

Authorization

bearerToken
AuthorizationBearer <token>

A personal access token minted on the dashboard under Settings, then Tokens, sent as Authorization: Bearer sbt_live_…. The token carries the abilities each endpoint lists under Requires ability and is frozen to one team.

In: header

Query Parameters

unread?|

1 narrows to entries not yet read, 0 to the ones already read; omit it for both.

class?|

Narrow to one alert class: sales, support, recovery, billing, security, passes or onboarding. An unknown class is refused.

q?|

Words the title or body must contain, up to 120 characters.

Lengthlength <= 120
page?integer

The 1-based page to return. A page past the last answers an empty data array with meta.total still filled, so a loop can stop without guessing.

Range1 <= value
Default1
per_page?integer

Rows per page, 1 to 100. A higher value clamps to the cap silently. Defaults to 15.

Range1 <= value <= 100
Default15
sort_by?string

The column to order by. Defaults to created_at; a column the endpoint does not offer falls back to the default rather than failing.

Default"created_at"
sort_direction?string

asc or desc. Defaults to desc.

Default"desc"

Value in

  • "asc"
  • "desc"

Responses

200OK

The page, newest first.

401Unauthorized

The request carries no bearer token, or one that is revoked, malformed, or minted for another environment (an sbt_test_ token on production).

403Forbidden

The token is valid but does not carry the ability this endpoint requires; error.context.required_ability names the one to grant. An endpoint that also checks who owns a row or which tier the account is on answers FORBIDDEN, TEAM_TIER_REQUIRED or CONNECTOR_TIER_REQUIRED with the same status, and says so in its own description.

422Validation failed

The payload broke a rule, and error.fields maps each offending key to its messages. A refusal from the domain, such as a plan that cannot go on sale or a member who cannot be removed, uses the same code with error.message saying why and no fields. On this endpoint: VALIDATION_FAILED: when class is not one of the seven classes.

429Too many requests

The token has spent its 300 requests a minute or 10,000 an hour; Retry-After says when the next one is accepted.

How is this guide?

Last updated on