Skip to main content

Approve or reject a join request

Approve or reject a join request. POST /api/openapi/v1/join-requests/{requestId}/decision, scope admin.v1.user-approvals.execute.

  • Scope: admin.v1.user-approvals.execute
  • Permission: Execute user and seat approvals (user-approvals)
  • Permission type: Execute
  • Endpoint: POST/api/openapi/v1/join-requests/{requestId}/decision

Authentication and request headers

Call with an application API key. This endpoint checks only the scope above; read, manage and execute permissions do not imply one another.
NameLocationTypeRequiredDescriptionExample
AuthorizationheaderstringYesApplication API key, passed as a Bearer token.Bearer qwk_***
X-Request-IdheaderstringNoOptional request tracing identifier; generated by the server if omitted.req-20260831-001

Request parameters

NameLocationTypeRequiredDescriptionExample
requestIdpathstring · uuidRequiredRequest ID"<uuid>"
Idempotency-KeyheaderstringRequiredIdempotency key used to prevent duplicate submissions"<string>"
decisionbodystringRequiredReview decision"approve"
review_reasonbodystringNoReview comments"<string>"

Request example

cURL

Responses

200 OK
NameTypeRequiredDescriptionExample
request_idstringYesRequest ID"<string>"
statusstringYesStatus"<string>"
Response example
default Flat business error
NameTypeRequiredDescriptionExample
codestringNoStable business error code"<string>"
detailstringYesHuman-readable error description"<string>"
detailsOpenapiErrorDetailsNoError details{"field":"<string>","reason":"<string>","suggestion":"<string>"}
details.fieldstringNoRequest field that failed validation"<string>"
details.reasonstringNoStable validation failure reason"<string>"
details.suggestionstringNoSuggested normalized value"<string>"
errorstringYesStable HTTP error type"<string>"
Response example