Authentication
Server routes take a server key in Authorization: Bearer. Device routes, such as receipts and the inbox, take the receipt token the installation got when it registered. A few routes are public, such as the plan list and the contract itself. Those carry a No key badge.
Operations
410 operations
Access
| Method | Path | What it does |
|---|---|---|
| GET | /me | Get caller |
| POST | /apps/{id}/keys | Create app key |
| GET | /roles | List roles |
| POST | /roles | Create custom role |
| PUT | /roles/{id} | Update custom role |
| DELETE | /roles/{id} | Delete custom role |
| PUT | /role-assignments | Assign custom role |
| DELETE | /role-assignments/{id} | Remove custom role assignment |
| PUT | /member-app-access | Replace member app access |
| GET | /sessions | List console sessions |
| DELETE | /sessions/{id} | Revoke console session |
Analytics
| Method | Path | What it does |
|---|---|---|
| GET | /apps/{id}/stats | Get app stats |
| GET | /apps/{id}/insights | Get app insights |
| GET | /apps/{id}/revenue | Revenue attributed to the messages that drove it (last touch, opened first, 7 days; journey goals credit their own run) |
| POST | /conversions | Record conversion |
| GET | /apps/{id}/analytics-policy | Get analytics policy |
| PUT | /apps/{id}/analytics-policy | Put analytics policy |
| GET | /apps/{id}/attribution-models | List attribution models |
| POST | /attribution-models | Create attribution model |
| POST | /attribution-models/{id}:publish | Publish attribution model |
| GET | /apps/{id}/reports | List report definitions |
| POST | /reports | Create report definition |
| POST | /reports:run | Run ad hoc report |
| POST | /reports/{id}:run | Run saved report |
| GET | /apps/{id}/report-runs | List report runs |
| GET | /report-runs/{id} | Get report run |
Apps
| Method | Path | What it does |
|---|---|---|
| GET | /projects | List projects |
| POST | /projects | Create project |
| GET | /apps | List apps |
| POST | /apps | Create app |
| GET | /apps/{id} | Get app |
| PATCH | /apps/{id} | Update app |
| POST | /apps/{id}:clone | Clone environment |
Audiences
| Method | Path | What it does |
|---|---|---|
| POST | /subscriptions | Upsert subscription |
| GET | /apps/{id}/topics | List topics |
| POST | /apps/{id}/topics | Upsert topic |
| PUT | /apps/{id}/topics/{key}/members/{user} | Add topic member |
| DELETE | /apps/{id}/topics/{key}/members/{user} | Remove topic member |
| GET | /segments | List segments |
| POST | /segments | Create segment |
| POST | /segments:preview | Preview segment |
| DELETE | /segments/{id} | Delete segment |
| GET | /segments/{id}/members | Who matches the segment at this moment; behaviour rules are evaluated against the events received so far. |
| GET | /segments/{id}/export | CSV of the current members (at most 100,000 rows); requires push:users:export and is audited. |
| GET | /segments/{id}/members/{user} | Check segment member |
| PUT | /segments/{id}/members/{user} | Add segment member |
| DELETE | /segments/{id}/members/{user} | Remove segment member |
Campaigns
| Method | Path | What it does |
|---|---|---|
| GET | /campaigns | List campaigns |
| POST | /campaigns | Create campaign |
| GET | /campaigns/{id} | Get campaign |
| POST | /campaigns/{id}/versions | Create campaign version |
| POST | /campaigns/{id}/versions/{version}:preview | Preview campaign version |
| POST | /campaigns/{id}/versions/{version}:estimate | Estimate campaign version |
| POST | /campaigns/{id}/versions/{version}:request-approval | Request campaign approval |
| POST | /campaigns/{id}/versions/{version}:approve | Approve campaign version |
| POST | /campaigns/{id}/versions/{version}:publish | Publish campaign version |
| POST | /campaigns/{id}:launch | Launch campaign |
| GET | /campaign-runs/{id} | Get campaign run |
| POST | /campaign-runs/{id}:pause | Pause campaign run |
| POST | /campaign-runs/{id}:resume | Resume campaign run |
| POST | /campaign-runs/{id}:cancel | Cancel campaign run |
Channels
| Method | Path | What it does |
|---|---|---|
| GET | /apps/{id}/channel-connectors | List channel connectors |
| POST | /apps/{id}/channel-connectors | Create channel connector |
| DELETE | /channel-connectors/{id} | Disable channel connector |
| POST | /channel-messages | Durably accept an email, SMS, WhatsApp, RCS, collaboration, or custom-channel message |
| GET | /channel-messages/{id} | Get channel message |
| POST | /channel-messages/{id}:receipt | Record channel receipt |
| POST | /channel-connectors/{id}:reset-circuit | Reset connector circuit |
Content
| Method | Path | What it does |
|---|---|---|
| GET | /templates | List templates |
| POST | /templates | Title, body and every content string may use Liquid-style logic: {% if %}/{% elsif %}/{% else %}, {% unless %}, {% case %}, {% for x in list %} with forloop, {% assign %}, {% capture %}, and filters (default, upcase, downcase, capitalize, truncate, money, number, date, plus, minus, times, round, join, size, first, last, sort, where, map, pluralize, replace, append, prepend, url_encode, escape). |
| POST | /templates:render | Render a stored or inline template for one person and locale |
| GET | /apps/{id}/brand-kits | List brand kits |
| POST | /apps/{id}/brand-kits | Create brand kit |
| POST | /brand-kits/{id}/versions | Create brand kit version |
| POST | /brand-kits/{id}/versions/{version}:publish | Publish brand kit version |
| GET | /apps/{id}/media-assets | List media assets |
| POST | /apps/{id}/media-assets | Create media asset |
| GET | /apps/{id}/content-bundles | List content bundles |
| POST | /apps/{id}/content-bundles | Create content bundle |
| POST | /content-bundles/{id}/versions | Create content bundle version |
| PUT | /content-bundles/{id}/versions/{version}/localizations/{locale} | Put content localization |
| POST | /content-bundles/{id}/versions/{version}/localizations/{locale}:approve | Approve content localization |
| POST | /content-bundles/{id}/versions/{version}:publish | Publish content bundle version |
| POST | /content-bundles/{id}:render | Render content bundle |
Data exports
| Method | Path | What it does |
|---|---|---|
| POST | /exports | Create data export |
| GET | /exports/{id} | Get data export |
| GET | /exports/{id}/download | Download data export |
Digests
| Method | Path | What it does |
|---|---|---|
| GET | /apps/{id}/digest-rules | List digest rules |
| POST | /digest-rules | Publish digest rule |
| PUT | /digest-rules/{id}/users/{user}/preference | Put digest preference |
| POST | /digest-items | Enqueue digest item |
| POST | /digest-rules/{id}:preview | Preview digest |
| GET | /digest-batches | List digest batches |
Environments
| Method | Path | What it does |
|---|---|---|
| GET | /apps/{id}/environment-snapshots | List environment snapshots |
| POST | /apps/{id}/environment-snapshots | Create environment snapshot |
| GET | /environment-promotions | List environment promotions |
| POST | /environment-promotions | Request environment promotion |
| POST | /environment-promotions/{id}:approve | Approve environment promotion |
| POST | /environment-promotions/{id}:reject | Reject environment promotion |
Events
| Method | Path | What it does |
|---|---|---|
| GET | /event-destination-kinds | Destination kinds and how each is proven |
| POST | /event-destinations/{id}:test | Run the connection test again |
| PUT | /event-destinations/{id}/configuration | Replace credentials or settings |
| POST | /event-destinations/{id}/backfill | Send history to a destination |
| GET | /event-sources | Inbound Segment and RudderStack sources |
| POST | /event-sources | Create an inbound source |
| POST | /event-sources/{id}:revoke | Revoke a source's write key |
| GET | /stream | Open inbox stream |
| POST | /events | Idempotently ingest a customer event |
| POST | /events:batch | Ingest up to 100 events atomically |
| GET | /event-catalog | The standard event schema (cart.updated, order.placed with items/amount/currency, product.viewed, post.liked, message.received, catalog.price_changed ...) |
| GET | /event-destinations | List event destinations |
| POST | /event-destinations | Create event destination |
| POST | /event-destinations/{id}:pause | Pause event destination |
| POST | /event-destinations/{id}:resume | Resume event destination |
| POST | /event-destinations/{id}:rotate-secret | Rotate event destination secret |
| GET | /event-destinations/{id}/deliveries | List event destination deliveries |
| POST | /event-destinations/{id}/replays | Replay event destination |
| GET | /event-replays | List event replays |
| GET | /apps/{id}/event-stream | List canonical event stream |
| GET | /apps/{id}/event-schemas | List event schemas |
| POST | /event-schemas | Create event schema |
Experiments
| Method | Path | What it does |
|---|---|---|
| GET | /experiments | List experiments |
| POST | /experiments | Create experiment |
| POST | /experiments/{id}:start | Start experiment |
| POST | /experiments/{id}:pause | Pause experiment |
| POST | /experiments/{id}:resume | Resume experiment |
| POST | /experiments/{id}:complete | Complete experiment |
| POST | /experiments/{id}:assign | Assign experiment subject |
| POST | /experiments/{id}/exposures | Record experiment exposure |
| POST | /experiments/{id}/observations | Record experiment observation |
| POST | /experiments/{id}:analyze | Analyze experiment |
| GET | /experiments/{id}/results | Get experiment results |
| POST | /experiments/{id}:request-winner-approval | Request experiment winner approval |
| POST | /experiments/{id}:approve-winner | Approve experiment winner |
In-app
| Method | Path | What it does |
|---|---|---|
| GET | /in-app-experiences | List in app experiences |
| POST | /in-app-experiences | Create in app experience |
| POST | /in-app-experiences/{id}:preview | Preview in app experience |
| POST | /in-app-experiences/{id}:publish | Publish in app experience |
| GET | /in-app-experiences:eligible | List eligible in app experiences |
| POST | /in-app-experiences/{id}/events | Record in app event |
Inbox
| Method | Path | What it does |
|---|---|---|
| GET | /apps/{id}/inbox/feeds | List inbox feeds |
| POST | /apps/{id}/inbox/feeds | Upsert inbox feed |
| GET | /inbox/notifications | List device inbox notifications |
| POST | /inbox/notifications | Create inbox notification |
| POST | /inbox/notifications/{id}:read | Mark inbox read |
| POST | /inbox/notifications/{id}:unread | Mark inbox unread |
| POST | /inbox/notifications/{id}:archive | Archive inbox notification |
| POST | /inbox/notifications/{id}:restore | Restore inbox notification |
| POST | /inbox/notifications/{id}:snooze | Snooze inbox notification |
| POST | /inbox/notifications/{id}:pin | Pin inbox notification |
| POST | /inbox/notifications/{id}:unpin | Unpin inbox notification |
| POST | /inbox/notifications/{id}:save | Save inbox notification |
| POST | /inbox/notifications/{id}:unsave | Unsave inbox notification |
| POST | /inbox/notifications/{id}:delete | Delete inbox notification |
| POST | /inbox/notifications:read-all | Mark all inbox read |
| POST | /inbox/notifications/{id}:action | Perform inbox action |
| POST | /inbox/threads:mute | Mute inbox thread |
| POST | /inbox/threads:unmute | Unmute inbox thread |
| POST | /inbox/objects:follow | Follow inbox object |
| POST | /inbox/objects:unfollow | Unfollow inbox object |
| GET | /inbox/attachments/{id} | Download inbox attachment No key |
Installations
| Method | Path | What it does |
|---|---|---|
| GET | /installations/{id}/remote-config | Fetch this device's configuration |
| POST | /installations/{id}/remote-config | Fetch with a JSON context |
| GET | /apps/{id}/installations | List installations |
| POST | /installations | Register installation No key |
| PATCH | /installations/{id} | Update installation |
| DELETE | /installations/{id} | Revoke installation |
| POST | /installations/{id}:negotiate | Negotiate sdkcapabilities |
| POST | /installations/{id}:rotate-token | Rotate installation token |
| PUT | /installations/{id}/live-tokens | Put live activity token |
| POST | /installations/{id}/live-tokens:revoke | Revoke live activity tokens |
| PUT | /installations/{id}/live-event-subscriptions | Put live event subscription |
| POST | /installations/{id}/live-events | Record live lifecycle event |
| POST | /installations/{id}/sdk-health | Report sdkhealth |
| GET | /installations/{id}/preferences | Get installation preferences |
| PUT | /installations/{id}/preferences/{category} | Put installation preference |
Integrations
| Method | Path | What it does |
|---|---|---|
| POST | /integrations/shopify/connect | Start connecting a Shopify store to a Push app: answers the Shopify approval URL (15 minutes) |
| GET | /integrations/shopify/callback | Shopify's signed OAuth redirect (not called directly) No key |
| POST | /integrations/shopify/webhooks | Shopify webhooks, signed with the app secret (not called directly): orders, checkouts, products, inventory, uninstall and the privacy topics No key |
| GET | /integrations/shopify/connections | A Push app's connected Shopify stores and pending privacy requests (never a token) |
| DELETE | /integrations/shopify/connections/{id} | Disconnect a store: its token is destroyed and its events stop |
| GET | /integrations/shopify/proxy/bolrach-push-sw.js | The service worker a Shopify storefront registers through the app proxy No key |
Journeys
| Method | Path | What it does |
|---|---|---|
| GET | /recipes | One-click journey recipes for shops and social apps, with their parameters and the events they read |
| GET | /apps/{id}/recipes | Which recipes are enabled for an app |
| POST | /apps/{id}/recipes/{key}:enable | Create or update the recipe's journey with these parameters and publish it (idempotent) |
| POST | /apps/{id}/recipes/{key}:disable | Pause the recipe's journey: nobody new enters, people in it finish |
| GET | /apps/{id}/journeys | Journeys of an app with entered, active, completed, exited, goal met, messages and attributed revenue |
| GET | /workflows/{id}/stats | Per-step counts, sends, opens, exit reasons and revenue for one journey |
| GET | /workflows | List workflows |
| POST | /workflows | Upsert workflow |
| GET | /workflows/{id} | Get workflow |
| PATCH | /workflows/{id} | Update workflow |
| DELETE | /workflows/{id} | Archive workflow |
| POST | /workflows/{id}/versions | Create workflow version |
| GET | /workflows/{id}/versions/{version} | Get workflow version |
| POST | /workflows/{id}/versions/{version}:publish | Publish workflow version |
| POST | /workflows/{id}/versions/{version}:request-approval | Request workflow approval |
| POST | /workflows/{id}/versions/{version}:approve | Approve workflow version |
| POST | /workflows/{id}:trigger | Trigger workflow |
| GET | /workflows/{id}/canvas | Get journey canvas |
| PUT | /workflows/{id}/canvas | Save journey canvas |
| POST | /workflows/{id}/canvas:validate | Validate journey canvas |
| POST | /workflows/{id}/canvas:compile | Compile journey canvas |
| POST | /workflows/{id}/canvas:simulate | Simulate journey canvas |
| GET | /workflow-runs/{id} | Get workflow run |
| POST | /workflow-runs/{id}:cancel | Cancel workflow run |
| POST | /workflow-runs/{id}:approve | Approve workflow run |
Limits and usage
| Method | Path | What it does |
|---|---|---|
| GET | /apps/{id}/rate-limit | The app's request allowance |
| GET | /plans | Free and pay as you go: the free allowance of monthly active users, throughput, and what every plan includes No key |
| GET | /plan | This tenant's plan and this month's reach against it |
| GET | /usage | Get usage |
| PUT | /usage-budgets | Put usage budget |
| POST | /usage-budget-alerts/{id}:acknowledge | Acknowledge usage budget alert |
Live notifications
| Method | Path | What it does |
|---|---|---|
| GET | /live-notifications | List live notifications |
| POST | /live-notifications | Start live notification |
| GET | /live-notifications/{id} | Get live notification |
| POST | /live-notifications/{id}:update | Update live notification |
| POST | /live-notifications/{id}:end | End live notification |
| POST | /live-notifications:simulate | Simulate live notification |
| POST | /live-templates | Create live template version |
Messages
| Method | Path | What it does |
|---|---|---|
| GET | /messages | List sent messages with delivery counts |
| POST | /messages | Accept a notification |
| POST | /messages:send | Canonical send alias |
| POST | /messages:send-batch | Validate and durably accept an idempotent batch of up to 100 messages |
| GET | /apps/{id}/recurring-messages | List recurring messages |
| POST | /apps/{id}/recurring-messages | Create an idempotent DST-aware recurring message schedule |
| GET | /recurring-messages/{id} | Get recurring message |
| POST | /recurring-messages/{id}:pause | Pause recurring message |
| POST | /recurring-messages/{id}:resume | Resume recurring message |
| POST | /recurring-messages/{id}:cancel | Cancel recurring message |
| POST | /message-stream-jobs | Create a resumable asynchronous message-ingestion job |
| GET | /message-stream-jobs/{id} | Get message stream job |
| POST | /message-stream-jobs/{id}/batches | Stream a replay-safe batch as JSON or newline-delimited JSON |
| POST | /message-stream-jobs/{id}:complete | Complete message stream job |
| POST | /messages:validate | Validate without dispatch |
| POST | /messages:preview | Persist a deterministic no-provider policy and payload preview |
| POST | /messages:estimate | Persist a deterministic no-provider audience and cost estimate |
| GET | /messages/{id} | Get message |
| POST | /messages/{id}:cancel | Cancel message |
| POST | /messages/{id}:pause | Pause message |
| POST | /messages/{id}:resume | Resume message |
| POST | /messages/{id}:retry | Retry message |
| GET | /messages/{id}/trace | Get message trace |
| GET | /apps/{id}/deliveries | List deliveries |
| POST | /receipts | Record receipt |
| GET | /dead-letters | List dead letters |
| POST | /dead-letters/{id}:replay | Replay dead letter |
| GET | /replay-jobs | List replay jobs |
| GET | /messages/{id}/diagnostics | Download message diagnostics |
Migration
| Method | Path | What it does |
|---|---|---|
| POST | /sources/segment | Segment-compatible ingestion No key |
| POST | /sources/segment/v1/batch | Segment-compatible ingestion (batch) No key |
| POST | /sources/segment/v1/track | Segment-compatible ingestion (track) No key |
| POST | /sources/segment/v1/identify | Segment-compatible ingestion (identify) No key |
| POST | /sources/segment/v1/page | Segment-compatible ingestion (page) No key |
| POST | /sources/segment/v1/screen | Segment-compatible ingestion (screen) No key |
| POST | /sources/segment/v1/group | Segment-compatible ingestion (group) No key |
| POST | /sources/segment/v1/alias | Segment-compatible ingestion (alias) No key |
| POST | /sources/segment/v1/import | Segment-compatible ingestion (import) No key |
| GET | /apps/{id}/migration-sources | List migration sources |
| POST | /apps/{id}/migration-sources | Create migration source |
| POST | /migration-sources/{id}/jobs | Create migration job |
| POST | /migration-jobs/{id}/records:batch | Import migration records |
| POST | /migration-jobs/{id}:complete | Complete migration job |
| GET | /migration-jobs/{id} | Get migration job |
| POST | /shadow:evaluate | Evaluate migration shadow |
| GET | /apps/{id}/shadow-evaluations | List migration shadow evaluations |
| GET | /apps/{id}/dual-run-config | Get dual run config |
| PUT | /apps/{id}/dual-run-config | Put dual run config |
| POST | /apps/{id}/dual-run:rollback | Rollback dual run |
| POST | /apps/{id}/dual-run:readiness | Create dual run readiness |
| POST | /dual-run:route | Assign exactly one delivery owner using a stable deterministic cohort |
| POST | /dual-run-routes/{id}:source-result | Record dual run source result |
| GET | /apps/{id}/dual-run-routes | List dual run routes |
Operations
| Method | Path | What it does |
|---|---|---|
| GET | /health | Get health No key |
| GET | /ready | Get ready No key |
| GET | /openapi.json | Get open api No key |
| GET | /status | Get public status No key |
| GET | /incidents | List incidents |
| GET | /slo-report | Get sloreport |
| GET | /demo | Get push demo No key |
| GET | /demo-sw.js | Get push demo worker No key |
Preferences
| Method | Path | What it does |
|---|---|---|
| GET | /apps/{id}/preference-centre | List immutable preference-centre versions |
| PUT | /apps/{id}/preference-centre | Publish a new immutable hosted and embeddable preference-centre version |
| GET | /apps/{id}/preference-compliance-policy | Get the application evidence-retention policy |
| PUT | /apps/{id}/preference-compliance-policy | Version-fence and update future evidence-retention windows |
| GET | /apps/{id}/preference-legal-holds | List application and recipient legal holds |
| POST | /apps/{id}/preference-legal-holds | Create an application-wide or recipient-scoped legal hold |
| POST | /preference-legal-holds/{id}:release | Release an active legal hold with immutable reason evidence |
| POST | /preference-access-grants/{id}/revoke | Immediately revoke a recipient preference link |
| GET | /preference-centre/state | Load recipient controls through a signed access grant |
| PUT | /preference-centre/state | Atomically update recipient controls with optimistic concurrency |
| POST | /preference-centre/confirm | Apply a separately signed double-opt-in confirmation |
| GET | /preference-centre/export | Download recipient state and append-only consent/access evidence |
Providers and credentials
| Method | Path | What it does |
|---|---|---|
| GET | /apps/{id}/vapid | Get vapid key No key |
| POST | /apps/{id}/vapid/rotate | Rotate vapid key |
| PUT | /apps/{id}/credentials/fcm | Put fcmcredentials |
| DELETE | /apps/{id}/credentials/{provider} | Revoke provider credential |
| PUT | /apps/{id}/credentials/apns | Put apns credentials |
| PUT | /apps/{id}/credentials/hms | Huawei Push Kit credential: AppGallery Connect app id and client secret |
| PUT | /apps/{id}/credentials/adm | Amazon Device Messaging credential: Login with Amazon client id, secret and region |
| GET | /apps/{id}/provider-credentials | List provider credential metadata |
| POST | /provider-credential-changes/{id}:approve | Approve provider credential change |
| GET | /provider-health | List provider health |
| POST | /provider-circuits/{id}:reset | Reset provider circuit |
Routing and attention
| Method | Path | What it does |
|---|---|---|
| GET | /apps/{id}/attention-policies | List attention policies |
| PUT | /apps/{id}/attention-policies | Put attention policy |
| POST | /routing:plan | Explainably choose channel, device, provider, and delivery time |
SDK runtime
| Method | Path | What it does |
|---|---|---|
| GET | /apps/{id}/remote-config | Published template, versions, history and fetch counts |
| POST | /apps/{id}/remote-config/versions | Save a new template version |
| POST | /apps/{id}/remote-config/versions/{version}:publish | Publish a version |
| POST | /apps/{id}/remote-config:rollback | Publish an earlier version again |
| POST | /apps/{id}/remote-config:evaluate | Values for a person or device, explained |
| GET | /apps/{id}/sdk-health | List sdkhealth |
| GET | /apps/{id}/sdk-configuration | List sdkconfiguration |
| POST | /apps/{id}/sdk-configuration/versions | Create sdkconfiguration version |
| POST | /apps/{id}/sdk-configuration/versions/{version}:publish | Publish sdkconfiguration version |
Security and audit
| Method | Path | What it does |
|---|---|---|
| GET | /security-policy | Get tenant security policy |
| PUT | /security-policy | Put tenant security policy |
| GET | /security-alerts | List security alerts |
| POST | /security-alerts/{id}:acknowledge | Acknowledge security alert |
| GET | /support-access | List support access |
| POST | /support-access | Request support access |
| POST | /support-access/{id}:approve | Approve support access |
| POST | /support-access/{id}:revoke | Revoke support access |
| GET | /audit-events | List audit events |
| GET | /audit-events:verify | Verify audit events |
| POST | /audit-events:export | Create audit export |
| GET | /audit-exports/{id}/download | Download audit export |
| GET | /customer-key-configuration | Get customer key configuration |
| PUT | /customer-key-configuration | Put customer key configuration |
Users
| Method | Path | What it does |
|---|---|---|
| POST | /apps/{id}/users/{user}/preference-access-grants | Issue a recipient-bound signed magic link |
| GET | /apps/{id}/identity-verification | Identity verification mode and key ids |
| PATCH | /apps/{id}/identity-verification | Set identity verification to report or required |
| POST | /apps/{id}/identity-keys:rotate | Create a new identity key (secret returned once) |
| POST | /users | Upsert user |
| GET | /apps/{id}/users/{user} | Get user profile |
| PATCH | /apps/{id}/users/{user} | Patch user profile |
| POST | /apps/{id}/users/{user}:forget | Forget user |
| GET | /apps/{id}/users/{user}/export | Export user identity |
| GET | /apps/{id}/users/{user}/aliases | List user aliases |
| POST | /apps/{id}/users/{user}/aliases | Add user alias |
| DELETE | /apps/{id}/user-aliases/{alias} | Remove user alias |
| GET | /apps/{id}/users/{user}/relationships | List user relationships |
| POST | /apps/{id}/users/{user}/relationships | Add user relationship |
| POST | /apps/{id}/user-relationships/{relationship}:end | End user relationship |
| GET | /apps/{id}/users/{user}/identity-events | List user identity events |
| GET | /apps/{id}/users/{user}/devices | Get user device graph |
| POST | /apps/{id}/users/{user}/devices/{installation}:transfer-anonymous-history | Transfer anonymous history |
| POST | /apps/{id}/users/{user}/devices/{installation}:detach | Detach user device |
| POST | /apps/{id}/users/{user}/devices/{installation}:delete | Delete user device |
| GET | /apps/{id}/users/{user}/identity-cluster | Get user identity cluster |
| POST | /apps/{id}/identity-merge-previews | Preview user identity merge |
| POST | /apps/{id}/identity-merges | Execute user identity merge |
| POST | /apps/{id}/identity-split-previews | Preview user identity split |
| POST | /apps/{id}/identity-splits | Execute user identity split |
| GET | /apps/{id}/identity-sync-sources | List identity sync sources |
| POST | /apps/{id}/identity-sync-sources | Create identity sync source |
| GET | /apps/{id}/identity-sync-sources/{source} | Get identity sync source |
| POST | /apps/{id}/identity-sync-sources/{source}:pause | Pause identity sync source |
| POST | /apps/{id}/identity-sync-sources/{source}:resume | Resume identity sync source |
| POST | /apps/{id}/identity-sync-sources/{source}/jobs | Start identity sync job |
| POST | /identity-sync-jobs/{job}/records:batch | Ingest identity sync batch |
| POST | /identity-sync-jobs/{job}:complete | Complete identity sync job |
| GET | /identity-sync-jobs/{job} | Get identity sync job |
| GET | /apps/{id}/identity-sync-sources/{source}/scim/v2/ServiceProviderConfig | Get scimservice provider config |
| GET | /apps/{id}/identity-sync-sources/{source}/scim/v2/Schemas | List scimschemas |
| GET | /apps/{id}/identity-sync-sources/{source}/scim/v2/Schemas/{scim_id} | Get scimschema |
| GET | /apps/{id}/identity-sync-sources/{source}/scim/v2/ResourceTypes | List scimresource types |
| GET | /apps/{id}/identity-sync-sources/{source}/scim/v2/ResourceTypes/{scim_id} | Get scimresource type |
| GET | /apps/{id}/identity-sync-sources/{source}/scim/v2/Users | List scimusers |
| POST | /apps/{id}/identity-sync-sources/{source}/scim/v2/Users | Create scimuser |
| GET | /apps/{id}/identity-sync-sources/{source}/scim/v2/Users/{scim_id} | Get scimuser |
| PUT | /apps/{id}/identity-sync-sources/{source}/scim/v2/Users/{scim_id} | Replace scimuser |
| PATCH | /apps/{id}/identity-sync-sources/{source}/scim/v2/Users/{scim_id} | Patch scimuser |
| DELETE | /apps/{id}/identity-sync-sources/{source}/scim/v2/Users/{scim_id} | Delete scimuser |
| GET | /apps/{id}/identity-sync-sources/{source}/scim/v2/Groups | List scimgroups |
| POST | /apps/{id}/identity-sync-sources/{source}/scim/v2/Groups | Create scimgroup |
| GET | /apps/{id}/identity-sync-sources/{source}/scim/v2/Groups/{scim_id} | Get scimgroup |
| PUT | /apps/{id}/identity-sync-sources/{source}/scim/v2/Groups/{scim_id} | Replace scimgroup |
| PATCH | /apps/{id}/identity-sync-sources/{source}/scim/v2/Groups/{scim_id} | Patch scimgroup |
| DELETE | /apps/{id}/identity-sync-sources/{source}/scim/v2/Groups/{scim_id} | Delete scimgroup |
| GET | /apps/{id}/users/{user}/preferences | Get preferences |
| PUT | /apps/{id}/users/{user}/preferences/{category} | Put preference |
| GET | /apps/{id}/users/{user}/consents | Get consents |
| POST | /apps/{id}/users/{user}/consents | Record consent |
| GET | /apps/{id}/users/{user}/watchers | A person's product watches (price drop, back in stock, wishlist) |
| PUT | /apps/{id}/users/{user}/watchers/{product} | Watch a product for a person |
| DELETE | /apps/{id}/users/{user}/watchers/{product} | Stop watching a product (all kinds, or ?kind=) |
| GET | /apps/{id}/users/{user}/mutes | A person's mutes (group, thread or actor:<id>) |
| PUT | /apps/{id}/users/{user}/mutes/{key} | Mute a group, a thread or one actor for a person, optionally until a time |
| DELETE | /apps/{id}/users/{user}/mutes/{key} | Unmute |
| GET | /apps/{id}/users/{user}/badge | Unread inbox count (a notification group counts once) and the latest groups |
| GET | /apps/{id}/users/{user}/notifications | List inbox notifications |
| GET | /apps/{id}/users/{user}/attention | Get attention ledger |
| GET | /apps/{id}/users/{user}/delivery-profile | Get delivery profile |
| PUT | /apps/{id}/users/{user}/delivery-profile | Put delivery profile |
| PUT | /apps/{id}/users/{user}/destinations/{channel} | Put channel destination |
Webhooks
| Method | Path | What it does |
|---|---|---|
| GET | /webhooks | List webhooks |
| POST | /webhooks | Create webhook |
| DELETE | /webhooks/{id} | Delete webhook |
| POST | /webhooks/{id}/test | Test webhook |
Workspace templates
| Method | Path | What it does |
|---|---|---|
| GET | /workspace-templates | List workspace templates |
| POST | /workspace-templates | Create workspace template |
| GET | /workspace-templates/{id} | Get workspace template |
| POST | /workspace-templates/{id}/versions | Create workspace template version |
| POST | /workspace-template-versions/{id}:request-publication | Request workspace template publication |
| POST | /workspace-template-publication-requests/{id}:approve | Approve workspace template publication |
| POST | /workspace-template-publication-requests/{id}:reject | Reject workspace template publication |
| POST | /workspace-templates/{id}:instantiate | Instantiate workspace template |
| GET | /workspace-template-instantiations | List workspace template instantiations |