Resources

API Reference

Explore the planned StrataGateway API surface for managing compute, networking, security, and infrastructure resources programmatically.

Preview

Development Preview

The StrataGateway API is still under development. Endpoint paths, request schemas, response fields, authentication behavior, resource identifiers, pagination, rate limits, error codes, and API versioning may change before public release.

Jump to article

Overview

The API Reference describes the planned HTTP interface for managing StrataGateway infrastructure. It provides a structured overview of the planned API surface across all resource families.

The API is intended to eventually cover:

Cloud ComputeNetworkingFirewallsSSH KeysBackupsMonitoringInfrastructure OperationsSecurity-Related Resource StateDeveloper ToolingFuture Platform Resources

StrataGateway tooling is expected to build on the same core platform API:

The StrataGateway API is still under development. Endpoint paths, request schemas, response fields, authentication behavior, resource identifiers, pagination, rate limits, error codes, and API versioning may change before public release.

All endpoint examples on this page must be clearly treated as Preview, Illustrative, Planned, or In Development unless the existing project explicitly marks them as finalized.

Base URL

The planned base URL for the StrataGateway API:

Planned

Illustrative API base URL

Base URL

Base URLtext
https://api.stratagateway.com/v1

The final production API hostname and versioning strategy will be confirmed before public release. Do not imply that api.stratagateway.com is currently a live production API.

Illustrative request:

Illustrative request

Illustrative requesttext
GET https://api.stratagateway.com/v1/instances

Authentication

The StrataGateway API is planned to use Bearer token authentication. Include the token in the Authorization header on every request.

Authorization header

Authorization headertext
Authorization: Bearer $STRATA_API_TOKEN

Illustrative curl example

Illustrative curl examplecURL
curl \
  -H "Authorization: Bearer $STRATA_API_TOKEN" \
  https://api.stratagateway.com/v1/instances

API tokens must be treated as secrets. Never expose them in:

  • frontend source code
  • public repositories
  • screenshots
  • documentation examples
  • client-side bundles
  • public logs
  • container images

Request format

All request bodies use JSON. Include the following headers:

Illustrative headers

Illustrative headerstext
Authorization: Bearer $STRATA_API_TOKEN
Content-Type: application/json
Accept: application/json

Illustrative create-instance request:

Illustrative request schema

Illustrative request schemaJSON
POST /v1/instances

{
  "name": "web-prod-01",
  "region": "fra-1",
  "plan": "compute-standard",
  "image": "ubuntu-24.04-lts",
  "ssh_keys": ["key_8f3a9b1c"]
}

Clearly label: Illustrative request schema. Do not claim these exact fields are finalized.

Response format

Illustrative response:

Illustrative response

Illustrative responseJSON
{
  "id": "inst_7a91c2",
  "name": "web-prod-01",
  "status": "provisioning",
  "region": "fra-1",
  "created_at": "2026-07-28T18:30:00Z"
}

The final response schema is still being designed. Conceptual response elements may include: resource identifier, status, region, timestamps, metadata, resource-specific properties. Do not claim every API response will use an identical envelope.

Resource identifiers

StrataGateway uses stable, prefixed identifiers for all resources. Illustrative examples:

ResourceExample ID
Instancesinst_7a91c2
Networksnet_91ab20
Firewallsfw_31c28d
SSH Keyskey_8f3a9b1c
Backupsbackup_82f1a9

Prefixes and identifier formats are illustrative. Stable identifiers are useful for:

REST API operationsCLI workflowsSDK usageTerraform stateLogsAuditabilitySupport and troubleshooting

Pagination

Collection endpoints are expected to support pagination.

Planned

Under Evaluation

Illustrative request

Illustrative requesttext
GET /v1/instances?limit=25

Illustrative response

Illustrative response

Illustrative responseJSON
{
  "data": [
    {
      "id": "inst_example",
      "name": "web-01"
    }
  ],
  "pagination": {
    "limit": 25,
    "next": "cursor_example"
  }
}

Pagination model, cursor behavior, limits, and response field names are not finalized. Do not claim cursor pagination or offset pagination is final.

Errors

The API is planned to return a consistent error structure:

Illustrative error schema

Illustrative error schemaJSON
{
  "error": {
    "code": "resource_not_found",
    "message": "The requested resource could not be found.",
    "request_id": "req_example"
  }
}

Illustrative HTTP status codes:

HTTP StatusMeaningStatus
400Bad RequestExpected
401UnauthorizedExpected
403ForbiddenExpected
404Not FoundExpected
409ConflictPlanned
422Validation ErrorUnder Evaluation
429Too Many RequestsPlanned
500Internal Server ErrorExpected
503Service UnavailableExpected

Do not claim the final API will use every status code exactly this way.

Compute

Manage Cloud Compute resources and lifecycle operations.

MethodEndpointPurposeStatus
GET/v1/instancesList instancesPreview
POST/v1/instancesCreate an instancePreview
GET/v1/instances/{instance_id}Retrieve an instancePreview
DELETE/v1/instances/{instance_id}Delete an instancePreview
POST/v1/instances/{instance_id}/actions/startStart an instanceIllustrative
POST/v1/instances/{instance_id}/actions/stopStop an instanceIllustrative
POST/v1/instances/{instance_id}/actions/rebootReboot an instanceIllustrative

Endpoint names and lifecycle action paths are illustrative and may change.

Illustrative create instance request:

Create instance

Create instanceJSON
POST /v1/instances

{
  "name": "web-prod-01",
  "region": "fra-1",
  "plan": "compute-standard",
  "image": "ubuntu-24.04-lts",
  "ssh_keys": ["key_8f3a9b1c"]
}

Networks

Manage network resources.

MethodEndpointPurposeStatus
GET/v1/networksList networksPreview
POST/v1/networksCreate a networkPreview
GET/v1/networks/{network_id}Retrieve a networkPreview
DELETE/v1/networks/{network_id}Delete a networkPreview

Illustrative create request:

Create network

Create networkJSON
{
  "name": "production-private",
  "region": "fra-1",
  "cidr": "10.10.0.0/24"
}

Do not invent advanced networking resources. Use Preview / Illustrative statuses.

Firewalls

Manage firewall policies and rules.

MethodEndpointPurposeStatus
GET/v1/firewallsList firewallsPreview
POST/v1/firewallsCreate a firewallPreview
GET/v1/firewalls/{firewall_id}Retrieve a firewallPreview
PATCH/v1/firewalls/{firewall_id}Update a firewallPreview
DELETE/v1/firewalls/{firewall_id}Delete a firewallPreview

Illustrative create request:

Create firewall

Create firewallJSON
{
  "name": "web-production",
  "rules": [
    {
      "direction": "inbound",
      "protocol": "tcp",
      "port": "443",
      "source": "0.0.0.0/0",
      "action": "allow"
    }
  ]
}

Clearly state that the rule schema is not finalized.

SSH Keys

Manage SSH keys for instance access.

MethodEndpointPurposeStatus
GET/v1/ssh-keysList SSH keysPreview
POST/v1/ssh-keysCreate an SSH keyPreview
GET/v1/ssh-keys/{key_id}Retrieve an SSH keyPreview
DELETE/v1/ssh-keys/{key_id}Delete an SSH keyPreview

Illustrative create request:

Create SSH key

Create SSH keyJSON
{
  "name": "Personal Laptop",
  "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI..."
}

Only public SSH key material must ever be submitted. Private SSH keys must remain on the user's trusted device.

Backups

Manage backup resources and restore operations.

MethodEndpointPurposeStatus
GET/v1/backupsList backupsIllustrative
GET/v1/backups/{backup_id}Retrieve a backupIllustrative
POST/v1/instances/{instance_id}/backupsCreate a backupPlanned
POST/v1/backups/{backup_id}/restoreRestore a backupIllustrative
DELETE/v1/backups/{backup_id}Delete a backupIllustrative

Use Illustrative / Planned statuses. Do not claim backup endpoints currently exist.

Monitoring

Retrieve metrics and events for resources.

MethodEndpointPurposeStatus
GET/v1/instances/{instance_id}/metricsRetrieve instance metricsIllustrative
GET/v1/instances/{instance_id}/eventsRetrieve resource eventsIllustrative
GET/v1/monitoring/eventsList monitoring eventsIllustrative

Metric names, query parameters, aggregation, retention, endpoint paths, and response schemas are not finalized. Do not invent Prometheus-compatible endpoints.

DDoS Events

Retrieve DDoS event data and protection state.

MethodEndpointPurposeStatus
GET/v1/ddos/eventsList DDoS eventsIllustrative
GET/v1/ddos/events/{event_id}Retrieve a DDoS eventIllustrative
GET/v1/instances/{instance_id}/ddosRetrieve DDoS state for an instanceIllustrative

Illustrative future API. Do not claim customer-facing DDoS telemetry exists today.

Rate limits

API rate limiting is expected for:

Platform stabilityAbuse preventionFair accessPreventing accidental request loops

Technical safety limits are enforced server-side, but do not invent or promise requests per second, requests per minute, burst limits, per-token quotas, or endpoint-specific quotas. These controls are not customer resource quotas.

Potential illustrative headers:

Illustrative header model

Illustrative header modeltext
RateLimit-Limit: 100
RateLimit-Remaining: 99
RateLimit-Reset: 1706454000

Clearly label: Illustrative header model. Do not claim those header names are final.

Versioning

Versioning is intended to provide a stable API contract.

Planned

Illustrative version prefix

Version prefix

Version prefixtext
/v1/

Conceptual goals:

Avoid silent breaking changesProvide migration guidanceIntentional deprecationMaintain tooling compatibilityEvolve resource models carefully

The final versioning and deprecation policy will be published before the production API is released.

Control-plane mutations

API v1 supports JSON create, partial update, and delete operations for the current Compute, Networking, and Storage control-plane records. These operations use the same resource model as the dashboard and require a project API credential.

Mutation endpoints

Mutation endpointstext
POST  /api/v1/compute
PATCH /api/v1/compute/{instanceId}
DELETE /api/v1/compute/{instanceId}

POST  /api/v1/networking
PATCH /api/v1/networking/{networkId}
DELETE /api/v1/networking/{networkId}

POST  /api/v1/storage
PATCH /api/v1/storage/{volumeId}
DELETE /api/v1/storage/{volumeId}

Compute create request

Compute create requestjson
POST /api/v1/compute
Authorization: Bearer sg_live_...
Content-Type: application/json
Idempotency-Key: 2f7b1b58-0f11-4e90-8a75-1b3c3bb2f6d1

{
  "name": "web-01",
  "region": "fra-1",
  "image": "ubuntu-24-04",
  "plan": "shared-1"
}

Response shape

Response shapejson
{
  "instance": {
    "publicId": "7d9c2c5d-2b29-4ec5-9af4-4a8f1d9f4e12",
    "name": "web-01",
    "regionKey": "fra-1",
    "imageKey": "ubuntu-24-04",
    "planKey": "shared-1",
    "status": "queued",
    "customerStatus": {
      "status": "pending",
      "reasonCode": "provisioning_pending",
      "severity": "info",
      "actionability": "wait",
      "guidance": "wait",
      "operation": { "type": "create", "state": "queued" },
      "actions": { "edit": true, "delete": true, "start": false, "stop": false, "reboot": false, "snapshot": false, "firewall": false, "reverseDns": false }
    }
  }
}

Creates currently record control-plane state only. They do not provision a VPS, allocate an IP, attach physical storage, or deploy a network route.

Compute status projection

Compute list and detail responses include an additivecustomerStatusprojection. It describes pending, provisioning, retrying, running, stopped, deleting, failed, delayed, reconciling, and deleted states using provider-neutral reason codes and action guidance. A reconciling state is not safe to repeat blindly.

The projection never includes provider identifiers, raw provider errors, worker details, incident records, or infrastructure credentials. It is informational; server-side authorization, idempotency, conflict, quota, capacity, and execution gates remain authoritative.

Idempotency

All Phase 2 resource mutations require an Idempotency-Key header. The key is scoped to the authenticated project, method, and route.

Preview

Supported for POST, PATCH, and DELETE

Illustrative header

Illustrative headertext
Idempotency-Key: example-request-key

Reusing a key with the same canonical JSON request replays the original response. Reusing it with a different request returns 409 idempotency_conflict. Mutation errors use the standard JSON error model and responses are marked no-store.

Request IDs

Request identifiers are planned for troubleshooting and support.

Planned

Illustrative

Illustrative header

Illustrative headertext
X-Request-ID: req_example

Potential uses:

Support investigationsTroubleshootingTracing failed API requestsCorrelating platform operations

Do not claim the exact header name is final.

API Reference Status Matrix

Compact overview of resource reference and implementation status:

ResourceReference StatusImplementation Status
ComputePreviewIn Development
NetworksPreviewIn Development
FirewallsPreviewIn Development
SSH KeysPreviewIn Development
BackupsIllustrativePlanned
MonitoringIllustrativePlanned
DDoS EventsIllustrativePlanned

Inspect the actual shared project status data. If existing status values differ, use the project's real shared status configuration. Do not create contradictory hardcoded statuses.

REST API guide

This page complements rather than replaces the REST API guide:

REST API Guide

Learn API concepts, authentication, workflows, and usage patterns.

API Reference

Browse structured resource and endpoint documentation.

Do not duplicate full article content.

SDKs and tooling

The conceptual relationship between tooling and the API:

Conceptual flow

Conceptual flowtext
Application
→ SDK / CLI / Terraform
→ StrataGateway REST API
→ Control Plane

Link to verified routes:

Future SDK methods and CLI commands are expected to map to core API resources, but exact one-to-one mappings are not finalized.

Was this page helpful?