API Overview
Introduction to the Arctic HTTP API
HTTP API Overview
Arctic agents expose an HTTP API for management and integration.
Base URL
The API is served on port 8080 by default:
http://AGENT_IP:8080Authentication
Most endpoints require OAuth2 authentication. See Authentication for details.
Public endpoints (no auth required):
/livez- Liveness check/readyz- Readiness check/.well-known/openid-configuration- OIDC discovery/.well-known/jwks.json- JSON Web Key Set/v1/cluster/identity- Peer identity
API Versioning
All API endpoints are prefixed with /v1/.
Content Type
Request and response bodies use JSON:
Content-Type: application/jsonEndpoints
Health
| Method | Endpoint | Description |
|---|---|---|
| GET | /livez | Liveness probe |
| GET | /readyz | Readiness probe |
Bootstrap & License
| Method | Endpoint | Description |
|---|---|---|
| POST | /v1/bootstrap | Initialize agent |
| GET | /v1/license | Get license info |
| PUT | /v1/license | Update license |
Peers
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/peers | List peers |
| GET | /v1/peers/\{id\} | Get peer |
| POST | /v1/peers | Add peer |
| PUT | /v1/peers/\{id\} | Update peer |
| DELETE | /v1/peers/\{id\} | Delete peer |
| DELETE | /v1/peers/self | Remove self |
Services
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/services | List services |
| GET | /v1/services/\{id\} | Get service |
| POST | /v1/services | Create service |
| PUT | /v1/services/\{id\} | Update service |
| DELETE | /v1/services/\{id\} | Delete service |
Routes
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/services/\{id\}/routes | List routes |
| POST | /v1/services/\{id\}/routes | Add routes |
| PUT | /v1/services/\{id\}/routes/\{route_id\} | Update route |
| DELETE | /v1/services/\{id\}/routes/\{route_id\} | Delete route |
Credentials
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/credentials | List credentials |
| POST | /v1/credentials | Create credential |
| DELETE | /v1/credentials/\{client_id\} | Revoke credential |
Cluster
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/cluster/identity | Get identity |
| POST | /v1/cluster/init | Initialize cluster |
| POST | /v1/cluster/sync | Trigger sync |
| POST | /v1/cluster/credentials/rotate | Rotate credential |
Error Responses
Errors return appropriate HTTP status codes with a JSON body:
{
"error": "peer not found",
"code": "NOT_FOUND"
}See Error Codes for details.
Rate Limiting
The API does not implement rate limiting. Consider implementing rate limiting at the load balancer level for production deployments.