The FlexGalaxy.AI API¶
Every FlexGalaxy.AI capability you can call from your own code is served from one host, over HTTPS, on a versioned capability path:
https://api.flexgalaxy.ai
There is nothing else to configure. You do not address a product, a region or a service directly — you address a capability, and the edge routes it.
Capability paths¶
A path names what you are doing, not which system does it. That is deliberate: the capability path is the contract, and it keeps working when the implementation behind it changes.
Path prefix |
What it covers |
|---|---|
|
Users, groups, policies, access keys, sign-in and token exchange |
|
Accounts: creation, membership, lifecycle |
|
Organizations, organizational units, and their controls |
|
Application launch and entry resolution |
|
Quota inspection and requests |
|
Audit events and export |
|
Developer-programme registration and application credentials |
|
The catalogue of callable services and their capabilities |
Anything outside these prefixes is not part of the public contract. If your integration seems to need something you cannot find above, request a partner API rather than calling a path you discovered — undocumented routes are not covered by any compatibility promise and are expected to change without notice.
API reference¶
The full, versioned reference lives at docs.flexgalaxy.ai/api/, with one section per product:
DotID — identity, accounts, organizations, quota, audit, app launch
TrustMint — devices, models, certificates, telemetry, twins, pipelines, OTA
Bazaar — marketplace publishing, entitlements, catalog, commerce, signing
Each reference is generated from the specification the product actually ships and is then reconciled against the routes the edge actually serves, so a path you can read there is a path you can call. Nothing on that surface is hand-written.
https://api.flexgalaxy.ai/ in a browser redirects to that reference.
Authenticating¶
Two credential types reach the API, and which one you use depends on who is acting.
A service you own — AK/SK request signing. Issue an access key, then sign each request. This is the right choice for backend integrations, scheduled jobs and anything running without a person present.
curl -sS https://api.flexgalaxy.ai/identity/v1/users \
-H "Authorization: FGAI-HMAC-SHA256 Credential=$FGAI_ACCESS_KEY_ID/…" \
-H "X-Fgai-Date: $(date -u +%Y%m%dT%H%M%SZ)"
A signed-in person — a bearer token. Your application completes an OIDC login and forwards the resulting access token:
curl -sS https://api.flexgalaxy.ai/accounts/v1/accounts \
-H "Authorization: Bearer $ACCESS_TOKEN"
The fgai command-line tool handles both for you; see
the CLI guide if you would rather not sign requests by hand.
Note
Do not call identity-provider administration APIs directly, even if you can reach
them. Account and user administration is exposed through /identity/v1/… and
/accounts/v1/…, which apply the authorization model your account is governed by.
A direct call bypasses it, and the boundary is enforced, not merely documented.
Errors¶
Errors are JSON and carry a stable code you can branch on. Read the code, not
the human-readable message, which is free to change.
Status |
Meaning |
What to do |
|---|---|---|
|
The request was malformed |
Fix the request; retrying will not help |
|
Missing, expired or invalid credentials |
Refresh the token or re-sign the request |
|
Authenticated, but not permitted |
You need a policy grant, not a retry |
|
No such resource, or not visible to you |
Check the identifier and the account you are acting in |
|
Conflicts with the current state |
Re-read the resource and retry the change |
|
Rate limited |
Back off; see below |
|
The platform failed |
Retry with exponential backoff and jitter |
Rate limits¶
Requests are rate limited per credential. A limited response is 429 and carries
Retry-After in seconds — honour it rather than retrying immediately, because a
tight retry loop is counted too. Back off exponentially with jitter for 429 and
5xx; do not retry 4xx responses other than 429.
Versioning¶
The v1 in a capability path is the compatibility promise. Within v1 we add
fields and add endpoints; we do not remove or repurpose either. Treat unknown
response fields as forgivable and ignore them — that is how additive change stays
non-breaking for you.