Pagination

Mailrith uses cursor pagination across list endpoints so integrations can resume large syncs safely without depending on internal numeric paging.

3 min read

Use cursor pagination

List endpoints return a pagination block with has_more and next_cursor.

Treat next_cursor as an opaque value and pass it back as starting_after on the next request.

Pagination is consistent across list endpoints such as subscribers, tags, custom fields, forms, and segments.

Paginated list request
curl "https://api.mailrith.com/v1/subscribers?limit=50&starting_after=subscriber_123" \
  -H "Authorization: Bearer mrk_example_secret_key"
Paginated response
{
  "data": [],
  "pagination": {
    "has_more": true,
    "next_cursor": "subscriber_456"
  }
}

Apply the same pattern across resources

The request contract stays deliberately boring: limit controls page size and starting_after continues from the next cursor.

Persist the last cursor you processed if you are building a scheduled sync and need resumable reads.

GET /v1/subscribers

List subscribers

Returns subscribers in the authenticated workspace, ordered from newest to oldest.

View schema
POST /v1/subscribers

Create or upsert a subscriber

Creates a new subscriber when the email does not exist in the workspace. If the email already exists, the existing subscriber is updated instead.

View schema
GET /v1/tags

List tags

Returns tags in the authenticated workspace.

View schema
POST /v1/tags

Create a tag

Creates a new tag in the authenticated workspace.

View schema
GET /v1/custom-fields

List custom fields

Returns custom fields available to the authenticated workspace.

View schema
GET /v1/forms

List forms

Returns forms in the authenticated workspace.

View schema
POST /v1/forms

Create a form

Creates a form in the authenticated workspace.

View schema
GET /v1/forms/{form_id}

Get a form

Returns a form in the authenticated workspace.

View schema
PUT /v1/forms/{form_id}

Update a form

Updates an existing form in place.

View schema
DELETE /v1/forms/{form_id}

Delete a form

Deletes a form from the authenticated workspace.

View schema
GET /v1/segments

List segments

Returns saved segments in the authenticated workspace.

View schema
POST /v1/segments/preview

Preview a segment definition

Returns subscriber counts for an unsaved audience definition.

View schema

Need help shipping an integration?

Reach the Mailrith team if you need help planning a sync, validating a webhook flow, or troubleshooting a request.

Contact Mailrith

Related guides

On this page

Jump to the section you need.