Skip to content

Limits

All limits apply to every connection. MarsX sets the values. If a value blocks you for a technical reason, write to the technical contact and give the reason.

Size limits are per route, in two layers. MarsX enforces both.

Route Transport cap, answered 413 before authentication Content limit, answered 413 after authentication
PUT /v1/sources/{connection}/files/{file_name} 10 MiB (10,485,760 bytes) 10 MiB on disk, 100 MiB expanded, 10,000 rows, 500 characters for each cell. A file over a limit is rejected whole
Every other path (events, status, token, and any unknown path) 1 MiB (1,048,576 bytes) Events: 32,768 bytes

The transport cap depends only on the route in the URL. A request above it gets the same 413 for a known and for an unknown path, so the answer reveals nothing about which connections exist.

An event with every field filled and a 500-character note is about 4 KB. Standard Webhooks recommends events under 20 kB.

Item Limit
Event requests At or below 100 for each connection in 10 seconds
Status requests At or below 60 for each connection in 60 seconds
How fast MarsX answers MarsX stores each event and answers within 10 seconds
Your request timeout Set 15 to 30 seconds on your side
Clock window webhook-timestamp within 300 seconds of the MarsX clock, in either direction
Retry-After Wait at least this long when the answer carries it
Retries At least 3 days, 10 attempts, with jitter. See the schedule

MarsX may answer any request with 429, 502, 503 or 504. Treat each as a signal to slow down. None of them confirms acceptance.

Item Value
Status and webhook-id de-duplication Kept for 90 days
Replay window of your changes and privacy-events feeds At least 90 days
Key overlap during rotation At most 7 days
OAuth token lifetime for the status call 3600 seconds
OAuth token lifetime for the endpoints you host Between 300 and 86,400 seconds
Daily file One file each working day by 09:00 WIB
File after a privacy request Within 24 hours
Resend of a missing or partial file Within 24 hours of the MarsX notice
Notice for a change to the Lists values 30 days, in writing
Overlap for a breaking change (/v2) At least 90 days, with written notice
Item Value
How often MarsX reads changes and privacy-events Every 15 minutes
MarsX request rate At or below 1 request per second, and it honours Retry-After
Page size MarsX asks for limit=500 and accepts fewer. Your default is at least 100 and your maximum at least 500
Your request budget At least 60 requests per minute for each client on each endpoint
Field Limit
partner_lead_id, request_reference ^[A-Za-z0-9._-]{1,64}$
webhook-id ^[A-Za-z0-9_-]{1,128}$, no full stops
enquiry_notes At most 500 characters
phone Starts with +628
contact_consent The value yes only
phone_verified A boolean in an event (true or false, or null when unknown). Yes or No in a file
source_channel One of eight values: see dropdown labels
Rows in a file At most 10,000
Characters in a file cell At most 500