Vai al contenuto principale
POST
/
instances
/
{instanceId}
/
peers
Crea un peer
curl --request POST \
  --url https://api.altostrat.io/instances/{instanceId}/peers \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "type": "client",
  "site_id": "c3d5e2a0-88c9-4f7f-9f7b-6a1e2b4c5d6e",
  "user_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "subnets": [
    "192.168.100.0/24"
  ],
  "route_all": false,
  "protocol": "wireguard"
}'
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "type": "client",
  "user_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
  "site_id": "c3d5e2a0-88c9-4f7f-9f7b-6a1e2b4c5d6e",
  "subnets": [
    "192.168.100.0/24"
  ],
  "route_all": false,
  "protocol": "wireguard",
  "connected": false,
  "connected_from": null,
  "token": "eyJpdiI6...",
  "token_ttl": 3600,
  "created_at": "2025-10-29T12:45:00Z"
}

Authorizations

Authorization
string
header
required

Inserisci il tuo bearer token nel formato: Bearer {token}

Path Parameters

instanceId
string<uuid>
required

L'identificatore univoco (UUID) per l'istanza VPN.

Example:

"d290f1ee-6c54-4b01-90e6-d701748f0851"

Body

application/json
type
enum<string>
required

Il tipo di peer da creare.

Opzioni disponibili:
client,
site
Example:

"client"

protocol
enum<string>
required

Il protocollo per il peer. I peer di tipo client devono usare wireguard.

Opzioni disponibili:
wireguard,
openvpn
Example:

"wireguard"

site_id
string<uuid>

L'identificatore univoco per il sito. Richiesto se type è site.

Example:

"c3d5e2a0-88c9-4f7f-9f7b-6a1e2b4c5d6e"

user_id
string<uuid>

L'identificatore univoco per l'utente. Richiesto se type è client.

Example:

"a1b2c3d4-e5f6-7890-1234-567890abcdef"

subnets
string[]

Un elenco di subnet (in notazione CIDR) per il sito. Richiesto se type è site.

route_all
boolean

Se true, instrada tutto il traffico del client attraverso la VPN. Richiesto se type è client.

Example:

false

Response

Il peer è stato creato con successo.

id
string<uuid>

L'identificatore univoco per il peer.

Example:

"550e8400-e29b-41d4-a716-446655440000"

type
enum<string>

Il tipo di peer. client rappresenta un singolo utente, mentre site rappresenta una connessione site-to-site.

Opzioni disponibili:
client,
site
Example:

"client"

user_id
string<uuid> | null

L'identificatore univoco per l'utente, se il peer è di tipo client.

Example:

"a1b2c3d4-e5f6-7890-1234-567890abcdef"

site_id
string<uuid> | null

L'identificatore univoco per il sito, se il peer è di tipo site.

Example:

"c3d5e2a0-88c9-4f7f-9f7b-6a1e2b4c5d6e"

subnets
string[]

Un elenco di subnet (in notazione CIDR) instradate da questo peer. Applicabile solo ai peer di tipo site.

route_all
boolean

Se true, tutto il traffico del client verrà instradato attraverso la VPN. Applicabile solo ai peer di tipo client.

Example:

false

protocol
enum<string>

Il protocollo VPN utilizzato da questo peer.

Opzioni disponibili:
wireguard,
openvpn
Example:

"wireguard"

connected
boolean

Indica se il peer è attualmente connesso.

Example:

false

connected_from
string<ipv4> | null

L'indirizzo IP pubblico del peer connesso.

Example:

null

token
string | null

Un token a breve durata per i peer di tipo client per recuperare i loro file di configurazione. Non per uso diretto tramite API.

Example:

"eyJpdiI6..."

token_ttl
integer

Il tempo di validità (time-to-live) del token in secondi.

Example:

3600

created_at
string<date-time>

La data e l'ora di creazione del peer.

Example:

"2025-10-29T12:45:00Z"