API — License, access & certificate

Check license status, manage authentication, read overall system status, and download the root certificate over the API.

License

GET /api/v1/license/status Auth required

Returns whether the license is active, along with your plan and port limit.

Example (curl)
curl -H "X-API-Key: YOUR_API_KEY" http://127.0.0.1:8891/api/v1/license/status

Authentication

POST /api/v1/auth/login No auth

Signs in with the dashboard password and sets a session cookie.

Request body
{ "password": "your-dashboard-password" }
POST /api/v1/auth/logout Auth required

Clears the session cookie.

GET /api/v1/auth/status Auth required

Reports the current sign-in and password state.

POST /api/v1/auth/password Auth required

Changes the dashboard password (requires the current one).

Request body
{ "current": "old-password", "new": "new-password" }
POST /api/v1/auth/apikey/rotate Auth required

Generates a new API key and returns it. The previous key stops working immediately.

Response
{ "api_key": "a1b2c3d4..." }

System status

GET /api/v1/status Auth required

Returns overall status: version, open and maximum ports, identity counts, uptime and more.

Example (curl)
curl -H "X-API-Key: YOUR_API_KEY" http://127.0.0.1:8891/api/v1/status
GET /api/v1/health No auth

A simple health check that always returns OK.

Root certificate

GET /api/v1/ca Auth required

Downloads the root certificate as PEM text.

GET /api/v1/ca.crt Auth required

Downloads the certificate in DER form (for native install on macOS/iOS).

GET /api/v1/ca.mobileconfig Auth required

Downloads an Apple .mobileconfig profile that installs the certificate.

POST /api/v1/ca/install Auth required

Installs the root certificate into your user Trusted Root store. Windows only; elsewhere download the certificate and import it yourself. Restart the browser completely afterwards.

Challenge Breaker

These endpoints report what the challenge handling is doing right now and how much of the machine it may use. They are available on every plan; on a plan without Challenge Breaker the counters stay at zero while the seen figures still show which protections your traffic ran into.

GET /api/v1/solver/stats Auth required

Returns counters since start: attempts and successes per protection family, the protections merely encountered, and the resources the handling currently occupies.

GET /api/v1/solver/queue Auth required

Returns the live queue: queued and running counts, the queue limit, and a row per request with its port, host, protection family, identity class, state and age in milliseconds.

PUT /api/v1/solver/procs Auth required

Sets how many handler processes may run at once. The value is capped by your licence; a request above the cap is refused. It takes effect without a restart and survives one.

ParameterTypeRequiredDescription
procsintYesNumber of processes; 0 disables the handling.

Settings and keys

GET /api/v1/settings/network Auth required

Returns the network settings: whether the proxy ports accept connections from the local network, and whether they require a login and password.

PUT /api/v1/settings/network Auth required

Changes the network settings. Send only the fields you want to change. Enabling proxy authentication requires both a user and a password.

ParameterTypeRequiredDescription
allow_lanboolNoAccept connections to the proxy ports from the local network, not only from this machine.
proxy_auth_enabledboolNoRequire a login and password on the proxy ports.
proxy_auth_userstringNoProxy login.
proxy_auth_passstringNoProxy password.
GET /api/v1/auth/apikey Auth required

Returns the API key used in the X-License-Key header.

PUT /api/v1/auth/apikey Auth required

Sets your own API key instead of the generated one.

ParameterTypeRequiredDescription
api_keystringYesThe new key.
GET /api/v1/settings/integration-key Auth required

Reports whether an integration key is stored, for licence activation on behalf of an integrator.

PUT /api/v1/settings/integration-key Auth required

Stores or clears the integration key. It takes effect without a restart.

ParameterTypeRequiredDescription
integration_keystringYesThe key, up to 512 characters. An empty value clears the stored one.