Skip to main content
Use this endpoint to look up recurring plans you’ve created — either a single plan by ID or a filtered, paginated list. It powers dashboards, billing reports, and any internal tooling that needs visibility into a customer’s subscription state.

Quick Start

List all recurring plans for a merchant:
A successful response returns a data array of plan objects and a pagination object. To fetch one specific plan instead, include planId in the query string.

The Basics

Never call this from the browser. Your API key must stay on the server. Use a backend (Node.js, Python, PHP, etc.) to query plans and pass the results to your frontend.

Required Headers

Merchant API Key (x-api-key): Developers → API Keys.The key must have read access to recurring plans enabled.

Single Plan vs. List

This endpoint operates in two modes, controlled by whether planId is in the query string:
  • List mode — Omit planId. Returns a paginated array of plans matching your filters.
  • Single-plan mode — Provide planId. Returns one plan in the same shape as list mode. Returns 404 if no plan matches.
data is always an array, even when you query a single plan (it’ll contain exactly one element).

Hierarchy ID (Required)

Every request must include exactly one of the following IDs in the query string, scoping the query to a level of your hierarchy: Providing zero or more than one of these returns a 400 error. Which IDs you’re allowed to query depends on your role — see Who Can Query What below.

Who Can Query What

Your API key’s role determines which hierarchy IDs you can use: Trying to query a hierarchy ID you don’t have access to — whether because your role doesn’t allow it or because the specific ID isn’t in your hierarchy — returns a 403 error.
A future “Authentication & Access” guide will document hierarchy rules in full. Until then, treat this section as the canonical reference.

Optional Query Parameters

All filters are optional and can be combined.

Filters

merchantRecurringReference, merchantPayLinkReference, and paymentLinkId are only present on a plan if they were provided at creation. Plans created without them omit the fields entirely.

Pagination & Sorting

Field Selection

Custom Fields

By default, the endpoint returns a curated set of fields depending on whether you’re in list mode or single-plan mode. To request only specific fields, pass fields as a comma-separated list:
Useful for lightweight dashboard queries where you only need a few attributes per plan.
Some fields are restricted to administrators and will be silently omitted if you request them. If every field you request is restricted, the response is a 400 error.

Enums

RecurringPlanStatus

The lifecycle state of a plan, returned in every plan response.

RecurringInterval

Response Shape

The response shape is identical for list mode and single-plan mode — data is always an array of plan objects. Single-plan mode just returns one element.

Example

A query for a single plan, returning the full plan object:

Field Notes

Common Use Cases

Fetch a single plan

List only active plans

List plans charging in the next 7 days

Useful for “upcoming charges” dashboard views. Combine status=active with a nextChargeBefore cutoff:

Paginate through a large set

Page 1, 25 plans per page, oldest first:

Lightweight query with custom fields

When you only need a few attributes per plan:

What’s Next?

Once you’ve found the plan you’re looking for, head to Manage Recurring Plans to pause, cancel, or update it.