Identity
Select the workspace once
A Duet integration should resolve its target workspace before it starts work. An ordinary credential belongs to one workspace: the slug in the key scope and the slug in a workspace-addressed operation must agree, and callers cannot use one workspace's grant to reach another. The one user-wide kind, the sync device, is documented with keys and scopes.
Keep human choice visible
When a user belongs to several workspaces, display the selected workspace and persist its stable identity with the integration configuration. Do not guess from the most recently visited browser page or fall back to the first membership.
Slugs are addresses
Slugs make workspace routes and scopes readable, but they are still protocol identifiers. Validate them with the shared contract grammar, encode dynamic path segments, and plan for a rename to break old public URLs rather than hiding the break behind an ambiguous redirect.
Do not mix scopes
A credential request may include several capabilities for one workspace. A request spanning two workspace slugs is rejected; authorize each workspace independently so revocation and auditing stay local.
Invite workspace members
Workspace owners may change member roles, but the durable workspace domain preserves two invariants: every workspace retains an owner, and the designated payer remains an owner until billing is reassigned. Consumers should surface the conflict rather than trying to sequence a client-side workaround.
Audit events are returned newest-first with opaque cursors. Treat a cursor as a continuation token, not as a timestamp or stable event identifier.
Set the agent tier fallback
Owners can set a workspace's default tier through the single-purpose default-model endpoint using
{ "tier": "frontier" | "balanced" | "economy" }.
This is a fallback for sessions without a sticky choice, not a rewrite of queued prompts or existing
session preferences. Paid tiers require an active subscription from the workspace billing owner.
Only owners can create, list, or revoke invitations. Invitations are bound to one canonical email, expire after seven days, and grant either editor or viewer access.
Lifecycle and path repair
Workspace creation returns while provisioning continues. Reprovisioning is an owner-only recovery operation, not a retry strategy for ordinary request failures. Renaming requires an explicit acknowledgement because workspace-scoped URLs change.
Apps, publishes, and share roots retain path anchors. List anchors to diagnose a moved path; repair
only an anchor in the broken state, using the capability that owns its kind.
Read VM telemetry history
Workspace members can read the VM's recent CPU, memory, and disk history. The optional sinceAt
query value is a Unix timestamp in milliseconds; without it, the service returns the retained
30-day window. Long windows are downsampled to a bounded chart response, so treat points as trend
buckets rather than exact latest readings. Memory and disk expose used and total values separately,
and an absent metric means that sample could not observe it.
Identity
17 operations /v1 /whoamiInspect the authenticated user, workspace memberships, and granted scopes.
- Scope
api_key- Request
- No JSON request body
- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "user": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "name": { "type": "string" } }, "required": [ "id", "email" ], "additionalProperties": false }, "workspaces": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "slug": { "type": "string" }, "name": { "type": "string" }, "status": { "type": "string", "enum": [ "provisioning", "active", "unhealthy", "archived", "retired", "deleted" ] }, "servicingStatus": { "type": "string", "enum": [ "active", "paused", "banned" ] }, "servicingStatusChangedAt": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "role": { "type": "string", "enum": [ "owner", "editor", "viewer" ] }, "billingUserId": { "type": "string" }, "funding": { "type": "object", "properties": { "plan": { "anyOf": [ { "type": "string", "enum": [ "starter", "pro", "max" ] }, { "type": "null" } ] }, "active": { "type": "boolean" }, "trialEndsAt": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "required": [ "plan", "active" ], "additionalProperties": false }, "defaultTier": { "type": "object", "properties": { "configured": { "type": "string", "enum": [ "frontier", "balanced", "economy" ] }, "effective": { "type": "string", "enum": [ "frontier", "balanced", "economy" ] }, "access": { "type": "string", "enum": [ "all_tiers", "economy_only" ] } }, "required": [ "effective", "access" ], "additionalProperties": false }, "duetName": { "type": "string", "minLength": 1, "maxLength": 32, "pattern": "^[^[\\]<>`\\p{Cc}]*$" }, "purpose": { "type": "string", "minLength": 1, "maxLength": 1000 }, "onboardedAt": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "onboarding": { "type": "object", "properties": { "starterAgents": { "type": "array", "items": { "type": "string" } } }, "required": [ "starterAgents" ], "additionalProperties": false }, "adminMessage": { "type": "string" } }, "required": [ "id", "slug", "name", "status", "servicingStatus", "role", "billingUserId", "funding", "defaultTier" ], "additionalProperties": false } }, "scopes": { "type": "array", "items": { "type": "string" } }, "versions": { "type": "object", "properties": { "api": { "type": "number", "const": 1 } }, "required": [ "api" ], "additionalProperties": false }, "internalAdmin": { "type": "boolean" }, "credential": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "user", "system_vm", "app", "impersonation", "browser_session", "sync_device", "oauth" ] }, "audience": { "type": "string", "format": "uri" } }, "required": [ "kind" ], "additionalProperties": false } }, "required": [ "user", "workspaces", "scopes", "versions", "internalAdmin" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /workspacesCreate a workspace and begin asynchronous provisioning.
- Scope
api_key- Request
Request JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "slug": { "type": "string" }, "name": { "type": "string", "minLength": 1 } }, "required": [ "slug", "name" ] }- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "status": { "type": "string", "const": "provisioning" } }, "required": [ "workspaceId", "slug", "status" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /reprovisionReplace an owner-managed workspace runtime after an explicit recovery request.
- Scope
ws:{workspaceSlug}:admin- Request
- No request body
- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "oneOf": [ { "type": "object", "properties": { "status": { "type": "string", "const": "provisioning" }, "workspaceId": { "type": "string" }, "scheduled": { "type": "boolean" }, "oldVmName": { "type": "string" }, "imageRef": { "type": "string" }, "archiveStorageId": { "type": "string" } }, "required": [ "status", "workspaceId", "scheduled" ], "additionalProperties": false }, { "type": "object", "properties": { "status": { "type": "string", "const": "deferred" }, "reason": { "type": "string", "const": "active_workspace_work" }, "activeAgentSessions": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "activeTrainJobs": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "required": [ "status", "reason", "activeAgentSessions", "activeTrainJobs" ], "additionalProperties": false } ] }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /workspaces /{workspaceSlug}Rename a workspace after acknowledging that its public addresses will break.
- Scope
ws:{workspaceSlug}:admin- Request
Request JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "slug": { "type": "string" }, "name": { "type": "string" }, "publicUrlBreakAcknowledged": { "type": "boolean", "const": true } }, "required": [ "slug", "publicUrlBreakAcknowledged" ] }- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "ok": { "type": "boolean", "const": true }, "breaksPublicUrls": { "type": "boolean", "const": true } }, "required": [ "ok", "breaksPublicUrls" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /admin /suspensionSuspend or resume an owner-managed workspace.
- Scope
ws:{workspaceSlug}:admin- Request
Request JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "suspended": { "type": "boolean" }, "reason": { "type": "string" } }, "required": [ "suspended" ] }- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "oneOf": [ { "type": "object", "properties": { "suspended": { "type": "boolean", "const": true }, "suspendedAt": { "type": "number" }, "suspensionReason": { "type": "string" } }, "required": [ "suspended", "suspendedAt" ], "additionalProperties": false }, { "type": "object", "properties": { "suspended": { "type": "boolean", "const": false } }, "required": [ "suspended" ], "additionalProperties": false } ] }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /admin /suspensionRead whether the workspace is suspended, since when, and why.
- Scope
ws:{workspaceSlug}:admin- Request
- No JSON request body
- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "oneOf": [ { "type": "object", "properties": { "suspended": { "type": "boolean", "const": true }, "suspendedAt": { "type": "number" }, "suspensionReason": { "type": "string" } }, "required": [ "suspended", "suspendedAt" ], "additionalProperties": false }, { "type": "object", "properties": { "suspended": { "type": "boolean", "const": false } }, "required": [ "suspended" ], "additionalProperties": false } ] }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /anchorsList path anchors and their current health.
- Scope
ws:{workspaceSlug}:files:read- Request
- No JSON request body
- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "anchors": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "path": { "type": "string" }, "kind": { "type": "string", "enum": [ "app", "agent", "publish", "share-root", "share-mount" ] }, "settings": {}, "state": { "type": "string", "enum": [ "active", "broken", "orphaned" ] }, "createdAt": { "type": "number" }, "updatedAt": { "type": "number" } }, "required": [ "id", "workspaceId", "path", "kind", "settings", "state", "createdAt", "updatedAt" ], "additionalProperties": false } } }, "required": [ "anchors" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /anchors /{anchorId} /reanchorRepair a broken anchor after its workspace path moves.
- Scope
ws:{workspaceSlug}:appsorws:{workspaceSlug}:publishorws:{workspaceSlug}:share- Request
Request JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "path": { "type": "string" } }, "required": [ "path" ] }- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "anchor": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "path": { "type": "string" }, "kind": { "type": "string", "enum": [ "app", "agent", "publish", "share-root", "share-mount" ] }, "settings": {}, "state": { "type": "string", "enum": [ "active", "broken", "orphaned" ] }, "createdAt": { "type": "number" }, "updatedAt": { "type": "number" } }, "required": [ "id", "workspaceId", "path", "kind", "settings", "state", "createdAt", "updatedAt" ], "additionalProperties": false } }, "required": [ "anchor" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /membersList current workspace members and the designated payer.
- Scope
ws:{workspaceSlug}:files:read- Request
- No JSON request body
- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "members": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "name": { "type": "string" }, "role": { "type": "string", "enum": [ "owner", "editor", "viewer" ] }, "isBillingUser": { "type": "boolean" } }, "required": [ "id", "email", "role", "isBillingUser" ], "additionalProperties": false } } }, "required": [ "members" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /members /{userId}Change a member role while preserving payer and final-owner invariants.
- Scope
ws:{workspaceSlug}:admin- Request
Request JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "role": { "type": "string", "enum": [ "owner", "editor", "viewer" ] } }, "required": [ "role" ] }- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "member": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "name": { "type": "string" }, "role": { "type": "string", "enum": [ "owner", "editor", "viewer" ] }, "isBillingUser": { "type": "boolean" } }, "required": [ "id", "email", "role", "isBillingUser" ], "additionalProperties": false } }, "required": [ "member" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /members /{userId}Remove a member after payer and final-owner checks pass.
- Scope
ws:{workspaceSlug}:admin- Request
- No JSON request body
- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "removed": { "type": "boolean" } }, "required": [ "removed" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /default-modelSet the workspace model role used when a session has no sticky choice.
- Scope
ws:{workspaceSlug}:admin- Request
Request JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "tier": { "type": "string", "enum": [ "frontier", "balanced", "economy" ] } }, "required": [ "tier" ] }- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "tier": { "type": "string", "enum": [ "frontier", "balanced", "economy" ] } }, "required": [ "tier" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /auditPage through newest-first workspace audit events.
- Scope
ws:{workspaceSlug}:files:read- Request
- No JSON request body
- Query
Query parameters JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "cursor": { "type": "string" }, "limit": { "default": 25, "type": "integer", "minimum": 1, "maximum": 100 } } }- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "events": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "event": { "type": "string" }, "actorId": { "type": "string" }, "at": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "provenance": { "type": "object", "properties": { "action": { "type": "string" }, "activeAgentSessions": { "type": "number" }, "activeTrainJobs": { "type": "number" }, "actor": { "type": "string" }, "acknowledged": { "type": "boolean" }, "agentVersion": { "type": "string" }, "anchorId": { "type": "string" }, "appId": { "type": "string" }, "appSlug": { "type": "string" }, "agentId": { "type": "string" }, "archiveStorageId": { "type": "string" }, "breaksPublicUrls": { "type": "boolean" }, "canonicalEmail": { "type": "string" }, "candidates": { "type": "array", "items": { "type": "object", "properties": { "fromPath": { "type": "string" }, "toPath": { "type": "string" }, "confidence": { "type": "number" }, "inodeMatch": { "type": "boolean" }, "markerMatch": { "type": "boolean" } }, "required": [ "fromPath", "toPath", "confidence", "inodeMatch", "markerMatch" ], "additionalProperties": false } }, "conflictingAnchorId": { "type": "string" }, "conflictingPath": { "type": "string" }, "confidence": { "type": "number" }, "consecutiveMissingPolls": { "type": "number" }, "deleted": { "type": "array", "items": { "type": "string" } }, "deviceCode": { "type": "string" }, "deviceId": { "type": "string" }, "deviceName": { "type": "string" }, "defaultModelId": { "type": "string" }, "tier": { "type": "string", "enum": [ "frontier", "balanced", "economy" ] }, "expiresAt": { "type": "number" }, "fromPath": { "type": "string" }, "fromWorkspaceId": { "type": "string" }, "gatewayVersion": { "type": "string" }, "generation": { "type": "string" }, "imageRef": { "type": "string" }, "imageVersion": { "type": "string" }, "inodeMatch": { "type": "boolean" }, "installMode": { "type": "string", "enum": [ "subscribe", "clone_once" ] }, "kind": { "type": "string", "enum": [ "app", "agent", "publish", "share-root", "share-mount", "file", "folder" ] }, "lastHeartbeatAt": { "type": "number" }, "listingId": { "type": "string" }, "listingSlug": { "type": "string" }, "markerMatch": { "type": "boolean" }, "memberUserId": { "type": "string" }, "name": { "type": "string" }, "newBillingUserId": { "type": "string" }, "mode": { "type": "string", "enum": [ "read", "write" ] }, "mountPath": { "type": "string" }, "newSlug": { "type": "string" }, "oldPrefixes": { "type": "array", "items": { "type": "string" } }, "oldBillingUserId": { "type": "string" }, "oldSlug": { "type": "string" }, "parentShareId": { "type": "string" }, "path": { "type": "string" }, "prefix": { "type": "string" }, "prefixes": { "type": "array", "items": { "type": "string" } }, "previousVmName": { "type": "string" }, "publishId": { "type": "string" }, "reason": { "type": "string" }, "revokedShareIds": { "type": "array", "items": { "type": "string" } }, "role": { "type": "string", "enum": [ "owner", "editor", "viewer" ] }, "oldRole": { "type": "string", "enum": [ "owner", "editor", "viewer" ] }, "scopes": { "type": "array", "items": { "type": "string" } }, "sessionId": { "type": "string" }, "shareId": { "type": "string" }, "slug": { "type": "string" }, "source": { "type": "string" }, "subscriptionId": { "type": "string" }, "targetEmail": { "type": "string" }, "toPath": { "type": "string" }, "toWorkspaceId": { "type": "string" }, "userCode": { "type": "string" }, "visibility": { "type": "string", "enum": [ "folder", "public" ] }, "vmName": { "type": "string" } }, "additionalProperties": false } }, "required": [ "id", "event", "actorId", "at" ], "additionalProperties": false } }, "cursor": { "type": "string" }, "done": { "type": "boolean" } }, "required": [ "events", "done" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /telemetryRead the workspace VM CPU, memory, and disk telemetry history.
- Scope
workspace_member- Request
- No JSON request body
- Query
Query parameters JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "sinceAt": { "type": "number", "minimum": 0 } } }- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "samples": { "type": "array", "items": { "type": "object", "properties": { "at": { "type": "number", "minimum": 0 }, "cpuPct": { "type": "number", "minimum": 0, "maximum": 100 }, "memUsedMb": { "type": "number", "minimum": 0 }, "memTotalMb": { "type": "number", "minimum": 0 }, "diskUsedMb": { "type": "number", "minimum": 0 }, "diskTotalMb": { "type": "number", "minimum": 0 } }, "required": [ "at" ], "additionalProperties": false } } }, "required": [ "samples" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /invitesInvite an editor or viewer by canonical email address.
- Scope
ws:{workspaceSlug}:members- Request
Request JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "email": { "type": "string", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "role": { "description": "Defaults to editor.", "type": "string", "enum": [ "editor", "viewer" ] } }, "required": [ "email" ] }- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "role": { "type": "string", "enum": [ "editor", "viewer" ] }, "expiresAt": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "revokedAt": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "consumedAt": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "required": [ "id", "email", "role", "expiresAt" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /invitesList recent invitations for a workspace.
- Scope
ws:{workspaceSlug}:members- Request
- No JSON request body
- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "invites": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" }, "role": { "type": "string", "enum": [ "editor", "viewer" ] }, "expiresAt": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "revokedAt": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "consumedAt": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "required": [ "id", "email", "role", "expiresAt" ], "additionalProperties": false } } }, "required": [ "invites" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Not declared idempotent
/v1 /ws /{workspaceSlug} /invites /{inviteId}Revoke an invitation before it is consumed.
- Scope
ws:{workspaceSlug}:members- Request
- No JSON request body
- Response
Response JSON schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "revokedAt": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "required": [ "revokedAt" ], "additionalProperties": false }- Delivery
- Standard response
- Retry
- Declared idempotent