Region codes
A region code is<continent>-<metro>-<n> — the geographic prefix is a strict
continent, and the metro token is what carries the legal jurisdiction your data
sits in.
GET https://catalog.basaltic.sh/v1/regions returns the public region catalog.
It needs no authentication or selected account, so it is a useful first call to
confirm connectivity. Fetch one region with GET /v1/regions/{code} on the same
host.
regions, a default region code and meta for the complete
catalog. A region detail response wraps its content in region. Each region
has a stable code, a Catalog crn, a display name, location,
country_code, and a lifecycle state:
Use
state to determine availability: only active regions accept new
resources. planned regions are not yet offered. The state describes the
catalog lifecycle, not live service health or available capacity. The product
API still checks your permissions, quotas, and resource placement.
The default is an accepting region in the returned list, or an empty string
when none is offered. Exact name and crn filters can narrow the list. Unknown
region codes return 404. Successful responses can be cached privately for 60
seconds.
Use the Catalog API for region discovery. See Catalog permissions for public access and rate limits.
Global and regional services
Geographic scope and ownership are separate. Workspace manages organization resources globally. IAM and DNS manage account-owned resources globally. Compute, networking, and storage manage resources in the selected region.- Regional
- Global
Addressed as
https://<service>.<region>.basaltic.sh, for example
https://compute.sa-saopaulo-1.basaltic.sh.Use a bearer token authorized for the account and region.
Object storage
S3-compatible object storage is the one endpoint that is not onbasaltic.sh:
storage.<region>.basaltic.sh with the rest of the platform API.
Selecting an account
Account API requests identify the selected account withX-Account-Id.
Service account and role tokens remain bound to their account; changing the
header does not grant access to another account. Use an explicit role
assumption for cross-account access.
