HTTP API
Send events and publish maps from any server.
The SDK uses this API for you. Call it directly from any server if you are not using Roblox.
Send events
curl -X POST https://api.rostructure.com/v1/events/batch \
-H "X-Project-Id: my_game" \
-H "X-Ingestion-Key: $KEY" \
-H "Content-Type: application/json" \
-d '{"events":[{ ...event... }]}'{ "accepted": 1, "duplicates": 0, "rejected": [] }- Invalid events are rejected individually with
issuesand the rest are stored. A malformed body is rejected whole. - Events are identified by
(projectId, eventId). Sending one again is safe: it is counted as a duplicate and not stored twice. - Every event
projectIdmust matchX-Project-Id.
Status codes
| Status | Meaning | What the SDK does |
|---|---|---|
| 202 | Accepted | Done |
| 400 | Malformed body or envelope | Drops the batch |
| 401 | Missing or invalid key | Pauses sending for 5 minutes |
| 413 | Body over 256 KiB or more than 100 events | Drops the batch |
| 429 | Rate limited (honours Retry-After) | Retries with backoff |
| 5xx / network | Temporary failure | Retries with backoff |
Map exports
PUT /v1/maps publishes a map, or a chunked manifest, for a project, place and build. PUT /v1/maps/chunks uploads chunks with the same headers. A map is frozen once events reference its build; publish a corrected map under a new buildId.