API — Profiles, presets & routing

List and import identities, manage presets and domain routing rules, and register the gateways your ports route through.

Profiles

GET /api/v1/profiles Auth required

Lists stored identities, with optional paging and a browser filter.

ParameterTypeRequiredDescription
limitint (query)NoPage size (default 100).
offsetint (query)NoPage offset (default 0).
browserstring (query)NoFilter by browser, e.g. "chrome".
Example (curl)
curl -H "X-API-Key: YOUR_API_KEY" "http://127.0.0.1:8891/api/v1/profiles?browser=chrome&limit=50"
GET /api/v1/counts Auth required

Returns how many identities exist per browser family.

Example (curl)
curl -H "X-API-Key: YOUR_API_KEY" http://127.0.0.1:8891/api/v1/counts
Response
{ "Chrome": 10000, "Firefox": 500, "Safari": 300, "Edge": 200 }

A port's identity

POST /api/v1/port/{port}/rotate Auth required

Rotates a port to a different identity within its current filters.

Example (curl)
curl -H "X-API-Key: YOUR_API_KEY" -X POST http://127.0.0.1:8891/api/v1/port/20134/rotate
GET /api/v1/port/{port}/profile/view Auth required

Returns the full identity a port is currently presenting.

Example (curl)
curl -H "X-API-Key: YOUR_API_KEY" http://127.0.0.1:8891/api/v1/port/20134/profile/view

Presets

Presets save and re-apply port configurations, organized into folders.

GET /api/v1/presets Auth required

Lists saved presets and folders.

POST /api/v1/presets Auth required

Saves a preset.

POST /api/v1/presets/load Auth required

Loads a preset onto a port.

DELETE /api/v1/presets Auth required

Deletes a preset.

Domain routing rules

GET /api/v1/domain_rules Auth required

Returns the ordered list of domain routing rules.

PUT /api/v1/domain_rules Auth required

Replaces the domain routing rules. Each rule matches domains and sends them through a chosen route with optional spoofing overrides.

Gateways (OpenVPN / VLESS)

GET /api/v1/ovpn Auth required

Lists saved gateways and their tunnel status.

POST /api/v1/ovpn Auth required

Adds a gateway (an .ovpn file or a vless:// link).

PUT /api/v1/ovpn/{name} Auth required

Updates an existing gateway.

DELETE /api/v1/ovpn/{name} Auth required

Deletes a gateway (refused if it is in use).

GET /api/v1/gateway/openvpn-status Auth required

Reports whether the OpenVPN/VLESS backend is available on the host.

POST /api/v1/ovpn/ping Auth required

Measures the round-trip time to every saved gateway and returns the results. The measurement also runs on a schedule, so the response may contain values collected earlier.

GET /api/v1/gateway/subs Auth required

Lists subscriptions. Each entry reports the number of servers it produced, the gateways it owns, when it last refreshed and the reason it last failed. The subscription link is redacted — it is stored locally and never returned.

POST /api/v1/gateway/subs Auth required

Creates a subscription or edits an existing one by name. Servers from the subscription appear as ordinary gateways and can be used as an upstream or a first hop.

ParameterTypeRequiredDescription
namestringYesSubscription name: Latin letters, digits, dot, hyphen and underscore, up to 64 characters.
sourcestringNoSubscription link. Required when creating. On edit, leave it out to keep the stored one.
enabledboolNoWhether the subscription refreshes on a schedule.
interval_minintNoRefresh interval in minutes.
POST /api/v1/gateway/subs/{name}/refresh Auth required

Refreshes one subscription immediately, without waiting for its schedule.

DELETE /api/v1/gateway/subs/{name} Auth required

Deletes a subscription together with the gateways it created.