Tenant
Your platformKeys, billing, quotas and rate limits live here, scoped to you alone. Tenant keys authenticate server-side. Your users never see a Spacefast credential, and you never store per-user secrets.
A finished publishing product behind your brand and your billing: spaces, immutable versions, instant rollback, custom domains with automatic SSL. You call one API. Your customer sees you, full stop.
Publishing on a customer’s behalf is a single POST with a file or zip. The receipt is JSON: a live URL and a permanent version URL. Store it against your own record and move on. No SDK to adopt.
$ curl -F archive=@site.zip \
-H "Authorization: Bearer $TENANT_KEY" \
-H "X-Spacefast-On-Behalf-Of: cust_4812" \
https://api.spacefast.com/v1/publish
{ "live_url": "…", "version_url": "…", "version": "v3" }Map your data model onto three nouns once; the rest is API calls.
Keys, billing, quotas and rate limits live here, scoped to you alone. Tenant keys authenticate server-side. Your users never see a Spacefast credential, and you never store per-user secrets.
Every request names who you are acting for with X-Spacefast-On-Behalf-Of: cust_4812, and the audit trail records it. A support question is a lookup, not an investigation.
Each space carries immutable versions, rollback, routing, scoped access and domains.
Spacefast is in research preview. Put your name down below and we’ll come and find you.
There is no separate partner stack. The consumer product at spacefast.com is tenant #1 of the same control plane: our dashboard, CLI and agents call the endpoints you call. That keeps the API honest. A feature isn’t done until it works through the API, so partners get it the day it ships.
Scoping, quotas and rate limits are per tenant, so another integration's busy day is never your incident.
Each call records the acting key and the customer it acted for.
Idempotency-Key is honored per tenant, so a retried request can’t double-provision a customer.
A stable { error } envelope with machine-readable codes. Your integration branches on codes, not strings.
The same infrastructure that serves WordPress.com. Automattic has kept other people's websites online for more than twenty years.
Each of these is shipped in the product underneath and surfaced in yours.
Every publish for every customer is frozen as an immutable version, and the live URL flips atomically. Rolling a customer back promotes an earlier version: a pointer flip, live in seconds. “Restore from backup” becomes one API call.
Point any domain a customer owns at their space with the DNS values the API returns. Certificates are issued and renewed automatically at any number of domains. Live diagnostics report when each one resolves, status you can show in your own UI.
Each space carries its own _redirects and _headers, a Netlify-compatible subset compiled once at publish. Redirects, SPA fallbacks, proxied paths, cache headers: you run no per-tenant config service, and it all rolls back with the version.
The API ships with llms.txt, an agent-card and a hosted MCP server with typed tools. If your customers build with Claude, Codex or ChatGPT, publishing to your platform is one message.
One command downloads every file of any version straight to a folder, ready to serve anywhere.
Platform access is by conversation. We onboard partners individually, with limits, pricing and domains sized to what you’re building. Tell us what you’re making.
Talk to usOr start in the Platform API docs.
