Provisioning

Create isolated resources — a database, a bucket, a sub-account — under Squiid’s provider accounts. Credentials come back once, named SQ_*.

Metered APIs need nothing but a key. A database, a bucket or a sub-account needs a resource, and POST /v1/resources creates one under Squiid's provider account, isolated to you. Credentials come back once, named SQ_*, and the usage is billed to your balance daily alongside everything else.

Create a resource, then read its credentials

Provisioning
curl -X POST https://api.squiid.io/v1/resources \
  -H "Authorization: Bearer $SQUIID_API_KEY" \
  -d '{ "service": "neon", "name": "my-app-db", "region": "us-east-1" }'
# 202 { "id": "res_8h2k", "status": "provisioning" }

curl https://api.squiid.io/v1/resources/res_8h2k \
  -H "Authorization: Bearer $SQUIID_API_KEY"
# 200 { "status": "ready", "credentials": { "SQ_DATABASE_URL": "postgres://…" } }
import { Squiid } from "@squiid/sdk";
const sq = new Squiid();

const db = await sq.resources.create({ service: "neon", name: "my-app-db", region: "us-east-1" });
await db.ready();
const { SQ_DATABASE_URL } = db.credentials;

// or a pre-configured client for a resource
const supabase = await sq.supabase("res_8h2k");
from squiid import Squiid
sq = Squiid()

db = sq.resources.create(service="neon", name="my-app-db", region="us-east-1")
db.wait_ready()
DATABASE_URL = db.credentials["SQ_DATABASE_URL"]

How it works

  • Create. POST /v1/resources with a service slug, a name and an optional region answers 202 with an id and status: "provisioning".
  • Poll. GET /v1/resources/:id answers ready with a credentials object, or failed with a reason. The SDK's ready() does the polling for you.
  • Use. The credentials are env-var shaped and prefixed SQ_, so SQ_DATABASE_URL drops straight into your environment.

Each tenant gets its own ownership unit at the provider — an organization, project, team or subaccount — rather than a resource buried in one shared account. That is the decision that makes an ownership transfer possible later rather than impossible. Handover says which providers support one today.

What is live today

Instant, usage-metered services work right now: add them and call them through the gateway. Provisioned resources are rolling out service by service, and the provision and get_credentials tools in the MCP server return a not_implemented explanation while that happens, rather than failing silently. Every service page in the catalog says which of the two it is.

Infrastructure
without the signup.

One key creates the resource, holds its credentials and bills its usage to the same balance.