API ReferenceLogs
Ingest a log entry
Ingest a structured log entry with optional metadata.
Requires logs:write scope.
Coming soon. This endpoint is not yet available.
Authorization
bearerAuth logs:writeAuthorizationBearer <token>
API token from your dashboard.
Format: so_live_... (production) or so_test_... (test mode).
Tokens carry one or more scopes. Request only the scopes your integration needs:
| Scope | Grants |
|---|---|
media:read | List and retrieve files |
media:write | Upload and delete files |
logs:read | Read log entries |
logs:write | Ingest log entries |
cases:read | Read cases |
cases:write | Create and update cases |
apps:read | Read apps |
apps:write | Submit apps |
usage:read | Read quota usage |
members:read | List organisation members |
members:write | Invite and remove members |
billing:read | Read billing and subscription info |
tokens:write | Create and revoke API tokens |
In: header
Scope: logs:write
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/logs" \ -H "Content-Type: application/json" \ -d '{ "level": "info", "message": "Player connected", "meta": { "player_id": "steam:110000112345678", "server_id": "main-1" } }'{
"id": "string",
"level": "debug",
"message": "string",
"meta": {},
"created_at": "2019-08-24T14:15:22Z"
}{
"error": {
"code": "bad_request",
"message": "missing required field"
}
}{
"error": {
"code": "unauthorized",
"message": "missing or invalid authorization token"
}
}{
"error": {
"code": "forbidden",
"message": "token does not have the required scope"
}
}{
"error": {
"code": "quota_exceeded",
"message": "tier quota exceeded for storage_bytes",
"metric": "storage_bytes",
"quotas": [
{
"metric": "storage_bytes",
"used": 10737418240,
"limit": 10737418240,
"cumulative": true
}
]
}
}{
"error": {
"code": "internal",
"message": "an unexpected error occurred"
}
}