Review item recertification
POST /api/v1/recertify/items/{itemId}/review: request fields and declared response contract.
POST/api/v1/recertify/items/{itemId}/review
| Permission | recertify.review |
|---|---|
| Workspace scope | required |
| Scope target | workspace |
Parameters
| Field | Type | Required | Nullable | Default |
|---|---|---|---|---|
| itemId | string | required | non-null | — |
Query parameters: none.
Request body
| Field | Type | Required | Nullable | Default |
|---|---|---|---|---|
| decision | "recertified" | "revoked" | "deferred" | required | non-null | — |
| reason | string | optional | non-null | — |
Response
200
| Field | Type | Required | Nullable | Default |
|---|---|---|---|---|
| data | object | required | non-null | — |
| data.success | boolean | required | non-null | — |
| data.itemId | string | required | non-null | — |
| data.status | string | required | non-null | — |
| data.message | string | required | non-null | — |
Declared failures
| RECERTIFY_REVIEW_FAILED | 400 — not retryable |
|---|
Readback
Read the result back with:
- recertify.list
Request example
Schematic only. Replace placeholders with real values and include all required nested fields.
POST /api/v1/recertify/items/{itemId}/review HTTP/1.1
Authorization: Bearer <token>
x-merulan-workspace-id: <workspace-id>
Content-Type: application/json
{
"decision": "recertified"
}