Sidecar Network API v1

API Reference

Control-plane API for the Sidecar relay fleet. Every relay POP exposes this API on port :8443 (TLS 1.3). Authentication uses Bearer tokens issued at signup or via the billing flow.

Download OpenAPI 3.0 spec Open in Swagger UI Open in Scalar

Base URLs

RegionBase URL
US Easthttps://relay-us-east1.sidecar.network:8443
US Westhttps://relay-us-west.sidecar.network:8443
US West 1https://relay-us-west1.sidecar.network:8443
Canada Easthttps://relay-ca-east.sidecar.network:8443
EU Westhttps://relay-eu-west.sidecar.network:8443
EU Centralhttps://relay-eu-central.sidecar.network:8443

Authentication

Bearer token

Obtain a token at sidecar.network/signup (free tier) or via the billing flow. Pass it as an HTTP header:

Authorization: Bearer <your-token>

Tokens are opaque, relay-scoped, and carry a tier quota (peer count, IPv6 slots, optional IPv4).

Quick start with curl

Check relay health
curl https://relay-us-east1.sidecar.network:8443/v1/health
Register a WireGuard peer
curl -X POST https://relay-us-east1.sidecar.network:8443/v1/peers \
  -H "Authorization: Bearer $SIDECAR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "pubkey": "<wg-pubkey-base64>",
    "container_id": "abc123def456",
    "psk_version": "SIDECAR-PSK/v1"
  }'
Remove a peer
curl -X DELETE https://relay-us-east1.sidecar.network:8443/v1/peers/<pubkey> \
  -H "Authorization: Bearer $SIDECAR_TOKEN"
Quick start with HTTPie
https GET relay-us-east1.sidecar.network:8443/v1/health

https POST relay-us-east1.sidecar.network:8443/v1/peers \
  Authorization:"Bearer $SIDECAR_TOKEN" \
  pubkey=<wg-pubkey> container_id=abc123

Endpoints at a glance

MethodPathAuthDescription
GET /v1/version — Binary version + commit
GET /v1/health — Liveness probe
GET /v1/status — Public relay status + privacy attestation
GET /canary — Warrant canary text
GET /pgp — PGP public key
GET /v1/altcha/challenge — Altcha proof-of-work challenge
POST /v1/signup/free — Create free-tier account
POST /v1/auth/magic-link — Request magic-link login email
POST /v1/auth/magic-link/verify — Verify magic-link token, get session cookie
POST /v1/auth/logout — Revoke session cookie
POST /v1/peers Bearer Register a WireGuard peer, get IPv6 allocation
GET /v1/peers Bearer List active peers for this token
GET /v1/peers/{ipv6} Bearer Look up peer by IPv6 address
DELETE /v1/peers/{pubkey} Bearer Remove a peer
POST /v1/peers/{peer_id}/rotate-psk Bearer Rotate pre-shared key for a peer
GET /v1/tokens/me Bearer Token quota and tier info
POST /v1/tokens/rotate Bearer Rotate token secret
POST /v1/billing/tos/accept — Accept Terms of Service (checkout prerequisite)
POST /v1/billing/checkout/create — Create one-time checkout session (Hosted Card Fields)
POST /v1/billing/checkout/finalize — Capture payment and provision token
POST /v1/billing/subscribe — Initiate PayPal subscription
POST /v1/billing/cancel Bearer Cancel active subscription
POST /v1/billing/refunds Bearer Request 14-day MBG refund
POST /v1/account/export — GDPR/CCPA data export request
POST /v1/account/delete — Account deletion request
POST /v1/support/contact — Support contact form

Pricing tiers

SlugPricePeersIPv4IPv6 slots
free$030basic
micro$0.99/mo102
spark$4.99/mo5016
launch$9.99/mo10064
pulse$19.99/mo250256
pulse_ipv4$29.99/mo251256
relay$39.99/mo5011024
surge$59.99/mo10014096

Rate limits and errors

Most endpoints are rate-limited per source IP. The free signup and magic-link endpoints share a single per-IP limiter. HTTP 429 Too Many Requests is returned when the limit is exceeded. Errors are plain text or JSON with an error field depending on the endpoint.

Post-quantum cryptography

Peer sessions use X-Wing hybrid KEM (X25519 + ML-KEM-768, IETF draft-connolly-cfrg-xwing-kem-05) for PSK derivation. Pass mlkem_ek in POST /v1/peers to enable PQ-PSK for a peer.