Ingest API Reference
The Ingest API is the data collection interface used by game engine plugins and custom integrations to send sessions, events, uploads, bug reports, and demo feedback to Forge Logger.
Want to try it without writing code? Grab the ready-made Postman & Bruno collections.
Base URL
https://ingest.forgelogger.dev
All paths below are relative to this base URL.
Authentication
Every request must include a Logger Token in the Authorization header:
Authorization: Bearer flg_your_token_here
Tokens are scoped to a specific project and environment. Create them in the dashboard under Settings or via the management API.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
POST | /v1/ingest/sessions | Start a new game session |
POST | /v1/ingest/events | Submit telemetry events (single or batch) |
POST | /v1/ingest/uploads | Create a pre-signed upload URL |
POST | /v1/ingest/reports | Submit a bug report |
GET | /v1/ingest/feedback/:linkToken | Get a demo feedback form to render in the game |
POST | /v1/ingest/feedback | Submit a player’s feedback answers |
GET | /health | Health check |
Typical flow
- Start a session — call
/sessionswhen the game launches. Cache the returnedsessionId. - Send events — stream telemetry events to
/eventsduring gameplay. - Upload files — when a bug report needs attachments, create upload targets via
/uploads, then PUT the binary to the pre-signed URL. - Submit a report — send the bug report to
/reportsreferencing the session, events, and uploads.
Enums
These enum values are shared across all ingest endpoints:
| Enum | Values |
|---|---|
| Severity | low, medium, high, critical |
| Reporter type | player, tester, qa, internal, system |
| Attachment type | screenshot, video, save_state, log_bundle, other |
| Build channel | dev, qa, alpha, beta, staging, prod |
| Export provider | github, gitlab, jira, discord, webhook |
Error handling
The API returns standard HTTP status codes:
| Code | Meaning |
|---|---|
200 / 304 | Read succeeded / cached copy is current (GET /feedback/:linkToken with If-None-Match) |
201 | Resource created successfully |
400 | Validation error — check the response body for details |
401 | Missing or malformed Authorization header |
403 | Invalid, expired, or revoked token, or a token without access to this project/environment |
404 | Not found — e.g. a feedback link of another project |
409 | Conflict — e.g. a feedback form that stopped accepting answers, or an unknown form revision |
429 | Rate limited — implement exponential back-off |
500 | Server error — retry with back-off |
Notes
- Idempotency —
POST /reportssupports an optionalclientRequestId(UUID) for idempotent submissions;POST /feedbackrequires one. - Batch events —
POST /eventsaccepts a single object or an array of up to 500 events. - Token prefix — all logger tokens start with
flg_. Dashboard JWT tokens are not accepted.