SameOS ~/tools/satisfactory-server-api.md

Satisfactory Dedicated Server HTTPS API Reference

Published 2026-07-26 · SameOS Tools

Since 1.0, the Satisfactory dedicated server ships an official HTTPS API. Save backups, health checks, even console commands can be scripted - well worth knowing if you run your own server. But its structure is quite different from Palworld and most other games, and that difference is where people get stuck first - so this article starts there.

One endpoint, called by function name

Most APIs give each feature its own path; Satisfactory instead has a single endpoint - https://server:7777/api/v1 - that takes a POST with JSON shaped like {"function": "Name", "data": {...}}. The path never changes; only the function value does. It is also always HTTPS: without a certificate of your own the server generates a self-signed one (made by itself rather than a trusted authority - encrypted, but tools will warn), so curl needs -k to skip verification.

Tokens - scripts should use the console command

Privileges are carried by tokens (a key string sent with each request instead of logging in). For interactive use, call PasswordLogin with the admin password to get a short-lived token. For long-running programs like backup scripts, generate a dedicated token with the server console command server.GenerateAPIToken - it does not expire, and server.InvalidateAPITokens revokes all of them at once. Send the token in an Authorization: Bearer header.

The 24 functions, grouped

GroupFunctionsUsed for
Read HealthCheckQueryServerStateGetServerOptionsGetAdvancedGameSettingsEnumerateSessions Liveness, player count & tick health, settings, session list
Auth PasswordLoginPasswordlessLoginVerifyAuthenticationToken Getting tokens (with/without password) and verifying them
Manage RunCommandShutdownApplyServerOptionsApplyAdvancedGameSettingsRenameServerSetClientPasswordSetAdminPasswordSetAutoLoadSessionNameClaimServer Console commands, shutdown, applying settings, names & passwords, initial claim
Saves SaveGameLoadGameCreateNewGameEnumerateSessionsDeleteSaveFileDeleteSaveSessionUploadSaveGameDownloadSaveGame Save, load, new game, and moving save files in or out

In day-to-day operation you will mostly touch HealthCheck (monitoring), QueryServerState (player counts), SaveGame + DownloadSaveGame (backups), and Shutdown (clean restarts). DownloadSaveGame is the gem - an off-server copy of your save is a single API call.

curl examples

# Liveness check (no auth needed; -k accepts the self-signed cert)
curl -k -X POST https://127.0.0.1:7777/api/v1 \
     -H "Content-Type: application/json" \
     -d '{"function": "HealthCheck", "data": {"clientCustomData": ""}}'

# Server state (token from the console command server.GenerateAPIToken)
curl -k -X POST https://127.0.0.1:7777/api/v1 \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"function": "QueryServerState", "data": {}}'

First-time server setup (install, ports, systemd) is covered in the server guide, and there is a production calculator if you need factory math.

Satisfactory Linux server guide Satisfactory factory calculator