8 endpoints at https://api.vaif.studio, generated from the API's OpenAPI document. The REST API page covers authentication, and All endpoints lists every group.
GET /regions/
Response 200 (application/json)
{
regions: {
id: string;
key: string;
name: string;
enabled: boolean;
}[];
}
POST /regions/
Request body (application/json)
{
key: string;
name: string;
apiBaseUrl: string;
runtimeUrl: string;
storageEndpoint: string;
enabled?: boolean;
}
Response 200
No body.
Response 201 (application/json)
{
region: {
apiBaseUrl: string;
createdAt: string (date-time);
enabled: boolean;
id: string;
key: string;
name: string;
runtimeUrl: string;
storageEndpoint: string;
};
}
GET /regions/all
Response 200 (application/json)
{
regions: {
id: string;
key: string;
name: string;
apiBaseUrl: string;
runtimeUrl: string;
storageEndpoint: string;
enabled: boolean;
createdAt: string (date-time);
}[];
}
GET /regions/{key}
| Parameter | In | Type | Required |
|---|
key | path | string | Yes |
Response 200 (application/json)
{
region: {
id: string;
key: string;
name: string;
enabled: boolean;
};
}
PATCH /regions/{key}
| Parameter | In | Type | Required |
|---|
key | path | string | Yes |
Request body (application/json)
{
enabled?: boolean;
}
Response 200 (application/json)
{
region: {
id: string;
key: string;
name: string;
apiBaseUrl: string;
runtimeUrl: string;
storageEndpoint: string;
enabled: boolean;
createdAt: string (date-time);
};
}
GET /regions/health
Response 200 (application/json)
{
regions: {
regionKey: string;
regionName: string;
status: "degraded" | "healthy" | "unhealthy";
latencyMs: number;
apiLatencyMs: number;
dbLatencyMs: null | number;
storageLatencyMs: null | number;
checkedAt: string;
uptimePercent: number;
checkCount: number;
}[];
}
GET /regions/{key}/metrics
| Parameter | In | Type | Required |
|---|
key | path | string | Yes |
hours | query | string | No |
Response 200 (application/json)
{
region: null | {
key: string;
name: string;
};
checks: {
status: string;
latencyMs: null | number;
apiLatencyMs: null | number;
storageLatencyMs: null | number;
checkedAt: string;
}[];
summary: {
avgLatency: number;
uptimePercent: number;
totalChecks: number;
};
}
POST /regions/health/check
Response 200 (application/json)
{
results: {
regionKey: string;
status: "degraded" | "healthy" | "unhealthy";
latencyMs: number;
apiLatencyMs: number;
dbLatencyMs: null | number;
storageLatencyMs: null | number;
checkedAt: string;
}[];
}