ProjectX Identity
ProjectX ID: the directory and its attribute schema, credentials and sessions, agent identities under delegation, bulk operations, and SCIM in both directions. The pillar every other pillar asks who somebody is, which is why it is published rather than treated as internal plumbing.
282 operations · https://api.projectx.dev
Generated from the checked-in OpenAPI document for this service. The document itself is the authority, and it is what a generated client is built from.
agent 6
- GET
/v1/iam/agentsRequiresiam:agent:listList agent identities
Each with whose authority it borrows, its blast radius and its budget.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/agentsRequiresiam:agent:createRegister an agent identity acting under delegation
An agent is never its own principal: `acts_for` is whose authority it borrows, and every decision about the agent is a decision about that person too.
- Body
- CreateAgentRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/agents/{name}Requiresiam:agent:readFetch one agent identity
Parameters (2)
name· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- PUT
/v1/iam/agents/{name}/budgetRequiresiam:agent:configureReplace an agent’s rate and spend ceilings
- Body
- AgentBudget
Parameters (3)
name· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/agents/{name}/resumeRequiresiam:agent:configureReturn a stopped agent to service
Parameters (3)
name· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/agents/{name}/stopRequiresiam:agent:stopStop an agent immediately
The kill switch. The response carries the propagation time, so an operator can see when the last service actually stopped honouring the agent’s tokens.
- Body
- StopAgentRequest
Parameters (3)
name· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
app 8
- POST
/v1/iam/api-grants/{grant}/introspectRequiresiam:app:readIntrospect an API grant for a scope
The scope must be within the grant and the grant not revoked. A revoked or missing grant allows nothing — the point of introspection over a self-contained token.
- Body
- IntrospectGrantRequest
Parameters (3)
grant· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/api-grants/{grant}/revokeRequiresiam:app:configureRevoke an API access grant
Parameters (3)
grant· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/applicationsRequiresiam:app:readList this tenant’s published SSO applications
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/applicationsRequiresiam:app:configurePublish an SSO application from a template
From a catalog template — a specific SaaS, or generic-saml/generic-oidc — over SAML or OIDC, with optional per-app SCIM outbound.
- Body
- PublishApplicationRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/applications/{application}/api-grantsRequiresiam:app:configureGrant an application consented API access
A consented set of scopes with a rate limit. The consent is recorded (who, when) and the grant is revocable — introspection reads both.
- Body
- GrantApiAccessRequest
Parameters (3)
application· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- PUT
/v1/iam/applications/{application}/assignmentRequiresiam:app:configureSet an application’s group- and rule-based assignment
Who gets the app: a set of groups and an optional attribute rule. Access follows the org chart rather than a hand-maintained list.
- Body
- SetAssignmentRequest
Parameters (3)
application· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/applications/{application}/unused-licencesRequiresiam:app:readFind assigned licences unused past a threshold
Given the assigned principals, returns those whose last use is older than the threshold — or who never used it. Turns a seat count into a reclaim list.
- Body
- UnusedLicencesRequest
Parameters (3)
application· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/applications/{application}/usageRequiresiam:app:recordRecord that a principal used an application
Feeds unused-licence detection — a seat assigned and never touched is the clearest waste.
- Body
- RecordAppUsageRequest
Parameters (3)
application· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
auth 9
- POST
/v1/iam/adaptive/decideRequiresiam:auth:evaluateDecide how much proof a sign-in needs, given its risk
Critical risk is denied; high needs a phishing-resistant factor or steps up; medium needs a second factor or steps up; low allows. A sign-in already meeting the bar is not made to jump again.
- Body
- AdaptiveDecideRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/adaptive/impossible-travelRequiresiam:auth:evaluateCheck whether two sign-ins imply impossible travel
Distance over time gives an implied speed; a speed no traveller reaches is flagged. The same account in two places at once is two people.
- Body
- ImpossibleTravelRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/continuous-access/evaluateRequiresiam:auth:evaluateContinuously evaluate whether a session’s access still holds
Given the epoch the session was last evaluated at and the fresh PDP verdict when re-evaluation is due, returns continue or revoke — a session that no longer passes dies mid-request.
- Body
- ContinuousAccessRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/legacy-authRequiresiam:auth:readList this tenant’s legacy auth endpoints
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- PUT
/v1/iam/legacy-auth/{protocol}Requiresiam:auth:configureEnable and configure a legacy auth protocol
LDAP bind, RADIUS, Kerberos, smart card (PIV/CAC) or hardware OTP — off by default, opened only where the estate needs it.
- Body
- LegacyEndpointRequest
Parameters (3)
protocol· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/legacy-auth/{protocol}/authenticateRequiresiam:auth:evaluateAuthenticate a legacy identifier to a principal
Refuses an attempt against a disabled protocol and an identifier that maps to nobody. Returns the resolved principal.
- Body
- LegacyAuthenticateRequest
Parameters (3)
protocol· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/legacy-auth/{protocol}/mappingsRequiresiam:auth:configureMap a legacy identifier to a principal
Bridges an old identifier — a bind DN, cert subject or token serial — to a platform principal, so a legacy protocol never authenticates a stranger.
- Body
- LegacyMappingRequest
Parameters (3)
protocol· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/policy-epochRequiresiam:auth:readRead the tenant’s access-policy epoch
The version live sessions are measured against for continuous access evaluation.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/policy-epoch/bumpRequiresiam:auth:configureBump the access-policy epoch on a policy change
Makes a policy change land mid-session: every live session evaluated against the old epoch is re-checked on its next request, and dies if it no longer passes.
- Body
- BumpEpochRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
auth_event 1
- GET
/v1/iam/auth-eventsRequiresiam:auth_event:readQuery authentication attempts
Failures carry the username attempted rather than a resolved principal, because a sign-in attempt against an account that does not exist is exactly the event worth reading.
Parameters (5)
principal· query — URN of the principal, for attempts that resolved to one.outcome· query — success, failure, challenge or revoked.since· query — Inclusive RFC 3339 lower bound.limit· query — How many to return. Defaults to 100.X-Request-Id· header — Echoed on the response and recorded on the audit event.
ciam 16
- POST
/v1/iam/account-takeover/assessRequiresiam:ciam:readScore a sign-in for account-takeover risk
Bands the sign-in signals into low/medium/high so a response playbook reads the risk, not the arithmetic. Impossible travel weighs double.
- Body
- TakeoverAssessRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/bot-defence/evaluateRequiresiam:ciam:readDecide allow / challenge / block for an attempt
The gateway calls this with what it has observed of the source. Credential stuffing is blocked; a source over its budget or already suspicious is challenged; the rest is allowed.
- Body
- BotEvaluateRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- PUT
/v1/iam/bot-policyRequiresiam:ciam:configureSet the bot-defence thresholds
How many attempts from one source before a challenge, and how many distinct accounts one source may fail against before it is blocked as credential stuffing.
- Body
- BotPolicyRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/consentsRequiresiam:ciam:consentGrant consent for a purpose at a terms version
Consent is per purpose against a terms version — agreeing to v1 is not agreeing to v2. A new terms version resets it.
- Body
- GrantConsentRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/consents/withdrawRequiresiam:ciam:consentWithdraw consent for a purpose
Withdrawal stamps the record withdrawn rather than deleting it — the audit needs both the grant and the withdrawal.
- Body
- WithdrawConsentRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/customer-tenantsRequiresiam:ciam:readList this tenant’s customer tenants
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/customer-tenantsRequiresiam:ciam:configureCreate a customer tenant with its own branding
A customer’s own user base with its branding (logo, colours, domain, copy) and registration policy — the sign-up page a customer’s users see is the customer’s page, not ours wearing a hat.
- Body
- CreateCustomerTenantRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/data-subject-requestsRequiresiam:ciam:dsrList this tenant’s data-subject requests, newest first
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/data-subject-requestsRequiresiam:ciam:dsrRaise a GDPR data-subject request
Export, rectify or erase — a tracked obligation with a deadline and a closed lifecycle, so a GDPR deadline is a state the system tracks rather than a promise in an inbox.
- Body
- RaiseDsrRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/data-subject-requests/{request}/closeRequiresiam:ciam:dsrClose a data-subject request, fulfilled or rejected
A request is decided once; the outcome records where an export landed or why it was rejected.
- Body
- CloseDsrRequest
Parameters (3)
request· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/org-membershipsRequiresiam:ciam:configureSet a principal’s roles in a customer org
B2B multi-org: one identity across many organisations, a different set of roles in each. Roles set here never leak into another org.
- Body
- SetOrgMembershipRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- PUT
/v1/iam/preference-centreRequiresiam:ciam:configureApply preference changes for a principal
The customer’s switchboard. Changes merge over existing preferences — editing one leaves the others alone.
- Body
- SetPreferencesRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/registration-policyRequiresiam:ciam:configureSet the self-registration policy
The fields collected at sign-up versus later. A short front door, the rest asked for when it is worth asking — progressive profiling.
- Body
- RegistrationPolicyRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/social-identitiesRequiresiam:ciam:configureLink a social provider identity to a principal
Links a Google/Apple/Microsoft/Facebook/GitHub subject to a principal. Refuses a subject already tied to another user — an external subject that maps to two people is an account-takeover seam.
- Body
- LinkSocialIdentityRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verificationsRequiresiam:ciam:verifyIssue a verification challenge
A challenge to an email, phone or document with a code and a deadline. It cannot be reused once verified — a spent verification is not a standing pass.
- Body
- IssueVerificationRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verifications/{challenge}/verifyRequiresiam:ciam:verifyVerify a challenge with a presented code
Accepts the right code before the deadline and refuses a wrong code, an expired challenge, or a second attempt on a spent one.
- Body
- VerifyChallengeRequest
Parameters (3)
challenge· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
credential 5
- GET
/v1/iam/api-keysRequiresiam:credential:listList API keys in the tenant
Parameters (2)
principal· query — Only keys held by this principal URN. What an offboarding sweep asks before it revokes.X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/api-keysRequiresiam:credential:createMint an API key, returning the secret exactly once
- Body
- ApiKeyRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- DELETE
/v1/iam/api-keys/{id}Requiresiam:credential:revokeRevoke an API key
Parameters (4)
id· path · requiredreason· query — Recorded on the credential. Defaults to a generic administrator note.X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/api-keys/{id}/rotateRequiresiam:credential:rotateReplace an API key, leaving the old one valid for a grace window
The grace window is what lets a deploy pick up the new key without an outage in between.
- Body
- RotateApiKeyRequest
Parameters (3)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/me/api-keysRequiresiam:credential:list_ownList your own API keys
Prefixes and expiries, never secrets. A secret is returned once, at issue.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
customer_user 6
- GET
/v1/iam/customer-usersRequiresplatform:customer_user:readList one customer’s users, as metadata
Platform tenant only. Name, email, state, source and sign-in times — never attributes or credentials.
Parameters (6)
tenant· query · required — The customer tenant. Required.search· query — Substring match on username, display name and email.state· query — pending, active, suspended or deprovisioned.cursor· query — Opaque cursor from the previous page.limit· query — Page size, at most 200. Defaults to 50.X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/customer-users/{tenant}/{username}Requiresplatform:customer_user:readOne customer user, with the kinds of factor they have enrolled
Factor kinds and when each was added, so support can see why a sign-in fails. Never the factor itself.
Parameters (3)
tenant· path · requiredusername· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/customer-users/{tenant}/{username}/reactivateRequiresplatform:customer_user:manageReactivate a suspended customer user
- Body
- CustomerUserActionRequest
Parameters (4)
tenant· path · requiredusername· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/customer-users/{tenant}/{username}/require-passkeyRequiresplatform:customer_user:manageMake a customer user register a new passkey at their next sign-in
The recovery path for somebody who has lost their key: nothing is removed, and the next sign-in asks for a new one.
- Body
- CustomerUserActionRequest
Parameters (4)
tenant· path · requiredusername· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/customer-users/{tenant}/{username}/sign-out-everywhereRequiresplatform:customer_user:manageRevoke every session a customer user holds
- Body
- CustomerUserActionRequest
Parameters (4)
tenant· path · requiredusername· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/customer-users/{tenant}/{username}/suspendRequiresplatform:customer_user:manageSuspend a customer’s user, revoking their sessions and credentials
- Body
- CustomerUserActionRequest
Parameters (4)
tenant· path · requiredusername· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
delegation 7
- GET
/v1/iam/delegationsRequiresiam:delegation:readList the delegation grants this tenant has opened
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/delegationsRequiresiam:delegation:configureGrant an MSP delegated administration of this tenant
Names the MSP tenant, the exact MSP principals, the action prefixes they may use, and why. Pausing the grant closes every access window it opened.
- Body
- DelegationGrantRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- PATCH
/v1/iam/delegations/{grant}Requiresiam:delegation:configurePause or resume a delegation grant
Pausing closes every access window the grant opened.
- Body
- DelegationUpdateRequest
Parameters (3)
grant· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/delegations/{grant}/accessRequiresiam:delegation:accessOpen a time-boxed delegated access window into a client tenant
Every check runs on every open: the grant names your tenant and you, it is enabled and unexpired, and your account in the MSP tenant is active. The window lasts at most eight hours and never outlives the grant.
Parameters (3)
grant· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/delegations/access-windowsRequiresiam:delegation:readThe delegated access windows open in this tenant right now
No unmanaged cross-client access is a list the client can read, not a promise.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/delegations/access-windows/{window}/revokeRequiresiam:delegation:configureEnd one delegated access window now
Parameters (3)
window· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/delegations/acting-onRequiresiam:delegation:readThe client tenants the calling MSP principal may act for
Read from the MSP tenant’s own mirror records; a grant the client paused or let expire does not appear.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
device 13
- GET
/v1/iam/device-access-policyRequiresiam:device:readRead the managed-device access policy
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/device-access-policyRequiresiam:device:configureSet the managed-device access policy
One rule per resource sensitivity, stating whether a device must be managed and compliant. This is what turns a personal laptop away from the crown jewels while letting a managed, healthy device through.
- Body
- DeviceAccessPolicyRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/device-integrationsRequiresiam:device:readList this tenant’s MDM/EDR integrations
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/device-integrationsRequiresiam:device:configureRegister an MDM or EDR integration
A connection to the system of record for device management (Intune, Jamf, Kandji, Workspace ONE) or endpoint protection (CrowdStrike, SentinelOne, Defender). A synced posture is attributed to the integration it came from.
- Body
- RegisterIntegrationRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/devicesRequiresiam:device:readList this tenant’s enrolled devices
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/devicesRequiresiam:device:enrolEnrol a device to a principal
Ties a device to its owner and records whether it is corporate-managed or personal. The device proves its identity with a client certificate, not a self-asserted name.
- Body
- EnrolDeviceRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/devices/{device}/evaluateRequiresiam:device:readDecide whether a device may reach a resource of a sensitivity
Folds device trust into an ABAC decision: returns allowed plus, when refused, the reasons — the same reasons the user needs to know what to fix. With no policy set, access is allowed; device trust is opt-in per tenant.
- Body
- EvaluateDeviceAccessRequest
Parameters (3)
device· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/devices/{device}/postureRequiresiam:device:reportReport a device’s posture signals
The MDM/EDR reporter posts the current signals — encryption, patch level, EDR, screen lock, jailbreak. Compliance is computed from these on demand, so a device that drifts out is treated as such at the next check.
- Body
- ReportPostureRequest
Parameters (3)
device· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/network-zonesRequiresiam:device:readList this tenant’s network zones
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/network-zonesRequiresiam:device:configureCreate or replace a network zone
A named set of CIDR ranges and how far they are trusted. A request’s source address resolves to a zone, which becomes an attribute ABAC reads — turning "only from a trusted network" into a rule rather than a firewall no one can see into.
- Body
- NetworkZoneRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/published-appsRequiresiam:device:readList this tenant’s published apps
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/published-appsRequiresiam:device:configurePublish an internal app through the ZTNA proxy
Makes an internal app reachable without a VPN, on conditions: a resource sensitivity the device policy reads and, optionally, a minimum network-zone trust. Every request is evaluated on its own — there is no inside.
- Body
- PublishAppRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/published-apps/{app}/reachRequiresiam:device:readDecide whether a device on a network may reach a published app
The proxy calls this per request: it resolves the source address to a network zone and combines device trust with zone trust, with no implicit inside. Returns allowed plus the reasons when refused — whether to fix the device or get on a better network.
- Body
- ReachAppRequest
Parameters (3)
app· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
directory 6
- GET
/v1/iam/attribute-schemaRequiresiam:directory:readRead the attributes this directory accepts
What a bulk import may set, what policy may test, and what a user may edit about themselves — all three are read from here rather than agreed by convention.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- PUT
/v1/iam/attribute-schema/{name}Requiresiam:directory:configureDeclare or replace one directory attribute
The two fields that matter most are `self_service_editable` and `policy_visible`: an attribute a user may edit and the decision point may read is a privilege escalation waiting to be found.
- Body
- AttributeDefinition
Parameters (3)
name· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/ca/rootRequiresiam:directory:readThe workload CA root certificate
What a workload needs to verify the certificate of another workload. Public by nature — a root certificate is meant to be distributed — but read through the directory permission so the request is audited like any other.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/realmRequiresiam:directory:readRead session and sign-in policy for the tenant
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- PUT
/v1/iam/realmRequiresiam:directory:configureSet session and sign-in policy for the tenant
`allow_weak_second_factors` is the one field here that lowers a security floor, and it is annotated on the audit event for exactly that reason.
- Body
- RealmConfig
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/tenants/{tenant}/provisionRequiresiam:directory:provisionCreate a new company’s sign-in realm and first administrator
Self-service sign-up (A5): creates the realm named after the tenant, a public PKCE client per customer console stamping a fixed `tenant` claim, and the first user with no password. Keycloak emails them a link, valid for three days, to verify the address and set a password and authenticator or register a passkey. Idempotent. Platform tenant only.
- Body
- ProvisionCompanyRequest
Parameters (3)
tenant· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
factor 9
- GET
/v1/iam/me/factorsRequiresiam:factor:list_ownList your own enrolled second factors
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/me/factorsRequiresiam:factor:enrol_ownStart enrolling a second factor on your own account
- Body
- EnrolFactorRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- DELETE
/v1/iam/me/factors/{id}Requiresiam:factor:remove_ownRemove a second factor from your own account
Parameters (3)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/me/push/challengesRequiresiam:factor:challenge_ownSend a number-matching push challenge to your phone
Returns the number the login screen displays. The phone receives the challenge id and three options — never the answer — and answers by signing the number the user tapped.
- Body
- BeginPushChallengeRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/me/push/challenges/{id}Requiresiam:factor:challenge_ownRead a push challenge’s status
Parameters (2)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/me/push/challenges/{id}/answerRequiresiam:factor:challenge_ownAnswer a push challenge with the tapped number and the device signature
- Body
- AnswerPushChallengeRequest
Parameters (3)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/me/push/devicesRequiresiam:factor:list_ownList your own enrolled push devices
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/me/push/devicesRequiresiam:factor:enrol_ownEnrol a phone for push MFA with number matching
- Body
- EnrolPushDeviceRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- DELETE
/v1/iam/me/push/devices/{id}Requiresiam:factor:remove_ownRemove one of your push devices
Parameters (3)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
federation 14
- GET
/v1/iam/directories/ldapRequiresiam:federation:readList the LDAP and Active Directory directories this tenant reads people from
The bind credential is never returned.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- DELETE
/v1/iam/directories/ldap/{name}Requiresiam:federation:configureDisconnect a directory
The people imported from it are removed from the realm with it: their accounts were the directory’s, and it is no longer there to vouch for them.
Parameters (3)
name· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- PUT
/v1/iam/directories/ldap/{name}Requiresiam:federation:configureConnect or replace an LDAP or Active Directory directory
Read-only federation: people sign in with their directory password, checked by binding to the directory, and nothing is written back. The bind is tried before anything is saved; a directory that refuses it answers 422. Leave `bind_credential` out on a replace to keep the stored one.
- Body
- LdapDirectoryConfig
Parameters (3)
name· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/directories/ldap/{name}/syncRequiresiam:federation:configurePull people from a directory now
`mode: full` pulls everyone; `changed` (the default) only who changed since the last sync. The scheduled sync runs the `changed` kind every `sync_interval_seconds`.
- Body
- LdapSyncRequest
Parameters (3)
name· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/hr/connectionsRequiresiam:federation:readList this tenant’s HR connections
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/hr/connectionsRequiresiam:federation:configureConnect an HR system (Workday, SuccessFactors, BambooHR, Personio, HiBob, ADP)
The credential stays behind a reference resolved by the deployment; this record holds where to call and how often, never the secret.
- Body
- CreateHrConnectionRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- PATCH
/v1/iam/hr/connections/{id}Requiresiam:federation:configurePause, resume or re-cadence an HR connection
- Body
- UpdateHrConnectionRequest
Parameters (3)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/hr/connections/{id}/syncRequiresiam:federation:configureRun a sync from this HR connection now
A delta run reads what changed since the watermark; a full run reads everything and reconciles, flagging principals this source manages whom the feed no longer mentions. A dry run reports what would change and touches nothing. Failures are recorded per record rather than aborting the run, and the run is kept as a reconciliation report.
Parameters (5)
id· path · requireddry_run· query — Set to `true` to report without writing.full· query — Set to `true` for a full reconciliation read.X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/hr/sync-runsRequiresiam:federation:readReconciliation reports for HR sync runs, newest first
Each report carries the steps, the per-record failures, the conflicts where an HR value overrode a locally managed principal, and the attributes the tenant schema declined.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/identity-providersRequiresiam:federation:readList configured upstream identity providers
Aliases, protocols and mappings. Client secrets are never returned.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- DELETE
/v1/iam/identity-providers/{alias}Requiresiam:federation:configureRemove an upstream identity provider
Deletes the realm’s federation to this provider. A user who signed in through it keeps their local principal; what goes is the ability to broker a new login.
Parameters (3)
alias· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- PUT
/v1/iam/identity-providers/{alias}Requiresiam:federation:configureRegister or replace an upstream identity provider
`client_secret` is written through to the realm and never read back, so the audit event records the alias and the protocol and nothing else.
- Body
- IdentityProviderConfig
Parameters (3)
alias· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/identity-providers/{alias}/saml-metadataRequiresiam:federation:readService-provider metadata for one upstream SAML provider
What the customer’s identity provider imports to trust this tenant: the entity id and the ACS URL its assertions are posted to. Answers `application/xml`. Not found for a provider that is not SAML.
Parameters (2)
alias· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/saml/metadataRequiresiam:federation:readThis realm’s SAML identity-provider metadata
The metadata a SAML application imports to sign people in through this tenant: the sign-in endpoint and the certificate assertions are signed with. Answers `application/xml`, not JSON, because the application expects the SAML metadata schema.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
group 4
- GET
/v1/iam/groupsRequiresiam:group:listList groups, static and dynamic
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/groupsRequiresiam:group:createCreate a static or dynamic group
Supplying a `rule` makes the group dynamic — membership is evaluated from attributes rather than assigned — and omitting one makes it static.
- Body
- CreateGroupRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- DELETE
/v1/iam/groups/{group}/members/{principal}Requiresiam:group:manage_membersRemove a principal from a group
Parameters (4)
group· path · requiredprincipal· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- PUT
/v1/iam/groups/{group}/members/{principal}Requiresiam:group:manage_membersAdd a principal to a group
An `expires_at` is what makes this a time-boxed elevation rather than a permanent grant.
- Body
- GroupMembershipRequest
Parameters (4)
group· path · requiredprincipal· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
iga 26
- GET
/v1/iam/access-requestsRequiresiam:iga:readList this tenant’s access requests, newest first
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/access-requestsRequiresiam:iga:requestRequest access to an entitlement, with a justification
The justification is the request’s reason for existing, not a note on it — an approver answers with it and an auditor reads it first, so a request without one is refused. The workflow says who approves and how: steps in order, together, or only when a condition holds, escalating when nobody acts in time.
- Body
- AccessRequestBody
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/access-requests/{request}/decideRequiresiam:iga:approveApprove or reject an access request as one of its approvers
Any approver may reject the whole request; it is approved only when every applicable step is. On approval the time-bound grant is minted in the same step, so an approved request without the access it approved cannot happen.
- Body
- DecideAccessRequestBody
Parameters (3)
request· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/birthright-rulesRequiresiam:iga:readList this tenant’s birthright rules
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/birthright-rulesRequiresiam:iga:configureDefine a birthright rule: what a role or attribute grants on joining
The floor access a role implies — a new nurse opens the ward system on day one without a ticket. Anything beyond the birthright goes through a request.
- Body
- CreateBirthrightRuleRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/campaignsRequiresiam:iga:readList this tenant’s access review campaigns
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/campaignsRequiresiam:iga:configureOpen an access review campaign, scoped to a manager, owner or role
The scope decides who reviews — a review nobody is accountable for is a review nobody does. Every item starts undecided, and an item still undecided when the campaign closes is revoked, not kept.
- Body
- CreateCampaignRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/campaigns/{campaign}/certificationRequiresiam:iga:readExport the certification evidence for a campaign
What an auditor is handed: every item, its reviewer, the decision and when. A review whose result cannot be exported is, to an auditor, a review that did not happen.
Parameters (2)
campaign· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/campaigns/{campaign}/closeRequiresiam:iga:reviewClose a campaign, revoking every item nobody reviewed
The fail-safe direction: an item nobody looked at loses its access, because access that persists because nobody reviewed it is the exact failure a review exists to catch. The grants are revoked in the same step the campaign closes.
Parameters (3)
campaign· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/campaigns/{campaign}/reviewRequiresiam:iga:reviewRecord a keep-or-revoke decision on one item of a campaign
- Body
- ReviewItemRequest
Parameters (3)
campaign· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/entitlementsRequiresiam:iga:readList the cross-pillar entitlement catalog with its pillar coverage
Returns the catalog and which pillars it actually covers, so a governance view shows the gap — a catalog that stops at three pillars is a leaver sweep that misses two — rather than discovering it during an incident.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/entitlementsRequiresiam:iga:configureAdd one grantable thing to the cross-pillar entitlement catalog
One list of every grantable thing across identity, data, video, cloud, agents and ops. A review, a segregation-of-duties rule and a leaver sweep are only as complete as this single catalog, which is why it is one list and not five.
- Body
- CreateEntitlementRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/grantsRequiresiam:iga:readList this tenant’s time-bound access grants
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/grants/{grant}/renewRequiresiam:iga:requestRenew a time-bound grant, extending it a fresh window
A renewal extends a live grant from now, not from its old expiry, so it grants a fresh window rather than back-dating a lapsed one. A revoked or permanent grant cannot be renewed and the call is refused rather than silently doing nothing.
- Body
- RenewGrantBody
Parameters (3)
grant· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/least-privilegeRequiresiam:iga:readLeast-privilege analytics: who holds unused access and how much
An entitlement granted and never exercised is standing risk with no upside. Ranks principals by the fraction of their access that goes unused since the given instant, so a right-sizing conversation starts with who is furthest from least privilege.
Parameters (2)
since· query — Access not used since this instant counts as idle.X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/lifecycle/joinerRequiresiam:iga:configureGrant a joiner their role’s birthright on join
A new hire gets the floor access their role implies without a ticket. Anything beyond it goes through a request.
- Body
- LifecycleFactsRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/lifecycle/leaverRequiresiam:iga:approveRevoke every governance grant a leaver holds, across all pillars, in one run
The headline: one sweep spans identity, data, video, cloud, agents and ops, because the grants all name entitlements in the one cross-pillar catalog. The plan’s pillars_reached is the proof of breadth. The wider reach — sessions, credentials, downstream SaaS — is the platform offboarding sweep.
- Body
- LeaverRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/lifecycle/moverRequiresiam:iga:configureRecompute a mover’s birthright and apply the difference
A move is a replacement, not an accumulation: the new position’s access is granted and the old position’s birthright is revoked, so a long-tenured employee does not end up with the run of the building.
- Body
- LifecycleFactsRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/orphansRequiresiam:iga:readGrants and credentials whose owner is gone or deprovisioned
Access with nobody accountable for it — the residue of an incomplete leaver sweep. Reported, never deleted: an orphaned account might still be load-bearing, and destroying it is a human’s call.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/role-miningRequiresiam:iga:readSuggest roles from the entitlement sets many principals already share
When many people hold the same set of entitlements, that set is a role whether or not anyone named it. A suggestion an administrator confirms, never a role the miner creates on its own.
Parameters (2)
min· query — Minimum principals sharing a set to suggest it. Defaults to 2.X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/rolesRequiresiam:iga:readList this tenant’s role catalog
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/rolesRequiresiam:iga:configureDefine a role: a named bundle of permissions with an owner
The owner is required, not decorative — a role nobody owns is a role nobody reviews, and "who signs off that this bundle is still right" is the first question a review campaign asks.
- Body
- CreateRoleRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/sod-exceptionsRequiresiam:iga:configureGrant a time-bounded exception to an SoD rule for one principal
Allowed only with an expiry — a permanent exception is the rule quietly repealed, and the exception that outlives its reason is the one an auditor finds years later.
- Body
- SodExceptionRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/sod-rulesRequiresiam:iga:readList this tenant’s segregation-of-duties rules
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/sod-rulesRequiresiam:iga:configureDefine a segregation-of-duties rule: two entitlements one person must not hold
The two sides are entitlement URNs from the one catalog, so a rule can pair things across pillars — the cross-pillar conflict a per-pillar model cannot even express.
- Body
- CreateSodRuleRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/sod-violationsRequiresiam:iga:readEvery principal holding both sides of an SoD rule, across live grants
Excepted violations are reported and flagged, not hidden — a suppressed violation is one nobody re-reviews when its exception lapses.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
itdr 8
- GET
/v1/iam/detectionsRequiresiam:itdr:readList a principal’s detections, newest first
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/detectionsRequiresiam:itdr:detectRaise an identity threat detection
A known thing from the detection library — impossible travel, privilege escalation, mass entitlement change — against a principal. Severity defaults to the kind’s base but a detector may raise it.
- Body
- RaiseDetectionRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/response-playbooksRequiresiam:itdr:configureCreate or replace a response playbook
Maps a risk band to the response it warrants — force re-auth, step up, notify, open a case, suspend, disable. Kept as data so it is edited, reviewed and tested.
- Body
- SavePlaybookRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/response-playbooks/{playbook}/respondRequiresiam:itdr:respondResolve the actions a playbook orders for a principal’s risk
Scores the principal, bands the risk, and reads the playbook’s rule for that band — the responder runs the result.
- Body
- RespondRequest
Parameters (3)
playbook· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/riskRequiresiam:itdr:readRead a principal’s live risk score and band
The decaying sum of the principal’s recent detections as of now — a spree today lights it up, the same spree last month has faded.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/risk/correlateRequiresiam:itdr:readCorrelate a principal’s identity risk with video and cloud events
Joins the principal’s identity risk to the video and cloud event refs the caller has gathered — one story across three pillars instead of three consoles.
- Body
- CorrelateRiskRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/soc-sinksRequiresiam:itdr:readList this tenant’s SOC sinks
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/soc-sinksRequiresiam:itdr:configureConfigure a SOC sink
A SIEM stream, webhook or ticketing target detections are emitted to. The transport is the platform’s; this is the identity-side config.
- Body
- SaveSocSinkRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
lifecycle 20
- POST
/v1/iam/credential-handoffs/{handoff}/readRequiresiam:lifecycle:readConsume a single-read credential handoff
- Body
- CredentialHandoffRead
Parameters (3)
handoff· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/lifecycle-connectionsRequiresiam:lifecycle:readList Lifecycle provider metadata
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/lifecycle-connectionsRequiresiam:lifecycle:configureRegister Lifecycle provider metadata
- Body
- LifecycleConnectionRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/lifecycle-providers/healthRequiresiam:lifecycle:readRead Lifecycle provider health and simulator status
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/lifecycle-requestsRequiresiam:lifecycle:readList Lifecycle requests and execution state
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/lifecycle-requestsRequiresiam:lifecycle:requestCreate a governed Lifecycle request
- Body
- LifecycleRequestCreate
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/lifecycle-requests/{request}Requiresiam:lifecycle:readRead a Lifecycle request and its history
Parameters (2)
request· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/lifecycle-requests/{request}/compensateRequiresiam:lifecycle:executeCompensate completed steps of a failed Lifecycle request
Parameters (3)
request· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/lifecycle-requests/{request}/credential-handoffRequiresiam:lifecycle:executeCreate a single-read first-day credential handoff
- Body
- CredentialHandoffCreate
Parameters (3)
request· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/lifecycle-requests/{request}/decideRequiresiam:lifecycle:approveApprove or reject a Lifecycle request
- Body
- LifecycleDecisionRequest
Parameters (3)
request· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/lifecycle-requests/{request}/executeRequiresiam:lifecycle:executeExecute or retry an approved Lifecycle request
Parameters (3)
request· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/lifecycle/cohortsRequiresiam:lifecycle:readList lifecycle cohorts and their state
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/lifecycle/cohortsRequiresiam:lifecycle:requestOpen one governed lifecycle action over a directory-selected cohort
The member list is frozen at creation and capped; every member runs through the same named approvals and per-step execution records as a single request.
- Body
- LifecycleCohortRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/lifecycle/cohorts/{cohort}/decideRequiresiam:lifecycle:approveApply one approval decision to every member of a cohort
- Body
- LifecycleCohortDecisionRequest
Parameters (3)
cohort· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/lifecycle/cohorts/{cohort}/executeRequiresiam:lifecycle:executeExecute every approved member of a cohort
A member that fails fails its own request with its own compensation path; the cohort reports partial rather than pretending unanimity.
Parameters (3)
cohort· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/lifecycle/licence-insightRequiresiam:lifecycle:readLicence holdings, cost and reclaim candidates per SKU
Holdings are computed from Lifecycle’s own execution history; reclaim candidates are named with their reason — suspended, deprovisioned, or idle for ninety days.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/lifecycle/licence-ratesRequiresiam:lifecycle:readList the licence rate card
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- PUT
/v1/iam/lifecycle/licence-ratesRequiresiam:lifecycle:configureAdd or replace a licence rate card entry
Licence insight costs come from the tenant’s own rate card — a number we invented would be a number nobody can check.
- Body
- LicenceRateRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/role-profilesRequiresiam:lifecycle:readList Lifecycle role profiles
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/role-profilesRequiresiam:lifecycle:configureCreate a Lifecycle role profile
- Body
- LifecycleRoleProfileRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
oauth_client 5
- GET
/v1/iam/oauth-clientsRequiresiam:oauth_client:listList OAuth clients in the tenant
Registration records only — a client’s secret is never returned.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/oauth-clientsRequiresiam:oauth_client:createRegister an OAuth client
A confidential client’s secret appears in this response and nowhere else — not in the audit context, not in a log line. Redirect URIs must be https, or http to a loopback address for a native app; a public client uses PKCE and may not hold client_credentials.
- Body
- CreateOAuthClientRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/oauth-clients/{clientId}Requiresiam:oauth_client:readRead one OAuth client’s registration
Parameters (2)
clientId· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/oauth-clients/{clientId}/revokeRequiresiam:oauth_client:revokeRevoke an OAuth client
The record stays — the audit trail for what the client could ask for survives it — but the Keycloak client is deleted, so the flows stop working.
- Body
- RevokeOAuthClientRequest
Parameters (3)
clientId· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/oauth-clients/{clientId}/rotate-secretRequiresiam:oauth_client:rotateRotate an OAuth client’s secret
Returns the new secret once. The previous one stops working immediately. A public client has no secret to rotate.
Parameters (3)
clientId· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
pam 18
- GET
/v1/iam/break-glassRequiresiam:pam:readList this tenant’s break-glass accounts and their seal state
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/break-glass/{account}/openRequiresiam:pam:break-glassOpen a sealed break-glass account, requiring two approvers
No one person can open it alone — the account one person can open in an emergency is the account they open when it suits them. Every open raises an alert and is recorded for review.
- Body
- OpenBreakGlassRequest
Parameters (3)
account· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/command-filtersRequiresiam:pam:readList this tenant’s command filters
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/command-filtersRequiresiam:pam:configureCreate or replace a command filter
An ordered list of rules the broker consults before forwarding a command. Order is meaning: the first matching rule decides, so a narrow alert exception sits before the broad block it excepts.
- Body
- SaveCommandFilterRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/command-filters/{filter}/evaluateRequiresiam:pam:readEvaluate a command against a filter before it runs
Returns the decision — allow, alert or block — and the rule that decided. A block means the command is refused at the broker and never reaches the target.
- Body
- EvaluateCommandRequest
Parameters (3)
filter· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/elevationsRequiresiam:pam:readList this tenant’s JIT elevations, newest first
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/elevationsRequiresiam:pam:requestRequest just-in-time elevation to a role for a window
Privilege with a stopwatch: approved once, it expires on its own, so it cannot outlive the work — there is no "forgot to hand it back".
- Body
- RequestElevationRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/elevations/{elevation}/approveRequiresiam:pam:approveApprove a JIT elevation, starting its window
The clock starts at approval, not at the request, so the window is the time the operator actually has the access.
Parameters (3)
elevation· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/sessionsRequiresiam:pam:readList this tenant’s brokered sessions, newest first
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/sessionsRequiresiam:pam:sessionOpen a brokered session to a host, cluster or database
The broker mints a short-lived credential the target trusts — an SSH certificate, an RDP ticket, a per-session kubeconfig, an ephemeral database role — that expires on its own. Nothing standing is left on the target, and a database session is credential-less: the injected role is the access, no password is handed back.
- Body
- OpenSessionRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/sessions/{session}/closeRequiresiam:pam:sessionClose a brokered session, killing its credential now
The ephemeral credential is dead from the close rather than at its natural expiry — the operator handed the session back, so the access ends with the hand-back.
Parameters (3)
session· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/sessions/{session}/eventsRequiresiam:pam:recordAppend a captured event to a session recording
The capture agent posts keystrokes, resolved commands and video frame markers as the session runs. Each carries an offset from the session open, so a later search is a seek into the video, not just a log line.
- Body
- RecordEventRequest
Parameters (3)
session· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/sessions/{session}/recordingRequiresiam:pam:readPlay back or search a session recording
Returns the ordered event stream for playback. Pass ?q= to search: the response then carries only the matching events and their offsets, the moments a reviewer should watch.
Parameters (2)
session· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/vault/dynamic-secretsRequiresiam:pam:checkoutMint a dynamic secret leased for a short window
No stored shared secret: a fresh credential leased for a window and dead after. The credential that leaks is dead in minutes and belonged to nobody else.
- Body
- MintDynamicSecretRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/vault/secretsRequiresiam:pam:readList vault secrets as metadata, never their values
Names, systems, versions and checkout state — who holds the root password right now, and why. The value is never in the list.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/vault/secretsRequiresiam:pam:configureStore a privileged secret in the vault
The vault holds another system’s privileged secret. Only metadata is stored here; the value goes to the encrypted store and is never returned by a listing — getting it is a recorded checkout.
- Body
- StoreSecretRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/vault/secrets/{secret}/checkinRequiresiam:pam:checkoutCheck a secret back in, rotating it
Check-in rotates the secret, so the copy the borrower walked away with is dead the moment they hand the checkout back.
Parameters (3)
secret· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/vault/secrets/{secret}/checkoutRequiresiam:pam:checkoutCheck a secret out to yourself, with a reason
A recorded event with a holder and a reason, because "who has the root password right now, and why" is the question the vault exists to answer.
- Body
- CheckoutSecretRequest
Parameters (3)
secret· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
scim 11
- GET
/scim/v2/GroupsRequiresiam:scim:readList groups by SCIM
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/scim/v2/Groups/{id}Requiresiam:scim:readFetch one group by SCIM
Parameters (2)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- PATCH
/scim/v2/Groups/{id}Requiresiam:scim:writePatch a group’s membership by SCIM provisioning
- Body
- ScimPatchOp
Parameters (3)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/scim/v2/UsersRequiresiam:scim:readList users by SCIM
RFC 7644 paging, which counts from one rather than zero. Errors on every SCIM route answer in SCIM’s error format rather than RFC 7807, because a provisioning agent treats anything else as a transport failure and retries for ever.
Parameters (4)
filter· query — SCIM filter expression, such as `userName eq "ada"`.startIndex· query — One-based index of the first result. Defaults to 1.count· query — Page size. Defaults to 100.X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/scim/v2/UsersRequiresiam:scim:writeCreate a user by SCIM provisioning
Idempotent on `externalId`, so a provider replaying a create gets the existing user and a 200 rather than a duplicate.
- Body
- ScimUser
Parameters (3)
source· query — Which provisioning agent. Defaults to `scim`.X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- DELETE
/scim/v2/Users/{id}Requiresiam:scim:writeDeprovision a user by SCIM
Most providers send a patch setting `active` to false instead; this is the harder form and is honoured as a deprovision rather than a delete, because the audit chain outlives the account.
Parameters (4)
id· path · requiredsource· query — Which provisioning agent. Defaults to `scim`.X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/scim/v2/Users/{id}Requiresiam:scim:readFetch one user by SCIM
The id is a percent-encoded URN. One belonging to another tenant gets a 404 rather than a 403, because confirming that it exists is itself a disclosure.
Parameters (2)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- PATCH
/scim/v2/Users/{id}Requiresiam:scim:writePatch a user by SCIM provisioning
`active: false` arriving as a replace operation is how most identity providers say a person has left, which makes this the most consequential body in the identity plane.
- Body
- ScimPatchOp
Parameters (4)
id· path · requiredsource· query — Which provisioning agent. Defaults to `scim`.X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- PUT
/scim/v2/Users/{id}Requiresiam:scim:writeReplace a user by SCIM provisioning
- Body
- ScimUser
Parameters (4)
id· path · requiredsource· query — Which provisioning agent. Defaults to `scim`.X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/scim-targetsRequiresiam:scim:readList the downstream systems this tenant pushes users to
Names only, never credentials. An offboarding sweep reads this to know which systems it must ask to deactivate the leaver, so that a target nobody told it about is a gap in the configuration rather than a gap in the sweep.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/scim-targets/{name}/syncRequiresiam:scim:writePush this tenant’s users to a downstream SCIM target
A dry run reports what would change and touches nothing. Failures are listed per user rather than aborting the run, because one rejected account should not leave the other four hundred unsynchronised.
Parameters (4)
name· path · requireddry_run· query — Set to `true` to report without writing.X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
service_account 2
- POST
/v1/iam/service-accountsRequiresiam:service_account:createCreate a service account with a client secret
The secret appears in this response and nowhere else — not in the audit context, not in a log line.
- Body
- CreateServiceAccountRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/service-accounts/{username}/rotate-secretRequiresiam:service_account:rotateRotate a service account’s client secret
Returns the new secret once. The previous one stops working immediately.
Parameters (3)
username· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
session 3
- GET
/v1/iam/me/sessionsRequiresiam:session:list_ownList your own sessions
Device, address and assurance level for each, which is what lets a person recognise the one they do not recognise.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- DELETE
/v1/iam/sessions/{id}Requiresiam:session:revokeRevoke one session
Parameters (4)
id· path · requiredreason· query — Recorded on the session.X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/users/{id}/sign-out-everywhereRequiresiam:session:revoke_allRevoke every session a user holds
The response carries the propagation time, because “signed out everywhere” that takes four minutes to reach the last service is not what an incident responder needs.
- Body
- SignOutRequest
Parameters (3)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
tenant 1
- GET
/v1/iam/product-operationsRequiresplatform:tenant:readRead one customer’s allow-listed product operations summary
Platform tenant only. Counts, states, usage and provider health; no customer content or verification payloads.
Parameters (2)
tenant· query · required — Customer tenant keyX-Request-Id· header — Echoed on the response and recorded on the audit event.
user 11
- GET
/v1/iam/bulk/usersRequiresiam:user:listExport the directory as CSV
Round-trippable through the import: the columns this writes are the columns that endpoint reads, so an administrator can export, edit in a spreadsheet, and apply.
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/bulk/usersRequiresiam:user:createApply a user import
Planned first and refused as a whole if any row is invalid, so the operator fixes a spreadsheet rather than reconciling a partial run.
Parameters (3)
source· query — Recorded on every principal created, so an import can be told from a SCIM push later.X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/bulk/users/planRequiresiam:user:createValidate a user import without writing anything
Returns a row-by-row verdict over the whole file. The two-step exists because a partially applied import of four thousand users is worse than a refused one: the operator has no way to tell what landed.
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- PATCH
/v1/iam/me/profileRequiresiam:user:update_selfChange attributes on your own profile
Only attributes the tenant’s schema marks self-service editable are accepted, and the rest are refused rather than ignored: a user who thinks they changed their clearance and did not is worse off than one who was told no.
- Body
- SelfProfilePatch
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/usersRequiresiam:user:listList users
Parameters (6)
state· query — pending, active, suspended or deprovisioned.search· query — Substring match on username, display name and email.ou· query — Organisational unit path; includes everything below it.cursor· query — Opaque cursor from the previous page.limit· query — Page size. Defaults to 50.X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/usersRequiresiam:user:createCreate a user in the tenant directory
- Body
- CreateUserRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/users/{id}Requiresiam:user:readFetch one user
`me` in place of the id resolves to the caller, and then goes through exactly the same decision as any other principal — so “can a user read their own profile” is a policy question with an auditable answer rather than a special case.
Parameters (2)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- PATCH
/v1/iam/users/{id}Requiresiam:user:updateChange a user’s profile fields
An absent field is left alone, which is not the same as one set to null: a patch that omits a field must not be indistinguishable from one that clears it.
- Body
- UpdateUserRequest
Parameters (3)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/users/{id}/groupsRequiresiam:user:readEffective group membership for one user
Includes memberships inherited from parent groups and memberships a dynamic rule produces, because those are the ones an access review would otherwise miss.
Parameters (2)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/users/{id}/lifecycleRequiresiam:user:lifecycleMove a user between pending, active, suspended and deprovisioned
Suspending and deprovisioning revoke sessions and credentials as part of the same transition, and the response says how many of each — a state change that left a live session behind would be a suspension in name only.
- Body
- LifecycleRequest
Parameters (3)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/users/{id}/require-passkeyRequiresiam:user:updateRequire the user to enrol a passkey at next sign-in
Parameters (3)
id· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
verify 35
- GET
/v1/iam/verify/applicantsRequiresiam:verify:readList Verify applicant metadata
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/verify/applicantsRequiresiam:verify:manageCreate a Verify applicant metadata record
- Body
- VerifyApplicantRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/verify/attemptsRequiresiam:verify:readList Verify attempts and review state
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/verify/attemptsRequiresiam:verify:manageStart a Verify attempt
- Body
- VerifyAttemptRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/verify/attempts/{attempt}Requiresiam:verify:readRead a Verify attempt timeline
Parameters (2)
attempt· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/verify/attempts/{attempt}/checks/{kind}Requiresiam:verify:manageRun one Verify provider check
- Body
- VerifyCheckRequest
Parameters (4)
attempt· path · requiredkind· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verify/attempts/{attempt}/closeRequiresiam:verify:manageClose an unbillable Verify attempt
- Body
- VerifyCloseRequest
Parameters (3)
attempt· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verify/attempts/{attempt}/completeRequiresiam:verify:manageComplete and meter a processed Verify attempt
Parameters (3)
attempt· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verify/attempts/{attempt}/consentRequiresiam:verify:manageRecord purpose-specific Verify consent
- Body
- VerifyConsentRequest
Parameters (3)
attempt· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verify/attempts/{attempt}/deleteRequiresiam:verify:manageDelete expired evidence and return deletion evidence
Parameters (3)
attempt· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verify/attempts/{attempt}/payloadsRequiresiam:verify:manageRegister synthetic evidence in the regional boundary
- Body
- VerifyPayloadRequest
Parameters (3)
attempt· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verify/attempts/{attempt}/reviewRequiresiam:verify:reviewRecord a reasoned Verify review decision
- Body
- VerifyReviewRequest
Parameters (3)
attempt· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/verify/attempts/{attempt}/riskRequiresiam:verify:readRead explainable Verify risk reasons
Parameters (2)
attempt· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/verify/flowsRequiresiam:verify:readList Verify flow versions
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/verify/flowsRequiresiam:verify:managePublish a versioned Verify flow
- Body
- VerifyFlowRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/verify/monitoring/alertsRequiresiam:verify:readList monitoring alerts, newest first
Parameters (2)
state· query — Filter to `open` or `resolved`.X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/verify/monitoring/alerts/{alert}/resolveRequiresiam:verify:reviewResolve an alert with words
A resolution without reasons is not one.
- Body
- MonitoringAlertResolveRequest
Parameters (3)
alert· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verify/monitoring/evaluateRequiresiam:verify:manageEvaluate one subscription now; a non-passing answer opens an alert
- Body
- MonitoringEvaluateRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/verify/monitoring/providers/healthRequiresiam:verify:readRead monitoring provider health and simulator status
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/verify/monitoring/subscriptionsRequiresiam:verify:readList monitoring subscriptions
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/verify/monitoring/subscriptionsRequiresiam:verify:manageOpen a standing fraud/AML watch over an applicant
Ongoing duty, not a one-time check: the subscription re-screens on its cadence and every non-passing evaluation opens an alert.
- Body
- MonitoringSubscriptionRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- PATCH
/v1/iam/verify/monitoring/subscriptions/{subscription}Requiresiam:verify:managePause or resume a monitoring subscription
- Body
- MonitoringUpdateRequest
Parameters (3)
subscription· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/verify/providers/healthRequiresiam:verify:readRead Verify provider health and simulator status
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/verify/reporting/profilesRequiresiam:verify:readList reporting profiles
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- PUT
/v1/iam/verify/reporting/profilesRequiresiam:verify:manageDeclare or replace the reporting profile for a jurisdiction
Jurisdiction is declared, not inferred: the profile names the regulator, currency and Travel Rule threshold.
- Body
- ReportingProfileRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/verify/reporting/providers/healthRequiresiam:verify:readRead Travel Rule provider health and simulator status
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/verify/reporting/reportsRequiresiam:verify:readList regulated reports and their filing state
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/verify/reporting/reportsRequiresiam:verify:manageCompile a regulated report from the period’s records
Reports are compiled from transfer and alert records, never inferred from KYC outcomes.
- Body
- RegulatedReportRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verify/reporting/reports/{report}/fileRequiresiam:verify:manageFile a draft report; filing names its filer and happens once
Parameters (3)
report· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/verify/reusable-identitiesRequiresiam:verify:readList reusable identities and their state
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/verify/reusable-identitiesRequiresiam:verify:manageIssue a reusable identity from a completed, approved attempt
One identity per source attempt; expiry is the applicant retention horizon capped at one year.
- Body
- ReusableIdentityIssueRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verify/reusable-identities/{identity}/revokeRequiresiam:verify:manageRevoke a reusable identity; attempts already satisfied stand
Parameters (3)
identity· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/verify/travel-rule/transfersRequiresiam:verify:readList Travel Rule transfers and their state
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/verify/travel-rule/transfersRequiresiam:verify:manageRecord a transfer and send Travel Rule data when the threshold is met
Below the threshold the exemption itself is on the record; at or above it, originator, beneficiary and counterparty are required.
- Body
- TravelRuleTransferRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/verify/travel-rule/transfers/{transfer}/acknowledgeRequiresiam:verify:manageRecord the counterparty’s acknowledgement of a sent transfer
Parameters (3)
transfer· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
workload_identity 1
- POST
/v1/iam/workloads/{name}/certificateRequiresiam:workload_identity:issueSign a workload certificate request
Returns a short-lived SPIFFE certificate. The private key never leaves the workload, which is the whole point of taking a CSR rather than generating a keypair here.
- Body
- WorkloadCertificateRequest
Parameters (3)
name· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
workplace 37
- GET
/v1/iam/workplace/assistive/policyRequiresiam:workplace:readRead the assistive policy
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- PUT
/v1/iam/workplace/assistive/policyRequiresiam:workplace:manageSet the assistive cage: allowed actions, device cap, kill switch
Switching it off kills every proposed and approved run with it.
- Body
- AssistivePolicyRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/workplace/assistive/runsRequiresiam:workplace:readList assistive runs, their simulations and their outcomes
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/workplace/assistive/runsRequiresiam:workplace:managePropose an assistive run; every step is simulated first
- Body
- AssistiveRunRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/assistive/runs/{run}/decideRequiresiam:workplace:approveApprove or reject a proposed run; the approver is never the proposer
- Body
- AssistiveDecisionRequest
Parameters (3)
run· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/assistive/runs/{run}/executeRequiresiam:workplace:manageExecute the approved plan; the kill switch is re-checked first
Parameters (3)
run· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/workplace/baselinesRequiresiam:workplace:readList Workplace policy baselines
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/workplace/baselinesRequiresiam:workplace:managePublish a Workplace policy baseline
- Body
- WorkplaceBaselineRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/workplace/deploymentsRequiresiam:workplace:readList Workplace deployment results
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/workplace/devicesRequiresiam:workplace:readList the Workplace managed fleet
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/workplace/devicesRequiresiam:workplace:manageRegister or update a stable managed device
- Body
- WorkplaceDeviceRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/devices/{device}/assignRequiresiam:workplace:manageAssign a device to a ring and baseline
- Body
- WorkplaceAssignRequest
Parameters (3)
device· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/devices/{device}/deploymentsRequiresiam:workplace:manageExecute an idempotent Workplace deployment
- Body
- WorkplaceDeploymentRequest
Parameters (3)
device· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/workplace/devices/{device}/driftRequiresiam:workplace:readCompare observed device settings with its baseline
Parameters (2)
device· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/workplace/devices/{device}/laps/rotateRequiresiam:workplace:manageRotate the device’s local admin password; the record keeps the digest only
- Body
- LapsRotateRequest
Parameters (3)
device· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/devices/{device}/packages/{package}/deployRequiresiam:workplace:manageDeploy a published package to a device
Parameters (4)
device· path · requiredpackage· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/devices/{device}/packages/{package}/rollbackRequiresiam:workplace:manageRoll a device back to the package’s named rollback target
Parameters (4)
device· path · requiredpackage· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/devices/{device}/remediateRequiresiam:workplace:manageAnswer a device’s baseline drift with a baseline deployment
A device in step with its baseline has nothing to remediate — a 409, not a no-op.
Parameters (3)
device· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/devices/syncRequiresiam:workplace:manageSynchronize inventory through the MDM port
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/workplace/elevationsRequiresiam:workplace:readList Workplace elevation requests and expiry
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/workplace/elevationsRequiresiam:workplace:manageRequest time-boxed endpoint elevation
- Body
- WorkplaceElevationRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/elevations/{elevation}/decideRequiresiam:workplace:approveApprove or reject endpoint elevation
- Body
- WorkplaceElevationDecisionRequest
Parameters (3)
elevation· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/elevations/{elevation}/revokeRequiresiam:workplace:approveRevoke active endpoint elevation
Parameters (3)
elevation· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/laps/{credential}/revealRequiresiam:workplace:manageReveal the current local admin password once, for a named purpose
The reveal is written onto the record; afterwards the secret is gone from the boundary and the next reader rotates first.
- Body
- LapsRevealRequest
Parameters (3)
credential· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/workplace/laps/dueRequiresiam:workplace:readList LAPS credentials whose rotation cadence has elapsed
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- PUT
/v1/iam/workplace/migration/itsmRequiresiam:workplace:manageConfigure the ITSM bridge migration waves publish cases to
- Body
- ItsmConnectionRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/workplace/migration/wavesRequiresiam:workplace:readList migration waves and per-device outcomes
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/workplace/migration/wavesRequiresiam:workplace:manageCreate a migration wave over a frozen, inventory-checked device list
- Body
- MigrationWaveRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/workplace/migration/waves/{wave}/reconcileRequiresiam:workplace:readTicket reconciliation: the wave’s ITSM case, or why there is none
Parameters (2)
wave· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/workplace/migration/waves/{wave}/rollbackRequiresiam:workplace:manageReclaim every device the wave enrolled, recorded the same way
Parameters (3)
wave· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/migration/waves/{wave}/runRequiresiam:workplace:manageRun a wave: per-device enrolment, partial over pretend, ITSM case attached
Parameters (3)
wave· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/workplace/packagesRequiresiam:workplace:readList application packages and their state
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/workplace/packagesRequiresiam:workplace:managePublish a reviewed application package
A package is a source reference plus a SHA-256 digest; it publishes once per name and version and names its rollback target.
- Body
- AppPackageRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- POST
/v1/iam/workplace/packages/{package}/retireRequiresiam:workplace:manageRetire a package; a retired package cannot be deployed
Parameters (3)
package· path · requiredX-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.
- GET
/v1/iam/workplace/providers/healthRequiresiam:workplace:readRead Workplace MDM health and simulator status
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- GET
/v1/iam/workplace/ringsRequiresiam:workplace:readList Workplace rollout rings
Parameters (1)
X-Request-Id· header — Echoed on the response and recorded on the audit event.
- POST
/v1/iam/workplace/ringsRequiresiam:workplace:manageCreate an ordered Workplace rollout ring
- Body
- WorkplaceRingRequest
Parameters (2)
X-Request-Id· header — Echoed on the response and recorded on the audit event.Idempotency-Key· header — Makes a retry safe. A replay of the same key and body returns the stored response with Idempotency-Replayed: true; the same key with a different body is a 409.