Skip to content
meruma Developers

Developers · Get started

Limits and errors

How many requests you can make, how pagination works, how to retry without duplicates and how to read an error.

Limits

What Limit
Requests per minute, per organization 120
Requests per day, per organization 10,000
Private apps per organization 5
Webhooks per organization 20
Request size 256 KB

Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset. Over the limit, the response is 429 with Retry-After: wait that many seconds and try again.

Lists and pagination

Lists that grow with use (contacts, cards, notes) return 25 per page by default, up to 100 with limit. To continue, send the response’s nextCursor as cursor:

{
  "data": [ … ],
  "nextCursor": "MjAyNi0xMS0xMFQxNTowNDowNS4xMjNafDBiOGYz…"
}

No nextCursor means you reached the end. Lists that are small by nature (pipelines, users, custom fields) come complete in data.

Retry without duplicates

Send the Idempotency-Key header on POST requests that create something. If you repeat the same request with the same key, you get the same response and nothing is created twice: useful when you don’t know whether the first attempt went through. Keys last 24 hours.

curl -X POST https://api.meruma.app/v1/contacts/upsert \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Idempotency-Key: 7f9c0d2e-order-1043" \
  -H "Content-Type: application/json" \
  -d '{"name":"John Smith","email":"john@company.com"}'

Errors

Error responses use application/problem+json, with a stable code for your code and a title for people:

{
  "type": "about:blank",
  "title": "Name is required.",
  "status": 400,
  "code": "INVALID_BODY",
  "detail": "Field: name."
}

Some common codes: INVALID_BODY, NOT_FOUND, INSUFFICIENT_SCOPE and INVALID_TOKEN. An id from another organization always returns 404: the API never reveals whether it exists elsewhere.

Reviewed on