Create an authenticated endpoint
curl --request POST \
--url https://api.aireserve.com/v1/sandboxes/{id}/endpoints \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"name": "<string>",
"targetPort": 32768,
"auth": {
"mode": "bearer",
"expiresInSeconds": 302430
},
"expiresInSeconds": 302430
}
'import requests
url = "https://api.aireserve.com/v1/sandboxes/{id}/endpoints"
payload = {
"name": "<string>",
"targetPort": 32768,
"auth": {
"mode": "bearer",
"expiresInSeconds": 302430
},
"expiresInSeconds": 302430
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
targetPort: 32768,
auth: {mode: 'bearer', expiresInSeconds: 302430},
expiresInSeconds: 302430
})
};
fetch('https://api.aireserve.com/v1/sandboxes/{id}/endpoints', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"operation": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"object": "operation",
"resource": {
"type": "environment",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parent": {
"type": "environment",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
},
"action": "environment.create",
"idempotencyKey": "<string>",
"status": "pending",
"step": "<string>",
"attemptCount": 4503599627370495,
"maxAttempts": 4503599627370495,
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
},
"terminalAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"endpoint": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"object": "endpoint",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sandboxId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"protocol": "https",
"status": "provisioning",
"url": "<string>",
"auth": {
"mode": "bearer",
"expiresAt": "2023-11-07T05:31:56Z"
},
"expiresAt": "2023-11-07T05:31:56Z",
"lastUsedAt": "2023-11-07T05:31:56Z",
"revokedAt": "2023-11-07T05:31:56Z",
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"credential": {
"mode": "bearer",
"token": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}Sandboxes
Create an authenticated endpoint
Creates a bearer- or mTLS-authenticated endpoint. Credential material is returned once in this response. Requires compute manage access.
POST
/
v1
/
sandboxes
/
{id}
/
endpoints
Create an authenticated endpoint
curl --request POST \
--url https://api.aireserve.com/v1/sandboxes/{id}/endpoints \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"name": "<string>",
"targetPort": 32768,
"auth": {
"mode": "bearer",
"expiresInSeconds": 302430
},
"expiresInSeconds": 302430
}
'import requests
url = "https://api.aireserve.com/v1/sandboxes/{id}/endpoints"
payload = {
"name": "<string>",
"targetPort": 32768,
"auth": {
"mode": "bearer",
"expiresInSeconds": 302430
},
"expiresInSeconds": 302430
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
targetPort: 32768,
auth: {mode: 'bearer', expiresInSeconds: 302430},
expiresInSeconds: 302430
})
};
fetch('https://api.aireserve.com/v1/sandboxes/{id}/endpoints', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"operation": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"object": "operation",
"resource": {
"type": "environment",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parent": {
"type": "environment",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
},
"action": "environment.create",
"idempotencyKey": "<string>",
"status": "pending",
"step": "<string>",
"attemptCount": 4503599627370495,
"maxAttempts": 4503599627370495,
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
},
"terminalAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"endpoint": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"object": "endpoint",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sandboxId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"protocol": "https",
"status": "provisioning",
"url": "<string>",
"auth": {
"mode": "bearer",
"expiresAt": "2023-11-07T05:31:56Z"
},
"expiresAt": "2023-11-07T05:31:56Z",
"lastUsedAt": "2023-11-07T05:31:56Z",
"revokedAt": "2023-11-07T05:31:56Z",
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"credential": {
"mode": "bearer",
"token": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}{
"error": {
"message": "<string>",
"type": "invalid_request_error",
"param": "<string>",
"code": "invalid_request",
"details": {}
}
}Authorizations
bearerAuthapiKeyAuth
Your AI Reserve API key (aireserve_api_…) from the API Keys page in the portal (https://portal.aireserve.com/keys).
Headers
Client-selected key of 8–180 characters [A-Za-z0-9:_-]. Reusing it for the same action and canonical request replays the original result. Reusing it with a different request returns 409 idempotency_conflict.
Required string length:
8 - 180Pattern:
^[A-Za-z0-9:_-]+$Path Parameters
Body
application/json
Every public endpoint is authenticated; unauthenticated mode does not exist.