API overview
The Huudis admin API is a thin REST surface over the same operations the dashboard performs. Anything you can do as a workspace administrator in the dashboard, you can do via the API.
The OIDC endpoints (/oidc/authorize, /oidc/token, /oidc/userinfo, /.well-known/*) are documented on the OIDC overview page — those are user-facing and follow the OIDC spec rather than Huudis conventions.
Base URL
https://huudis.com/api/v1
Every endpoint on this page is relative to that base.
Conventions
Authentication
Admin endpoints require a bearer access token issued to your account:
Authorization: Bearer <access-token>
The full authentication picture (where the token comes from, scopes, refresh) is on the Authentication page.
Response envelope
Every JSON response uses the standard Forjio envelope:
{
"data": { ... },
"error": null,
"meta": {
"requestId": "req_01KPG…",
"timestamp": "2026-05-12T03:14:00.000Z"
}
}
On error, data is null and error is populated:
{
"data": null,
"error": {
"code": "INVALID_REQUEST",
"message": "redirect_uri is required",
"field": "redirect_uri"
},
"meta": { ... }
}
Standard error codes: INVALID_REQUEST (400), UNAUTHORIZED (401), FORBIDDEN (403), NOT_FOUND (404), CONFLICT (409), RATE_LIMITED (429), INTERNAL (500).
Identifiers
Every resource has a typed prefix:
| Prefix | Type |
|---|---|
acc_ |
Account |
ws_ |
Workspace |
usr_ |
User |
oc_ |
OIDC client |
ocs_ |
OIDC client secret |
idp_ |
Identity provider config |
pol_ |
IAM policy |
grp_ |
IAM group |
sess_ |
Session |
fct_ |
MFA factor |
evt_ |
Webhook event |
All IDs after the prefix are ULIDs.
Pagination
List endpoints return cursor-paginated results:
GET /api/v1/oidc-clients?limit=50&cursor=oc_01KPG…
Response:
{
"data": [ { ... }, { ... } ],
"meta": {
"cursor": "oc_01KPH…",
"hasMore": true
}
}
When hasMore is false, you've reached the end. Default limit is 25, max 100.
Rate limits
Admin API requests are rate-limited per access token:
- 600 requests per minute rolling window.
- 20 requests per second burst.
Rate-limited responses return 429 RATE_LIMITED with a Retry-After header.
OIDC endpoints have separate, more generous limits — see OIDC overview.
Endpoint groups
The admin API is organised by what each group of endpoints manages:
| Group | Path prefix | Manages |
|---|---|---|
| Account | /account/* |
Account profile, members, enabled services. |
| Workspaces | /workspaces/* |
Workspace list and metadata. |
| OIDC clients | /oidc-clients/* |
Client CRUD, secret rotation. |
| Identity providers | /identity-providers/* |
Google/Apple/Facebook config. |
| IAM | /iam/* |
Policies, groups, attachments, authz check. |
| End users | /ops/end-users/* |
Users who signed into your clients. |
| MFA | /mfa/* |
Enrolment and verification. |
| Webhook subscriptions | /account/webhook-subscriptions/* |
Event delivery. |
| Audit log | /account/audit-log |
Read-only audit feed. |
What the API doesn't expose
Some operations are deliberately dashboard-only:
- Initial workspace creation — happens during sign-up; can't be scripted.
- Reading the client secret after creation — only on the rotate response. Lost secrets must be rotated.
- Reading user passwords or password hashes — ever. Reset is the only path.
Next
- API authentication — how to get a bearer token.
- SDK overview — the SDKs wrap every endpoint on this page.