Skip to main content
Learn the conventions the Zenamu API uses across every endpoint: how you authenticate, how responses are shaped, and how dates, filters, and errors work.

Conventions

The base URL is https://api.zenamu.com. The API follows REST conventions: resources are read with GET, filtered by query parameters, and modified with POST and a JSON body. Requests and responses are JSON.
  • HTTPS only
  • Paths are versioned: /v1/classes, /v1/clients
  • Resource paths use plural nouns

Two tiers of access

Endpoints split into two groups by the key they accept. Read the authentication guide.

Response envelope

Every successful response has the same three keys. The payload is always under data — an array for list endpoints, an object for the credit and pass endpoints.
Errors replace data with error and a human-readable message. Read the errors guide.

IDs

Two kinds of ID appear in responses, and they are not interchangeable. _id is an opaque string. Classes, workshops, lecturers, and places are identified this way. Treat it as a string, store it as given, and never parse or increment it. id is a sequential integer. Clients, pass groups, and tags use it, and it is the value the write endpoints and the filter parameters expect.
A class carries _id only; a client carries both id and _id. When granting credits or passes, always send the client’s numeric id.

Dates and time zones

Read the dates guide. Date-only fields use YYYY-MM-DD. Events carry their start and end three times over — in UTC, in the studio’s local time with an offset, and as an IANA timezone name — so you never have to guess which zone a timestamp is in.

Pagination

Read the pagination guide. The schedule endpoints accept limit and offset. Omit them and you get every event in the requested date range.

Filtering

Read the filtering guide. Filters take comma-separated numeric IDs, for example lecturerIds=5,10. Each endpoint documents the filters it supports.

Plans and access

The check runs on every request, so a downgrade takes effect immediately even though the keys keep working, and restoring the plan restores access without regenerating anything. If Zenamu cannot determine a studio’s plan, the request is denied with 403 rather than allowed.

Rate limits

Read the rate limits guide. 100 requests per minute, per endpoint.

Errors

Read the errors guide and the status codes.

Objects

Class

A class or one session of a course.

Workshop

A standalone event with its own address.

Lecturer

A lecturer profile.

Place

A physical location.

Client

A studio client with balances and history.

Pass group

A category of entry passes.

Pricing option

One way to pay for an event.