Skip to main content
Every Octop API call — except /api/health, /api/setup/*, and the OpenAPI schema — requires a JWT access token. Obtain the token by logging in with your credentials, then include it in the Authorization header of every subsequent request. Tokens expire after 24 hours by default; re-login to get a fresh one.
First-run credentials depend on how you installed Octop. After a bare-metal octop init / setup wizard, open ~/octop-login.txt for the one-time setup password, then sign in with the admin username and password you created. After Docker first boot, sign in as admin / Octop123 (also written to /data/.octop/credential.txt) unless you set OCTOP_ADMIN_USERNAME / OCTOP_DEFAULT_PASSWORD. Use those credentials for API login.

Log in and get a token

1

POST your credentials

Send your username and password to the login endpoint:
2

Extract the access token

The response body contains your JWT token along with your role and user details:
3

Pass the token in the Authorization header

Include the token as a Bearer credential on every subsequent request:

Login request fields

string
required
The account username you created during the setup wizard (or later via user management).
string
required
The account password you set during the setup wizard (or later via password reset).

Login response fields

string
A signed JWT token. Include this value as Bearer <access_token> in the Authorization header.
string
The account’s role. Either "admin" or "user".
object
Basic profile information for the authenticated account.

Token expiry

Tokens expire after 24 hours by default. Control this with the OCTOP_ACCESS_TOKEN_TTL environment variable (value in seconds). When a token expires, re-call POST /api/auth/login to obtain a fresh one.
Rotating the JWT secret via octop admin rotate-jwt-secret immediately invalidates all outstanding tokens. Every user must re-login after a rotation.

Get current user info

Retrieve the profile of the currently authenticated user:
The response includes id, username, role, display_name, locale, and other profile fields.

Change password

Update your own password without admin involvement:
A successful response returns 204 No Content. New passwords must be at least 8 characters, include a letter and a digit, differ from the current password, and must not be on a small denylist of common strings (for example password123 or admin123).

OpenID Connect

An administrator enables OIDC under Management → Users → Single sign-on. After at least one user exists, the login page can show Continue with {name}. New SSO users get a regular user account. Grant settings access afterwards if they need it.

Redeem an invite

Anyone with an invite link can call these routes. Administrators create invites from Management → Users or POST /api/users/invites. See Users & Admin.

Log out

Invalidate the current token server-side:
A successful response returns 204 No Content.

Error reference

Set OCTOP_ENABLE_API_DOCS=1 (or "enable_api_docs": true in config.json) and visit http://127.0.0.1:8088/api/docs to explore every endpoint interactively with the built-in Scalar interface — no extra tooling required.