Post

REST API Overview

FICSIT.monitor REST API overview. Base URL, Sanctum authentication, rate limits, JSON response format, and common error codes.

REST API Overview

Overview

FICSIT.monitor exposes a REST API for programmatic access to server metrics, player data, and server management. The API uses Sanctum for authentication (Personal Access Tokens or session cookies).


Base URL

1
https://satisfactory-dashboard.pablohgdev.com/api

All endpoints described in this documentation are relative to this base URL.


Authentication

The API supports two authentication methods:

Personal Access Tokens (PATs)

Include the token in the Authorization header:

1
2
3
curl https://satisfactory-dashboard.pablohgdev.com/api/v1/servers \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json"

Used by the web dashboard. The cookie is set when you log in via POST /api/login. Not suitable for external API clients.


Content Type

All requests with a body must include:

1
Content-Type: application/json

All responses are JSON with Content-Type: application/json.


Rate Limiting

Endpoint groupLimit
Authentication (/register, /login)6 requests/minute
All other endpointsNo hard limit (subject to fair use)

Rate limit responses return HTTP 429 Too Many Requests:

1
2
3
{
  "message": "Too Many Attempts."
}

Response Format

Success

Successful responses return the resource directly:

1
2
3
4
5
6
7
8
9
10
{
  "id": "uuid",
  "name": "My Server",
  "host": "46.224.182.211",
  "api_port": 7777,
  "frm_http_port": 8080,
  "status": "online",
  "last_seen_at": "2026-04-15T12:00:00Z",
  "created_at": "2026-04-01T00:00:00Z"
}

List endpoints return arrays (pagination may apply).

Errors

Errors return a standard format:

1
2
3
4
5
6
{
  "message": "Human-readable error message",
  "errors": {
    "field_name": ["Specific validation error"]
  }
}

HTTP Status Codes

CodeMeaning
200 OKRequest succeeded
201 CreatedResource created successfully
204 No ContentDeletion succeeded
401 UnauthorizedNot authenticated
403 ForbiddenAuthenticated but not authorized for this resource
404 Not FoundResource does not exist
422 Unprocessable EntityValidation failed (or wrong admin password)
429 Too Many RequestsRate limit exceeded
500 Internal Server ErrorServer-side error (check logs)
502 Bad GatewayFICSIT.monitor cannot reach your Satisfactory server

Endpoint Overview

Authentication

MethodPathAuthDescription
POST/registerNoCreate a new user account
POST/loginNoAuthenticate and get session
POST/logoutYesInvalidate session
GET/userYesGet current user

Configuration

MethodPathAuthDescription
GET/v1/config/reverbYesWebSocket connection config for the frontend

Servers

MethodPathAuthDescription
GET/v1/serversYesList all user’s servers
POST/v1/serversYesAdd a new server
GET/v1/servers/{id}YesGet server details
PUT/PATCH/v1/servers/{id}YesUpdate server
DELETE/v1/servers/{id}YesRemove server

Server Metrics

MethodPathAuthDescription
GET/v1/servers/{id}/metrics/latestYesLatest server state
GET/v1/servers/{id}/playersYesPlayer list
GET/v1/servers/{id}/power/latestYesLatest power metrics
GET/v1/servers/{id}/production/latestYesLatest production metrics
GET/v1/servers/{id}/trainsYesTrain list
GET/v1/servers/{id}/dronesYesDrone station list
GET/v1/servers/{id}/generatorsYesGenerator list
GET/v1/servers/{id}/extractorsYesExtractor list
GET/v1/servers/{id}/world-inventoryYesWorld inventory
GET/v1/servers/{id}/resource-sinkYesResource sink data
GET/v1/servers/{id}/dashboardYesFull metrics snapshot

CORS

The API allows requests from the dashboard’s own domain. For external API clients, requests must include the Accept: application/json header to receive JSON error responses instead of HTML redirects.


See Also

This post is licensed under CC BY 4.0 by the author.