Activity Messenger Help Center

API introduction

Use the Activity Messenger API from your server to connect organization data or publish website content. Start here for connection details and shared conventions, then choose a resource reference below.

Authentication and base URL

Send all requests to https://activitymessenger.com/api/v1/organization/{organization}. Replace {organization} with the numeric organization ID. A website’s custom domain is not the API host.

Obtain your organization API key from E-Commerce → API & IFRAME. Send it in the X-Activity-Messenger-Api-Key HTTP header. Keep it in server-side secret storage; do not embed it in browser JavaScript, URLs, or public repositories. Send Accept: application/json; for JSON request bodies, also send Content-Type: application/json. File uploads use multipart form data instead.

The general organization API also accepts configured network and account keys. The Website API requires the key of the organization in the URL, with websites enabled. That key can access all websites owned by the organization and is not read-only.

Make a first request

Read organization information with GET /api/v1/organization/{organization} and the headers above. Resource references show HTTP methods and paths; replace placeholders with the IDs returned by the API. IDs, external page keys, slugs, and membership numbers are distinct identifiers: use the identifier documented for each endpoint.

Pagination

Pagination depends on the endpoint; do not assume every collection has the same response shape.

  • Optional pagination: users, members, forms, form tags, classes, and class tags return an array of at most 50 items when neither page nor per_page is supplied. Supply either parameter to receive a paginator with data, current_page, next_page_url, and totals. The default is 50 items; the maximum is 250.
  • Published messages and templates: always paginated, with 10 items per page by default. Set per_page and page as needed.
  • Form respondents: always simple pagination; default 50, maximum 250. There is no total, last_page, or last_page_url.
  • Website lists: websites, pages, and assets always use simple pagination at a fixed 50 items per page. Use page; per_page does not change the page size. There are no totals.
  • Other collections: products, product tags, and booking packages return arrays. Calendar events use date-range filters. See the resource reference before adding pagination parameters.

For paginated responses, process data and stop when next_page_url is null. Retain the original filters and page size on subsequent requests; returned links may not repeat every query parameter. Send authentication on every request. Avoid logging the key or sensitive response data.

Rate limits and retries

The application API is configured for 240 requests per minute. Website routes also apply a 60-request-per-minute throttle. These are shared limits, not independent allowances per endpoint or organization key. Ordinary API-key requests are throttled by the caller’s IP address; integrations behind the same outbound address can share capacity.

Inspect X-RateLimit-Limit and X-RateLimit-Remaining when present. On HTTP 429, wait at least the number of seconds in Retry-After before retrying. Reduce concurrency and use bounded retries with backoff for temporary failures. Do not repeatedly retry authentication or validation errors.

Do not blindly retry writes after a timeout: the operation may already have succeeded. Website revision staging and publication have documented idempotency guarantees; other mutations do not share that guarantee. Read the resulting state before deciding whether to repeat a write.

Responses and errors

Successful calls return endpoint-specific JSON: an object, array, or paginator. Check the HTTP status before processing the body. Do not assume every error uses the same envelope; older organization endpoints can return a JSON string or null.

  • 401: missing or invalid API credentials. Check the key and the target organization.
  • 404: resource unavailable or inaccessible. Check IDs and ownership; Website access also requires the feature to be enabled.
  • 409: a Website revision or redirect baseline is stale. Read the current state, reconcile the change, and review a new request.
  • 413: the request is too large. Website document requests have a 2 MB limit; image upload limits are documented separately.
  • 422: invalid input or an unsupported operation. Validation responses may include message and field-level errors; correct the request before retrying.
  • 429: rate limit reached. Honor Retry-After.

Dates, filters, and updates

Use the formats documented for each parameter. A timestamp ending in Z is UTC; a business-date filter such as YYYY-MM-DD is not a UTC instant. Follow the endpoint’s organization-timezone and date-boundary rules. Array filters use brackets such as tags[]=swimming. Preserve the distinction between omitted fields, null, and empty arrays, especially when replacing content or attendance.

Organization API references

Website API references

Endpoint index

Every endpoint documented in these references. Organization API paths are relative to https://activitymessenger.com; Website API paths are relative to /api/v1/organization/{organization}/websites/{website} unless shown in full.

Method Path Reference
GET /api/v1/organization/{organization} Organization and network
GET /api/v1/organization/{organization}/network Organization and network
GET /api/v1/organization/{organization}/users Staff and permissions
GET /api/v1/organization/{organization}/users/{user} Staff and permissions
POST /api/v1/organization/{organization}/users Staff and permissions
PUT /api/v1/organization/{organization}/users/{user} Staff and permissions
DELETE /api/v1/organization/{organization}/users/{user} Staff and permissions
GET /api/v1/organization/{organization}/members Members and check-ins
GET /api/v1/organization/{organization}/members/{member} Members and check-ins
POST /api/v1/organization/{organization}/members/{member}/checkin Members and check-ins
GET /api/v1/organization/{organization}/forms Forms and respondent exports
GET /api/v1/organization/{organization}/form_tags Forms and respondent exports
GET /api/v1/organization/{organization}/forms/{form} Forms and respondent exports
POST /api/v1/organization/{organization}/forms/{form}/submit Forms and respondent exports
GET /api/v1/organization/{organization}/forms/{form}/respondents Forms and respondent exports
GET /api/v1/organization/{organization}/forms/{form}/respondents/parameters Forms and respondent exports
GET /api/v1/organization/{organization}/classes Classes and calendars
GET /api/v1/organization/{organization}/classes/{class} Classes and calendars
POST /api/v1/organization/{organization}/classes Classes and calendars
PUT /api/v1/organization/{organization}/classes/{class} Classes and calendars
DELETE /api/v1/organization/{organization}/classes/{class} Classes and calendars
GET /api/v1/organization/{organization}/class_tags Classes and calendars
GET /api/v1/organization/{organization}/class_categories Classes and calendars
GET /api/v1/organization/{organization}/class_events Classes and calendars
GET /api/v1/organization/{organization}/classes/{class}/attendance Attendance
PUT /api/v1/organization/{organization}/classes/{class}/attendance Attendance
PATCH /api/v1/organization/{organization}/classes/{class}/attendance Attendance
GET /api/v1/organization/{organization}/package_categories Booking packages
GET /api/v1/organization/{organization}/packages Booking packages
GET /api/v1/organization/{organization}/package_categories/{package_category}/packages Booking packages
GET /api/v1/organization/{organization}/products Products
GET /api/v1/organization/{organization}/product_tags Products
GET /api/v1/organization/{organization}/published_messages Published messages and templates
GET /api/v1/organization/{organization}/published_templates Published messages and templates
GET /api/v1/organization/{organization}/websites Publish pages
GET / Publish pages
GET /component-schema Publish pages
GET /pages Publish pages
POST /pages Publish pages
GET /pages/{page} Publish pages
PUT /pages/{page}/document Publish pages
DELETE /pages/{page} Publish pages
GET /page-keys Publish pages
GET /page-keys/{key} Publish pages
POST /revisions Publish pages
GET /revisions/{revision} Publish pages
POST /revisions/{revision}/publish Publish pages
GET /assets Assets, shared sections, and redirects
POST /assets Assets, shared sections, and redirects
GET /shared-section-keys/{key} Assets, shared sections, and redirects
POST /shared-sections/revisions Assets, shared sections, and redirects
GET /redirects Assets, shared sections, and redirects
PUT /redirects Assets, shared sections, and redirects