A unified REST interface for compute, storage, and edge networking. Designed for predictable responses, transparent errors, and zero-surprise integration.
Predictable REST
Resource-oriented routes, JSON in, JSON out.
Token-based auth
Scoped keys, rotation, and short-lived sessions.
Global low-latency edge
31 regions, <50ms median round-trip.
Typed SDKs
First-class TypeScript, Go, Python, Rust.
# 1. Install the SDK
$ npm install @cloudapi/sdk
# 2. Authenticate
$ export CLOUDAPI_KEY="sk_live_***"
# 3. Make your first request
$ curl https://api.cloudapi.dev/v2/regions \
-H "Authorization: Bearer $CLOUDAPI_KEY"
→ 200 OK (42ms)
All requests to the API are authenticated using Bearer tokens. Tokens are scoped to your project and must be included in the Authorization header of every request.
Include your API key as a Bearer token. Requests without a valid token return 401 Unauthorized.
# Send a request with your Bearer token
curl https://api.example.com/v1/resources \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-H "X-Api-Version: 2026-04-01"
From your dashboard, navigate to Settings → API Keys and click Generate new key. Choose a scope appropriate to the integration.
Save the token in an environment variable or secret manager. The full key is shown only once at creation time.
Use the header pattern above. A successful call returns 200 OK with a JSON payload.
Rotate production keys at least every 90 days, or immediately if a leak is suspected. Old keys can be revoked from the dashboard.
Production secret keys. Full read/write access. Never expose client-side.
Sandbox keys for development and CI. No real resources are mutated.
.env files, vaults, or platform secrets.
A representative subset of the REST API. All endpoints are versioned under /v1 and accept JSON request bodies. Authenticated requests must include a bearer token — see Authentication.
Manage projects — the top-level container for environments, deployments, and API keys.
/v1/projects
List all projects
/v1/projects
Create a new project
/v1/projects/{id}
Retrieve a project
/v1/projects/{id}
Update project metadata
/v1/projects/{id}
Permanently delete a project
curl https://api.example.dev/v1/projects \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "acme-prod",
"region": "us-east-1"
}'
{
"id": "proj_8f3a2b",
"name": "acme-prod",
"region": "us-east-1",
"created_at": "2026-04-28T14:02:11Z",
"status": "active"
}
Trigger, inspect, and roll back deployments tied to a project.
/v1/deployments
List deployments (supports filtering)
/v1/deployments
Create a deployment from a commit
/v1/deployments/{id}/rollback
Roll back to previous release
GET /v1/deployments
?project_id=proj_8f3a2b
&status=succeeded
&limit=20
&cursor=eyJpZCI6...
{
"data": [
{
"id": "dep_19af",
"project_id": "proj_8f3a2b",
"status": "succeeded",
"commit": "a1b2c3d"
}
],
"next_cursor": "eyJpZCI6...",
"has_more": true
}
Stream and query structured logs from running services.
/v1/logs
Query logs by time range and level
/v1/logs/stream
Server-sent events live tail
Status codes
2xxSuccess — resource returned or action accepted.4xxClient error — invalid input or auth failure.5xxServer error — retry with exponential backoff.Pagination
Cursor-based. Pass cursor and limit (max 100). Responses include next_cursor and has_more.
Filtering
Use query params on list endpoints, e.g. ?status=succeeded or ?created_after=2026-04-01.
/ faq
Common questions from developers integrating the API. If you can't find what you're looking for, reach out to our support team.
Default plans are limited to 1,000 requests/minute per API key. Enterprise plans scale to 10,000 req/min with burst capacity.
Each response includes X-RateLimit-Remaining and X-RateLimit-Reset headers so you can throttle gracefully.
A 401 usually means an invalid, expired, or missing bearer token. Verify the Authorization: Bearer <token> header is present and the token belongs to the correct environment (live vs sandbox keys are not interchangeable).
Versions are pinned via the URL path (e.g. /v1/) and a stable version is supported for at least 18 months after a new major release. Breaking changes are never introduced into a published version — additive changes only.
Yes. Every account includes an isolated sandbox at https://sandbox.api.example.com with seeded test data, simulated webhooks, and no rate limits during development. Sandbox keys are prefixed sk_test_.
If your endpoint does not return a 2xx within 10 seconds, the delivery is retried with exponential backoff for up to 72 hours (1m, 5m, 30m, 2h, 6h, 12h…). All attempts are visible in the dashboard, and you can manually replay any event.
Community and email support are included on all plans with a typical response within 1 business day. Pro and Enterprise plans include priority support with a 4-hour SLA and a dedicated Slack channel.
Still have questions?
Our engineering team is happy to help with integration details.