Skip to main content

Response conventions

The API uses a small number of response shapes. Always branch on the HTTP status code first, then inspect the JSON body for endpoint-specific details.

Status envelopes

Many member-scoped endpoints return:
Some endpoints use a boolean success field:
Treat both shapes as endpoint contracts; do not assume every endpoint uses the same top-level field names.

Pagination

Collection endpoints generally accept page and per_page. per_page is capped by the endpoint, commonly at 100. Laravel-style collection responses include the records in data plus pagination metadata:
Some endpoints wrap that paginator inside a success envelope:
Follow the schema on each endpoint page and stop when next_page_url is null or current_page equals last_page.

Error bodies

Depending on the endpoint, the human-readable message can appear in message, error, or error_message:
Use the field-specific errors object to guide form corrections. Do not show raw server error details to end users.

Common status codes

Plan access denials

Protected v1 requests require the church’s plan to include Platform Integrations, even when the API key and member token are valid. A plan-related 403 includes error_code: "plan_product_unavailable" and plan_access metadata. For example, these fields identify a plan restriction:
Ask the church’s authorized administrator to review the plan and product access. Signing the member in again, rotating credentials, or automatically retrying the same request will not change that entitlement. For other 403 responses, review the endpoint’s permission and resource-context requirements.

Retry guidance

  • Retry 429 and transient 5xx responses with exponential backoff and jitter.
  • Cap retry attempts and set request timeouts.
  • Retry safe reads automatically only when your product can tolerate stale or delayed data.
  • Do not automatically retry registration, signup, or other mutations unless your application can prove the first request did not succeed.
  • Log a request correlation identifier if one is returned, but never log API keys, member tokens, or personal response bodies.