Skip to content

Create approval request

POST
/api/admin/approvals
Code sample: Shell / cURL
curl --request POST \
--url https://auth.example.com/api/admin/approvals \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "investigation_id": "case_123", "target_subject_type": "user", "target_subject_id": "user_123", "request_surface": "approvals", "requested_action": "detail_read", "resource_class": "approval_transport_detail", "resource_ids": [ "apreq_123" ], "detail_classes": [ "transport_evidence" ], "audience": "admin_api", "redaction_level": "masked", "reason_code": "support_case", "reason_note": "Investigating a support request.", "reference_id": "SUP-1234", "policy_preset": "support_case_default", "reuse_scope": "request", "partial_access_allowed": false, "expires_at": 1770086400000, "approvals": [ { "subject_type": "admin_user", "subject_id": "admin_approver", "relation_type": "owner", "method": "email_otp", "transport_channel": "[email protected]" } ] }'

Creates an approval request and its required approval steps. The workflow may send initial notifications after the request is created.

Media type application/json
object
investigation_id
string
requester_subject_type
string
Allowed values: admin_user end_user customer_delegate service_principal
requester_subject_id
string
target_subject_type
required
string
Allowed values: user artifact service_resource tenant_resource
target_subject_id
required
string
request_surface
required
string
requested_action
required
string
resource_class
required
string
resource_ids
Array<string>
detail_classes
Array<string>
dataset
string
audience
string
redaction_level
string
default: masked
Allowed values: summary_only masked raw
attributes
object
key
additional properties
reason_code
required
string
reason_note
string
reference_id
string
reference
object
system
required
string
id
required
string
url
string format: uri
key
additional properties
ticket_reference
object
system
required
string
id
required
string
url
string format: uri
key
additional properties
policy_preset
required
string
Allowed values: support_case_default technical_debug_default security_investigation_default guardian_support_default compliance_review_default
reuse_scope
string
default: request
Allowed values: request case
partial_access_allowed
boolean
expires_at
integer
approvals
required
Array<object>
>= 1 items
object
step_key
required
string
side
required
string
Allowed values: admin_operator customer_data_owner guardian_delegate
subject_type
required
string
Allowed values: admin_user end_user customer_delegate service_principal
subject_id
string
relation_type
string
relation_source
string
method
string
Allowed values: ciba passkey portal_confirm email_otp sms_otp reauth
transport_channel
string
expires_at
integer
key
additional properties
key
additional properties
Example
{
"investigation_id": "case_123",
"target_subject_type": "user",
"target_subject_id": "user_123",
"request_surface": "approvals",
"requested_action": "detail_read",
"resource_class": "approval_transport_detail",
"resource_ids": [
"apreq_123"
],
"detail_classes": [
"transport_evidence"
],
"audience": "admin_api",
"redaction_level": "masked",
"reason_code": "support_case",
"reason_note": "Investigating a support request.",
"reference_id": "SUP-1234",
"policy_preset": "support_case_default",
"reuse_scope": "request",
"partial_access_allowed": false,
"expires_at": 1770086400000,
"approvals": [
{
"subject_type": "admin_user",
"subject_id": "admin_approver",
"relation_type": "owner",
"method": "email_otp",
"transport_channel": "[email protected]"
}
]
}

Approval request with steps and grants.

Media type application/json
object
id
string
public_request_id
string
tenant_id
string
investigation_id
string
requester_subject_type
string
requester_subject_id
string
target_subject_type
string
target_subject_id
string
request_surface
string
requested_action
string
redaction_level
string
status
string
scope_canonical
string
scope_json
object
key
additional properties
reason_code
string
reason_note
One of:
string
reference
One of:
object
system
required
string
id
required
string
url
string format: uri
key
additional properties
ticket_reference
One of:
object
system
required
string
id
required
string
url
string format: uri
key
additional properties
reuse_scope
string
policy_preset
string
partial_access_allowed
boolean
requested_at
integer
expires_at
integer
decided_at
One of:
integer
detail_object_catalog_id
One of:
string
created_at
integer
updated_at
integer
has_detail
boolean
resolved_policy
object
key
additional properties
approvals
required
Array<object>
object
id
string
approval_request_id
string
step_key
string
side
string
subject_type
string
subject_id
One of:
string
relation_type
One of:
string
relation_source
One of:
string
status
string
method
One of:
string
transport_channel
One of:
string
reason_code
One of:
string
reason_note
One of:
string
last_notification_action
One of:
string
last_notified_at
One of:
integer
notification_count
integer
requested_at
integer
decided_at
One of:
integer
expires_at
integer
created_at
integer
updated_at
integer
key
additional properties
grants
required
Array<object>
object
id
string
public_grant_id
string
approval_request_id
string
tenant_id
string
status
string
target_audience
string
resource_class
string
redaction_level
string
scope_canonical
string
scope_json
object
key
additional properties
authorization_details_json
One of:
object
key
additional properties
requester_subject_type
string
requester_subject_id
string
actor_subject_type
string
actor_subject_id
string
issued_at
integer
expires_at
integer
revoked_at
One of:
integer
revoke_reason
One of:
string
created_at
integer
updated_at
integer
key
additional properties
notification_results
Array<object>
object
approval_id
string
step_key
string
action
string
method
string
transport_channel
One of:
string
completion_artifact
One of:
object
artifact_id
required
string
path
required
string
expires_at
required
integer
key
additional properties
success
boolean
delivery_status
One of:
string
target
One of:
string
transport_request_id
One of:
string
error
One of:
string
retryable
boolean
key
additional properties
Example
{
"id": "apr_internal_123",
"public_request_id": "apreq_123",
"tenant_id": "tenant_123",
"investigation_id": "case_123",
"requester_subject_type": "admin_user",
"requester_subject_id": "admin_requester",
"target_subject_type": "user",
"target_subject_id": "user_123",
"request_surface": "approvals",
"requested_action": "detail_read",
"resource_class": "approval_transport_detail",
"resource_ids": [
"apreq_123"
],
"detail_classes": [
"transport_evidence"
],
"dataset": null,
"audience": "admin_api",
"redaction_level": "masked",
"attributes": {
"case_priority": "high"
},
"reason_code": "support_case",
"reason_note": "Investigating a support request.",
"reference_id": "SUP-1234",
"reference": {
"type": "ticket",
"id": "SUP-1234",
"url": "https://support.example.com/tickets/SUP-1234"
},
"ticket_reference": {
"type": "ticket",
"id": "SUP-1234",
"url": "https://support.example.com/tickets/SUP-1234"
},
"policy_preset": "support_case_default",
"reuse_scope": "request",
"partial_access_allowed": false,
"status": "pending",
"expires_at": 1770086400000,
"decided_at": null,
"created_at": 1770000000000,
"updated_at": 1770000000000,
"approvals": [
{
"id": "apstep_123",
"public_approval_id": "apstep_123",
"approval_request_id": "apr_internal_123",
"subject_type": "admin_user",
"subject_id": "admin_approver",
"relation_type": "owner",
"relation_source": "direct",
"status": "pending",
"method": "email_otp",
"transport_channel": "[email protected]",
"reason_code": null,
"reason_note": null,
"expires_at": 1770086400000,
"decided_at": null,
"created_at": 1770000000000,
"updated_at": 1770000000000
}
],
"grants": []
}

Error response.

Media type application/json
object
error
string
message
string
error_description
string
key
additional properties
Example generated
{
"error": "example",
"message": "example",
"error_description": "example"
}