Skip to content

Regions endpoints

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}

ParameterInTypeRequired
keypathstringYes
Response 200 (application/json)
{
  region: {
    id: string;
    key: string;
    name: string;
    enabled: boolean;
  };
}

PATCH /regions/{key}

ParameterInTypeRequired
keypathstringYes
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

ParameterInTypeRequired
keypathstringYes
hoursquerystringNo
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;
  }[];
}