RESOURCES

API Documentation

Connect programmatically to every layer of Warren — manage users, resources, billing, and operations through REST and GraphQL APIs. All endpoints are versioned, scoped, and designed for provider-level control.

API OVERVIEW

Unified and fully scoped

Warren’s APIs cover both provider and user operations, enabling delegated automation and clean integration into billing, monitoring, and identity systems.

Fully managed VMware alternative

Built for automation

Trigger workflows, sync accounting, and fetch usage metrics directly from your toolchain.

Granular permissions

Scoped tokens per function, user, or tenant; audit-ready by design.

Consistent schema

Predictable REST and GraphQL schemas shorten integration time.

AVAILABLE APIs

Pick REST or GraphQL for your use case

User-level operations for tenants, full control plane for providers, and a single GraphQL schema for rich queries.

User REST API

Endpoints for user operations — instances, networking, volumes, snapshots, backups, and more.

Admin REST API

Full provider control: tenant management, billing & metering, price lists, invoices & exports, and system policies.

GraphQL API (Apollo)

Unified schema for dashboards and analytics. Query metering, resources, and relationships in a single call.

getting started

Authenticate, test, automate

Grab a token from the dashboard, try the sandbox, and wire up events. Most teams ship their first integration in under a day.

1

Create a token

Generate an sk_* token with least‑privilege scopes for your use case.

2

Use the sandbox

Experiment safely. Validate requests and responses before connecting live systems.

3

Wire events

Subscribe to webhooks to trigger downstream jobs in ERP, CRM, or observability.

GraphQL — Query usage
query GetUsage($project: ID!) { 
    meteringUsage(project: $project, window: "last_24h") {
        resource 
        quantity 
        cost 
    } 
}
# Variables # { "project": "prj_123" }  
# Header # Authorization: Bearer sk_admin_***
Admin API — List tenants
GET /v1/admin/tenants
Authorization: Bearer sk_admin_***
Accept: application/json  

# Response 200 OK (truncated) 
[ 
    { "tenant_id": "t_492a", "name": "Acme", "status": "active" },
	{ "tenant_id": "t_58c1", "name": "Contoso", "status": "active" }
]