Download OpenAPI specification:
Organization-scoped automation contract for the Q360 platform.
Q360 exposes a versioned, organization-scoped API for automation, integrations, and operational traceability. Authentication uses Q360 API keys passed as Authorization: Bearer <q360_...> and every authenticated request resolves tenant scope from the validated key.
Performs full-text search across controlled documents, evidence, findings, CAPAs, and NCRs.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| query required | string [ 1 .. 500 ] characters Search query string |
| modules | Array of strings Items Enum: "documents" "evidence" "findings" "capas" "ncrs" Modules to search in |
| status | string Filter by entity status |
| owner | string Filter by owner name or ID |
| dateFrom | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Start date for date range filter |
| dateTo | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... End date for date range filter |
| limit | integer [ 1 .. 200 ] Default: 50 Number of results per page (default 50) |
| offset | integer [ 0 .. 9007199254740991 ] Default: 0 Pagination offset (default 0) |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects Array of search results |
required | object Response metadata (pagination, request ID) |
{- "query": "string",
- "modules": [
- "documents"
], - "status": "string",
- "owner": "string",
- "dateFrom": "2019-08-24",
- "dateTo": "2019-08-24",
- "limit": 50,
- "offset": 0
}{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "module": "documents",
- "title": "string",
- "snippet": "string",
- "status": "string",
- "owner": "string",
- "rank": 0,
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of savedsearches.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| isShared | boolean Filter by shared status |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "createdBy": "string",
- "name": "string",
- "description": "string",
- "query": "string",
- "filters": { },
- "modules": [ ],
- "isShared": false,
- "lastUsedAt": "2019-08-24T14:15:22Z",
- "useCount": 9007199254740991,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a savedsearch within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters Name of the saved search |
| description | string <= 1000 characters Optional description of the saved search |
| query required | string [ 1 .. 500 ] characters The search query string |
required | object Default: {} Filter criteria as key-value pairs |
| modules required | Array of strings Default: [] Items Enum: "documents" "evidence" "findings" "capas" "ncrs" Modules to search in |
| isShared required | boolean Default: false Whether to share this search with team |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "query": "string",
- "filters": { },
- "modules": [ ],
- "isShared": false
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "createdBy": "string",
- "name": "string",
- "description": "string",
- "query": "string",
- "filters": { },
- "modules": [ ],
- "isShared": false,
- "lastUsedAt": "2019-08-24T14:15:22Z",
- "useCount": 9007199254740991,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single savedsearch by identifier.
| savedSearchId required | string <uuid> Saved search UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "createdBy": "string",
- "name": "string",
- "description": "string",
- "query": "string",
- "filters": { },
- "modules": [ ],
- "isShared": false,
- "lastUsedAt": "2019-08-24T14:15:22Z",
- "useCount": 9007199254740991,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing savedsearch.
| savedSearchId required | string <uuid> Saved search UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters Updated name of the saved search |
| description | string <= 1000 characters Updated description |
| query | string [ 1 .. 500 ] characters Updated search query string |
object Updated filter criteria | |
| modules | Array of strings Items Enum: "documents" "evidence" "findings" "capas" "ncrs" Updated modules to search in |
| isShared | boolean Updated sharing status |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "query": "string",
- "filters": {
- "property1": null,
- "property2": null
}, - "modules": [
- "documents"
], - "isShared": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "createdBy": "string",
- "name": "string",
- "description": "string",
- "query": "string",
- "filters": { },
- "modules": [ ],
- "isShared": false,
- "lastUsedAt": "2019-08-24T14:15:22Z",
- "useCount": 9007199254740991,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of slapolicies.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| entityType | string Enum: "approval_request" "document_review" "capa" "ncr" "change_request" "audit_finding" "training_assignment" Filter by entity type |
| isActive | boolean Filter by active status |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "targetStatus": "string",
- "warningHours": 1,
- "breachHours": 1,
- "escalationHours": 1,
- "escalationTo": "manager",
- "escalationUserId": "54a48fb5-d3c3-422d-ae33-9f3ac3af0356",
- "autoRemind": true,
- "reminderIntervalHours": 24,
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a slapolicy within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters Name of the SLA policy |
| description | string <= 1000 characters Optional description |
| entityType required | string Enum: "approval_request" "document_review" "capa" "ncr" "change_request" "audit_finding" "training_assignment" Type of entity this policy applies to |
| targetStatus | string Specific status that triggers the SLA |
| warningHours required | integer [ 1 .. 9007199254740991 ] Hours before breach when warning is triggered |
| breachHours required | integer [ 1 .. 9007199254740991 ] Hours until SLA is breached |
| escalationHours | integer [ 1 .. 9007199254740991 ] Hours until escalation occurs |
| escalationTo | string Enum: "manager" "admin" "specific_user" Who to escalate to |
| escalationUserId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... User ID if escalating to specific person |
| autoRemind required | boolean Default: true Whether to automatically send reminders |
| reminderIntervalHours required | integer [ 1 .. 9007199254740991 ] Default: 24 Hours between reminder notifications |
| isActive required | boolean Default: true Whether this policy is active |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "targetStatus": "string",
- "warningHours": 1,
- "breachHours": 1,
- "escalationHours": 1,
- "escalationTo": "manager",
- "escalationUserId": "54a48fb5-d3c3-422d-ae33-9f3ac3af0356",
- "autoRemind": true,
- "reminderIntervalHours": 24,
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "targetStatus": "string",
- "warningHours": 1,
- "breachHours": 1,
- "escalationHours": 1,
- "escalationTo": "manager",
- "escalationUserId": "54a48fb5-d3c3-422d-ae33-9f3ac3af0356",
- "autoRemind": true,
- "reminderIntervalHours": 24,
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single slapolicy by identifier.
| policyId required | string <uuid> SLA policy UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "targetStatus": "string",
- "warningHours": 1,
- "breachHours": 1,
- "escalationHours": 1,
- "escalationTo": "manager",
- "escalationUserId": "54a48fb5-d3c3-422d-ae33-9f3ac3af0356",
- "autoRemind": true,
- "reminderIntervalHours": 24,
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing slapolicy.
| policyId required | string <uuid> SLA policy UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters Updated policy name |
| description | string <= 1000 characters Updated description |
| entityType | string Enum: "approval_request" "document_review" "capa" "ncr" "change_request" "audit_finding" "training_assignment" Updated entity type |
| targetStatus | string Updated trigger status |
| warningHours | integer [ 1 .. 9007199254740991 ] Updated warning hours |
| breachHours | integer [ 1 .. 9007199254740991 ] Updated breach hours |
| escalationHours | integer [ 1 .. 9007199254740991 ] Updated escalation hours |
| escalationTo | string Enum: "manager" "admin" "specific_user" Updated escalation target |
| escalationUserId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Updated escalation user ID |
| autoRemind | boolean Updated auto-reminder status |
| reminderIntervalHours | integer [ 1 .. 9007199254740991 ] Updated reminder interval |
| isActive | boolean Updated active status |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "targetStatus": "string",
- "warningHours": 1,
- "breachHours": 1,
- "escalationHours": 1,
- "escalationTo": "manager",
- "escalationUserId": "54a48fb5-d3c3-422d-ae33-9f3ac3af0356",
- "autoRemind": true,
- "reminderIntervalHours": 1,
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "targetStatus": "string",
- "warningHours": 1,
- "breachHours": 1,
- "escalationHours": 1,
- "escalationTo": "manager",
- "escalationUserId": "54a48fb5-d3c3-422d-ae33-9f3ac3af0356",
- "autoRemind": true,
- "reminderIntervalHours": 24,
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a paginated list of SLA escalation traces, filterable by status, severity, and entity type.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| entityType | string Filter by entity type |
| status | string Enum: "open" "acknowledged" "resolved" "expired" Filter by escalation status |
| slaStatus | string Enum: "warning" "breached" "critical" Filter by SLA severity |
| assignedTo | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by assigned user |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "slaPolicyId": "923f450a-8d4a-4aac-8a3b-c02280f4bba8",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "entityTitle": "string",
- "assignedTo": "7869c1a9-a680-4086-b6f5-9e78a651f6f2",
- "escalatedTo": "c8032e88-ac0e-4b32-9faa-854aaf82ca0a",
- "escalationLevel": 1,
- "status": "open",
- "slaStatus": "warning",
- "dueAt": "2019-08-24T14:15:22Z",
- "breachedAt": "2019-08-24T14:15:22Z",
- "acknowledgedAt": "2019-08-24T14:15:22Z",
- "resolvedAt": "2019-08-24T14:15:22Z",
- "resolutionNotes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Returns a single SLA escalation trace by identifier.
| escalationId required | string <uuid> SLA escalation UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "slaPolicyId": "923f450a-8d4a-4aac-8a3b-c02280f4bba8",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "entityTitle": "string",
- "assignedTo": "7869c1a9-a680-4086-b6f5-9e78a651f6f2",
- "escalatedTo": "c8032e88-ac0e-4b32-9faa-854aaf82ca0a",
- "escalationLevel": 1,
- "status": "open",
- "slaStatus": "warning",
- "dueAt": "2019-08-24T14:15:22Z",
- "breachedAt": "2019-08-24T14:15:22Z",
- "acknowledgedAt": "2019-08-24T14:15:22Z",
- "resolvedAt": "2019-08-24T14:15:22Z",
- "resolutionNotes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of escalationchains.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| entityType | string Enum: "approval_request" "document_review" "capa" "ncr" "change_request" "audit_finding" "training_assignment" Filter by entity type |
| isActive | boolean Filter by active status |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "isDefault": true,
- "isActive": true,
- "steps": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "chainId": "9e7fb22a-9e5b-420e-8fd7-e3454fcfd5fd",
- "stepOrder": 1,
- "triggerAfterHours": 0,
- "severity": "warning",
- "actions": [
- {
- "type": "reassign",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "requireAcknowledgement": true,
- "description": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a escalationchain within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters Name of the escalation chain |
| description | string <= 1000 characters Description of chain purpose |
| entityType required | string Enum: "approval_request" "document_review" "capa" "ncr" "change_request" "audit_finding" "training_assignment" Entity type this chain applies to |
| isDefault required | boolean Default: false Whether this is the default chain for the entity type |
| isActive required | boolean Default: true Whether this chain is active |
Array of objects Initial steps to create with the chain |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "isDefault": false,
- "isActive": true,
- "steps": [
- {
- "stepOrder": 1,
- "triggerAfterHours": 0,
- "severity": "warning",
- "actions": [
- {
- "type": "reassign",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "requireAcknowledgement": false,
- "description": "string"
}
]
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "isDefault": true,
- "isActive": true,
- "steps": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "chainId": "9e7fb22a-9e5b-420e-8fd7-e3454fcfd5fd",
- "stepOrder": 1,
- "triggerAfterHours": 0,
- "severity": "warning",
- "actions": [
- {
- "type": "reassign",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "requireAcknowledgement": true,
- "description": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single escalationchain by identifier.
| chainId required | string <uuid> Escalation chain UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "isDefault": true,
- "isActive": true,
- "steps": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "chainId": "9e7fb22a-9e5b-420e-8fd7-e3454fcfd5fd",
- "stepOrder": 1,
- "triggerAfterHours": 0,
- "severity": "warning",
- "actions": [
- {
- "type": "reassign",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "requireAcknowledgement": true,
- "description": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing escalationchain.
| chainId required | string <uuid> Escalation chain UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters Updated chain name |
string or null Updated description | |
| entityType | string Enum: "approval_request" "document_review" "capa" "ncr" "change_request" "audit_finding" "training_assignment" Updated entity type |
| isDefault | boolean Whether this should be the default chain |
| isActive | boolean Whether the chain is active |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "isDefault": true,
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "approval_request",
- "isDefault": true,
- "isActive": true,
- "steps": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "chainId": "9e7fb22a-9e5b-420e-8fd7-e3454fcfd5fd",
- "stepOrder": 1,
- "triggerAfterHours": 0,
- "severity": "warning",
- "actions": [
- {
- "type": "reassign",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "requireAcknowledgement": true,
- "description": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a paginated list of escalation execution audit records, filterable by chain, entity type, result, and date range.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| chainId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by escalation chain |
| escalationId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by SLA escalation |
| entityType | string Filter by entity type |
| result | string Enum: "success" "failure" "skipped" Filter by execution result |
| dateFrom | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Filter executions after this date |
| dateTo | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Filter executions before this date |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "chainId": "9e7fb22a-9e5b-420e-8fd7-e3454fcfd5fd",
- "stepId": "50e29fb7-490e-4a88-b2f4-2fde4d70423d",
- "escalationId": "36d4450c-e33e-466e-912a-3ff655dc6900",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "actionType": "reassign",
- "actionConfig": {
- "property1": null,
- "property2": null
}, - "result": "success",
- "errorMessage": "string",
- "executedAt": "2019-08-24T14:15:22Z",
- "executionDurationMs": -9007199254740991,
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Returns a cursor-paginated collection of revisionimpactrules.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| impactCategory | string Enum: "training" "acknowledgement" "control_review" "capa_review" "scheduled_task" "entity_link" Filter by impact category |
| isActive | boolean Filter by active status |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "documentTypeFilter": [
- "string"
], - "documentDomainFilter": [
- "string"
], - "impactCategory": "training",
- "actionType": "require_retraining",
- "priority": "low",
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a revisionimpactrule within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters Rule name |
| description | string <= 1000 characters Rule description |
| documentTypeFilter | Array of strings Document types this rule applies to |
| documentDomainFilter | Array of strings QMS domains this rule applies to |
| impactCategory required | string Enum: "training" "acknowledgement" "control_review" "capa_review" "scheduled_task" "entity_link" Type of impact (training, acknowledgement, etc.) |
| actionType required | string Enum: "require_retraining" "require_reacknowledgement" "flag_for_review" "create_task" Action to take (retraining, flag for review, etc.) |
| priority required | string Default: "medium" Enum: "low" "medium" "high" "critical" Priority level for this rule |
| isActive required | boolean Default: true Whether this rule is active |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "documentTypeFilter": [
- "string"
], - "documentDomainFilter": [
- "string"
], - "impactCategory": "training",
- "actionType": "require_retraining",
- "priority": "low",
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "documentTypeFilter": [
- "string"
], - "documentDomainFilter": [
- "string"
], - "impactCategory": "training",
- "actionType": "require_retraining",
- "priority": "low",
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single revisionimpactrule by identifier.
| ruleId required | string <uuid> Revision impact rule UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "documentTypeFilter": [
- "string"
], - "documentDomainFilter": [
- "string"
], - "impactCategory": "training",
- "actionType": "require_retraining",
- "priority": "low",
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing revisionimpactrule.
| ruleId required | string <uuid> Revision impact rule UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters Rule name |
| description | string <= 1000 characters Rule description |
| documentTypeFilter | Array of strings Document types this rule applies to |
| documentDomainFilter | Array of strings QMS domains this rule applies to |
| impactCategory | string Enum: "training" "acknowledgement" "control_review" "capa_review" "scheduled_task" "entity_link" Type of impact (training, acknowledgement, etc.) |
| actionType | string Enum: "require_retraining" "require_reacknowledgement" "flag_for_review" "create_task" Action to take (retraining, flag for review, etc.) |
| priority | string Enum: "low" "medium" "high" "critical" Priority level for this rule |
| isActive | boolean Whether this rule is active |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "documentTypeFilter": [
- "string"
], - "documentDomainFilter": [
- "string"
], - "impactCategory": "training",
- "actionType": "require_retraining",
- "priority": "low",
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "documentTypeFilter": [
- "string"
], - "documentDomainFilter": [
- "string"
], - "impactCategory": "training",
- "actionType": "require_retraining",
- "priority": "low",
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a paginated list of revision impact assessments, filterable by document.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| impactCategory | string Enum: "training" "acknowledgement" "control_review" "capa_review" "scheduled_task" "entity_link" Filter by impact category |
| isActive | boolean Filter by active status |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "versionNumber": 1,
- "status": "draft",
- "impactSummary": {
- "property1": 0,
- "property2": 0
}, - "assessedBy": "string",
- "confirmedBy": "583e1217-1da8-4c15-9f4b-b215e84158fc",
- "executedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Returns a single revision impact assessment by identifier.
| assessmentId required | string <uuid> Revision impact assessment UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "versionNumber": 1,
- "status": "draft",
- "impactSummary": {
- "property1": 0,
- "property2": 0
}, - "assessedBy": "string",
- "confirmedBy": "583e1217-1da8-4c15-9f4b-b215e84158fc",
- "executedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of retentionpolicies.
| cursor | string [ 1 .. 512 ] characters Pagination cursor |
| limit | integer [ 1 .. 100 ] Results per page |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort field and direction |
| artifactType | string Enum: "document" "evidence" "export" "capa" "ncr" "audit" "training_record" Filter by artifact type |
| isActive | boolean Filter by active status |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "artifactType": "document",
- "retentionPeriodDays": 9007199254740991,
- "retentionBasis": "from_creation",
- "archiveAfterDays": 9007199254740991,
- "isDefault": true,
- "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a retentionpolicy within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters Policy name |
| description | string <= 2000 characters Policy description |
| artifactType required | string Enum: "document" "evidence" "export" "capa" "ncr" "audit" "training_record" Type of artifact this policy applies to |
| retentionPeriodDays | integer ( 0 .. 9007199254740991 ] Number of days to retain (null = indefinite) |
| retentionBasis required | string Enum: "from_creation" "from_release" "from_closure" "from_supersede" "custom" When retention period starts counting |
| archiveAfterDays | integer ( 0 .. 9007199254740991 ] Days before archiving (null = no archival) |
| isDefault | boolean Whether this is the default policy for its artifact type |
| isActive | boolean Whether this policy is active |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "artifactType": "document",
- "retentionPeriodDays": 9007199254740991,
- "retentionBasis": "from_creation",
- "archiveAfterDays": 9007199254740991,
- "isDefault": true,
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "artifactType": "document",
- "retentionPeriodDays": 9007199254740991,
- "retentionBasis": "from_creation",
- "archiveAfterDays": 9007199254740991,
- "isDefault": true,
- "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single retentionpolicy by identifier.
| policyId required | string <uuid> Retention policy UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "artifactType": "document",
- "retentionPeriodDays": 9007199254740991,
- "retentionBasis": "from_creation",
- "archiveAfterDays": 9007199254740991,
- "isDefault": true,
- "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing retentionpolicy.
| policyId required | string <uuid> Retention policy UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters Policy name |
| description | string <= 2000 characters Policy description |
| artifactType | string Enum: "document" "evidence" "export" "capa" "ncr" "audit" "training_record" Type of artifact this policy applies to |
| retentionPeriodDays | integer ( 0 .. 9007199254740991 ] Number of days to retain (null = indefinite) |
| retentionBasis | string Enum: "from_creation" "from_release" "from_closure" "from_supersede" "custom" When retention period starts counting |
| archiveAfterDays | integer ( 0 .. 9007199254740991 ] Days before archiving (null = no archival) |
| isDefault | boolean Whether this is the default policy for its artifact type |
| isActive | boolean Whether this policy is active |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "artifactType": "document",
- "retentionPeriodDays": 9007199254740991,
- "retentionBasis": "from_creation",
- "archiveAfterDays": 9007199254740991,
- "isDefault": true,
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "artifactType": "document",
- "retentionPeriodDays": 9007199254740991,
- "retentionBasis": "from_creation",
- "archiveAfterDays": 9007199254740991,
- "isDefault": true,
- "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of legalholds.
| cursor | string [ 1 .. 512 ] characters Pagination cursor |
| limit | integer [ 1 .. 100 ] Results per page |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort field and direction |
| status | string Enum: "active" "released" "expired" Filter by hold status |
| holdType | string Enum: "legal" "investigation" "regulatory" "litigation" Filter by hold type |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "holdName": "string",
- "holdType": "legal",
- "reason": "string",
- "status": "active",
- "issuedBy": "e706a3d2-6122-4b49-8f8a-d675e291db5c",
- "releasedBy": "a2085a74-d82f-4659-8839-785d40e6c409",
- "releasedAt": "2019-08-24T14:15:22Z",
- "releaseReason": "string",
- "effectiveFrom": "2019-08-24T14:15:22Z",
- "effectiveUntil": "2019-08-24T14:15:22Z",
- "scopeFilter": {
- "property1": null,
- "property2": null
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a legalhold within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| holdName required | string [ 1 .. 255 ] characters Name of the hold |
| holdType required | string Enum: "legal" "investigation" "regulatory" "litigation" Type of hold (legal, investigation, regulatory, litigation) |
| reason required | string [ 1 .. 2000 ] characters Reason for the hold |
| effectiveFrom | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... When the hold becomes effective (defaults to now) |
| effectiveUntil | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... When the hold expires |
object Filter criteria for scoped holds |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "holdName": "string",
- "holdType": "legal",
- "reason": "string",
- "effectiveFrom": "2019-08-24T14:15:22Z",
- "effectiveUntil": "2019-08-24T14:15:22Z",
- "scopeFilter": {
- "property1": null,
- "property2": null
}
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "holdName": "string",
- "holdType": "legal",
- "reason": "string",
- "status": "active",
- "issuedBy": "e706a3d2-6122-4b49-8f8a-d675e291db5c",
- "releasedBy": "a2085a74-d82f-4659-8839-785d40e6c409",
- "releasedAt": "2019-08-24T14:15:22Z",
- "releaseReason": "string",
- "effectiveFrom": "2019-08-24T14:15:22Z",
- "effectiveUntil": "2019-08-24T14:15:22Z",
- "scopeFilter": {
- "property1": null,
- "property2": null
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single legalhold by identifier.
| holdId required | string <uuid> Legal hold UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "holdName": "string",
- "holdType": "legal",
- "reason": "string",
- "status": "active",
- "issuedBy": "e706a3d2-6122-4b49-8f8a-d675e291db5c",
- "releasedBy": "a2085a74-d82f-4659-8839-785d40e6c409",
- "releasedAt": "2019-08-24T14:15:22Z",
- "releaseReason": "string",
- "effectiveFrom": "2019-08-24T14:15:22Z",
- "effectiveUntil": "2019-08-24T14:15:22Z",
- "scopeFilter": {
- "property1": null,
- "property2": null
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing legalhold.
| holdId required | string <uuid> Legal hold UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| effectiveUntil | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... When the hold expires |
object Filter criteria for scoped holds |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "effectiveUntil": "2019-08-24T14:15:22Z",
- "scopeFilter": {
- "property1": null,
- "property2": null
}
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "holdName": "string",
- "holdType": "legal",
- "reason": "string",
- "status": "active",
- "issuedBy": "e706a3d2-6122-4b49-8f8a-d675e291db5c",
- "releasedBy": "a2085a74-d82f-4659-8839-785d40e6c409",
- "releasedAt": "2019-08-24T14:15:22Z",
- "releaseReason": "string",
- "effectiveFrom": "2019-08-24T14:15:22Z",
- "effectiveUntil": "2019-08-24T14:15:22Z",
- "scopeFilter": {
- "property1": null,
- "property2": null
}, - "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a paginated list of archive records, filterable by artifact type and reason.
| cursor | string [ 1 .. 512 ] characters Pagination cursor |
| limit | integer [ 1 .. 100 ] Results per page |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort field and direction |
| artifactType | string Enum: "document" "evidence" "export" "capa" "ncr" "audit" "training_record" Filter by artifact type |
| archiveReason | string Enum: "retention_expired" "superseded" "manual" "policy_driven" Filter by archival reason |
| isRestored | boolean Filter by restored status |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "artifactType": "document",
- "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
- "artifactTitle": "string",
- "artifactSnapshot": {
- "property1": null,
- "property2": null
}, - "archiveReason": "retention_expired",
- "retentionPolicyId": "8a960fc6-8235-4f7d-91c7-62cd62bb2e08",
- "retentionExpiresAt": "2019-08-24T14:15:22Z",
- "isRestored": true,
- "restoredAt": "2019-08-24T14:15:22Z",
- "restoredBy": "9d2ea50d-e511-4eed-940d-90f30a8a8fb9",
- "archivedBy": "9d2144fa-50fe-49bd-8c1c-e1e52b2f3fd1",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Returns a single archive record by identifier.
| recordId required | string <uuid> Archive record UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "artifactType": "document",
- "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
- "artifactTitle": "string",
- "artifactSnapshot": {
- "property1": null,
- "property2": null
}, - "archiveReason": "retention_expired",
- "retentionPolicyId": "8a960fc6-8235-4f7d-91c7-62cd62bb2e08",
- "retentionExpiresAt": "2019-08-24T14:15:22Z",
- "isRestored": true,
- "restoredAt": "2019-08-24T14:15:22Z",
- "restoredBy": "9d2ea50d-e511-4eed-940d-90f30a8a8fb9",
- "archivedBy": "9d2144fa-50fe-49bd-8c1c-e1e52b2f3fd1",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of deletionrequests.
| cursor | string [ 1 .. 512 ] characters Pagination cursor |
| limit | integer [ 1 .. 100 ] Results per page |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort field and direction |
| status | string Enum: "pending" "approved" "rejected" "executed" "cancelled" Filter by request status |
| artifactType | string Enum: "document" "evidence" "export" "capa" "ncr" "audit" "training_record" Filter by artifact type |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "artifactType": "document",
- "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
- "artifactTitle": "string",
- "reason": "string",
- "status": "pending",
- "requestedBy": "d834780c-1e92-44d4-9ca3-e84824c5c502",
- "approvedBy": "c91bd49a-5920-43a3-b792-1660455e23bf",
- "approvedAt": "2019-08-24T14:15:22Z",
- "executedAt": "2019-08-24T14:15:22Z",
- "rejectionReason": "string",
- "holdBlockReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a deletionrequest within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| artifactType required | string Enum: "document" "evidence" "export" "capa" "ncr" "audit" "training_record" Type of artifact to delete |
| artifactId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of artifact to delete |
| artifactTitle | string <= 255 characters Title of artifact to delete |
| reason required | string [ 1 .. 2000 ] characters Reason for deletion |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "artifactType": "document",
- "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
- "artifactTitle": "string",
- "reason": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "artifactType": "document",
- "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
- "artifactTitle": "string",
- "reason": "string",
- "status": "pending",
- "requestedBy": "d834780c-1e92-44d4-9ca3-e84824c5c502",
- "approvedBy": "c91bd49a-5920-43a3-b792-1660455e23bf",
- "approvedAt": "2019-08-24T14:15:22Z",
- "executedAt": "2019-08-24T14:15:22Z",
- "rejectionReason": "string",
- "holdBlockReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single deletionrequest by identifier.
| requestId required | string <uuid> Deletion request UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "artifactType": "document",
- "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
- "artifactTitle": "string",
- "reason": "string",
- "status": "pending",
- "requestedBy": "d834780c-1e92-44d4-9ca3-e84824c5c502",
- "approvedBy": "c91bd49a-5920-43a3-b792-1660455e23bf",
- "approvedAt": "2019-08-24T14:15:22Z",
- "executedAt": "2019-08-24T14:15:22Z",
- "rejectionReason": "string",
- "holdBlockReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing deletionrequest.
| requestId required | string <uuid> Deletion request UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| reason | string [ 1 .. 2000 ] characters Updated reason for deletion |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "reason": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "artifactType": "document",
- "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
- "artifactTitle": "string",
- "reason": "string",
- "status": "pending",
- "requestedBy": "d834780c-1e92-44d4-9ca3-e84824c5c502",
- "approvedBy": "c91bd49a-5920-43a3-b792-1660455e23bf",
- "approvedAt": "2019-08-24T14:15:22Z",
- "executedAt": "2019-08-24T14:15:22Z",
- "rejectionReason": "string",
- "holdBlockReason": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a paginated, filterable list of retention audit log entries.
| cursor | string [ 1 .. 512 ] characters Pagination cursor |
| limit | integer [ 1 .. 100 ] Results per page |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort field and direction |
| action | string Enum: "policy_created" "policy_updated" "policy_deactivated" "hold_placed" "hold_released" "hold_item_added" "hold_item_released" "archive_created" "archive_restored" "deletion_requested" "deletion_approved" "deletion_rejected" "deletion_executed" "deletion_cancelled" "deletion_blocked_by_hold" Filter by audit action |
| targetType | string <= 100 characters Filter by target entity type |
| targetId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by target entity ID |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "action": "policy_created",
- "actorId": "d2f1b55c-8cee-4a0d-af57-aebaeff77518",
- "targetType": "string",
- "targetId": "cbca1126-180e-4334-9df8-cf82289d378b",
- "details": {
- "property1": null,
- "property2": null
}, - "createdAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Returns a cursor-paginated collection of exportdestinations.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| destinationType | string Enum: "google_drive" "sharepoint" "sftp" "email" "s3" "webhook" "custom_api" Filter by destination type. |
| isActive | boolean Filter by active status. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "destinationType": "google_drive",
- "config": { },
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a exportdestination within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters Destination name. |
| destinationType required | string Enum: "google_drive" "sharepoint" "sftp" "email" "s3" "webhook" "custom_api" Destination type. |
required | object Default: {} Destination configuration. |
| isActive required | boolean Default: true Active flag; defaults to true. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "destinationType": "google_drive",
- "config": { },
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "destinationType": "google_drive",
- "config": { },
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single exportdestination by identifier.
| destinationId required | string <uuid> Export destination UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "destinationType": "google_drive",
- "config": { },
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing exportdestination.
| destinationId required | string <uuid> Export destination UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters Destination name. |
| destinationType | string Enum: "google_drive" "sharepoint" "sftp" "email" "s3" "webhook" "custom_api" Destination type. |
object Destination configuration. | |
| isActive | boolean Active destination flag. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "destinationType": "google_drive",
- "config": {
- "property1": null,
- "property2": null
}, - "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "destinationType": "google_drive",
- "config": { },
- "isActive": true,
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of exportjobs.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| jobType | string Enum: "document_publish" "register_export" "workflow_sync" Filter by job type. |
| status | string Enum: "pending" "processing" "completed" "failed" "cancelled" Filter by job status. |
| outputFormat | string Enum: "pdf" "html" "csv" "xlsx" "zip" "json" Filter by output format. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "jobId": "string",
- "jobType": "document_publish",
- "status": "pending",
- "title": "string",
- "description": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "sourceEntityType": "string",
- "sourceEntityIds": [ ],
- "outputFormat": "pdf",
- "outputFileSize": 9007199254740991,
- "branded": true,
- "documentVersion": "string",
- "filters": { },
- "recordCount": 9007199254740991,
- "errorMessage": "string",
- "retryCount": 9007199254740991,
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a exportjob within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| jobType required | string Enum: "document_publish" "register_export" "workflow_sync" |
| title required | string [ 1 .. 255 ] characters |
| description | string <= 5000 characters |
| destinationId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| sourceEntityType | string <= 100 characters |
| sourceEntityIds required | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] Default: [] |
| outputFormat required | string Enum: "pdf" "html" "csv" "xlsx" "zip" "json" |
| branded required | boolean Default: true |
| documentVersion | string <= 50 characters |
required | object Default: {} |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "jobType": "document_publish",
- "title": "string",
- "description": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "sourceEntityType": "string",
- "sourceEntityIds": [ ],
- "outputFormat": "pdf",
- "branded": true,
- "documentVersion": "string",
- "filters": { }
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "jobId": "string",
- "jobType": "document_publish",
- "status": "pending",
- "title": "string",
- "description": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "sourceEntityType": "string",
- "sourceEntityIds": [ ],
- "outputFormat": "pdf",
- "outputFileSize": 9007199254740991,
- "branded": true,
- "documentVersion": "string",
- "filters": { },
- "recordCount": 9007199254740991,
- "errorMessage": "string",
- "retryCount": 9007199254740991,
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single exportjob by identifier.
| jobId required | string <uuid> Export job UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "jobId": "string",
- "jobType": "document_publish",
- "status": "pending",
- "title": "string",
- "description": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "sourceEntityType": "string",
- "sourceEntityIds": [ ],
- "outputFormat": "pdf",
- "outputFileSize": 9007199254740991,
- "branded": true,
- "documentVersion": "string",
- "filters": { },
- "recordCount": 9007199254740991,
- "errorMessage": "string",
- "retryCount": 9007199254740991,
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing exportjob.
| jobId required | string <uuid> Export job UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| status | string Enum: "pending" "processing" "completed" "failed" "cancelled" |
| title | string [ 1 .. 255 ] characters |
| description | string <= 5000 characters |
| destinationId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| outputFormat | string Enum: "pdf" "html" "csv" "xlsx" "zip" "json" |
| branded | boolean |
object |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "status": "pending",
- "title": "string",
- "description": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "outputFormat": "pdf",
- "branded": true,
- "filters": {
- "property1": null,
- "property2": null
}
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "jobId": "string",
- "jobType": "document_publish",
- "status": "pending",
- "title": "string",
- "description": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "sourceEntityType": "string",
- "sourceEntityIds": [ ],
- "outputFormat": "pdf",
- "outputFileSize": 9007199254740991,
- "branded": true,
- "documentVersion": "string",
- "filters": { },
- "recordCount": 9007199254740991,
- "errorMessage": "string",
- "retryCount": 9007199254740991,
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of publicationrecords.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| documentId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by document. |
| status | string Enum: "pending" "published" "superseded" "recalled" Filter by publication status. |
| destinationId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by destination. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "documentVersion": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "destinationLabel": "string",
- "externalRef": "string",
- "status": "pending",
- "publishedBy": "string",
- "publishedAt": "2019-08-24T14:15:22Z",
- "recalledAt": "2019-08-24T14:15:22Z",
- "recalledBy": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a publicationrecord within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| documentId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| documentVersion required | string [ 1 .. 50 ] characters Version of the document to publish. |
| destinationId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Export destination where document was published. |
| destinationLabel | string <= 200 characters Human-readable label for the destination. |
| externalUrl | string <uri> External URL where document was published. |
| externalRef | string <= 500 characters External reference identifier for publication. |
| publishedBy required | string [ 1 .. 128 ] characters User who published the document. |
| notes | string <= 5000 characters Notes about the publication record. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "documentVersion": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "destinationLabel": "string",
- "externalRef": "string",
- "publishedBy": "string",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "documentVersion": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "destinationLabel": "string",
- "externalRef": "string",
- "status": "pending",
- "publishedBy": "string",
- "publishedAt": "2019-08-24T14:15:22Z",
- "recalledAt": "2019-08-24T14:15:22Z",
- "recalledBy": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single publicationrecord by identifier.
| publicationId required | string <uuid> Publication record UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "documentVersion": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "destinationLabel": "string",
- "externalRef": "string",
- "status": "pending",
- "publishedBy": "string",
- "publishedAt": "2019-08-24T14:15:22Z",
- "recalledAt": "2019-08-24T14:15:22Z",
- "recalledBy": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing publicationrecord.
| publicationId required | string <uuid> Publication record UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| status | string Enum: "pending" "published" "superseded" "recalled" Updated publication status. |
| externalUrl | string <uri> Updated external URL for publication. |
| externalRef | string <= 500 characters Updated external reference identifier. |
| notes | string <= 5000 characters Updated notes about the publication. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "status": "pending",
- "externalRef": "string",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "documentVersion": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "destinationLabel": "string",
- "externalRef": "string",
- "status": "pending",
- "publishedBy": "string",
- "publishedAt": "2019-08-24T14:15:22Z",
- "recalledAt": "2019-08-24T14:15:22Z",
- "recalledBy": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns the canonical contract entry points and high-level authentication model for the current API version.
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "name": "Q360 API",
- "version": "v1",
- "openapiUrl": "/api/v1/openapi.json",
- "docsUrl": "/docs/API.md",
- "authScheme": "Bearer",
- "tenantScope": "organization"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns the approved organization branding, current draft, and accessibility guidance for theme colors.
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "effective": {
- "primaryColor": "#14532d",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "published": {
- "primaryColor": "#14532d",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "draft": {
- "primaryColor": "#166534",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "hasPendingChanges": true,
- "accessibilityIssues": [
- {
- "field": "primaryColor",
- "level": "warning",
- "message": "Primary color may be too light for readable links and text on white backgrounds.",
- "contrastRatio": 4.1
}
], - "publishedAt": "2026-04-04T10:00:00.000Z",
- "updatedAt": "2026-04-05T03:10:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to the organization branding draft without changing the approved live theme.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| logoUrl | string <uri> URL of the organization logo |
| secondaryLogoUrl | string <uri> URL of the secondary logo |
| primaryColor | string^#[0-9a-fA-F]{6}$ Primary brand color in hex format |
| accentColor | string^#[0-9a-fA-F]{6}$ Accent color in hex format |
| loginHeadline | string [ 1 .. 120 ] characters Headline text on login page |
| loginSubheadline | string [ 1 .. 240 ] characters Subheadline text on login page |
| documentHeader | string [ 1 .. 160 ] characters Header text on published documents |
| documentFooter | string [ 1 .. 500 ] characters Footer text on published documents |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "primaryColor": "#166534",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}{- "data": {
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "effective": {
- "primaryColor": "#14532d",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "published": {
- "primaryColor": "#14532d",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "draft": {
- "primaryColor": "#166534",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "hasPendingChanges": true,
- "accessibilityIssues": [
- {
- "field": "primaryColor",
- "level": "warning",
- "message": "Primary color may be too light for readable links and text on white backgrounds.",
- "contrastRatio": 4.1
}
], - "publishedAt": "2026-04-04T10:00:00.000Z",
- "updatedAt": "2026-04-05T03:10:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Promotes the saved branding draft to the approved organization theme used by app and export surfaces.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "effective": {
- "primaryColor": "#14532d",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "published": {
- "primaryColor": "#14532d",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "draft": {
- "primaryColor": "#166534",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "hasPendingChanges": true,
- "accessibilityIssues": [
- {
- "field": "primaryColor",
- "level": "warning",
- "message": "Primary color may be too light for readable links and text on white backgrounds.",
- "contrastRatio": 4.1
}
], - "publishedAt": "2026-04-04T10:00:00.000Z",
- "updatedAt": "2026-04-05T03:10:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Resets the branding draft back to the currently approved organization theme.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "effective": {
- "primaryColor": "#14532d",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "published": {
- "primaryColor": "#14532d",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "draft": {
- "primaryColor": "#166534",
- "accentColor": "#0f766e",
- "loginHeadline": "Acme Quality Workspace",
- "loginSubheadline": "Audit-ready operations for regulated teams.",
- "documentHeader": "Acme Evidence Pack",
- "documentFooter": "Controlled when viewed in Q360. External copies are uncontrolled."
}, - "hasPendingChanges": true,
- "accessibilityIssues": [
- {
- "field": "primaryColor",
- "level": "warning",
- "message": "Primary color may be too light for readable links and text on white backgrounds.",
- "contrastRatio": 4.1
}
], - "publishedAt": "2026-04-04T10:00:00.000Z",
- "updatedAt": "2026-04-05T03:10:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of documents.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "Not Created" "Draft" "In Review" "Approved" "Published" "Under Revision" "Archived" Filter by document status. |
| type | string Enum: "Policy" "Procedure" "Work Instruction" "Form-Template" "Record" "Report" "Register-Log" "Plan" "Manual" "Analysis" Filter by document type. |
| clause | string [ 1 .. 64 ] characters Filter by standard clause. |
| owner | string [ 1 .. 128 ] characters Filter by document owner. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "docId": "PROC-DOC-001",
- "title": "Document Control Procedure",
- "description": "Defines the approval, publication, and review lifecycle for controlled documents.",
- "type": "Procedure",
- "status": "Published",
- "clause": "7.5",
- "subClause": "7.5.3",
- "standardId": "iso9001",
- "domain": "Support & Resources",
- "phase": "Do",
- "priority": "High",
- "stage": "Stage 3",
- "owner": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-05T09:00:00.000Z",
- "updatedAt": "2026-04-04T10:00:00.000Z",
- "dueDate": "2026-04-30",
- "reviewDate": "2026-10-01",
- "content": "# Document Control Procedure",
- "publishedContent": "# Document Control Procedure",
- "currentVersionNumber": 3,
- "publishedVersionNumber": 3,
- "mandatory": true,
- "notes": "Applies to all released QMS documents.",
- "attachments": [ ],
- "tags": [
- "document-control",
- "qms-core"
], - "relatedDocumentIds": [
- "e4d2cb2a-4327-4a7d-a726-cfcccf0d7680"
]
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a document within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| docId required | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title required | string [ 1 .. 200 ] characters Document title. |
| description | string <= 5000 characters Detailed description of the document. |
| type required | string Enum: "Policy" "Procedure" "Work Instruction" "Form-Template" "Record" "Report" "Register-Log" "Plan" "Manual" "Analysis" Category: Policy, Procedure, etc. |
| status required | string Default: "Draft" Enum: "Not Created" "Draft" "In Review" "Approved" "Published" "Under Revision" "Archived" Initial status; defaults to Draft. |
| clause required | string [ 1 .. 64 ] characters Framework clause or control reference. |
| subClause | string [ 1 .. 64 ] characters Sub-clause reference when applicable. |
| standardId | string [ 1 .. 64 ] characters Associated standard ID. |
| domain required | string Enum: "Context & Strategy" "Leadership & Policy" "Risk & Objectives" "Support & Resources" "Operations" "Performance & Audits" "Improvement" QMS domain (Context & Strategy, etc.). |
| phase required | string Enum: "Plan" "Do" "Check" "Act" PDCA phase: Plan, Do, Check, Act. |
| priority required | string Enum: "Low" "Medium" "High" Relative importance: Low, Medium, High. |
| stage required | string Enum: "Stage 1" "Stage 2" "Stage 3" "Stage 4" "Stage 5" "Stage 6" Implementation stage number. |
| owner required | string [ 1 .. 128 ] characters User ID of document owner. |
| dueDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Completion target date. |
| reviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date for next review or revision. |
| content | string Rich-text document content. |
| mandatory required | boolean Default: false Whether this document is mandatory. |
| notes | string <= 5000 characters Internal notes or comments. |
| tags required | Array of strings[ items [ 1 .. 64 ] characters ] Default: [] Searchable tags or keywords. |
| relatedDocumentIds required | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] Default: [] IDs of related documents. |
| evidenceUrls required | Array of strings <uri> [ items <uri > ] Default: [] URLs linking to supporting evidence. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "docId": "PROC-DOC-001",
- "title": "Document Control Procedure",
- "description": "Defines the approval, publication, and review lifecycle for controlled documents.",
- "type": "Procedure",
- "status": "Draft",
- "clause": "7.5",
- "subClause": "7.5.3",
- "standardId": "iso9001",
- "domain": "Support & Resources",
- "phase": "Do",
- "priority": "High",
- "stage": "Stage 3",
- "owner": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-30",
- "reviewDate": "2026-10-01",
- "content": "# Document Control Procedure",
- "mandatory": true,
- "tags": [
- "document-control",
- "qms-core"
]
}{- "data": {
- "id": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "docId": "PROC-DOC-001",
- "title": "Document Control Procedure",
- "description": "Defines the approval, publication, and review lifecycle for controlled documents.",
- "type": "Procedure",
- "status": "Published",
- "clause": "7.5",
- "subClause": "7.5.3",
- "standardId": "iso9001",
- "domain": "Support & Resources",
- "phase": "Do",
- "priority": "High",
- "stage": "Stage 3",
- "owner": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-05T09:00:00.000Z",
- "updatedAt": "2026-04-04T10:00:00.000Z",
- "dueDate": "2026-04-30",
- "reviewDate": "2026-10-01",
- "content": "# Document Control Procedure",
- "publishedContent": "# Document Control Procedure",
- "currentVersionNumber": 3,
- "publishedVersionNumber": 3,
- "mandatory": true,
- "notes": "Applies to all released QMS documents.",
- "attachments": [ ],
- "tags": [
- "document-control",
- "qms-core"
], - "relatedDocumentIds": [
- "e4d2cb2a-4327-4a7d-a726-cfcccf0d7680"
]
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single document by identifier.
| documentId required | string <uuid> Document UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "docId": "PROC-DOC-001",
- "title": "Document Control Procedure",
- "description": "Defines the approval, publication, and review lifecycle for controlled documents.",
- "type": "Procedure",
- "status": "Published",
- "clause": "7.5",
- "subClause": "7.5.3",
- "standardId": "iso9001",
- "domain": "Support & Resources",
- "phase": "Do",
- "priority": "High",
- "stage": "Stage 3",
- "owner": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-05T09:00:00.000Z",
- "updatedAt": "2026-04-04T10:00:00.000Z",
- "dueDate": "2026-04-30",
- "reviewDate": "2026-10-01",
- "content": "# Document Control Procedure",
- "publishedContent": "# Document Control Procedure",
- "currentVersionNumber": 3,
- "publishedVersionNumber": 3,
- "mandatory": true,
- "notes": "Applies to all released QMS documents.",
- "attachments": [ ],
- "tags": [
- "document-control",
- "qms-core"
], - "relatedDocumentIds": [
- "e4d2cb2a-4327-4a7d-a726-cfcccf0d7680"
]
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing document.
| documentId required | string <uuid> Document UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| docId | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title | string [ 1 .. 200 ] characters Document title. |
| description | string <= 5000 characters Detailed description of the document. |
| type | string Enum: "Policy" "Procedure" "Work Instruction" "Form-Template" "Record" "Report" "Register-Log" "Plan" "Manual" "Analysis" Category: Policy, Procedure, etc. |
| status | string Default: "Draft" Enum: "Not Created" "Draft" "In Review" "Approved" "Published" "Under Revision" "Archived" Initial status; defaults to Draft. |
| clause | string [ 1 .. 64 ] characters Framework clause or control reference. |
| subClause | string [ 1 .. 64 ] characters Sub-clause reference when applicable. |
| standardId | string [ 1 .. 64 ] characters Associated standard ID. |
| domain | string Enum: "Context & Strategy" "Leadership & Policy" "Risk & Objectives" "Support & Resources" "Operations" "Performance & Audits" "Improvement" QMS domain (Context & Strategy, etc.). |
| phase | string Enum: "Plan" "Do" "Check" "Act" PDCA phase: Plan, Do, Check, Act. |
| priority | string Enum: "Low" "Medium" "High" Relative importance: Low, Medium, High. |
| stage | string Enum: "Stage 1" "Stage 2" "Stage 3" "Stage 4" "Stage 5" "Stage 6" Implementation stage number. |
| owner | string [ 1 .. 128 ] characters User ID of document owner. |
| dueDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Completion target date. |
| reviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date for next review or revision. |
| content | string Rich-text document content. |
| mandatory | boolean Default: false Whether this document is mandatory. |
| notes | string <= 5000 characters Internal notes or comments. |
| tags | Array of strings[ items [ 1 .. 64 ] characters ] Default: [] Searchable tags or keywords. |
| relatedDocumentIds | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] Default: [] IDs of related documents. |
| evidenceUrls | Array of strings <uri> [ items <uri > ] Default: [] URLs linking to supporting evidence. |
| publishedContent | string Published version content snapshot. |
| currentVersionNumber | integer ( 0 .. 9007199254740991 ] Current draft version number. |
| publishedVersionNumber | integer ( 0 .. 9007199254740991 ] Latest published version number. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "status": "Published",
- "publishedContent": "# Document Control Procedure"
}{- "data": {
- "id": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "docId": "PROC-DOC-001",
- "title": "Document Control Procedure",
- "description": "Defines the approval, publication, and review lifecycle for controlled documents.",
- "type": "Procedure",
- "status": "Published",
- "clause": "7.5",
- "subClause": "7.5.3",
- "standardId": "iso9001",
- "domain": "Support & Resources",
- "phase": "Do",
- "priority": "High",
- "stage": "Stage 3",
- "owner": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-05T09:00:00.000Z",
- "updatedAt": "2026-04-04T10:00:00.000Z",
- "dueDate": "2026-04-30",
- "reviewDate": "2026-10-01",
- "content": "# Document Control Procedure",
- "publishedContent": "# Document Control Procedure",
- "currentVersionNumber": 3,
- "publishedVersionNumber": 3,
- "mandatory": true,
- "notes": "Applies to all released QMS documents.",
- "attachments": [ ],
- "tags": [
- "document-control",
- "qms-core"
], - "relatedDocumentIds": [
- "e4d2cb2a-4327-4a7d-a726-cfcccf0d7680"
]
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns an HTML redline diff and change summary between two versions of a controlled document. Available on Team, Business, Enterprise, and Australian Pharmacy plans.
| documentId required | string <uuid> Document UUID. |
| from required | string [ 1 .. 32 ] characters Source version number (e.g. "1.0") |
| to required | string [ 1 .. 32 ] characters Target version number (e.g. "2.0") |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "fromVersion": "string",
- "toVersion": "string",
- "diffHtml": "string",
- "summary": {
- "additions": 9007199254740991,
- "deletions": 9007199254740991,
- "modifications": 9007199254740991,
- "formattingChanges": 9007199254740991,
- "unchanged": 9007199254740991
}, - "generatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated list of document import jobs for the organization.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "pending" "processing" "classified" "review" "completed" "failed" "cancelled" Filter by import job status |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "createdBy": "string",
- "status": "pending",
- "sourceFilename": "string",
- "sourceFileType": "string",
- "sourceFileSize": 9007199254740991,
- "extractedText": "string",
- "suggestedMetadata": {
- "title": "string",
- "description": "string",
- "docId": "string",
- "type": "Policy",
- "clause": "string",
- "subClause": "string",
- "domain": "Context & Strategy",
- "phase": "Plan",
- "priority": "Low",
- "stage": "Stage 1",
- "tags": [
- "string"
], - "confidence": {
- "property1": 1,
- "property2": 1
}
}, - "resolvedMetadata": {
- "title": "string",
- "description": "string",
- "docId": "string",
- "type": "Policy",
- "clause": "string",
- "subClause": "string",
- "domain": "Context & Strategy",
- "phase": "Plan",
- "priority": "Low",
- "stage": "Stage 1",
- "tags": [
- "string"
], - "confidence": {
- "property1": 1,
- "property2": 1
}
}, - "duplicateCandidates": [ ],
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a new document import job after a file has been uploaded to storage.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| sourceFilename required | string [ 1 .. 255 ] characters Name of the file to import |
| sourceFileType required | string [ 1 .. 128 ] characters MIME type of the file |
| sourceFileSize required | integer [ 0 .. 9007199254740991 ] Size of the file in bytes |
| sourceFilePath required | string [ 1 .. 1024 ] characters Path or identifier of the file in storage |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "sourceFilename": "string",
- "sourceFileType": "string",
- "sourceFileSize": 9007199254740991,
- "sourceFilePath": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "createdBy": "string",
- "status": "pending",
- "sourceFilename": "string",
- "sourceFileType": "string",
- "sourceFileSize": 9007199254740991,
- "extractedText": "string",
- "suggestedMetadata": {
- "title": "string",
- "description": "string",
- "docId": "string",
- "type": "Policy",
- "clause": "string",
- "subClause": "string",
- "domain": "Context & Strategy",
- "phase": "Plan",
- "priority": "Low",
- "stage": "Stage 1",
- "tags": [
- "string"
], - "confidence": {
- "property1": 1,
- "property2": 1
}
}, - "resolvedMetadata": {
- "title": "string",
- "description": "string",
- "docId": "string",
- "type": "Policy",
- "clause": "string",
- "subClause": "string",
- "domain": "Context & Strategy",
- "phase": "Plan",
- "priority": "Low",
- "stage": "Stage 1",
- "tags": [
- "string"
], - "confidence": {
- "property1": 1,
- "property2": 1
}
}, - "duplicateCandidates": [ ],
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single import job by identifier, including suggested metadata and duplicate candidates.
| importJobId required | string <uuid> Import job UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "createdBy": "string",
- "status": "pending",
- "sourceFilename": "string",
- "sourceFileType": "string",
- "sourceFileSize": 9007199254740991,
- "extractedText": "string",
- "suggestedMetadata": {
- "title": "string",
- "description": "string",
- "docId": "string",
- "type": "Policy",
- "clause": "string",
- "subClause": "string",
- "domain": "Context & Strategy",
- "phase": "Plan",
- "priority": "Low",
- "stage": "Stage 1",
- "tags": [
- "string"
], - "confidence": {
- "property1": 1,
- "property2": 1
}
}, - "resolvedMetadata": {
- "title": "string",
- "description": "string",
- "docId": "string",
- "type": "Policy",
- "clause": "string",
- "subClause": "string",
- "domain": "Context & Strategy",
- "phase": "Plan",
- "priority": "Low",
- "stage": "Stage 1",
- "tags": [
- "string"
], - "confidence": {
- "property1": 1,
- "property2": 1
}
}, - "duplicateCandidates": [ ],
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Confirms metadata for an import job and creates the controlled document.
| importJobId required | string <uuid> Import job UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| title required | string [ 1 .. 200 ] characters Document title |
| description | string <= 5000 characters Document description |
| docId required | string [ 1 .. 80 ] characters Business document ID |
| type required | string Enum: "Policy" "Procedure" "Work Instruction" "Form-Template" "Record" "Report" "Register-Log" "Plan" "Manual" "Analysis" Document type |
| clause required | string [ 1 .. 64 ] characters Aligned standard clause |
| subClause | string [ 1 .. 64 ] characters Aligned standard sub-clause |
| domain required | string Enum: "Context & Strategy" "Leadership & Policy" "Risk & Objectives" "Support & Resources" "Operations" "Performance & Audits" "Improvement" QMS domain |
| phase required | string Enum: "Plan" "Do" "Check" "Act" PDCA phase |
| priority required | string Enum: "Low" "Medium" "High" Priority level |
| stage required | string Enum: "Stage 1" "Stage 2" "Stage 3" "Stage 4" "Stage 5" "Stage 6" Implementation stage |
| owner required | string [ 1 .. 128 ] characters User ID of document owner |
| tags required | Array of strings[ items [ 1 .. 64 ] characters ] Default: [] Tags for categorization |
| mandatory required | boolean Default: false Whether the document is mandatory |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "title": "string",
- "description": "string",
- "docId": "string",
- "type": "Policy",
- "clause": "string",
- "subClause": "string",
- "domain": "Context & Strategy",
- "phase": "Plan",
- "priority": "Low",
- "stage": "Stage 1",
- "owner": "string",
- "tags": [ ],
- "mandatory": false
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "createdBy": "string",
- "status": "pending",
- "sourceFilename": "string",
- "sourceFileType": "string",
- "sourceFileSize": 9007199254740991,
- "extractedText": "string",
- "suggestedMetadata": {
- "title": "string",
- "description": "string",
- "docId": "string",
- "type": "Policy",
- "clause": "string",
- "subClause": "string",
- "domain": "Context & Strategy",
- "phase": "Plan",
- "priority": "Low",
- "stage": "Stage 1",
- "tags": [
- "string"
], - "confidence": {
- "property1": 1,
- "property2": 1
}
}, - "resolvedMetadata": {
- "title": "string",
- "description": "string",
- "docId": "string",
- "type": "Policy",
- "clause": "string",
- "subClause": "string",
- "domain": "Context & Strategy",
- "phase": "Plan",
- "priority": "Low",
- "stage": "Stage 1",
- "tags": [
- "string"
], - "confidence": {
- "property1": 1,
- "property2": 1
}
}, - "duplicateCandidates": [ ],
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of capas.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "Open" "In Progress" "Effectiveness Check" "Closed" "Rejected" Filter by CAPA status. |
| severity | string Enum: "Minor" "Major" "Critical" Filter by severity level. |
| owner | string [ 1 .. 128 ] characters Filter by CAPA owner. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "36d97ebf-2943-4284-9ef8-fcd5dfd02b80",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "capaId": "CA-2026-001",
- "type": "corrective",
- "title": "Resolve missing review records",
- "description": "A corrective action for missing document review evidence.",
- "nonConformityId": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "rootCause": "Review ownership was not assigned to a named role.",
- "status": "In Progress",
- "severity": "Major",
- "openedBy": "22222222-2222-4222-8222-222222222222",
- "openedAt": "2026-04-01T08:30:00.000Z",
- "dueDate": "2026-04-20",
- "expectedClosureDate": "2026-04-22",
- "owner": "22222222-2222-4222-8222-222222222222",
- "actions": [
- {
- "id": "c6d48d06-0d65-47eb-b654-b8766ae7b0a7",
- "description": "Update the review matrix and assign accountable owners.",
- "owner": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-12",
- "status": "In Progress",
- "notes": "Draft revision prepared for approval."
}
], - "effectiveness": {
- "notes": "Verification scheduled for the next monthly compliance review."
}, - "attachments": [ ],
- "relatedDocumentIds": [
- "9f97f34c-7e83-4d8d-a3e6-c4af44f21511"
], - "notes": "Escalated from audit finding AUD-2026-Q2-001.",
- "updatedAt": "2026-04-05T01:20:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a capa within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| capaId | string [ 1 .. 80 ] characters Auto-generated if omitted. |
| type required | string Enum: "corrective" "preventive" Addresses existing or potential issue. |
| title required | string [ 1 .. 200 ] characters CAPA title or summary. |
| description required | string [ 1 .. 8000 ] characters Detailed description of the issue. |
| nonConformityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked non-conformity ID if applicable. |
| rootCause required | string <= 5000 characters Default: "" Root cause analysis findings. |
| status required | string Default: "Open" Enum: "Open" "In Progress" "Effectiveness Check" "Closed" "Rejected" Defaults to Open. |
| severity required | string Enum: "Minor" "Major" "Critical" Impact severity level. |
| openedBy required | string [ 1 .. 128 ] characters User ID who opened this CAPA. |
| openedAt | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Creation date; defaults to now. |
| dueDate required | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Target completion date. |
| expectedClosureDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Projected closure date. |
| owner required | string [ 1 .. 128 ] characters User ID of primary owner. |
required | Array of objects Default: [] Corrective/preventive actions. |
| relatedDocumentIds required | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] Default: [] IDs of related documents. |
| notes | string <= 5000 characters Progress or general notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "type": "corrective",
- "title": "Resolve missing review records",
- "description": "A corrective action for missing document review evidence.",
- "severity": "Major",
- "openedBy": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-20",
- "owner": "22222222-2222-4222-8222-222222222222",
- "relatedDocumentIds": [
- "9f97f34c-7e83-4d8d-a3e6-c4af44f21511"
]
}{- "data": {
- "id": "36d97ebf-2943-4284-9ef8-fcd5dfd02b80",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "capaId": "CA-2026-001",
- "type": "corrective",
- "title": "Resolve missing review records",
- "description": "A corrective action for missing document review evidence.",
- "nonConformityId": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "rootCause": "Review ownership was not assigned to a named role.",
- "status": "In Progress",
- "severity": "Major",
- "openedBy": "22222222-2222-4222-8222-222222222222",
- "openedAt": "2026-04-01T08:30:00.000Z",
- "dueDate": "2026-04-20",
- "expectedClosureDate": "2026-04-22",
- "owner": "22222222-2222-4222-8222-222222222222",
- "actions": [
- {
- "id": "c6d48d06-0d65-47eb-b654-b8766ae7b0a7",
- "description": "Update the review matrix and assign accountable owners.",
- "owner": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-12",
- "status": "In Progress",
- "notes": "Draft revision prepared for approval."
}
], - "effectiveness": {
- "notes": "Verification scheduled for the next monthly compliance review."
}, - "attachments": [ ],
- "relatedDocumentIds": [
- "9f97f34c-7e83-4d8d-a3e6-c4af44f21511"
], - "notes": "Escalated from audit finding AUD-2026-Q2-001.",
- "updatedAt": "2026-04-05T01:20:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single capa by identifier.
| capaId required | string <uuid> CAPA UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "36d97ebf-2943-4284-9ef8-fcd5dfd02b80",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "capaId": "CA-2026-001",
- "type": "corrective",
- "title": "Resolve missing review records",
- "description": "A corrective action for missing document review evidence.",
- "nonConformityId": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "rootCause": "Review ownership was not assigned to a named role.",
- "status": "In Progress",
- "severity": "Major",
- "openedBy": "22222222-2222-4222-8222-222222222222",
- "openedAt": "2026-04-01T08:30:00.000Z",
- "dueDate": "2026-04-20",
- "expectedClosureDate": "2026-04-22",
- "owner": "22222222-2222-4222-8222-222222222222",
- "actions": [
- {
- "id": "c6d48d06-0d65-47eb-b654-b8766ae7b0a7",
- "description": "Update the review matrix and assign accountable owners.",
- "owner": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-12",
- "status": "In Progress",
- "notes": "Draft revision prepared for approval."
}
], - "effectiveness": {
- "notes": "Verification scheduled for the next monthly compliance review."
}, - "attachments": [ ],
- "relatedDocumentIds": [
- "9f97f34c-7e83-4d8d-a3e6-c4af44f21511"
], - "notes": "Escalated from audit finding AUD-2026-Q2-001.",
- "updatedAt": "2026-04-05T01:20:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing capa.
| capaId required | string <uuid> CAPA UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| capaId | string [ 1 .. 80 ] characters Auto-generated if omitted. |
| type | string Enum: "corrective" "preventive" Addresses existing or potential issue. |
| title | string [ 1 .. 200 ] characters CAPA title or summary. |
| description | string [ 1 .. 8000 ] characters Detailed description of the issue. |
| nonConformityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked non-conformity ID if applicable. |
| rootCause | string <= 5000 characters Default: "" Root cause analysis findings. |
| status | string Default: "Open" Enum: "Open" "In Progress" "Effectiveness Check" "Closed" "Rejected" Defaults to Open. |
| severity | string Enum: "Minor" "Major" "Critical" Impact severity level. |
| openedBy | string [ 1 .. 128 ] characters User ID who opened this CAPA. |
| openedAt | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Creation date; defaults to now. |
| dueDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Target completion date. |
| expectedClosureDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Projected closure date. |
| owner | string [ 1 .. 128 ] characters User ID of primary owner. |
Array of objects Default: [] Corrective/preventive actions. | |
| relatedDocumentIds | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] Default: [] IDs of related documents. |
| notes | string <= 5000 characters Progress or general notes. |
| actualClosureDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Actual closure date if completed. |
object Effectiveness check results. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "status": "In Progress",
- "notes": "Owner assignment workflow has been updated."
}{- "data": {
- "id": "36d97ebf-2943-4284-9ef8-fcd5dfd02b80",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "capaId": "CA-2026-001",
- "type": "corrective",
- "title": "Resolve missing review records",
- "description": "A corrective action for missing document review evidence.",
- "nonConformityId": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "rootCause": "Review ownership was not assigned to a named role.",
- "status": "In Progress",
- "severity": "Major",
- "openedBy": "22222222-2222-4222-8222-222222222222",
- "openedAt": "2026-04-01T08:30:00.000Z",
- "dueDate": "2026-04-20",
- "expectedClosureDate": "2026-04-22",
- "owner": "22222222-2222-4222-8222-222222222222",
- "actions": [
- {
- "id": "c6d48d06-0d65-47eb-b654-b8766ae7b0a7",
- "description": "Update the review matrix and assign accountable owners.",
- "owner": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-12",
- "status": "In Progress",
- "notes": "Draft revision prepared for approval."
}
], - "effectiveness": {
- "notes": "Verification scheduled for the next monthly compliance review."
}, - "attachments": [ ],
- "relatedDocumentIds": [
- "9f97f34c-7e83-4d8d-a3e6-c4af44f21511"
], - "notes": "Escalated from audit finding AUD-2026-Q2-001.",
- "updatedAt": "2026-04-05T01:20:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of nonconformities.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "Open" "Under Investigation" "Corrective Action Raised" "Closed" "Rejected" Filter by NCR status. |
| severity | string Enum: "Minor" "Major" "Critical" Filter by severity level. |
| discoveredBy | string [ 1 .. 128 ] characters Filter by who discovered the non-conformity. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "ncId": "NC-2026-004",
- "title": "Evidence missing for required document review",
- "description": "No retained record showed the required annual review was completed.",
- "severity": "Major",
- "status": "Under Investigation",
- "discoveredAt": "2026-04-01T08:00:00.000Z",
- "discoveredBy": "22222222-2222-4222-8222-222222222222",
- "discoveryMethod": "internal_audit",
- "rootCauseAnalysisRequired": true,
- "relatedCapaIds": [
- "36d97ebf-2943-4284-9ef8-fcd5dfd02b80"
], - "notes": "Linked to the Q2 internal audit.",
- "attachments": [ ],
- "createdAt": "2026-04-01T08:00:00.000Z",
- "updatedAt": "2026-04-04T17:15:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a nonconformity within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| ncId | string [ 1 .. 80 ] characters Auto-generated if omitted. |
| title required | string [ 1 .. 200 ] characters Non-conformity title or summary. |
| description required | string <= 8000 characters Default: "" Detailed description of the issue. |
| severity required | string Enum: "Minor" "Major" "Critical" Impact severity level. |
| status required | string Default: "Open" Enum: "Open" "Under Investigation" "Corrective Action Raised" "Closed" "Rejected" Defaults to Open. |
| discoveredAt | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Discovery date; defaults to now. |
| discoveredBy required | string [ 1 .. 128 ] characters User ID who discovered it. |
| discoveryMethod required | string Enum: "internal_audit" "external_audit" "management_review" "customer_feedback" "other" How the non-conformity was identified. |
| rootCauseAnalysisRequired required | boolean Default: true Whether RCA is mandatory. |
| relatedCapaIds required | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] Default: [] IDs of related CAPAs. |
| notes | string <= 5000 characters General notes or observations. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "title": "Evidence missing for required document review",
- "severity": "Major",
- "discoveredBy": "22222222-2222-4222-8222-222222222222",
- "discoveryMethod": "internal_audit",
- "rootCauseAnalysisRequired": true
}{- "data": {
- "id": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "ncId": "NC-2026-004",
- "title": "Evidence missing for required document review",
- "description": "No retained record showed the required annual review was completed.",
- "severity": "Major",
- "status": "Under Investigation",
- "discoveredAt": "2026-04-01T08:00:00.000Z",
- "discoveredBy": "22222222-2222-4222-8222-222222222222",
- "discoveryMethod": "internal_audit",
- "rootCauseAnalysisRequired": true,
- "relatedCapaIds": [
- "36d97ebf-2943-4284-9ef8-fcd5dfd02b80"
], - "notes": "Linked to the Q2 internal audit.",
- "attachments": [ ],
- "createdAt": "2026-04-01T08:00:00.000Z",
- "updatedAt": "2026-04-04T17:15:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single nonconformity by identifier.
| nonConformityId required | string <uuid> Non-conformity UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "ncId": "NC-2026-004",
- "title": "Evidence missing for required document review",
- "description": "No retained record showed the required annual review was completed.",
- "severity": "Major",
- "status": "Under Investigation",
- "discoveredAt": "2026-04-01T08:00:00.000Z",
- "discoveredBy": "22222222-2222-4222-8222-222222222222",
- "discoveryMethod": "internal_audit",
- "rootCauseAnalysisRequired": true,
- "relatedCapaIds": [
- "36d97ebf-2943-4284-9ef8-fcd5dfd02b80"
], - "notes": "Linked to the Q2 internal audit.",
- "attachments": [ ],
- "createdAt": "2026-04-01T08:00:00.000Z",
- "updatedAt": "2026-04-04T17:15:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing nonconformity.
| nonConformityId required | string <uuid> Non-conformity UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| ncId | string [ 1 .. 80 ] characters Auto-generated if omitted. |
| title | string [ 1 .. 200 ] characters Non-conformity title or summary. |
| description | string <= 8000 characters Default: "" Detailed description of the issue. |
| severity | string Enum: "Minor" "Major" "Critical" Impact severity level. |
| status | string Default: "Open" Enum: "Open" "Under Investigation" "Corrective Action Raised" "Closed" "Rejected" Defaults to Open. |
| discoveredAt | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Discovery date; defaults to now. |
| discoveredBy | string [ 1 .. 128 ] characters User ID who discovered it. |
| discoveryMethod | string Enum: "internal_audit" "external_audit" "management_review" "customer_feedback" "other" How the non-conformity was identified. |
| rootCauseAnalysisRequired | boolean Default: true Whether RCA is mandatory. |
| relatedCapaIds | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] Default: [] IDs of related CAPAs. |
| notes | string <= 5000 characters General notes or observations. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "status": "Under Investigation",
- "notes": "CAPA opened for remediation."
}{- "data": {
- "id": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "ncId": "NC-2026-004",
- "title": "Evidence missing for required document review",
- "description": "No retained record showed the required annual review was completed.",
- "severity": "Major",
- "status": "Under Investigation",
- "discoveredAt": "2026-04-01T08:00:00.000Z",
- "discoveredBy": "22222222-2222-4222-8222-222222222222",
- "discoveryMethod": "internal_audit",
- "rootCauseAnalysisRequired": true,
- "relatedCapaIds": [
- "36d97ebf-2943-4284-9ef8-fcd5dfd02b80"
], - "notes": "Linked to the Q2 internal audit.",
- "attachments": [ ],
- "createdAt": "2026-04-01T08:00:00.000Z",
- "updatedAt": "2026-04-04T17:15:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of audits.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "Planned" "In Progress" "Completed" "Reported" Filter by audit status. |
| type | string Enum: "Internal" "Management Review" "Supplier" "Certification" "Second Party" Filter by audit type. |
| auditTeamLead | string [ 1 .. 128 ] characters Filter by audit team lead. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "cf0ec17d-f790-4af1-8327-323bdb43408e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "auditId": "AUD-2026-Q2-001",
- "type": "Internal",
- "title": "Q2 Internal Audit",
- "scope": "Document control, training, and CAPA follow-up.",
- "status": "In Progress",
- "scheduledDate": "2026-04-01",
- "actualStartDate": "2026-04-01",
- "auditTeamLead": "22222222-2222-4222-8222-222222222222",
- "auditTeamMembers": [
- "33333333-3333-4333-8333-333333333333"
], - "clauses": [
- "7.2",
- "7.5",
- "10.2"
], - "findings": [
- {
- "id": "fb84dd09-7688-45bc-ad99-0f5687833fd3",
- "auditId": "cf0ec17d-f790-4af1-8327-323bdb43408e",
- "clause": "7.5",
- "subClause": "7.5.3",
- "description": "Review evidence was not retained for one controlled procedure.",
- "severity": "minor",
- "evidence": "Interview, revision history, and published document review.",
- "recommendations": "Enforce required review capture in the workflow.",
- "linkedNonConformityId": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "createdAt": "2026-04-01T09:00:00.000Z"
}
], - "nonConformityIds": [
- "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d"
], - "executiveSummary": "One minor finding related to retained review evidence.",
- "evidenceAttachments": [ ],
- "createdAt": "2026-03-20T02:00:00.000Z",
- "updatedAt": "2026-04-01T10:00:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a audit within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| auditId | string [ 1 .. 80 ] characters Auto-generated if omitted. |
| type required | string Enum: "Internal" "Management Review" "Supplier" "Certification" "Second Party" Audit type: Internal, Certification, etc. |
| title required | string [ 1 .. 200 ] characters Audit title or designation. |
| scope required | string [ 1 .. 5000 ] characters Scope of areas and processes audited. |
| status required | string Default: "Planned" Enum: "Planned" "In Progress" "Completed" "Reported" Defaults to Planned. |
| auditProgramId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Associated audit program ID. |
| scheduledDate required | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Planned audit date. |
| auditTeamLead required | string [ 1 .. 128 ] characters User ID of lead auditor. |
| auditTeamMembers required | Array of strings[ items [ 1 .. 128 ] characters ] Default: [] IDs of team members. |
| clauses required | Array of strings[ items [ 1 .. 64 ] characters ] Default: [] Standards clauses to audit. |
| executiveSummary | string <= 5000 characters High-level summary of results. |
| reportUrl | string <uri> Link to the full audit report. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "type": "Internal",
- "title": "Q2 Internal Audit",
- "scope": "Document control, training, and CAPA follow-up.",
- "scheduledDate": "2026-04-01",
- "auditTeamLead": "22222222-2222-4222-8222-222222222222",
- "auditTeamMembers": [
- "33333333-3333-4333-8333-333333333333"
], - "clauses": [
- "7.2",
- "7.5",
- "10.2"
]
}{- "data": {
- "id": "cf0ec17d-f790-4af1-8327-323bdb43408e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "auditId": "AUD-2026-Q2-001",
- "type": "Internal",
- "title": "Q2 Internal Audit",
- "scope": "Document control, training, and CAPA follow-up.",
- "status": "In Progress",
- "scheduledDate": "2026-04-01",
- "actualStartDate": "2026-04-01",
- "auditTeamLead": "22222222-2222-4222-8222-222222222222",
- "auditTeamMembers": [
- "33333333-3333-4333-8333-333333333333"
], - "clauses": [
- "7.2",
- "7.5",
- "10.2"
], - "findings": [
- {
- "id": "fb84dd09-7688-45bc-ad99-0f5687833fd3",
- "auditId": "cf0ec17d-f790-4af1-8327-323bdb43408e",
- "clause": "7.5",
- "subClause": "7.5.3",
- "description": "Review evidence was not retained for one controlled procedure.",
- "severity": "minor",
- "evidence": "Interview, revision history, and published document review.",
- "recommendations": "Enforce required review capture in the workflow.",
- "linkedNonConformityId": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "createdAt": "2026-04-01T09:00:00.000Z"
}
], - "nonConformityIds": [
- "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d"
], - "executiveSummary": "One minor finding related to retained review evidence.",
- "evidenceAttachments": [ ],
- "createdAt": "2026-03-20T02:00:00.000Z",
- "updatedAt": "2026-04-01T10:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single audit by identifier.
| auditId required | string <uuid> Audit UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "cf0ec17d-f790-4af1-8327-323bdb43408e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "auditId": "AUD-2026-Q2-001",
- "type": "Internal",
- "title": "Q2 Internal Audit",
- "scope": "Document control, training, and CAPA follow-up.",
- "status": "In Progress",
- "scheduledDate": "2026-04-01",
- "actualStartDate": "2026-04-01",
- "auditTeamLead": "22222222-2222-4222-8222-222222222222",
- "auditTeamMembers": [
- "33333333-3333-4333-8333-333333333333"
], - "clauses": [
- "7.2",
- "7.5",
- "10.2"
], - "findings": [
- {
- "id": "fb84dd09-7688-45bc-ad99-0f5687833fd3",
- "auditId": "cf0ec17d-f790-4af1-8327-323bdb43408e",
- "clause": "7.5",
- "subClause": "7.5.3",
- "description": "Review evidence was not retained for one controlled procedure.",
- "severity": "minor",
- "evidence": "Interview, revision history, and published document review.",
- "recommendations": "Enforce required review capture in the workflow.",
- "linkedNonConformityId": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "createdAt": "2026-04-01T09:00:00.000Z"
}
], - "nonConformityIds": [
- "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d"
], - "executiveSummary": "One minor finding related to retained review evidence.",
- "evidenceAttachments": [ ],
- "createdAt": "2026-03-20T02:00:00.000Z",
- "updatedAt": "2026-04-01T10:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing audit.
| auditId required | string <uuid> Audit UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| auditId | string [ 1 .. 80 ] characters Auto-generated if omitted. |
| type | string Enum: "Internal" "Management Review" "Supplier" "Certification" "Second Party" Audit type: Internal, Certification, etc. |
| title | string [ 1 .. 200 ] characters Audit title or designation. |
| scope | string [ 1 .. 5000 ] characters Scope of areas and processes audited. |
| status | string Default: "Planned" Enum: "Planned" "In Progress" "Completed" "Reported" Defaults to Planned. |
| auditProgramId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Associated audit program ID. |
| scheduledDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Planned audit date. |
| auditTeamLead | string [ 1 .. 128 ] characters User ID of lead auditor. |
| auditTeamMembers | Array of strings[ items [ 1 .. 128 ] characters ] Default: [] IDs of team members. |
| clauses | Array of strings[ items [ 1 .. 64 ] characters ] Default: [] Standards clauses to audit. |
| executiveSummary | string <= 5000 characters High-level summary of results. |
| reportUrl | string <uri> Link to the full audit report. |
| actualStartDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Actual audit start date. |
| actualEndDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Actual audit end date. |
Array of objects Audit findings and observations. | |
| nonConformityIds | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] IDs of related non-conformities. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "status": "In Progress",
- "actualStartDate": "2026-04-01"
}{- "data": {
- "id": "cf0ec17d-f790-4af1-8327-323bdb43408e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "auditId": "AUD-2026-Q2-001",
- "type": "Internal",
- "title": "Q2 Internal Audit",
- "scope": "Document control, training, and CAPA follow-up.",
- "status": "In Progress",
- "scheduledDate": "2026-04-01",
- "actualStartDate": "2026-04-01",
- "auditTeamLead": "22222222-2222-4222-8222-222222222222",
- "auditTeamMembers": [
- "33333333-3333-4333-8333-333333333333"
], - "clauses": [
- "7.2",
- "7.5",
- "10.2"
], - "findings": [
- {
- "id": "fb84dd09-7688-45bc-ad99-0f5687833fd3",
- "auditId": "cf0ec17d-f790-4af1-8327-323bdb43408e",
- "clause": "7.5",
- "subClause": "7.5.3",
- "description": "Review evidence was not retained for one controlled procedure.",
- "severity": "minor",
- "evidence": "Interview, revision history, and published document review.",
- "recommendations": "Enforce required review capture in the workflow.",
- "linkedNonConformityId": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "createdAt": "2026-04-01T09:00:00.000Z"
}
], - "nonConformityIds": [
- "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d"
], - "executiveSummary": "One minor finding related to retained review evidence.",
- "evidenceAttachments": [ ],
- "createdAt": "2026-03-20T02:00:00.000Z",
- "updatedAt": "2026-04-01T10:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of risks.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "Active" "Mitigated" "Closed" Filter by risk status. |
| owner | string [ 1 .. 128 ] characters Filter by risk owner. |
| category | string [ 1 .. 120 ] characters Filter by risk category. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "61b14f12-fc69-4409-b584-ec3d49077221",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "riskId": "RISK-2026-010",
- "title": "Controlled document reviews may lapse",
- "description": "Review obligations may be missed if ownership is unclear.",
- "category": "Compliance Risk",
- "context": "Document governance",
- "clause": "7.5",
- "subClause": "7.5.3",
- "probability": "Possible",
- "impact": "Major",
- "riskScore": 12,
- "status": "Active",
- "owner": "22222222-2222-4222-8222-222222222222",
- "mitigationStrategy": "Automate review reminders and enforce owner assignment.",
- "mitigationActions": [
- {
- "id": "4e5a7f70-05a2-4b3f-9805-bd31d20f0164",
- "description": "Add overdue escalation for document reviews.",
- "owner": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-25",
- "status": "Open",
- "effectiveness": "medium"
}
], - "residualRiskScore": 6,
- "acceptanceLevel": "mitigation_required",
- "reviewDate": "2026-04-05",
- "nextReviewDate": "2026-05-05",
- "attachments": [ ],
- "createdAt": "2026-03-25T06:00:00.000Z",
- "updatedAt": "2026-04-05T00:30:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a risk within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| riskId | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title required | string [ 1 .. 200 ] characters Risk title. |
| description required | string [ 1 .. 8000 ] characters Risk description. |
| category required | string [ 1 .. 120 ] characters Risk category. |
| context required | string [ 1 .. 5000 ] characters Risk context. |
| clause required | string [ 1 .. 64 ] characters Framework clause or control reference. |
| subClause | string [ 1 .. 64 ] characters Framework subclause or nested control reference. |
| probability required | string Enum: "Rare" "Unlikely" "Possible" "Likely" "Almost Certain" Probability level. |
| impact required | string Enum: "Insignificant" "Minor" "Moderate" "Major" "Catastrophic" Impact level. |
| status required | string Default: "Active" Enum: "Active" "Mitigated" "Closed" Initial status; defaults to Active. |
| owner required | string [ 1 .. 128 ] characters Risk owner user ID. |
| mitigationStrategy | string <= 5000 characters Mitigation strategy. |
required | Array of objects Default: [] Associated mitigation actions. |
| acceptanceLevel required | string Enum: "accepted" "mitigation_required" "rejected" Risk acceptance level. |
| reviewDate required | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Risk review date. |
| nextReviewDate required | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next review date. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "title": "Controlled document reviews may lapse",
- "description": "Review obligations may be missed if ownership is unclear.",
- "category": "Compliance Risk",
- "context": "Document governance",
- "clause": "7.5",
- "subClause": "7.5.3",
- "probability": "Possible",
- "impact": "Major",
- "owner": "22222222-2222-4222-8222-222222222222",
- "mitigationStrategy": "Automate review reminders and enforce owner assignment.",
- "mitigationActions": [
- {
- "description": "Add overdue escalation for document reviews.",
- "owner": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-25",
- "status": "Open"
}
], - "acceptanceLevel": "mitigation_required",
- "reviewDate": "2026-04-05",
- "nextReviewDate": "2026-05-05"
}{- "data": {
- "id": "61b14f12-fc69-4409-b584-ec3d49077221",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "riskId": "RISK-2026-010",
- "title": "Controlled document reviews may lapse",
- "description": "Review obligations may be missed if ownership is unclear.",
- "category": "Compliance Risk",
- "context": "Document governance",
- "clause": "7.5",
- "subClause": "7.5.3",
- "probability": "Possible",
- "impact": "Major",
- "riskScore": 12,
- "status": "Active",
- "owner": "22222222-2222-4222-8222-222222222222",
- "mitigationStrategy": "Automate review reminders and enforce owner assignment.",
- "mitigationActions": [
- {
- "id": "4e5a7f70-05a2-4b3f-9805-bd31d20f0164",
- "description": "Add overdue escalation for document reviews.",
- "owner": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-25",
- "status": "Open",
- "effectiveness": "medium"
}
], - "residualRiskScore": 6,
- "acceptanceLevel": "mitigation_required",
- "reviewDate": "2026-04-05",
- "nextReviewDate": "2026-05-05",
- "attachments": [ ],
- "createdAt": "2026-03-25T06:00:00.000Z",
- "updatedAt": "2026-04-05T00:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single risk by identifier.
| riskId required | string <uuid> Risk UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "61b14f12-fc69-4409-b584-ec3d49077221",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "riskId": "RISK-2026-010",
- "title": "Controlled document reviews may lapse",
- "description": "Review obligations may be missed if ownership is unclear.",
- "category": "Compliance Risk",
- "context": "Document governance",
- "clause": "7.5",
- "subClause": "7.5.3",
- "probability": "Possible",
- "impact": "Major",
- "riskScore": 12,
- "status": "Active",
- "owner": "22222222-2222-4222-8222-222222222222",
- "mitigationStrategy": "Automate review reminders and enforce owner assignment.",
- "mitigationActions": [
- {
- "id": "4e5a7f70-05a2-4b3f-9805-bd31d20f0164",
- "description": "Add overdue escalation for document reviews.",
- "owner": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-25",
- "status": "Open",
- "effectiveness": "medium"
}
], - "residualRiskScore": 6,
- "acceptanceLevel": "mitigation_required",
- "reviewDate": "2026-04-05",
- "nextReviewDate": "2026-05-05",
- "attachments": [ ],
- "createdAt": "2026-03-25T06:00:00.000Z",
- "updatedAt": "2026-04-05T00:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing risk.
| riskId required | string <uuid> Risk UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| riskId | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title | string [ 1 .. 200 ] characters Risk title. |
| description | string [ 1 .. 8000 ] characters Risk description. |
| category | string [ 1 .. 120 ] characters Risk category. |
| context | string [ 1 .. 5000 ] characters Risk context. |
| clause | string [ 1 .. 64 ] characters Framework clause or control reference. |
| subClause | string [ 1 .. 64 ] characters Framework subclause or nested control reference. |
| probability | string Enum: "Rare" "Unlikely" "Possible" "Likely" "Almost Certain" Probability level. |
| impact | string Enum: "Insignificant" "Minor" "Moderate" "Major" "Catastrophic" Impact level. |
| status | string Default: "Active" Enum: "Active" "Mitigated" "Closed" Initial status; defaults to Active. |
| owner | string [ 1 .. 128 ] characters Risk owner user ID. |
| mitigationStrategy | string <= 5000 characters Mitigation strategy. |
Array of objects Default: [] Associated mitigation actions. | |
| acceptanceLevel | string Enum: "accepted" "mitigation_required" "rejected" Risk acceptance level. |
| reviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Risk review date. |
| nextReviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next review date. |
| residualRiskScore | number >= 0 Residual risk score post-mitigation. |
| approvedBy | string [ 1 .. 128 ] characters Approver user ID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "residualRiskScore": 6,
- "status": "Mitigated"
}{- "data": {
- "id": "61b14f12-fc69-4409-b584-ec3d49077221",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "riskId": "RISK-2026-010",
- "title": "Controlled document reviews may lapse",
- "description": "Review obligations may be missed if ownership is unclear.",
- "category": "Compliance Risk",
- "context": "Document governance",
- "clause": "7.5",
- "subClause": "7.5.3",
- "probability": "Possible",
- "impact": "Major",
- "riskScore": 12,
- "status": "Active",
- "owner": "22222222-2222-4222-8222-222222222222",
- "mitigationStrategy": "Automate review reminders and enforce owner assignment.",
- "mitigationActions": [
- {
- "id": "4e5a7f70-05a2-4b3f-9805-bd31d20f0164",
- "description": "Add overdue escalation for document reviews.",
- "owner": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-25",
- "status": "Open",
- "effectiveness": "medium"
}
], - "residualRiskScore": 6,
- "acceptanceLevel": "mitigation_required",
- "reviewDate": "2026-04-05",
- "nextReviewDate": "2026-05-05",
- "attachments": [ ],
- "createdAt": "2026-03-25T06:00:00.000Z",
- "updatedAt": "2026-04-05T00:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of trainingprograms.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "draft" "active" "archived" Filter by program status. |
| category | string Enum: "onboarding" "qms" "regulatory" "process" "security" "role_specific" "leadership" "custom" Filter by program category. |
| ownerId | string [ 1 .. 128 ] characters Filter by program owner. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "4e512dc9-c429-44ea-a9e3-0f1c73db70ab",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "programId": "TP-2026-007",
- "title": "Document Control Refresher",
- "description": "Annual refresher training for document owners and approvers.",
- "category": "qms",
- "status": "active",
- "deliveryMethod": "attestation",
- "ownerId": "22222222-2222-4222-8222-222222222222",
- "defaultDueWithinDays": 14,
- "defaultValidityDays": 365,
- "effectivenessRequired": true,
- "passingScore": 85,
- "metadata": {
- "source": "internal",
- "audience": "document-owners"
}, - "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-18T01:00:00.000Z",
- "updatedAt": "2026-04-04T23:30:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a trainingprogram within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| programId | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title required | string [ 1 .. 200 ] characters Training program title. |
| description | string <= 5000 characters Training program description. |
| category required | string Enum: "onboarding" "qms" "regulatory" "process" "security" "role_specific" "leadership" "custom" Training program category. |
| status required | string Default: "draft" Enum: "draft" "active" "archived" Initial status; defaults to Draft. |
| deliveryMethod required | string Enum: "internal_session" "external_provider" "self_study" "on_the_job" "attestation" "assessment" "other" Training delivery method. |
| ownerId | string [ 1 .. 128 ] characters Program owner user ID. |
| externalReferenceUrl | string <uri> External training reference URL. |
| defaultDueWithinDays | integer [ 0 .. 3650 ] Default due-within days for assignments. |
| defaultValidityDays | integer [ 0 .. 3650 ] Default validity period in days. |
| effectivenessRequired required | boolean Default: false Effectiveness review required. |
| passingScore | number [ 0 .. 100 ] Passing score percentage. |
required | object Default: {} Flexible metadata object. |
| createdBy | string [ 1 .. 128 ] characters Creator user ID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "title": "Document Control Refresher",
- "description": "Annual refresher training for document owners and approvers.",
- "category": "qms",
- "status": "active",
- "deliveryMethod": "attestation",
- "ownerId": "22222222-2222-4222-8222-222222222222",
- "defaultDueWithinDays": 14,
- "defaultValidityDays": 365,
- "effectivenessRequired": true,
- "passingScore": 85,
- "metadata": {
- "source": "internal",
- "audience": "document-owners"
}
}{- "data": {
- "id": "4e512dc9-c429-44ea-a9e3-0f1c73db70ab",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "programId": "TP-2026-007",
- "title": "Document Control Refresher",
- "description": "Annual refresher training for document owners and approvers.",
- "category": "qms",
- "status": "active",
- "deliveryMethod": "attestation",
- "ownerId": "22222222-2222-4222-8222-222222222222",
- "defaultDueWithinDays": 14,
- "defaultValidityDays": 365,
- "effectivenessRequired": true,
- "passingScore": 85,
- "metadata": {
- "source": "internal",
- "audience": "document-owners"
}, - "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-18T01:00:00.000Z",
- "updatedAt": "2026-04-04T23:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single trainingprogram by identifier.
| programId required | string <uuid> Training program UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "4e512dc9-c429-44ea-a9e3-0f1c73db70ab",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "programId": "TP-2026-007",
- "title": "Document Control Refresher",
- "description": "Annual refresher training for document owners and approvers.",
- "category": "qms",
- "status": "active",
- "deliveryMethod": "attestation",
- "ownerId": "22222222-2222-4222-8222-222222222222",
- "defaultDueWithinDays": 14,
- "defaultValidityDays": 365,
- "effectivenessRequired": true,
- "passingScore": 85,
- "metadata": {
- "source": "internal",
- "audience": "document-owners"
}, - "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-18T01:00:00.000Z",
- "updatedAt": "2026-04-04T23:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing trainingprogram.
| programId required | string <uuid> Training program UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| programId | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title | string [ 1 .. 200 ] characters Training program title. |
| description | string <= 5000 characters Training program description. |
| category | string Enum: "onboarding" "qms" "regulatory" "process" "security" "role_specific" "leadership" "custom" Training program category. |
| status | string Default: "draft" Enum: "draft" "active" "archived" Initial status; defaults to Draft. |
| deliveryMethod | string Enum: "internal_session" "external_provider" "self_study" "on_the_job" "attestation" "assessment" "other" Training delivery method. |
| ownerId | string [ 1 .. 128 ] characters Program owner user ID. |
| externalReferenceUrl | string <uri> External training reference URL. |
| defaultDueWithinDays | integer [ 0 .. 3650 ] Default due-within days for assignments. |
| defaultValidityDays | integer [ 0 .. 3650 ] Default validity period in days. |
| effectivenessRequired | boolean Default: false Effectiveness review required. |
| passingScore | number [ 0 .. 100 ] Passing score percentage. |
object Default: {} Flexible metadata object. | |
| createdBy | string [ 1 .. 128 ] characters Creator user ID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "status": "archived"
}{- "data": {
- "id": "4e512dc9-c429-44ea-a9e3-0f1c73db70ab",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "programId": "TP-2026-007",
- "title": "Document Control Refresher",
- "description": "Annual refresher training for document owners and approvers.",
- "category": "qms",
- "status": "active",
- "deliveryMethod": "attestation",
- "ownerId": "22222222-2222-4222-8222-222222222222",
- "defaultDueWithinDays": 14,
- "defaultValidityDays": 365,
- "effectivenessRequired": true,
- "passingScore": 85,
- "metadata": {
- "source": "internal",
- "audience": "document-owners"
}, - "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-18T01:00:00.000Z",
- "updatedAt": "2026-04-04T23:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of suppliers.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| qualificationStatus | string Enum: "pending_review" "approved" "conditional" "disqualified" Filter by qualification status. |
| riskRating | string Enum: "low" "medium" "high" Filter by supplier risk rating. |
| isActive | boolean Filter by active/inactive suppliers. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "1199eb63-fd8a-40cf-85aa-e7e29db7f1b6",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "supplierId": "SUP-2026-003",
- "name": "QualityDocs Pty Ltd",
- "contactPerson": "Casey Wright",
- "email": "casey@qualitydocs.example",
- "phone": "+61-2-5550-0101",
- "address": "12 Harbour St, Sydney NSW 2000",
- "category": "Documentation Services",
- "riskRating": "medium",
- "qualificationStatus": "approved",
- "approvedBy": "22222222-2222-4222-8222-222222222222",
- "approvedAt": "2026-03-01T04:00:00.000Z",
- "lastReviewDate": "2026-03-01",
- "nextReviewDue": "2027-03-01",
- "certifications": [
- "ISO 9001"
], - "performanceMetrics": {
- "onTimeDeliveryRate": 98.5,
- "qualityDefectRate": 0.2,
- "responsiveness": "Excellent"
}, - "attachments": [ ],
- "linkedCapaIds": [ ],
- "linkedNonConformityIds": [ ],
- "reevaluationNotes": "Maintain annual requalification cadence.",
- "isActive": true,
- "createdAt": "2026-02-15T07:00:00.000Z",
- "updatedAt": "2026-04-02T03:30:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a supplier within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| supplierId | string [ 1 .. 80 ] characters Human-readable business identifier. |
| name required | string [ 1 .. 200 ] characters Supplier name. |
| contactPerson | string <= 200 characters Contact person name. |
| email required | string <email> ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z... Supplier email address. |
| phone | string <= 40 characters Supplier phone number. |
| address | string <= 500 characters Supplier address. |
| category required | string [ 1 .. 120 ] characters Supplier category. |
| riskRating required | string Enum: "low" "medium" "high" Risk rating. |
| qualificationStatus required | string Default: "pending_review" Enum: "pending_review" "approved" "conditional" "disqualified" Qualification status; defaults to Pending Review. |
| nextReviewDue | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next review due date. |
| nextAuditDue | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next audit due date. |
| qualityAgreementUrl | string <uri> Quality agreement URL. |
| certifications required | Array of strings[ items [ 1 .. 120 ] characters ] Default: [] Supplier certifications. |
required | object Default: {} Performance metrics. |
| reevaluationNotes | string <= 5000 characters Reevaluation notes. |
| isActive required | boolean Default: true Supplier is active. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "QualityDocs Pty Ltd",
- "contactPerson": "Casey Wright",
- "email": "casey@qualitydocs.example",
- "category": "Documentation Services",
- "riskRating": "medium",
- "qualificationStatus": "approved",
- "certifications": [
- "ISO 9001"
]
}{- "data": {
- "id": "1199eb63-fd8a-40cf-85aa-e7e29db7f1b6",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "supplierId": "SUP-2026-003",
- "name": "QualityDocs Pty Ltd",
- "contactPerson": "Casey Wright",
- "email": "casey@qualitydocs.example",
- "phone": "+61-2-5550-0101",
- "address": "12 Harbour St, Sydney NSW 2000",
- "category": "Documentation Services",
- "riskRating": "medium",
- "qualificationStatus": "approved",
- "approvedBy": "22222222-2222-4222-8222-222222222222",
- "approvedAt": "2026-03-01T04:00:00.000Z",
- "lastReviewDate": "2026-03-01",
- "nextReviewDue": "2027-03-01",
- "certifications": [
- "ISO 9001"
], - "performanceMetrics": {
- "onTimeDeliveryRate": 98.5,
- "qualityDefectRate": 0.2,
- "responsiveness": "Excellent"
}, - "attachments": [ ],
- "linkedCapaIds": [ ],
- "linkedNonConformityIds": [ ],
- "reevaluationNotes": "Maintain annual requalification cadence.",
- "isActive": true,
- "createdAt": "2026-02-15T07:00:00.000Z",
- "updatedAt": "2026-04-02T03:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single supplier by identifier.
| supplierId required | string <uuid> Supplier UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "1199eb63-fd8a-40cf-85aa-e7e29db7f1b6",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "supplierId": "SUP-2026-003",
- "name": "QualityDocs Pty Ltd",
- "contactPerson": "Casey Wright",
- "email": "casey@qualitydocs.example",
- "phone": "+61-2-5550-0101",
- "address": "12 Harbour St, Sydney NSW 2000",
- "category": "Documentation Services",
- "riskRating": "medium",
- "qualificationStatus": "approved",
- "approvedBy": "22222222-2222-4222-8222-222222222222",
- "approvedAt": "2026-03-01T04:00:00.000Z",
- "lastReviewDate": "2026-03-01",
- "nextReviewDue": "2027-03-01",
- "certifications": [
- "ISO 9001"
], - "performanceMetrics": {
- "onTimeDeliveryRate": 98.5,
- "qualityDefectRate": 0.2,
- "responsiveness": "Excellent"
}, - "attachments": [ ],
- "linkedCapaIds": [ ],
- "linkedNonConformityIds": [ ],
- "reevaluationNotes": "Maintain annual requalification cadence.",
- "isActive": true,
- "createdAt": "2026-02-15T07:00:00.000Z",
- "updatedAt": "2026-04-02T03:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing supplier.
| supplierId required | string <uuid> Supplier UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| supplierId | string [ 1 .. 80 ] characters Human-readable business identifier. |
| name | string [ 1 .. 200 ] characters Supplier name. |
| contactPerson | string <= 200 characters Contact person name. |
string <email> ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z... Supplier email address. | |
| phone | string <= 40 characters Supplier phone number. |
| address | string <= 500 characters Supplier address. |
| category | string [ 1 .. 120 ] characters Supplier category. |
| riskRating | string Enum: "low" "medium" "high" Risk rating. |
| qualificationStatus | string Default: "pending_review" Enum: "pending_review" "approved" "conditional" "disqualified" Qualification status; defaults to Pending Review. |
| nextReviewDue | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next review due date. |
| nextAuditDue | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next audit due date. |
| qualityAgreementUrl | string <uri> Quality agreement URL. |
| certifications | Array of strings[ items [ 1 .. 120 ] characters ] Default: [] Supplier certifications. |
object Default: {} Performance metrics. | |
| reevaluationNotes | string <= 5000 characters Reevaluation notes. |
| isActive | boolean Default: true Supplier is active. |
| approvedBy | string [ 1 .. 128 ] characters Approver user ID. |
| approvedAt | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Approval timestamp. |
| lastReviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Last review date. |
| lastAuditDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Last audit date. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "nextReviewDue": "2027-03-01",
- "reevaluationNotes": "Maintain annual requalification cadence."
}{- "data": {
- "id": "1199eb63-fd8a-40cf-85aa-e7e29db7f1b6",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "supplierId": "SUP-2026-003",
- "name": "QualityDocs Pty Ltd",
- "contactPerson": "Casey Wright",
- "email": "casey@qualitydocs.example",
- "phone": "+61-2-5550-0101",
- "address": "12 Harbour St, Sydney NSW 2000",
- "category": "Documentation Services",
- "riskRating": "medium",
- "qualificationStatus": "approved",
- "approvedBy": "22222222-2222-4222-8222-222222222222",
- "approvedAt": "2026-03-01T04:00:00.000Z",
- "lastReviewDate": "2026-03-01",
- "nextReviewDue": "2027-03-01",
- "certifications": [
- "ISO 9001"
], - "performanceMetrics": {
- "onTimeDeliveryRate": 98.5,
- "qualityDefectRate": 0.2,
- "responsiveness": "Excellent"
}, - "attachments": [ ],
- "linkedCapaIds": [ ],
- "linkedNonConformityIds": [ ],
- "reevaluationNotes": "Maintain annual requalification cadence.",
- "isActive": true,
- "createdAt": "2026-02-15T07:00:00.000Z",
- "updatedAt": "2026-04-02T03:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of evidence.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| type | string Enum: "document" "record" "photo" "video" "test_result" "audit_report" "other" Filter by evidence type. |
| clause | string [ 1 .. 64 ] characters Filter by standard clause. |
| domain | string Enum: "Context & Strategy" "Leadership & Policy" "Risk & Objectives" "Support & Resources" "Operations" "Performance & Audits" "Improvement" Filter by QMS domain. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "f0e2742a-913b-4157-911d-1244c12cce9c",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "evidenceId": "EV-2026-021",
- "title": "Published procedure approval record",
- "description": "Publication evidence for the current controlled procedure version.",
- "type": "audit_report",
- "clause": "7.5",
- "subClause": "7.5.3",
- "domain": "Support & Resources",
- "relatedEntity": {
- "type": "document",
- "id": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511"
}, - "uploadedBy": "22222222-2222-4222-8222-222222222222",
- "uploadedAt": "2026-04-01T10:05:00.000Z",
- "tags": [
- "approval",
- "document-control"
], - "verifiedBy": "22222222-2222-4222-8222-222222222222",
- "verificationDate": "2026-04-01T12:00:00.000Z",
- "notes": "Used during the Q2 audit sampling."
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a evidence within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| evidenceId | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title required | string [ 1 .. 200 ] characters Evidence title. |
| description | string <= 5000 characters Evidence description. |
| type required | string Enum: "document" "record" "photo" "video" "test_result" "audit_report" "other" Evidence type. |
| clause required | string [ 1 .. 64 ] characters Framework clause or control reference. |
| subClause | string [ 1 .. 64 ] characters Framework subclause or nested control reference. |
| domain required | string Enum: "Context & Strategy" "Leadership & Policy" "Risk & Objectives" "Support & Resources" "Operations" "Performance & Audits" "Improvement" QMS domain. |
required | object Related entity reference. |
| url | string <uri> External evidence URL. |
| uploadedBy required | string [ 1 .. 128 ] characters Uploader user ID. |
| tags required | Array of strings[ items [ 1 .. 64 ] characters ] Default: [] Evidence tags. |
| notes | string <= 5000 characters Evidence notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "title": "Published procedure approval record",
- "description": "Publication evidence for the current controlled procedure version.",
- "type": "audit_report",
- "clause": "7.5",
- "subClause": "7.5.3",
- "domain": "Support & Resources",
- "relatedEntity": {
- "type": "document",
- "id": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511"
}, - "uploadedBy": "22222222-2222-4222-8222-222222222222",
- "tags": [
- "approval",
- "document-control"
]
}{- "data": {
- "id": "f0e2742a-913b-4157-911d-1244c12cce9c",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "evidenceId": "EV-2026-021",
- "title": "Published procedure approval record",
- "description": "Publication evidence for the current controlled procedure version.",
- "type": "audit_report",
- "clause": "7.5",
- "subClause": "7.5.3",
- "domain": "Support & Resources",
- "relatedEntity": {
- "type": "document",
- "id": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511"
}, - "uploadedBy": "22222222-2222-4222-8222-222222222222",
- "uploadedAt": "2026-04-01T10:05:00.000Z",
- "tags": [
- "approval",
- "document-control"
], - "verifiedBy": "22222222-2222-4222-8222-222222222222",
- "verificationDate": "2026-04-01T12:00:00.000Z",
- "notes": "Used during the Q2 audit sampling."
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single evidence by identifier.
| evidenceId required | string <uuid> Evidence UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "f0e2742a-913b-4157-911d-1244c12cce9c",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "evidenceId": "EV-2026-021",
- "title": "Published procedure approval record",
- "description": "Publication evidence for the current controlled procedure version.",
- "type": "audit_report",
- "clause": "7.5",
- "subClause": "7.5.3",
- "domain": "Support & Resources",
- "relatedEntity": {
- "type": "document",
- "id": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511"
}, - "uploadedBy": "22222222-2222-4222-8222-222222222222",
- "uploadedAt": "2026-04-01T10:05:00.000Z",
- "tags": [
- "approval",
- "document-control"
], - "verifiedBy": "22222222-2222-4222-8222-222222222222",
- "verificationDate": "2026-04-01T12:00:00.000Z",
- "notes": "Used during the Q2 audit sampling."
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing evidence.
| evidenceId required | string <uuid> Evidence UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| evidenceId | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title | string [ 1 .. 200 ] characters Evidence title. |
| description | string <= 5000 characters Evidence description. |
| type | string Enum: "document" "record" "photo" "video" "test_result" "audit_report" "other" Evidence type. |
| clause | string [ 1 .. 64 ] characters Framework clause or control reference. |
| subClause | string [ 1 .. 64 ] characters Framework subclause or nested control reference. |
| domain | string Enum: "Context & Strategy" "Leadership & Policy" "Risk & Objectives" "Support & Resources" "Operations" "Performance & Audits" "Improvement" QMS domain. |
object Related entity reference. | |
| url | string <uri> External evidence URL. |
| uploadedBy | string [ 1 .. 128 ] characters Uploader user ID. |
| tags | Array of strings[ items [ 1 .. 64 ] characters ] Default: [] Evidence tags. |
| notes | string <= 5000 characters Evidence notes. |
| verifiedBy | string [ 1 .. 128 ] characters Verifier user ID. |
| verificationDate | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Verification timestamp. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "verifiedBy": "22222222-2222-4222-8222-222222222222",
- "verificationDate": "2026-04-01T12:00:00.000Z",
- "notes": "Verified during the internal audit."
}{- "data": {
- "id": "f0e2742a-913b-4157-911d-1244c12cce9c",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "evidenceId": "EV-2026-021",
- "title": "Published procedure approval record",
- "description": "Publication evidence for the current controlled procedure version.",
- "type": "audit_report",
- "clause": "7.5",
- "subClause": "7.5.3",
- "domain": "Support & Resources",
- "relatedEntity": {
- "type": "document",
- "id": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511"
}, - "uploadedBy": "22222222-2222-4222-8222-222222222222",
- "uploadedAt": "2026-04-01T10:05:00.000Z",
- "tags": [
- "approval",
- "document-control"
], - "verifiedBy": "22222222-2222-4222-8222-222222222222",
- "verificationDate": "2026-04-01T12:00:00.000Z",
- "notes": "Used during the Q2 audit sampling."
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of regulatoryrequirements.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| frameworkId | string [ 1 .. 64 ] characters Filter by regulatory framework. |
| category | string [ 1 .. 120 ] characters Filter by requirement category. |
| isMandatory | boolean Filter by mandatory requirement flag. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "frameworkId": "iso9001",
- "requirementId": "ISO9001-7.5.3",
- "title": "Control of documented information",
- "description": "Documented information required by the QMS must be controlled and retained.",
- "category": "Documented Information",
- "isMandatory": true,
- "sortOrder": 53,
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a regulatoryrequirement within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| frameworkId required | string [ 1 .. 64 ] characters Framework ID. |
| requirementId required | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title required | string [ 1 .. 200 ] characters Requirement title. |
| description | string <= 5000 characters Detailed description. |
| category | string <= 120 characters Category classification. |
| isMandatory required | boolean Default: true Mandatory flag; defaults to true. |
| parentRequirementId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Parent requirement UUID. |
| sortOrder required | integer [ 0 .. 9007199254740991 ] Default: 0 Sort order; defaults to zero. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "frameworkId": "iso9001",
- "requirementId": "ISO9001-7.5.3",
- "title": "Control of documented information",
- "description": "Documented information required by the QMS must be controlled and retained.",
- "category": "Documented Information",
- "isMandatory": true,
- "sortOrder": 53
}{- "data": {
- "id": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "frameworkId": "iso9001",
- "requirementId": "ISO9001-7.5.3",
- "title": "Control of documented information",
- "description": "Documented information required by the QMS must be controlled and retained.",
- "category": "Documented Information",
- "isMandatory": true,
- "sortOrder": 53,
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single regulatoryrequirement by identifier.
| requirementId required | string <uuid> Regulatory requirement UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "frameworkId": "iso9001",
- "requirementId": "ISO9001-7.5.3",
- "title": "Control of documented information",
- "description": "Documented information required by the QMS must be controlled and retained.",
- "category": "Documented Information",
- "isMandatory": true,
- "sortOrder": 53,
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing regulatoryrequirement.
| requirementId required | string <uuid> Regulatory requirement UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| frameworkId | string [ 1 .. 64 ] characters Framework ID. |
| requirementId | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title | string [ 1 .. 200 ] characters Requirement title. |
| description | string <= 5000 characters Detailed description. |
| category | string <= 120 characters Category classification. |
| isMandatory | boolean Default: true Mandatory flag; defaults to true. |
| parentRequirementId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Parent requirement UUID. |
| sortOrder | integer [ 0 .. 9007199254740991 ] Default: 0 Sort order; defaults to zero. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "description": "Documented information must be reviewed, approved, and retained."
}{- "data": {
- "id": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "frameworkId": "iso9001",
- "requirementId": "ISO9001-7.5.3",
- "title": "Control of documented information",
- "description": "Documented information required by the QMS must be controlled and retained.",
- "category": "Documented Information",
- "isMandatory": true,
- "sortOrder": 53,
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of compliancemappings.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| requirementId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by regulatory requirement. |
| entityType | string [ 1 .. 64 ] characters Filter by mapped entity type. |
| entityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by mapped entity ID. |
| complianceStatus | string Enum: "not_assessed" "compliant" "partial" "non_compliant" "not_applicable" Filter by compliance status. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "087ff0a1-95f4-4328-89a0-67b414804f2e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "requirementId": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "entityType": "document",
- "entityId": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "complianceStatus": "compliant",
- "assessedBy": "22222222-2222-4222-8222-222222222222",
- "assessedAt": "2026-04-05T02:30:00.000Z",
- "evidenceNotes": "Covered by the controlled procedure and approval evidence.",
- "nextReviewDate": "2026-10-01",
- "createdAt": "2026-04-05T02:30:00.000Z",
- "updatedAt": "2026-04-05T02:30:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a compliancemapping within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| requirementId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| entityType required | string [ 1 .. 64 ] characters Entity type. |
| entityId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| complianceStatus required | string Default: "not_assessed" Enum: "not_assessed" "compliant" "partial" "non_compliant" "not_applicable" Status; defaults to Not Assessed. |
| assessedBy | string [ 1 .. 128 ] characters Assessor user ID. |
| assessedAt | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Assessment timestamp. |
| evidenceNotes | string <= 5000 characters Evidence notes. |
| nextReviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next review date. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "requirementId": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "entityType": "document",
- "entityId": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "complianceStatus": "compliant",
- "assessedBy": "22222222-2222-4222-8222-222222222222",
- "evidenceNotes": "Covered by the published procedure.",
- "nextReviewDate": "2026-10-01"
}{- "data": {
- "id": "087ff0a1-95f4-4328-89a0-67b414804f2e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "requirementId": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "entityType": "document",
- "entityId": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "complianceStatus": "compliant",
- "assessedBy": "22222222-2222-4222-8222-222222222222",
- "assessedAt": "2026-04-05T02:30:00.000Z",
- "evidenceNotes": "Covered by the controlled procedure and approval evidence.",
- "nextReviewDate": "2026-10-01",
- "createdAt": "2026-04-05T02:30:00.000Z",
- "updatedAt": "2026-04-05T02:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single compliancemapping by identifier.
| mappingId required | string <uuid> Compliance mapping UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "087ff0a1-95f4-4328-89a0-67b414804f2e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "requirementId": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "entityType": "document",
- "entityId": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "complianceStatus": "compliant",
- "assessedBy": "22222222-2222-4222-8222-222222222222",
- "assessedAt": "2026-04-05T02:30:00.000Z",
- "evidenceNotes": "Covered by the controlled procedure and approval evidence.",
- "nextReviewDate": "2026-10-01",
- "createdAt": "2026-04-05T02:30:00.000Z",
- "updatedAt": "2026-04-05T02:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing compliancemapping.
| mappingId required | string <uuid> Compliance mapping UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| requirementId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| entityType | string [ 1 .. 64 ] characters Entity type. |
| entityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| complianceStatus | string Default: "not_assessed" Enum: "not_assessed" "compliant" "partial" "non_compliant" "not_applicable" Status; defaults to Not Assessed. |
| assessedBy | string [ 1 .. 128 ] characters Assessor user ID. |
| assessedAt | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Assessment timestamp. |
| evidenceNotes | string <= 5000 characters Evidence notes. |
| nextReviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next review date. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "complianceStatus": "partial",
- "evidenceNotes": "Requires updated training completion evidence."
}{- "data": {
- "id": "087ff0a1-95f4-4328-89a0-67b414804f2e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "requirementId": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "entityType": "document",
- "entityId": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "complianceStatus": "compliant",
- "assessedBy": "22222222-2222-4222-8222-222222222222",
- "assessedAt": "2026-04-05T02:30:00.000Z",
- "evidenceNotes": "Covered by the controlled procedure and approval evidence.",
- "nextReviewDate": "2026-10-01",
- "createdAt": "2026-04-05T02:30:00.000Z",
- "updatedAt": "2026-04-05T02:30:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of controls.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| category | string [ 1 .. 120 ] characters Filter by control category. |
| status | string Enum: "draft" "active" "deprecated" Filter by control status. |
| ownerId | string [ 1 .. 128 ] characters Filter by control owner. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "CTRL-DOC-001",
- "title": "Document Review and Approval Control",
- "description": "Ensures all controlled documents are reviewed and approved before publication.",
- "category": "Document Control",
- "status": "active",
- "ownerId": "22222222-2222-4222-8222-222222222222",
- "implementationNotes": "Enforced via the approval workflow engine and document publication gates.",
- "monitoringFrequency": "quarterly",
- "lastReviewedAt": "2026-03-01T10:00:00.000Z",
- "nextReviewDate": "2026-06-01",
- "createdAt": "2026-02-15T00:00:00.000Z",
- "updatedAt": "2026-03-01T10:00:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a control within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| controlId required | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title required | string [ 1 .. 255 ] characters Control title. |
| description | string <= 5000 characters Control description. |
| category | string <= 120 characters Control category. |
| status required | string Default: "draft" Enum: "draft" "active" "deprecated" Status; defaults to Draft. |
| ownerId | string [ 1 .. 128 ] characters Control owner user ID. |
| implementationNotes | string <= 5000 characters Implementation details. |
| monitoringFrequency | string <= 50 characters Monitoring cadence. |
| nextReviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next review date. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "controlId": "CTRL-DOC-001",
- "title": "Document Review and Approval Control",
- "description": "Ensures all controlled documents are reviewed and approved before publication.",
- "category": "Document Control",
- "status": "active",
- "ownerId": "22222222-2222-4222-8222-222222222222",
- "monitoringFrequency": "quarterly",
- "nextReviewDate": "2026-06-01"
}{- "data": {
- "id": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "CTRL-DOC-001",
- "title": "Document Review and Approval Control",
- "description": "Ensures all controlled documents are reviewed and approved before publication.",
- "category": "Document Control",
- "status": "active",
- "ownerId": "22222222-2222-4222-8222-222222222222",
- "implementationNotes": "Enforced via the approval workflow engine and document publication gates.",
- "monitoringFrequency": "quarterly",
- "lastReviewedAt": "2026-03-01T10:00:00.000Z",
- "nextReviewDate": "2026-06-01",
- "createdAt": "2026-02-15T00:00:00.000Z",
- "updatedAt": "2026-03-01T10:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single control by identifier.
| controlId required | string <uuid> Control UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "CTRL-DOC-001",
- "title": "Document Review and Approval Control",
- "description": "Ensures all controlled documents are reviewed and approved before publication.",
- "category": "Document Control",
- "status": "active",
- "ownerId": "22222222-2222-4222-8222-222222222222",
- "implementationNotes": "Enforced via the approval workflow engine and document publication gates.",
- "monitoringFrequency": "quarterly",
- "lastReviewedAt": "2026-03-01T10:00:00.000Z",
- "nextReviewDate": "2026-06-01",
- "createdAt": "2026-02-15T00:00:00.000Z",
- "updatedAt": "2026-03-01T10:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing control.
| controlId required | string <uuid> Control UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| controlId | string [ 1 .. 80 ] characters Human-readable business identifier. |
| title | string [ 1 .. 255 ] characters Control title. |
| description | string <= 5000 characters Control description. |
| category | string <= 120 characters Control category. |
| status | string Default: "draft" Enum: "draft" "active" "deprecated" Status; defaults to Draft. |
| ownerId | string [ 1 .. 128 ] characters Control owner user ID. |
| implementationNotes | string <= 5000 characters Implementation details. |
| monitoringFrequency | string <= 50 characters Monitoring cadence. |
| nextReviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next review date. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "status": "deprecated",
- "implementationNotes": "Superseded by CTRL-DOC-002."
}{- "data": {
- "id": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "CTRL-DOC-001",
- "title": "Document Review and Approval Control",
- "description": "Ensures all controlled documents are reviewed and approved before publication.",
- "category": "Document Control",
- "status": "active",
- "ownerId": "22222222-2222-4222-8222-222222222222",
- "implementationNotes": "Enforced via the approval workflow engine and document publication gates.",
- "monitoringFrequency": "quarterly",
- "lastReviewedAt": "2026-03-01T10:00:00.000Z",
- "nextReviewDate": "2026-06-01",
- "createdAt": "2026-02-15T00:00:00.000Z",
- "updatedAt": "2026-03-01T10:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of controlrequirementmappings.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| controlId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by internal control. |
| requirementId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by regulatory requirement. |
| coverageStatus | string Enum: "full" "partial" "planned" Filter by coverage status. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "requirementId": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "coverageStatus": "full",
- "notes": "Document review and approval workflow fully satisfies the documented information control requirement.",
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a controlrequirementmapping within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| controlId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| requirementId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| coverageStatus required | string Default: "partial" Enum: "full" "partial" "planned" Status; defaults to Partial. |
| notes | string <= 5000 characters Mapping notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "controlId": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "requirementId": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "coverageStatus": "full",
- "notes": "Document review workflow fully satisfies this requirement."
}{- "data": {
- "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "requirementId": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "coverageStatus": "full",
- "notes": "Document review and approval workflow fully satisfies the documented information control requirement.",
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single controlrequirementmapping by identifier.
| mappingId required | string <uuid> Control-requirement mapping UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "requirementId": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "coverageStatus": "full",
- "notes": "Document review and approval workflow fully satisfies the documented information control requirement.",
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing controlrequirementmapping.
| mappingId required | string <uuid> Control-requirement mapping UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| controlId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| requirementId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| coverageStatus | string Default: "partial" Enum: "full" "partial" "planned" Status; defaults to Partial. |
| notes | string <= 5000 characters Mapping notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "coverageStatus": "partial",
- "notes": "Additional training evidence needed for full coverage."
}{- "data": {
- "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "requirementId": "f2c616a3-b1ad-49d4-b5cd-500f4e50fce8",
- "coverageStatus": "full",
- "notes": "Document review and approval workflow fully satisfies the documented information control requirement.",
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of controlimplementationlinks.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| controlId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by internal control. |
| entityType | string [ 1 .. 50 ] characters Filter by linked entity type. |
| entityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by linked entity ID. |
| linkType | string Enum: "implements" "monitors" "evidences" Filter by link type. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "entityType": "document",
- "entityId": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "linkType": "implements",
- "notes": "The Document Control Procedure defines how this control is implemented.",
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a controlimplementationlink within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| controlId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| entityType required | string [ 1 .. 50 ] characters Entity type. |
| entityId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| linkType required | string Default: "implements" Enum: "implements" "monitors" "evidences" Link type; defaults to Implements. |
| notes | string <= 5000 characters Link notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "controlId": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "entityType": "document",
- "entityId": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "linkType": "implements",
- "notes": "The Document Control Procedure defines how this control is implemented."
}{- "data": {
- "id": "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "entityType": "document",
- "entityId": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "linkType": "implements",
- "notes": "The Document Control Procedure defines how this control is implemented.",
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single controlimplementationlink by identifier.
| linkId required | string <uuid> Control-implementation link UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "entityType": "document",
- "entityId": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "linkType": "implements",
- "notes": "The Document Control Procedure defines how this control is implemented.",
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing controlimplementationlink.
| linkId required | string <uuid> Control-implementation link UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| controlId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| entityType | string [ 1 .. 50 ] characters Entity type. |
| entityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| linkType | string Default: "implements" Enum: "implements" "monitors" "evidences" Link type; defaults to Implements. |
| notes | string <= 5000 characters Link notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "notes": "Updated implementation link notes."
}{- "data": {
- "id": "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "controlId": "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678",
- "entityType": "document",
- "entityId": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "linkType": "implements",
- "notes": "The Document Control Procedure defines how this control is implemented.",
- "createdAt": "2026-03-10T00:00:00.000Z",
- "updatedAt": "2026-03-10T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of webhooksubscriptions.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| isActive | boolean Filter by active status. |
| eventType | string Filter by event type. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "description": "Production event handler for document and CAPA notifications.",
- "eventTypes": [
- "document.published",
- "capa.created"
], - "isActive": true,
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-05T00:00:00.000Z",
- "updatedAt": "2026-04-05T00:00:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a webhooksubscription within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| url required | string <uri> <= 2048 characters Webhook endpoint URL. |
| description | string <= 500 characters Subscription description. |
| eventTypes required | Array of strings non-empty Items Enum: "document.published" "document.externally_published" "capa.created" "training.program_activated" "export.completed" "export.failed" "signature.recorded" "signature.chain_broken" Subscribed event types. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "description": "Production event handler.",
- "eventTypes": [
- "document.published",
- "capa.created"
]
}{- "data": {
- "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "description": "Production event handler for document and CAPA notifications.",
- "eventTypes": [
- "document.published",
- "capa.created"
], - "isActive": true,
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-05T00:00:00.000Z",
- "updatedAt": "2026-04-05T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single webhooksubscription by identifier.
| subscriptionId required | string <uuid> Webhook subscription UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "description": "Production event handler for document and CAPA notifications.",
- "eventTypes": [
- "document.published",
- "capa.created"
], - "isActive": true,
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-05T00:00:00.000Z",
- "updatedAt": "2026-04-05T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing webhooksubscription.
| subscriptionId required | string <uuid> Webhook subscription UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| url | string <uri> <= 2048 characters Webhook endpoint URL. |
| description | string <= 500 characters Subscription description. |
| eventTypes | Array of strings non-empty Items Enum: "document.published" "document.externally_published" "capa.created" "training.program_activated" "export.completed" "export.failed" "signature.recorded" "signature.chain_broken" Subscribed event types. |
| isActive | boolean Active subscription flag. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "eventTypes": [
- "document.published",
- "capa.created",
- "training.program_activated"
], - "isActive": false
}{- "data": {
- "id": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "description": "Production event handler for document and CAPA notifications.",
- "eventTypes": [
- "document.published",
- "capa.created"
], - "isActive": true,
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-05T00:00:00.000Z",
- "updatedAt": "2026-04-05T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated audit log of webhook delivery attempts.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| subscriptionId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by webhook subscription. |
| eventType | string Filter by event type. |
| status | string Filter by delivery status. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "e2f3a4b5-c6d7-4e8f-9a0b-1c2d3e4f5a6b",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "subscriptionId": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
- "eventType": "document.published",
- "eventId": "f3a4b5c6-d7e8-4f9a-ab1c-2d3e4f5a6b7c",
- "attempt": 1,
- "status": "delivered",
- "statusCode": 200,
- "deliveredAt": "2026-04-05T03:15:01.000Z",
- "createdAt": "2026-04-05T03:15:00.000Z",
- "updatedAt": "2026-04-05T03:15:01.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Returns a cursor-paginated collection of competencydefinitions.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| category | string Enum: "technical" "regulatory" "leadership" "safety" "quality" "general" Filter by competency category. |
| status | string Enum: "active" "retired" Filter by competency status. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "category": "technical",
- "assessmentMethod": "training_completion",
- "proficiencyLevels": [
- "string"
], - "expiryMonths": 1,
- "status": "active",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a competencydefinition within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| code required | string [ 1 .. 50 ] characters Unique code identifier for the competency. |
| name required | string [ 1 .. 200 ] characters Human-readable name of the competency. |
| description | string <= 5000 characters Detailed description of the competency. |
| category required | string Enum: "technical" "regulatory" "leadership" "safety" "quality" "general" Category of the competency. |
| assessmentMethod required | string Enum: "training_completion" "observation" "exam" "self_assessment" "manager_review" How competency is assessed. |
| proficiencyLevels required | Array of strings [ 1 .. 8 ] items [ items [ 1 .. 50 ] characters ] Array of proficiency level names. |
integer or null Months until competency expires. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "code": "string",
- "name": "string",
- "description": "string",
- "category": "technical",
- "assessmentMethod": "training_completion",
- "proficiencyLevels": [
- "string"
], - "expiryMonths": 1
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "category": "technical",
- "assessmentMethod": "training_completion",
- "proficiencyLevels": [
- "string"
], - "expiryMonths": 1,
- "status": "active",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single competencydefinition by identifier.
| definitionId required | string <uuid> Competency definition UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "category": "technical",
- "assessmentMethod": "training_completion",
- "proficiencyLevels": [
- "string"
], - "expiryMonths": 1,
- "status": "active",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing competencydefinition.
| definitionId required | string <uuid> Competency definition UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| code | string [ 1 .. 50 ] characters Unique code identifier for the competency. |
| name | string [ 1 .. 200 ] characters Human-readable name of the competency. |
| description | string <= 5000 characters Detailed description of the competency. |
| category | string Enum: "technical" "regulatory" "leadership" "safety" "quality" "general" Category of the competency. |
| assessmentMethod | string Enum: "training_completion" "observation" "exam" "self_assessment" "manager_review" How competency is assessed. |
| proficiencyLevels | Array of strings [ 1 .. 8 ] items [ items [ 1 .. 50 ] characters ] Array of proficiency level names. |
integer or null Months until competency expires. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "code": "string",
- "name": "string",
- "description": "string",
- "category": "technical",
- "assessmentMethod": "training_completion",
- "proficiencyLevels": [
- "string"
], - "expiryMonths": 1
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "category": "technical",
- "assessmentMethod": "training_completion",
- "proficiencyLevels": [
- "string"
], - "expiryMonths": 1,
- "status": "active",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of rolecompetencyrequirements.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| roleName | string [ 1 .. 120 ] characters Filter by role name. |
| competencyId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by competency. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "roleName": "string",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "requiredLevel": "string",
- "mandatory": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a rolecompetencyrequirement within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| roleName required | string [ 1 .. 120 ] characters Name of the role requiring this competency. |
| competencyId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of the required competency. |
| requiredLevel required | string [ 1 .. 50 ] characters Minimum proficiency level required. |
| mandatory required | boolean Default: true Whether this competency is mandatory for the role. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "roleName": "string",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "requiredLevel": "string",
- "mandatory": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "roleName": "string",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "requiredLevel": "string",
- "mandatory": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single rolecompetencyrequirement by identifier.
| requirementId required | string <uuid> Role competency requirement UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "roleName": "string",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "requiredLevel": "string",
- "mandatory": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing rolecompetencyrequirement.
| requirementId required | string <uuid> Role competency requirement UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| roleName | string [ 1 .. 120 ] characters Name of the role requiring this competency. |
| competencyId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of the required competency. |
| requiredLevel | string [ 1 .. 50 ] characters Minimum proficiency level required. |
| mandatory | boolean Default: true Whether this competency is mandatory for the role. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "roleName": "string",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "requiredLevel": "string",
- "mandatory": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "roleName": "string",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "requiredLevel": "string",
- "mandatory": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of competencyassessments.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| memberId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by organization member. |
| competencyId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by competency. |
| status | string Enum: "valid" "expired" "superseded" Filter by assessment status. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "assessedLevel": "string",
- "assessedBy": "string",
- "assessedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "evidence": "string",
- "linkedTrainingRecords": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "valid",
- "supersededBy": "608778cc-35f6-47d1-a540-9bcbfdf24101",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a competencyassessment within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| memberId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Member being assessed for competency. |
| competencyId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of the competency being assessed. |
| assessedLevel required | string [ 1 .. 50 ] characters Proficiency level achieved by the member. |
| evidence | string <= 5000 characters Supporting evidence for the assessment. |
| linkedTrainingRecords | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] IDs of training records demonstrating competency. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "assessedLevel": "string",
- "evidence": "string",
- "linkedTrainingRecords": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "assessedLevel": "string",
- "assessedBy": "string",
- "assessedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "evidence": "string",
- "linkedTrainingRecords": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "valid",
- "supersededBy": "608778cc-35f6-47d1-a540-9bcbfdf24101",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single competencyassessment by identifier.
| assessmentId required | string <uuid> Competency assessment UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "assessedLevel": "string",
- "assessedBy": "string",
- "assessedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "evidence": "string",
- "linkedTrainingRecords": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "valid",
- "supersededBy": "608778cc-35f6-47d1-a540-9bcbfdf24101",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing competencyassessment.
| assessmentId required | string <uuid> Competency assessment UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| memberId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Member being assessed for competency. |
| competencyId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of the competency being assessed. |
| assessedLevel | string [ 1 .. 50 ] characters Proficiency level achieved by the member. |
| evidence | string <= 5000 characters Supporting evidence for the assessment. |
| linkedTrainingRecords | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] IDs of training records demonstrating competency. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "assessedLevel": "string",
- "evidence": "string",
- "linkedTrainingRecords": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "assessedLevel": "string",
- "assessedBy": "string",
- "assessedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "evidence": "string",
- "linkedTrainingRecords": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "valid",
- "supersededBy": "608778cc-35f6-47d1-a540-9bcbfdf24101",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Lessons learned knowledge base — capture, categorize, and retrieve organizational knowledge.
Returns a cursor-paginated collection of lessonslearned.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| category | string Enum: "process_improvement" "failure_prevention" "best_practice" "regulatory_insight" "supplier_insight" "customer_insight" "safety" |
| source | string Enum: "capa" "ncr" "audit" "quality_event" "management_review" "training" "supplier_evaluation" "customer_feedback" "other" |
| status | string Enum: "draft" "published" "archived" |
| effectiveness | string Enum: "not_assessed" "effective" "partially_effective" "ineffective" |
| tag | string <= 100 characters Filter by a single tag value. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "title": "string",
- "description": "string",
- "category": "process_improvement",
- "source": "capa",
- "sourceRecords": [ ],
- "rootCause": "string",
- "actionTaken": "string",
- "recommendation": "string",
- "applicability": [ ],
- "tags": [ ],
- "effectiveness": "not_assessed",
- "reviewedBy": "string",
- "reviewedAt": "2019-08-24T14:15:22Z",
- "status": "draft",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a lessonlearned within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| title required | string [ 1 .. 300 ] characters |
| description | string <= 10000 characters |
| category required | string Default: "process_improvement" Enum: "process_improvement" "failure_prevention" "best_practice" "regulatory_insight" "supplier_insight" "customer_insight" "safety" |
| source required | string Default: "other" Enum: "capa" "ncr" "audit" "quality_event" "management_review" "training" "supplier_evaluation" "customer_feedback" "other" |
required | Array of objects Default: [] |
| rootCause | string <= 5000 characters |
| actionTaken | string <= 5000 characters |
| recommendation required | string [ 1 .. 5000 ] characters |
| applicability required | Array of strings[ items <= 200 characters ] Default: [] |
| tags required | Array of strings[ items <= 100 characters ] Default: [] |
| effectiveness required | string Default: "not_assessed" Enum: "not_assessed" "effective" "partially_effective" "ineffective" |
| status required | string Default: "draft" Enum: "draft" "published" "archived" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "title": "string",
- "description": "string",
- "category": "process_improvement",
- "source": "capa",
- "sourceRecords": [ ],
- "rootCause": "string",
- "actionTaken": "string",
- "recommendation": "string",
- "applicability": [ ],
- "tags": [ ],
- "effectiveness": "not_assessed",
- "status": "draft"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "title": "string",
- "description": "string",
- "category": "process_improvement",
- "source": "capa",
- "sourceRecords": [ ],
- "rootCause": "string",
- "actionTaken": "string",
- "recommendation": "string",
- "applicability": [ ],
- "tags": [ ],
- "effectiveness": "not_assessed",
- "reviewedBy": "string",
- "reviewedAt": "2019-08-24T14:15:22Z",
- "status": "draft",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single lessonlearned by identifier.
| lessonId required | string <uuid> Lesson learned UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "title": "string",
- "description": "string",
- "category": "process_improvement",
- "source": "capa",
- "sourceRecords": [ ],
- "rootCause": "string",
- "actionTaken": "string",
- "recommendation": "string",
- "applicability": [ ],
- "tags": [ ],
- "effectiveness": "not_assessed",
- "reviewedBy": "string",
- "reviewedAt": "2019-08-24T14:15:22Z",
- "status": "draft",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing lessonlearned.
| lessonId required | string <uuid> Lesson learned UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| title | string [ 1 .. 300 ] characters |
| description | string <= 10000 characters |
| category | string Default: "process_improvement" Enum: "process_improvement" "failure_prevention" "best_practice" "regulatory_insight" "supplier_insight" "customer_insight" "safety" |
| source | string Default: "other" Enum: "capa" "ncr" "audit" "quality_event" "management_review" "training" "supplier_evaluation" "customer_feedback" "other" |
Array of objects Default: [] | |
| rootCause | string <= 5000 characters |
| actionTaken | string <= 5000 characters |
| recommendation | string [ 1 .. 5000 ] characters |
| applicability | Array of strings[ items <= 200 characters ] Default: [] |
| tags | Array of strings[ items <= 100 characters ] Default: [] |
| effectiveness | string Default: "not_assessed" Enum: "not_assessed" "effective" "partially_effective" "ineffective" |
| status | string Default: "draft" Enum: "draft" "published" "archived" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "title": "string",
- "description": "string",
- "category": "process_improvement",
- "source": "capa",
- "sourceRecords": [ ],
- "rootCause": "string",
- "actionTaken": "string",
- "recommendation": "string",
- "applicability": [ ],
- "tags": [ ],
- "effectiveness": "not_assessed",
- "status": "draft"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "title": "string",
- "description": "string",
- "category": "process_improvement",
- "source": "capa",
- "sourceRecords": [ ],
- "rootCause": "string",
- "actionTaken": "string",
- "recommendation": "string",
- "applicability": [ ],
- "tags": [ ],
- "effectiveness": "not_assessed",
- "reviewedBy": "string",
- "reviewedAt": "2019-08-24T14:15:22Z",
- "status": "draft",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns lessons whose source records include the specified entity type and ID.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| category | string Enum: "process_improvement" "failure_prevention" "best_practice" "regulatory_insight" "supplier_insight" "customer_insight" "safety" |
| source | string Enum: "capa" "ncr" "audit" "quality_event" "management_review" "training" "supplier_evaluation" "customer_feedback" "other" |
| status | string Enum: "draft" "published" "archived" |
| effectiveness | string Enum: "not_assessed" "effective" "partially_effective" "ineffective" |
| tag | string <= 100 characters Filter by a single tag value. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "title": "string",
- "description": "string",
- "category": "process_improvement",
- "source": "capa",
- "sourceRecords": [ ],
- "rootCause": "string",
- "actionTaken": "string",
- "recommendation": "string",
- "applicability": [ ],
- "tags": [ ],
- "effectiveness": "not_assessed",
- "reviewedBy": "string",
- "reviewedAt": "2019-08-24T14:15:22Z",
- "status": "draft",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Electronic signatures, tamper-evident hash chain verification, and signature policy configuration (21 CFR Part 11 / EU Annex 11).
Verifies the signer identity, computes a tamper-evident content hash of the target record, and appends an immutable signature to the entity hash chain. Server-only — clients cannot construct signature hashes directly.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| entityType required | string Enum: "document" "capa" "ncr" "change_request" "training_record" "form_response" |
| entityId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
string or null | |
| meaning required | string Enum: "authored" "reviewed" "approved" "verified" "released" "acknowledged" "witnessed" |
| statement required | string [ 1 .. 2000 ] characters |
| method required | string Enum: "password_confirmation" "drawn_signature" "mfa_verified" |
| password | string <= 512 characters |
| mfaCode | string^\d{6}$ |
| drawnSignatureDataUrl | string <= 2000000 characters ^data:image\/png;base64, |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "entityType": "document",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "versionRef": "string",
- "meaning": "authored",
- "statement": "string",
- "method": "password_confirmation",
- "password": "string",
- "mfaCode": "string",
- "drawnSignatureDataUrl": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "entityType": "document",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "versionRef": "string",
- "signerId": "a3a18b40-6ac7-49d3-9baa-0fe9b2804d9d",
- "signerName": "string",
- "signerEmail": "user@example.com",
- "signerRole": "string",
- "meaning": "authored",
- "statement": "string",
- "method": "password_confirmation",
- "signedAt": "2019-08-24T14:15:22Z",
- "ipAddress": "string",
- "userAgent": "string",
- "contentHash": "stringstringstringstringstringstringstringstringstringstringstri",
- "previousSignatureHash": "stringstringstringstringstringstringstringstringstringstringstri",
- "signatureHash": "stringstringstringstringstringstringstringstringstringstringstri",
- "hashAlgorithmVersion": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a filterable, paginated list of electronic signatures across the organization. Use for audit packet preparation and compliance review.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| entityType | string Enum: "document" "capa" "ncr" "change_request" "training_record" "form_response" |
| entityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| signerId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| meaning | string Enum: "authored" "reviewed" "approved" "verified" "released" "acknowledged" "witnessed" |
| fromDate | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| toDate | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "entityType": "document",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "versionRef": "string",
- "signerId": "a3a18b40-6ac7-49d3-9baa-0fe9b2804d9d",
- "signerName": "string",
- "signerEmail": "user@example.com",
- "signerRole": "string",
- "meaning": "authored",
- "statement": "string",
- "method": "password_confirmation",
- "signedAt": "2019-08-24T14:15:22Z",
- "ipAddress": "string",
- "userAgent": "string",
- "contentHash": "stringstringstringstringstringstringstringstringstringstringstri",
- "previousSignatureHash": "stringstringstringstringstringstringstringstringstringstringstri",
- "signatureHash": "stringstringstringstringstringstringstringstringstringstringstri",
- "hashAlgorithmVersion": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Recomputes the hash chain for an entity and confirms no signature has been tampered with. Returns the index of the first broken record if verification fails.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| entityType | string Enum: "document" "capa" "ncr" "change_request" "training_record" "form_response" |
| entityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| signerId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| meaning | string Enum: "authored" "reviewed" "approved" "verified" "released" "acknowledged" "witnessed" |
| fromDate | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| toDate | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "ok": true,
- "totalRecords": 9007199254740991,
- "brokenAt": -9007199254740991
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of signaturepolicies.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| entityType | string Enum: "document" "capa" "ncr" "change_request" "training_record" "form_response" |
| status | string Enum: "active" "archived" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "entityType": "document",
- "documentType": "string",
- "requiredMeanings": [
- "authored"
], - "signatureMethod": "password_confirmation",
- "requireSequential": true,
- "requireAllBeforePublish": true,
- "status": "active",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a signaturepolicy within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 120 ] characters |
| entityType required | string Enum: "document" "capa" "ncr" "change_request" "training_record" "form_response" |
string or null | |
| requiredMeanings required | Array of strings non-empty Items Enum: "authored" "reviewed" "approved" "verified" "released" "acknowledged" "witnessed" |
| signatureMethod required | string Enum: "password_confirmation" "drawn_signature" "mfa_verified" |
| requireSequential | boolean |
| requireAllBeforePublish | boolean |
| status | string Enum: "active" "archived" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "entityType": "document",
- "documentType": "string",
- "requiredMeanings": [
- "authored"
], - "signatureMethod": "password_confirmation",
- "requireSequential": true,
- "requireAllBeforePublish": true,
- "status": "active"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "entityType": "document",
- "documentType": "string",
- "requiredMeanings": [
- "authored"
], - "signatureMethod": "password_confirmation",
- "requireSequential": true,
- "requireAllBeforePublish": true,
- "status": "active",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single signaturepolicy by identifier.
| policyId required | string <uuid> Signature policy UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "entityType": "document",
- "documentType": "string",
- "requiredMeanings": [
- "authored"
], - "signatureMethod": "password_confirmation",
- "requireSequential": true,
- "requireAllBeforePublish": true,
- "status": "active",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing signaturepolicy.
| policyId required | string <uuid> Signature policy UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 120 ] characters |
| entityType | string Enum: "document" "capa" "ncr" "change_request" "training_record" "form_response" |
string or null | |
| requiredMeanings | Array of strings non-empty Items Enum: "authored" "reviewed" "approved" "verified" "released" "acknowledged" "witnessed" |
| signatureMethod | string Enum: "password_confirmation" "drawn_signature" "mfa_verified" |
| requireSequential | boolean |
| requireAllBeforePublish | boolean |
| status | string Enum: "active" "archived" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "entityType": "document",
- "documentType": "string",
- "requiredMeanings": [
- "authored"
], - "signatureMethod": "password_confirmation",
- "requireSequential": true,
- "requireAllBeforePublish": true,
- "status": "active"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "entityType": "document",
- "documentType": "string",
- "requiredMeanings": [
- "authored"
], - "signatureMethod": "password_confirmation",
- "requireSequential": true,
- "requireAllBeforePublish": true,
- "status": "active",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a unified, cursor-paginated list of actionable work items across all QMS modules.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| sourceType | string <= 64 characters |
| status | string <= 64 characters |
| assignedTo | string [ 1 .. 128 ] characters Application user identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "sourceType": "string",
- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "title": "string",
- "description": "string",
- "status": "string",
- "ownerId": "string",
- "assignedToId": "string",
- "dueAt": "2019-08-24T14:15:22Z",
- "priority": "string",
- "requiresDecision": true,
- "canDelegate": true,
- "slaStatus": "string",
- "entityPath": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Returns a single work item by its composite identifier.
| workItemId required | string <uuid> Work item composite UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "sourceType": "string",
- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "title": "string",
- "description": "string",
- "status": "string",
- "ownerId": "string",
- "assignedToId": "string",
- "dueAt": "2019-08-24T14:15:22Z",
- "priority": "string",
- "requiresDecision": true,
- "canDelegate": true,
- "slaStatus": "string",
- "entityPath": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of contextissues.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "active" "inactive" "archived" |
| category | string Enum: "internal" "external" |
| relevance | string Enum: "high" "medium" "low" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "41f4a401-f0f9-4c69-ae26-8a4f097dd0f2",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "title": "Regulatory expectations for AI-assisted quality workflows are changing",
- "description": "The organization needs a repeatable review cycle for emerging regulator expectations around AI-assisted evidence review and approval support.",
- "category": "external",
- "impact": "both",
- "relevance": "high",
- "linkedRiskIds": [
- "61b14f12-fc69-4409-b584-ec3d49077221"
], - "linkedObjectiveIds": [
- "qo-2026-001"
], - "reviewFrequency": "quarterly",
- "lastReviewedAt": "2026-04-01T00:00:00.000Z",
- "status": "active",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-20T00:00:00.000Z",
- "updatedAt": "2026-04-01T00:00:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a contextissue within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| title required | string [ 1 .. 300 ] characters |
| description | string <= 5000 characters |
| category required | string Enum: "internal" "external" |
| impact required | string Enum: "positive" "negative" "both" |
| relevance required | string Enum: "high" "medium" "low" |
| linkedRiskIds required | Array of strings[ items <= 120 characters ] Default: [] |
| linkedObjectiveIds required | Array of strings[ items <= 120 characters ] Default: [] |
| reviewFrequency required | string Default: "annual" Enum: "quarterly" "semi_annual" "annual" "as_needed" |
| lastReviewedAt | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| status required | string Default: "active" Enum: "active" "inactive" "archived" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "title": "Internal knowledge concentration around core QMS workflows",
- "description": "Key workflow ownership is concentrated in too few people, creating continuity risk.",
- "category": "internal",
- "impact": "negative",
- "relevance": "high",
- "linkedRiskIds": [
- "61b14f12-fc69-4409-b584-ec3d49077221"
], - "linkedObjectiveIds": [
- "qo-2026-003"
], - "reviewFrequency": "semi_annual",
- "lastReviewedAt": "2026-04-05T00:00:00.000Z",
- "status": "active"
}{- "data": {
- "id": "41f4a401-f0f9-4c69-ae26-8a4f097dd0f2",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "title": "Regulatory expectations for AI-assisted quality workflows are changing",
- "description": "The organization needs a repeatable review cycle for emerging regulator expectations around AI-assisted evidence review and approval support.",
- "category": "external",
- "impact": "both",
- "relevance": "high",
- "linkedRiskIds": [
- "61b14f12-fc69-4409-b584-ec3d49077221"
], - "linkedObjectiveIds": [
- "qo-2026-001"
], - "reviewFrequency": "quarterly",
- "lastReviewedAt": "2026-04-01T00:00:00.000Z",
- "status": "active",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-20T00:00:00.000Z",
- "updatedAt": "2026-04-01T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single contextissue by identifier.
| contextIssueId required | string <uuid> Context issue UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "41f4a401-f0f9-4c69-ae26-8a4f097dd0f2",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "title": "Regulatory expectations for AI-assisted quality workflows are changing",
- "description": "The organization needs a repeatable review cycle for emerging regulator expectations around AI-assisted evidence review and approval support.",
- "category": "external",
- "impact": "both",
- "relevance": "high",
- "linkedRiskIds": [
- "61b14f12-fc69-4409-b584-ec3d49077221"
], - "linkedObjectiveIds": [
- "qo-2026-001"
], - "reviewFrequency": "quarterly",
- "lastReviewedAt": "2026-04-01T00:00:00.000Z",
- "status": "active",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-20T00:00:00.000Z",
- "updatedAt": "2026-04-01T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing contextissue.
| contextIssueId required | string <uuid> Context issue UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| title | string [ 1 .. 300 ] characters |
| description | string <= 5000 characters |
| category | string Enum: "internal" "external" |
| impact | string Enum: "positive" "negative" "both" |
| relevance | string Enum: "high" "medium" "low" |
| linkedRiskIds | Array of strings[ items <= 120 characters ] Default: [] |
| linkedObjectiveIds | Array of strings[ items <= 120 characters ] Default: [] |
| reviewFrequency | string Default: "annual" Enum: "quarterly" "semi_annual" "annual" "as_needed" |
| lastReviewedAt | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| status | string Default: "active" Enum: "active" "inactive" "archived" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "relevance": "medium",
- "status": "inactive"
}{- "data": {
- "id": "41f4a401-f0f9-4c69-ae26-8a4f097dd0f2",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "title": "Regulatory expectations for AI-assisted quality workflows are changing",
- "description": "The organization needs a repeatable review cycle for emerging regulator expectations around AI-assisted evidence review and approval support.",
- "category": "external",
- "impact": "both",
- "relevance": "high",
- "linkedRiskIds": [
- "61b14f12-fc69-4409-b584-ec3d49077221"
], - "linkedObjectiveIds": [
- "qo-2026-001"
], - "reviewFrequency": "quarterly",
- "lastReviewedAt": "2026-04-01T00:00:00.000Z",
- "status": "active",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-20T00:00:00.000Z",
- "updatedAt": "2026-04-01T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of interestedparties.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "active" "inactive" "archived" |
| category | string Enum: "customer" "regulatory" "supplier" "employee" "shareholder" "community" "partner" "other" |
| partyType | string Enum: "internal" "external" |
| relevance | string Enum: "high" "medium" "low" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "6b1cd8c8-c0ee-4501-b1d1-18d50c5539c1",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "name": "Regulators",
- "category": "regulatory",
- "partyType": "external",
- "requirements": [
- {
- "text": "Maintain auditable control over QMS decisions and records.",
- "priority": "high"
}, - {
- "text": "Review changes to regulated workflows at least quarterly.",
- "priority": "medium"
}
], - "relevance": "high",
- "monitoringMethod": "Management review, standards monitoring, and scheduled internal audits",
- "reviewFrequency": "quarterly",
- "lastReviewedAt": "2026-04-01T00:00:00.000Z",
- "linkedControlIds": [
- "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678"
], - "linkedRiskIds": [
- "61b14f12-fc69-4409-b584-ec3d49077221"
], - "linkedObjectiveIds": [
- "qo-2026-001"
], - "notes": "Includes certification bodies and market regulators relevant to enabled standards.",
- "status": "active",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-21T00:00:00.000Z",
- "updatedAt": "2026-04-01T00:00:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a interestedparty within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 255 ] characters |
| category required | string Enum: "customer" "regulatory" "supplier" "employee" "shareholder" "community" "partner" "other" |
| partyType required | string Enum: "internal" "external" |
required | Array of objects Default: [] |
| relevance required | string Default: "medium" Enum: "high" "medium" "low" |
| monitoringMethod | string <= 500 characters |
| reviewFrequency required | string Default: "annual" Enum: "quarterly" "semi_annual" "annual" "as_needed" |
| lastReviewedAt | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| linkedControlIds required | Array of strings[ items <= 120 characters ] Default: [] |
| linkedRiskIds required | Array of strings[ items <= 120 characters ] Default: [] |
| linkedObjectiveIds required | Array of strings[ items <= 120 characters ] Default: [] |
| notes | string <= 5000 characters |
| status required | string Default: "active" Enum: "active" "inactive" "archived" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "Employees",
- "category": "employee",
- "partyType": "internal",
- "requirements": [
- {
- "text": "Receive training and clear process expectations.",
- "priority": "high"
}
], - "relevance": "high",
- "monitoringMethod": "Training completion, surveys, and management review",
- "reviewFrequency": "annual",
- "lastReviewedAt": "2026-04-05T00:00:00.000Z",
- "linkedControlIds": [
- "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678"
], - "linkedRiskIds": [
- "61b14f12-fc69-4409-b584-ec3d49077221"
], - "linkedObjectiveIds": [
- "qo-2026-004"
], - "notes": "Include full-time and contracted personnel performing QMS work.",
- "status": "active"
}{- "data": {
- "id": "6b1cd8c8-c0ee-4501-b1d1-18d50c5539c1",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "name": "Regulators",
- "category": "regulatory",
- "partyType": "external",
- "requirements": [
- {
- "text": "Maintain auditable control over QMS decisions and records.",
- "priority": "high"
}, - {
- "text": "Review changes to regulated workflows at least quarterly.",
- "priority": "medium"
}
], - "relevance": "high",
- "monitoringMethod": "Management review, standards monitoring, and scheduled internal audits",
- "reviewFrequency": "quarterly",
- "lastReviewedAt": "2026-04-01T00:00:00.000Z",
- "linkedControlIds": [
- "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678"
], - "linkedRiskIds": [
- "61b14f12-fc69-4409-b584-ec3d49077221"
], - "linkedObjectiveIds": [
- "qo-2026-001"
], - "notes": "Includes certification bodies and market regulators relevant to enabled standards.",
- "status": "active",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-21T00:00:00.000Z",
- "updatedAt": "2026-04-01T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single interestedparty by identifier.
| partyId required | string <uuid> Interested party UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "6b1cd8c8-c0ee-4501-b1d1-18d50c5539c1",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "name": "Regulators",
- "category": "regulatory",
- "partyType": "external",
- "requirements": [
- {
- "text": "Maintain auditable control over QMS decisions and records.",
- "priority": "high"
}, - {
- "text": "Review changes to regulated workflows at least quarterly.",
- "priority": "medium"
}
], - "relevance": "high",
- "monitoringMethod": "Management review, standards monitoring, and scheduled internal audits",
- "reviewFrequency": "quarterly",
- "lastReviewedAt": "2026-04-01T00:00:00.000Z",
- "linkedControlIds": [
- "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678"
], - "linkedRiskIds": [
- "61b14f12-fc69-4409-b584-ec3d49077221"
], - "linkedObjectiveIds": [
- "qo-2026-001"
], - "notes": "Includes certification bodies and market regulators relevant to enabled standards.",
- "status": "active",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-21T00:00:00.000Z",
- "updatedAt": "2026-04-01T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing interestedparty.
| partyId required | string <uuid> Interested party UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 255 ] characters |
| category | string Enum: "customer" "regulatory" "supplier" "employee" "shareholder" "community" "partner" "other" |
| partyType | string Enum: "internal" "external" |
Array of objects Default: [] | |
| relevance | string Default: "medium" Enum: "high" "medium" "low" |
| monitoringMethod | string <= 500 characters |
| reviewFrequency | string Default: "annual" Enum: "quarterly" "semi_annual" "annual" "as_needed" |
| lastReviewedAt | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| linkedControlIds | Array of strings[ items <= 120 characters ] Default: [] |
| linkedRiskIds | Array of strings[ items <= 120 characters ] Default: [] |
| linkedObjectiveIds | Array of strings[ items <= 120 characters ] Default: [] |
| notes | string <= 5000 characters |
| status | string Default: "active" Enum: "active" "inactive" "archived" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "monitoringMethod": "Annual survey and quarterly management review trend check",
- "status": "inactive"
}{- "data": {
- "id": "6b1cd8c8-c0ee-4501-b1d1-18d50c5539c1",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "name": "Regulators",
- "category": "regulatory",
- "partyType": "external",
- "requirements": [
- {
- "text": "Maintain auditable control over QMS decisions and records.",
- "priority": "high"
}, - {
- "text": "Review changes to regulated workflows at least quarterly.",
- "priority": "medium"
}
], - "relevance": "high",
- "monitoringMethod": "Management review, standards monitoring, and scheduled internal audits",
- "reviewFrequency": "quarterly",
- "lastReviewedAt": "2026-04-01T00:00:00.000Z",
- "linkedControlIds": [
- "c1a2b3c4-d5e6-4f78-9a0b-1c2d3e4f5678"
], - "linkedRiskIds": [
- "61b14f12-fc69-4409-b584-ec3d49077221"
], - "linkedObjectiveIds": [
- "qo-2026-001"
], - "notes": "Includes certification bodies and market regulators relevant to enabled standards.",
- "status": "active",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-21T00:00:00.000Z",
- "updatedAt": "2026-04-01T00:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns immutable QMS scope statement versions in reverse chronological order.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "ac12759a-cb1a-45db-988c-a48c84ad0b71",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "versionNumber": 3,
- "content": "The QMS covers the design, delivery, support, and continuous improvement of the Q360 software platform, including controlled documentation, workflow execution, training, supplier quality, and evidence management across Australia and New Zealand operations.",
- "changeSummary": "Expanded scope to explicitly include supplier quality and evidence management workflows.",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-05T01:00:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Appends a new immutable QMS scope statement version for the organization.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| content required | string [ 1 .. 50000 ] characters |
| changeSummary | string <= 5000 characters |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "content": "The QMS covers the design, delivery, support, and continual improvement of the Q360 platform and associated quality operations for subscribed organizations.",
- "changeSummary": "Clarified included service lines and lifecycle activities."
}{- "data": {
- "id": "ac12759a-cb1a-45db-988c-a48c84ad0b71",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "versionNumber": 3,
- "content": "The QMS covers the design, delivery, support, and continuous improvement of the Q360 software platform, including controlled documentation, workflow execution, training, supplier quality, and evidence management across Australia and New Zealand operations.",
- "changeSummary": "Expanded scope to explicitly include supplier quality and evidence management workflows.",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-05T01:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single immutable QMS scope statement version by identifier.
| versionId required | string <uuid> QMS scope version UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "ac12759a-cb1a-45db-988c-a48c84ad0b71",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "versionNumber": 3,
- "content": "The QMS covers the design, delivery, support, and continuous improvement of the Q360 software platform, including controlled documentation, workflow execution, training, supplier quality, and evidence management across Australia and New Zealand operations.",
- "changeSummary": "Expanded scope to explicitly include supplier quality and evidence management workflows.",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-05T01:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of complaints.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "received" "triaged" "containment_in_progress" "under_investigation" "response_pending" "response_sent" "verification_pending" "closed" "cancelled" |
| severity | string Enum: "critical" "major" "minor" "negligible" |
| category | string <= 100 characters |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "complaintCode": "string",
- "title": "string",
- "description": "string",
- "customerName": "string",
- "complaintCategory": "string",
- "affectedProduct": "string",
- "affectedService": "string",
- "lotOrBatch": "string",
- "incidentDate": "2019-08-24",
- "reportedDate": "2019-08-24",
- "severity": "critical",
- "status": "received",
- "responseDueAt": "2019-08-24T14:15:22Z",
- "investigationDueAt": "2019-08-24T14:15:22Z",
- "containmentRequired": true,
- "rootCauseSummary": "string",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc",
- "relatedCapaId": "303f9d19-b179-4959-b066-904582d88315",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a complaint within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| title required | string [ 1 .. 300 ] characters |
| description required | string <= 10000 characters |
| customerName | string <= 255 characters |
| complaintCategory | string <= 100 characters |
| affectedProduct | string <= 255 characters |
| affectedService | string <= 255 characters |
| lotOrBatch | string <= 100 characters |
| incidentDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| reportedDate required | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| severity required | string Enum: "critical" "major" "minor" "negligible" |
| containmentRequired required | boolean Default: false |
| rootCauseSummary | string <= 5000 characters |
| relatedNcrId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| relatedCapaId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "title": "string",
- "description": "string",
- "customerName": "string",
- "complaintCategory": "string",
- "affectedProduct": "string",
- "affectedService": "string",
- "lotOrBatch": "string",
- "incidentDate": "2019-08-24",
- "reportedDate": "2019-08-24",
- "severity": "critical",
- "containmentRequired": false,
- "rootCauseSummary": "string",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc",
- "relatedCapaId": "303f9d19-b179-4959-b066-904582d88315"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "complaintCode": "string",
- "title": "string",
- "description": "string",
- "customerName": "string",
- "complaintCategory": "string",
- "affectedProduct": "string",
- "affectedService": "string",
- "lotOrBatch": "string",
- "incidentDate": "2019-08-24",
- "reportedDate": "2019-08-24",
- "severity": "critical",
- "status": "received",
- "responseDueAt": "2019-08-24T14:15:22Z",
- "investigationDueAt": "2019-08-24T14:15:22Z",
- "containmentRequired": true,
- "rootCauseSummary": "string",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc",
- "relatedCapaId": "303f9d19-b179-4959-b066-904582d88315",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single complaint by identifier.
| complaintId required | string <uuid> Complaint UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "complaintCode": "string",
- "title": "string",
- "description": "string",
- "customerName": "string",
- "complaintCategory": "string",
- "affectedProduct": "string",
- "affectedService": "string",
- "lotOrBatch": "string",
- "incidentDate": "2019-08-24",
- "reportedDate": "2019-08-24",
- "severity": "critical",
- "status": "received",
- "responseDueAt": "2019-08-24T14:15:22Z",
- "investigationDueAt": "2019-08-24T14:15:22Z",
- "containmentRequired": true,
- "rootCauseSummary": "string",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc",
- "relatedCapaId": "303f9d19-b179-4959-b066-904582d88315",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing complaint.
| complaintId required | string <uuid> Complaint UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| title | string [ 1 .. 300 ] characters |
| description | string <= 10000 characters |
| customerName | string <= 255 characters |
| complaintCategory | string <= 100 characters |
| affectedProduct | string <= 255 characters |
| affectedService | string <= 255 characters |
| lotOrBatch | string <= 100 characters |
| incidentDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| reportedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| severity | string Enum: "critical" "major" "minor" "negligible" |
| containmentRequired | boolean Default: false |
| rootCauseSummary | string <= 5000 characters |
| relatedNcrId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| relatedCapaId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "title": "string",
- "description": "string",
- "customerName": "string",
- "complaintCategory": "string",
- "affectedProduct": "string",
- "affectedService": "string",
- "lotOrBatch": "string",
- "incidentDate": "2019-08-24",
- "reportedDate": "2019-08-24",
- "severity": "critical",
- "containmentRequired": false,
- "rootCauseSummary": "string",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc",
- "relatedCapaId": "303f9d19-b179-4959-b066-904582d88315"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "complaintCode": "string",
- "title": "string",
- "description": "string",
- "customerName": "string",
- "complaintCategory": "string",
- "affectedProduct": "string",
- "affectedService": "string",
- "lotOrBatch": "string",
- "incidentDate": "2019-08-24",
- "reportedDate": "2019-08-24",
- "severity": "critical",
- "status": "received",
- "responseDueAt": "2019-08-24T14:15:22Z",
- "investigationDueAt": "2019-08-24T14:15:22Z",
- "containmentRequired": true,
- "rootCauseSummary": "string",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc",
- "relatedCapaId": "303f9d19-b179-4959-b066-904582d88315",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of suppliercertifications.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| status | string Enum: "active" "expiring_soon" "expired" "revoked" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "certificationName": "string",
- "certificationBody": "string",
- "certificateNumber": "string",
- "issuedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "status": "active",
- "documentUrl": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a suppliercertification within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| supplierId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| certificationName required | string [ 1 .. 255 ] characters |
| certificationBody | string <= 255 characters |
| certificateNumber | string <= 128 characters |
| issuedDate required | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| expiryDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| documentUrl | string <= 2048 characters |
| notes | string <= 5000 characters |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "certificationName": "string",
- "certificationBody": "string",
- "certificateNumber": "string",
- "issuedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "documentUrl": "string",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "certificationName": "string",
- "certificationBody": "string",
- "certificateNumber": "string",
- "issuedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "status": "active",
- "documentUrl": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single suppliercertification by identifier.
| certificationId required | string <uuid> Supplier certification UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "certificationName": "string",
- "certificationBody": "string",
- "certificateNumber": "string",
- "issuedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "status": "active",
- "documentUrl": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing suppliercertification.
| certificationId required | string <uuid> Supplier certification UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| certificationName | string [ 1 .. 255 ] characters |
| certificationBody | string <= 255 characters |
| certificateNumber | string <= 128 characters |
| issuedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| expiryDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| documentUrl | string <= 2048 characters |
| notes | string <= 5000 characters |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "certificationName": "string",
- "certificationBody": "string",
- "certificateNumber": "string",
- "issuedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "documentUrl": "string",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "certificationName": "string",
- "certificationBody": "string",
- "certificateNumber": "string",
- "issuedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "status": "active",
- "documentUrl": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of supplierreviews.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| outcome | string Enum: "approved" "conditionally_approved" "requires_improvement" "disqualified" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "reviewDate": "2019-08-24",
- "reviewerId": "string",
- "overallScore": 100,
- "outcome": "approved",
- "summary": "string",
- "nextReviewDate": "2019-08-24",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a supplierreview within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| supplierId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| reviewDate required | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| reviewerId required | string [ 1 .. 128 ] characters Application user identifier. |
| overallScore | number [ 0 .. 100 ] |
| outcome required | string Enum: "approved" "conditionally_approved" "requires_improvement" "disqualified" |
| summary | string <= 5000 characters |
| nextReviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "reviewDate": "2019-08-24",
- "reviewerId": "string",
- "overallScore": 100,
- "outcome": "approved",
- "summary": "string",
- "nextReviewDate": "2019-08-24"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "reviewDate": "2019-08-24",
- "reviewerId": "string",
- "overallScore": 100,
- "outcome": "approved",
- "summary": "string",
- "nextReviewDate": "2019-08-24",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single supplierreview by identifier.
| reviewId required | string <uuid> Supplier review UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "reviewDate": "2019-08-24",
- "reviewerId": "string",
- "overallScore": 100,
- "outcome": "approved",
- "summary": "string",
- "nextReviewDate": "2019-08-24",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing supplierreview.
| reviewId required | string <uuid> Supplier review UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| reviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| reviewerId | string [ 1 .. 128 ] characters Application user identifier. |
| overallScore | number [ 0 .. 100 ] |
| outcome | string Enum: "approved" "conditionally_approved" "requires_improvement" "disqualified" |
| summary | string <= 5000 characters |
| nextReviewDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "reviewDate": "2019-08-24",
- "reviewerId": "string",
- "overallScore": 100,
- "outcome": "approved",
- "summary": "string",
- "nextReviewDate": "2019-08-24"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "reviewDate": "2019-08-24",
- "reviewerId": "string",
- "overallScore": 100,
- "outcome": "approved",
- "summary": "string",
- "nextReviewDate": "2019-08-24",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of supplierscorecards.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| tier | string <= 32 characters |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "qualityScore": 100,
- "deliveryScore": 100,
- "responsiveScore": 100,
- "overallScore": 100,
- "tier": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a supplierscorecard within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| supplierId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| periodStart required | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| periodEnd required | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| qualityScore | number [ 0 .. 100 ] |
| deliveryScore | number [ 0 .. 100 ] |
| responsiveScore | number [ 0 .. 100 ] |
| overallScore | number [ 0 .. 100 ] |
| tier | string <= 32 characters |
| notes | string <= 5000 characters |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "qualityScore": 100,
- "deliveryScore": 100,
- "responsiveScore": 100,
- "overallScore": 100,
- "tier": "string",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "qualityScore": 100,
- "deliveryScore": 100,
- "responsiveScore": 100,
- "overallScore": 100,
- "tier": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single supplierscorecard by identifier.
| scorecardId required | string <uuid> Supplier scorecard UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "qualityScore": 100,
- "deliveryScore": 100,
- "responsiveScore": 100,
- "overallScore": 100,
- "tier": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing supplierscorecard.
| scorecardId required | string <uuid> Supplier scorecard UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| periodStart | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| periodEnd | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| qualityScore | number [ 0 .. 100 ] |
| deliveryScore | number [ 0 .. 100 ] |
| responsiveScore | number [ 0 .. 100 ] |
| overallScore | number [ 0 .. 100 ] |
| tier | string <= 32 characters |
| notes | string <= 5000 characters |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "qualityScore": 100,
- "deliveryScore": 100,
- "responsiveScore": 100,
- "overallScore": 100,
- "tier": "string",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "periodStart": "2019-08-24",
- "periodEnd": "2019-08-24",
- "qualityScore": 100,
- "deliveryScore": 100,
- "responsiveScore": 100,
- "overallScore": 100,
- "tier": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Supplier Corrective Action Requests (SCARs) for non-conformance resolution.
Returns a cursor-paginated collection of suppliercorrectiveactions.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| status | string Enum: "open" "response_pending" "response_received" "verified" "closed" "escalated" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "scarCode": "string",
- "title": "string",
- "description": "string",
- "status": "open",
- "issuedDate": "2019-08-24",
- "responseDueDate": "2019-08-24",
- "rootCause": "string",
- "correctiveAction": "string",
- "verifiedBy": "string",
- "verifiedAt": "2019-08-24T14:15:22Z",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a suppliercorrectiveaction within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| supplierId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| title required | string [ 1 .. 300 ] characters |
| description | string <= 10000 characters |
| issuedDate required | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| responseDueDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| relatedNcrId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "title": "string",
- "description": "string",
- "issuedDate": "2019-08-24",
- "responseDueDate": "2019-08-24",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "scarCode": "string",
- "title": "string",
- "description": "string",
- "status": "open",
- "issuedDate": "2019-08-24",
- "responseDueDate": "2019-08-24",
- "rootCause": "string",
- "correctiveAction": "string",
- "verifiedBy": "string",
- "verifiedAt": "2019-08-24T14:15:22Z",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single suppliercorrectiveaction by identifier.
| scarId required | string <uuid> Supplier corrective action UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "scarCode": "string",
- "title": "string",
- "description": "string",
- "status": "open",
- "issuedDate": "2019-08-24",
- "responseDueDate": "2019-08-24",
- "rootCause": "string",
- "correctiveAction": "string",
- "verifiedBy": "string",
- "verifiedAt": "2019-08-24T14:15:22Z",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing suppliercorrectiveaction.
| scarId required | string <uuid> Supplier corrective action UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| title | string [ 1 .. 300 ] characters |
| description | string <= 10000 characters |
| issuedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| responseDueDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| relatedNcrId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "title": "string",
- "description": "string",
- "issuedDate": "2019-08-24",
- "responseDueDate": "2019-08-24",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "scarCode": "string",
- "title": "string",
- "description": "string",
- "status": "open",
- "issuedDate": "2019-08-24",
- "responseDueDate": "2019-08-24",
- "rootCause": "string",
- "correctiveAction": "string",
- "verifiedBy": "string",
- "verifiedAt": "2019-08-24T14:15:22Z",
- "relatedNcrId": "e320dba5-4e90-4e0c-986b-3e11021d7fdc",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of reportdefinitions.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| title | string Filter by report title. |
| reportType | string Enum: "system" "custom" Filter by definition origin type. |
| isSystem | boolean Filter by platform-managed definitions. |
| isActive | boolean Filter by active definitions. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "reportKey": "capa_aging",
- "title": "CAPA Aging",
- "description": "Tracks open CAPAs by age bucket, status, and severity.",
- "reportType": "system",
- "category": "Quality",
- "inputSchema": {
- "includeClosed": {
- "type": "boolean",
- "default": false
}
}, - "defaultParameters": {
- "includeClosed": false
}, - "isSystem": true,
- "isActive": true,
- "createdAt": "2026-04-05T01:15:00.000Z",
- "updatedAt": "2026-04-05T01:15:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a reportdefinition within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| reportKey required | string [ 1 .. 100 ] characters Stable machine key for the report definition. |
| title required | string [ 1 .. 255 ] characters Human-readable report title. |
| description | string <= 5000 characters Optional summary of the report purpose. |
| reportType required | string Default: "custom" Enum: "system" "custom" Whether the report is system-provided or custom. |
| category | string <= 255 characters Functional grouping used in the report library. |
required | object Default: {} Parameter schema used to configure the report. |
required | object Default: {} Default runtime parameters applied to new runs. |
| isSystem required | boolean Default: false Whether the definition is maintained by the platform. |
| isActive required | boolean Default: true Whether the definition can be scheduled or run. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "reportKey": "custom-quarterly-quality-pack",
- "title": "Quarterly Quality Pack",
- "description": "Custom consolidated quality report for department leads.",
- "reportType": "custom",
- "category": "Governance",
- "inputSchema": {
- "lookbackDays": {
- "type": "number",
- "default": 90
}
}, - "defaultParameters": {
- "lookbackDays": 90
}, - "isSystem": false,
- "isActive": true
}{- "data": {
- "id": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "reportKey": "capa_aging",
- "title": "CAPA Aging",
- "description": "Tracks open CAPAs by age bucket, status, and severity.",
- "reportType": "system",
- "category": "Quality",
- "inputSchema": {
- "includeClosed": {
- "type": "boolean",
- "default": false
}
}, - "defaultParameters": {
- "includeClosed": false
}, - "isSystem": true,
- "isActive": true,
- "createdAt": "2026-04-05T01:15:00.000Z",
- "updatedAt": "2026-04-05T01:15:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single reportdefinition by identifier.
| definitionId required | string <uuid> Report definition UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "reportKey": "capa_aging",
- "title": "CAPA Aging",
- "description": "Tracks open CAPAs by age bucket, status, and severity.",
- "reportType": "system",
- "category": "Quality",
- "inputSchema": {
- "includeClosed": {
- "type": "boolean",
- "default": false
}
}, - "defaultParameters": {
- "includeClosed": false
}, - "isSystem": true,
- "isActive": true,
- "createdAt": "2026-04-05T01:15:00.000Z",
- "updatedAt": "2026-04-05T01:15:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing reportdefinition.
| definitionId required | string <uuid> Report definition UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| title | string [ 1 .. 255 ] characters Human-readable report title. |
| description | string <= 5000 characters Optional summary of the report purpose. |
| category | string <= 255 characters Functional grouping used in the report library. |
object Parameter schema used to configure the report. | |
object Default runtime parameters applied to new runs. | |
| isActive | boolean Whether the definition can be scheduled or run. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "title": "Quarterly Quality Pack v2",
- "isActive": true
}{- "data": {
- "id": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "reportKey": "capa_aging",
- "title": "CAPA Aging",
- "description": "Tracks open CAPAs by age bucket, status, and severity.",
- "reportType": "system",
- "category": "Quality",
- "inputSchema": {
- "includeClosed": {
- "type": "boolean",
- "default": false
}
}, - "defaultParameters": {
- "includeClosed": false
}, - "isSystem": true,
- "isActive": true,
- "createdAt": "2026-04-05T01:15:00.000Z",
- "updatedAt": "2026-04-05T01:15:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of reportschedules.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| reportDefinitionId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by report definition identifier. |
| isActive | boolean Filter by enabled schedules. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "cc12759a-cb1a-45db-988c-a48c84ad0b73",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "reportDefinitionId": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "cronExpression": "0 8 * * 1",
- "parameters": {
- "includeClosed": false
}, - "outputFormat": "pdf",
- "isActive": true,
- "nextRunAt": "2026-04-13T08:00:00.000Z",
- "lastRunAt": "2026-04-06T08:00:00.000Z",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-01T01:15:00.000Z",
- "updatedAt": "2026-04-06T08:00:00.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Creates a reportschedule within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| reportDefinitionId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| cronExpression required | string [ 1 .. 100 ] characters Five-field cron expression controlling execution cadence. |
required | object Default: {} Runtime parameters merged into each scheduled run. |
| outputFormat required | string Default: "pdf" Enum: "pdf" "xlsx" "csv" "zip" Requested artifact format for completed runs. |
| isActive required | boolean Default: true Whether the schedule should start enabled. |
| createdBy | string [ 1 .. 128 ] characters Application user identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "reportDefinitionId": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "cronExpression": "0 8 * * 1",
- "parameters": {
- "includeClosed": false
}, - "outputFormat": "pdf",
- "isActive": true
}{- "data": {
- "id": "cc12759a-cb1a-45db-988c-a48c84ad0b73",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "reportDefinitionId": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "cronExpression": "0 8 * * 1",
- "parameters": {
- "includeClosed": false
}, - "outputFormat": "pdf",
- "isActive": true,
- "nextRunAt": "2026-04-13T08:00:00.000Z",
- "lastRunAt": "2026-04-06T08:00:00.000Z",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-01T01:15:00.000Z",
- "updatedAt": "2026-04-06T08:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single reportschedule by identifier.
| scheduleId required | string <uuid> Report schedule UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "cc12759a-cb1a-45db-988c-a48c84ad0b73",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "reportDefinitionId": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "cronExpression": "0 8 * * 1",
- "parameters": {
- "includeClosed": false
}, - "outputFormat": "pdf",
- "isActive": true,
- "nextRunAt": "2026-04-13T08:00:00.000Z",
- "lastRunAt": "2026-04-06T08:00:00.000Z",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-01T01:15:00.000Z",
- "updatedAt": "2026-04-06T08:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Applies a partial update to an existing reportschedule.
| scheduleId required | string <uuid> Report schedule UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| cronExpression | string [ 1 .. 100 ] characters Five-field cron expression controlling execution cadence. |
object Runtime parameters merged into each scheduled run. | |
| outputFormat | string Enum: "pdf" "xlsx" "csv" "zip" Requested artifact format for completed runs. |
| isActive | boolean Whether the schedule is currently enabled. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "cronExpression": "0 8 * * 2",
- "isActive": true
}{- "data": {
- "id": "cc12759a-cb1a-45db-988c-a48c84ad0b73",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "reportDefinitionId": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "cronExpression": "0 8 * * 1",
- "parameters": {
- "includeClosed": false
}, - "outputFormat": "pdf",
- "isActive": true,
- "nextRunAt": "2026-04-13T08:00:00.000Z",
- "lastRunAt": "2026-04-06T08:00:00.000Z",
- "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-01T01:15:00.000Z",
- "updatedAt": "2026-04-06T08:00:00.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of report runs.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| reportDefinitionId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by report definition identifier. |
| scheduleId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by originating schedule identifier. |
| status | string Enum: "pending" "running" "completed" "failed" "cancelled" Filter by run execution state. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "dc12759a-cb1a-45db-988c-a48c84ad0b74",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "reportDefinitionId": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "scheduleId": "cc12759a-cb1a-45db-988c-a48c84ad0b73",
- "parameters": {
- "includeClosed": false
}, - "outputFormat": "pdf",
- "status": "completed",
- "startedAt": "2026-04-06T08:00:00.000Z",
- "completedAt": "2026-04-06T08:00:05.000Z",
- "outputSizeBytes": 4096,
- "triggeredBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-06T08:00:00.000Z",
- "updatedAt": "2026-04-06T08:00:05.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Queues a new report generation run for the specified report definition.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| reportDefinitionId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| scheduleId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
required | object Default: {} Runtime parameters supplied for this run only. |
| outputFormat required | string Default: "pdf" Enum: "pdf" "xlsx" "csv" "zip" Requested artifact format for the run. |
| triggeredBy | string [ 1 .. 128 ] characters Application user identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "reportDefinitionId": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "scheduleId": "cc12759a-cb1a-45db-988c-a48c84ad0b73",
- "parameters": {
- "includeClosed": false
}, - "outputFormat": "pdf",
- "triggeredBy": "22222222-2222-4222-8222-222222222222"
}{- "data": {
- "id": "dc12759a-cb1a-45db-988c-a48c84ad0b74",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "reportDefinitionId": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "scheduleId": "cc12759a-cb1a-45db-988c-a48c84ad0b73",
- "parameters": {
- "includeClosed": false
}, - "outputFormat": "pdf",
- "status": "completed",
- "startedAt": "2026-04-06T08:00:00.000Z",
- "completedAt": "2026-04-06T08:00:05.000Z",
- "outputSizeBytes": 4096,
- "triggeredBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-06T08:00:00.000Z",
- "updatedAt": "2026-04-06T08:00:05.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a single report run by identifier.
| runId required | string <uuid> Report run UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "dc12759a-cb1a-45db-988c-a48c84ad0b74",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "reportDefinitionId": "bc12759a-cb1a-45db-988c-a48c84ad0b72",
- "scheduleId": "cc12759a-cb1a-45db-988c-a48c84ad0b73",
- "parameters": {
- "includeClosed": false
}, - "outputFormat": "pdf",
- "status": "completed",
- "startedAt": "2026-04-06T08:00:00.000Z",
- "completedAt": "2026-04-06T08:00:05.000Z",
- "outputSizeBytes": 4096,
- "triggeredBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-04-06T08:00:00.000Z",
- "updatedAt": "2026-04-06T08:00:05.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated collection of immutable report snapshots.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| runId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by originating report run identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "ec12759a-cb1a-45db-988c-a48c84ad0b75",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "runId": "dc12759a-cb1a-45db-988c-a48c84ad0b74",
- "rowCount": 24,
- "snapshotData": {
- "reportKey": "capa_aging",
- "generatedAt": "2026-04-06T08:00:05.000Z",
- "summary": {
- "total": 24,
- "overdue": 5
}, - "columns": [
- "capaId",
- "title",
- "status",
- "severity",
- "ageDays"
], - "rows": [
- {
- "capaId": "CA-2026-001",
- "title": "Resolve missing review records",
- "status": "In Progress",
- "severity": "Major",
- "ageDays": 12
}
]
}, - "createdAt": "2026-04-06T08:00:05.000Z"
}
], - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z",
- "pagination": {
- "limit": 25,
- "returned": 1,
- "nextCursor": "cursor_next_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "hasMore": true
}
}
}Returns a single immutable report snapshot by identifier.
| snapshotId required | string <uuid> Report snapshot UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "ec12759a-cb1a-45db-988c-a48c84ad0b75",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "runId": "dc12759a-cb1a-45db-988c-a48c84ad0b74",
- "rowCount": 24,
- "snapshotData": {
- "reportKey": "capa_aging",
- "generatedAt": "2026-04-06T08:00:05.000Z",
- "summary": {
- "total": 24,
- "overdue": 5
}, - "columns": [
- "capaId",
- "title",
- "status",
- "severity",
- "ageDays"
], - "rows": [
- {
- "capaId": "CA-2026-001",
- "title": "Resolve missing review records",
- "status": "In Progress",
- "severity": "Major",
- "ageDays": 12
}
]
}, - "createdAt": "2026-04-06T08:00:05.000Z"
}, - "meta": {
- "requestId": "req_01HZX8M0J5YQ6W3K8R9T1V2X3Y",
- "version": "v1",
- "generatedAt": "2026-04-05T03:15:00.000Z"
}
}Returns a cursor-paginated list of metric snapshots for a management review.
| reviewId required | string <uuid> Management review UUID. |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| reviewId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "reviewId": "341516c7-7748-4edf-830d-9d7fcae997b7",
- "snapshotDate": "2019-08-24",
- "metricsData": {
- "property1": null,
- "property2": null
}, - "summary": "string",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Returns a single management review snapshot by identifier.
| reviewId required | string <uuid> Management review UUID. |
| snapshotId required | string <uuid> Snapshot UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "reviewId": "341516c7-7748-4edf-830d-9d7fcae997b7",
- "snapshotDate": "2019-08-24",
- "metricsData": {
- "property1": null,
- "property2": null
}, - "summary": "string",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of managementreviewoutputs.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| reviewId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| outputType | string Enum: "action_item" "decision" "resource_allocation" "policy_change" "improvement_opportunity" |
| status | string Enum: "draft" "approved" "implemented" "closed" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "reviewId": "341516c7-7748-4edf-830d-9d7fcae997b7",
- "outputType": "action_item",
- "title": "string",
- "description": "string",
- "status": "draft",
- "assignedToId": "string",
- "dueDate": "2019-08-24",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a managementreviewoutput within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| reviewId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| outputType required | string Enum: "action_item" "decision" "resource_allocation" "policy_change" "improvement_opportunity" |
| title required | string [ 1 .. 300 ] characters |
| description | string <= 10000 characters |
| assignedToId | string [ 1 .. 128 ] characters Application user identifier. |
| dueDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "reviewId": "341516c7-7748-4edf-830d-9d7fcae997b7",
- "outputType": "action_item",
- "title": "string",
- "description": "string",
- "assignedToId": "string",
- "dueDate": "2019-08-24"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "reviewId": "341516c7-7748-4edf-830d-9d7fcae997b7",
- "outputType": "action_item",
- "title": "string",
- "description": "string",
- "status": "draft",
- "assignedToId": "string",
- "dueDate": "2019-08-24",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single managementreviewoutput by identifier.
| outputId required | string <uuid> Management review output UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "reviewId": "341516c7-7748-4edf-830d-9d7fcae997b7",
- "outputType": "action_item",
- "title": "string",
- "description": "string",
- "status": "draft",
- "assignedToId": "string",
- "dueDate": "2019-08-24",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing managementreviewoutput.
| outputId required | string <uuid> Management review output UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| reviewId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| outputType | string Enum: "action_item" "decision" "resource_allocation" "policy_change" "improvement_opportunity" |
| title | string [ 1 .. 300 ] characters |
| description | string <= 10000 characters |
| assignedToId | string [ 1 .. 128 ] characters Application user identifier. |
| dueDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Calendar date in ISO 8601 format. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "reviewId": "341516c7-7748-4edf-830d-9d7fcae997b7",
- "outputType": "action_item",
- "title": "string",
- "description": "string",
- "assignedToId": "string",
- "dueDate": "2019-08-24"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "reviewId": "341516c7-7748-4edf-830d-9d7fcae997b7",
- "outputType": "action_item",
- "title": "string",
- "description": "string",
- "status": "draft",
- "assignedToId": "string",
- "dueDate": "2019-08-24",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of obligationdefinitions.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| obligationType | string Enum: "management_review" "supplier_review" "control_test" "calibration" "training_refresher" "audit" "document_review" "custom" Filter by obligation type. |
| isActive | boolean Filter by active definitions only. |
| name | string <= 200 characters Filter by obligation name. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "obligationType": "management_review",
- "recurrence": {
- "type": "fixed_interval",
- "intervalDays": 1
}, - "leadTimeDays": 365,
- "entityTemplate": {
- "property1": null,
- "property2": null
}, - "assigneeUserId": "11d6662f-b88d-444d-8712-eda11b5a0eed",
- "assigneeRole": "string",
- "escalationChainId": "4caee9f9-c176-4da8-9c0e-5b5b57613525",
- "slaWarningHours": 0,
- "slaBreachHours": 0,
- "linkedEntityType": "string",
- "linkedEntityId": "797256a3-a048-40b0-acab-2fa77393a895",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a obligationdefinition within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters Display name for the recurring obligation. |
| description | string <= 5000 characters Detailed description of the obligation scope. |
| obligationType required | string Enum: "management_review" "supplier_review" "control_test" "calibration" "training_refresher" "audit" "document_review" "custom" Category of recurring obligation. |
required | object or object or object or object or object or object Recurrence rule describing how instances are generated. |
| leadTimeDays required | integer [ 0 .. 365 ] Days before due date to activate the instance. |
required | object Template used when auto-creating the target entity. |
| assigneeUserId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Default assignee for generated instances. |
| assigneeRole | string <= 80 characters Fallback role label for assignment routing. |
| escalationChainId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Escalation chain linked to overdue instances. |
| slaWarningHours | number Optional warning threshold in hours. |
| slaBreachHours | number Optional missed threshold in hours. |
| linkedEntityType | string <= 80 characters Linked entity type for contextual recurrence. |
| linkedEntityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked entity identifier for contextual recurrence. |
| isActive required | boolean Whether the definition continues generating instances. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "obligationType": "management_review",
- "recurrence": {
- "type": "fixed_interval",
- "intervalDays": 1
}, - "leadTimeDays": 365,
- "entityTemplate": {
- "property1": null,
- "property2": null
}, - "assigneeUserId": "11d6662f-b88d-444d-8712-eda11b5a0eed",
- "assigneeRole": "string",
- "escalationChainId": "4caee9f9-c176-4da8-9c0e-5b5b57613525",
- "slaWarningHours": 0,
- "slaBreachHours": 0,
- "linkedEntityType": "string",
- "linkedEntityId": "797256a3-a048-40b0-acab-2fa77393a895",
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "obligationType": "management_review",
- "recurrence": {
- "type": "fixed_interval",
- "intervalDays": 1
}, - "leadTimeDays": 365,
- "entityTemplate": {
- "property1": null,
- "property2": null
}, - "assigneeUserId": "11d6662f-b88d-444d-8712-eda11b5a0eed",
- "assigneeRole": "string",
- "escalationChainId": "4caee9f9-c176-4da8-9c0e-5b5b57613525",
- "slaWarningHours": 0,
- "slaBreachHours": 0,
- "linkedEntityType": "string",
- "linkedEntityId": "797256a3-a048-40b0-acab-2fa77393a895",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single obligationdefinition by identifier.
| definitionId required | string <uuid> Obligation definition UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "obligationType": "management_review",
- "recurrence": {
- "type": "fixed_interval",
- "intervalDays": 1
}, - "leadTimeDays": 365,
- "entityTemplate": {
- "property1": null,
- "property2": null
}, - "assigneeUserId": "11d6662f-b88d-444d-8712-eda11b5a0eed",
- "assigneeRole": "string",
- "escalationChainId": "4caee9f9-c176-4da8-9c0e-5b5b57613525",
- "slaWarningHours": 0,
- "slaBreachHours": 0,
- "linkedEntityType": "string",
- "linkedEntityId": "797256a3-a048-40b0-acab-2fa77393a895",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing obligationdefinition.
| definitionId required | string <uuid> Obligation definition UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters Display name for the recurring obligation. |
| description | string <= 5000 characters Detailed description of the obligation scope. |
| obligationType | string Enum: "management_review" "supplier_review" "control_test" "calibration" "training_refresher" "audit" "document_review" "custom" Category of recurring obligation. |
object or object or object or object or object or object Recurrence rule describing how instances are generated. | |
| leadTimeDays | integer [ 0 .. 365 ] Days before due date to activate the instance. |
object Template used when auto-creating the target entity. | |
| assigneeUserId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Default assignee for generated instances. |
| assigneeRole | string <= 80 characters Fallback role label for assignment routing. |
| escalationChainId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Escalation chain linked to overdue instances. |
| slaWarningHours | number Optional warning threshold in hours. |
| slaBreachHours | number Optional missed threshold in hours. |
| linkedEntityType | string <= 80 characters Linked entity type for contextual recurrence. |
| linkedEntityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked entity identifier for contextual recurrence. |
| isActive | boolean Whether the definition continues generating instances. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "obligationType": "management_review",
- "recurrence": {
- "type": "fixed_interval",
- "intervalDays": 1
}, - "leadTimeDays": 365,
- "entityTemplate": {
- "property1": null,
- "property2": null
}, - "assigneeUserId": "11d6662f-b88d-444d-8712-eda11b5a0eed",
- "assigneeRole": "string",
- "escalationChainId": "4caee9f9-c176-4da8-9c0e-5b5b57613525",
- "slaWarningHours": 0,
- "slaBreachHours": 0,
- "linkedEntityType": "string",
- "linkedEntityId": "797256a3-a048-40b0-acab-2fa77393a895",
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "obligationType": "management_review",
- "recurrence": {
- "type": "fixed_interval",
- "intervalDays": 1
}, - "leadTimeDays": 365,
- "entityTemplate": {
- "property1": null,
- "property2": null
}, - "assigneeUserId": "11d6662f-b88d-444d-8712-eda11b5a0eed",
- "assigneeRole": "string",
- "escalationChainId": "4caee9f9-c176-4da8-9c0e-5b5b57613525",
- "slaWarningHours": 0,
- "slaBreachHours": 0,
- "linkedEntityType": "string",
- "linkedEntityId": "797256a3-a048-40b0-acab-2fa77393a895",
- "isActive": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns generated obligation instances with optional status, assignee, and date filters.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| definitionId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by obligation definition. |
| status | string Enum: "scheduled" "upcoming" "active" "in_progress" "completed" "overdue" "missed" "cancelled" Filter by instance status. |
| assignedTo | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by assigned user. |
| dateFrom | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Filter to instances due on or after this date. |
| dateTo | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Filter to instances due on or before this date. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "definitionId": "058563fe-6949-46e9-9fb3-06a0e3a11f6a",
- "instanceCode": "string",
- "status": "scheduled",
- "dueAt": "2019-08-24T14:15:22Z",
- "activeAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "completedBy": "2ba8855d-779c-4ca1-9d57-eeb46654c1ad",
- "assignedTo": "7869c1a9-a680-4086-b6f5-9e78a651f6f2",
- "targetEntityType": "string",
- "targetEntityId": "ffcbe7bd-b93a-4630-87c7-2d0f166f5fc1",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Returns a single generated obligation instance by identifier.
| instanceId required | string <uuid> Obligation instance UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "definitionId": "058563fe-6949-46e9-9fb3-06a0e3a11f6a",
- "instanceCode": "string",
- "status": "scheduled",
- "dueAt": "2019-08-24T14:15:22Z",
- "activeAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "completedBy": "2ba8855d-779c-4ca1-9d57-eeb46654c1ad",
- "assignedTo": "7869c1a9-a680-4086-b6f5-9e78a651f6f2",
- "targetEntityType": "string",
- "targetEntityId": "ffcbe7bd-b93a-4630-87c7-2d0f166f5fc1",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Updates the status, assignment, or notes for a generated obligation instance.
| instanceId required | string <uuid> Obligation instance UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| status | string Enum: "scheduled" "upcoming" "active" "in_progress" "completed" "overdue" "missed" "cancelled" Updated instance status. |
| assignedTo | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Updated assignee user ID. |
| notes | string <= 5000 characters Updated instance notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "status": "scheduled",
- "assignedTo": "7869c1a9-a680-4086-b6f5-9e78a651f6f2",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "definitionId": "058563fe-6949-46e9-9fb3-06a0e3a11f6a",
- "instanceCode": "string",
- "status": "scheduled",
- "dueAt": "2019-08-24T14:15:22Z",
- "activeAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "completedBy": "2ba8855d-779c-4ca1-9d57-eeb46654c1ad",
- "assignedTo": "7869c1a9-a680-4086-b6f5-9e78a651f6f2",
- "targetEntityType": "string",
- "targetEntityId": "ffcbe7bd-b93a-4630-87c7-2d0f166f5fc1",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns aggregate counts and on-time completion rate for recurring obligations.
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "activeDefinitions": 9007199254740991,
- "scheduled": 9007199254740991,
- "upcoming": 9007199254740991,
- "active": 9007199254740991,
- "inProgress": 9007199254740991,
- "overdue": 9007199254740991,
- "missed": 9007199254740991,
- "completed": 9007199254740991,
- "dueNext30Days": 9007199254740991,
- "complianceRate": 100
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Equipment qualification records (IQ/OQ/PQ/DQ) for validation and regulatory compliance.
Returns a cursor-paginated collection of equipmentqualifications.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| equipmentId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by equipment. |
| status | string Enum: "planned" "in_progress" "passed" "failed" "deferred" "cancelled" Filter by status. |
| qualificationType | string Enum: "IQ" "OQ" "PQ" "DQ" "FAT" "SAT" "requalification" "other" Filter by qualification type. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "equipmentId": "d2a795e1-f645-4e24-bc0a-ab1965048fcc",
- "qualificationId": "string",
- "qualificationType": "IQ",
- "title": "string",
- "description": "string",
- "status": "planned",
- "protocolReference": "string",
- "performedBy": "string",
- "approvedBy": "string",
- "plannedDate": "2019-08-24",
- "performedDate": "2019-08-24",
- "approvedDate": "2019-08-24",
- "nextRequalificationDate": "2019-08-24",
- "requalificationFrequencyMonths": 9007199254740991,
- "acceptanceCriteria": "string",
- "results": "string",
- "deviations": "string",
- "linkedCapaId": "dd361286-3806-4a46-b6e8-fa27be86e690",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a equipmentqualification within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| equipmentId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Equipment this qualification belongs to. |
| qualificationId required | string [ 1 .. 80 ] characters Human-readable qualification ID. |
| qualificationType required | string Enum: "IQ" "OQ" "PQ" "DQ" "FAT" "SAT" "requalification" "other" Type of qualification activity. |
| title required | string [ 1 .. 255 ] characters Qualification title. |
| description | string <= 5000 characters Detailed qualification description. |
| status required | string Enum: "planned" "in_progress" "passed" "failed" "deferred" "cancelled" Current qualification status. |
| protocolReference | string <= 255 characters Reference to the qualification protocol document. |
| performedBy | string [ 1 .. 128 ] characters User who performed the qualification. |
| approvedBy | string [ 1 .. 128 ] characters User who approved the qualification. |
| plannedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Planned qualification date. |
| performedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Actual qualification date. |
| approvedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Approval date. |
| nextRequalificationDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next requalification due date. |
| requalificationFrequencyMonths | integer ( 0 .. 9007199254740991 ] Requalification interval in months. |
| acceptanceCriteria | string <= 5000 characters Acceptance criteria for pass/fail determination. |
| results | string <= 5000 characters Qualification results and observations. |
| deviations | string <= 5000 characters Deviations found during qualification. |
| linkedCapaId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked CAPA for deviations. |
| linkedNcrId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked NCR for failures. |
| notes | string <= 5000 characters Additional notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object Equipment qualification record (IQ/OQ/PQ/DQ). |
required | object |
{- "equipmentId": "d2a795e1-f645-4e24-bc0a-ab1965048fcc",
- "qualificationId": "string",
- "qualificationType": "IQ",
- "title": "string",
- "description": "string",
- "status": "planned",
- "protocolReference": "string",
- "performedBy": "string",
- "approvedBy": "string",
- "plannedDate": "2019-08-24",
- "performedDate": "2019-08-24",
- "approvedDate": "2019-08-24",
- "nextRequalificationDate": "2019-08-24",
- "requalificationFrequencyMonths": 9007199254740991,
- "acceptanceCriteria": "string",
- "results": "string",
- "deviations": "string",
- "linkedCapaId": "dd361286-3806-4a46-b6e8-fa27be86e690",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "equipmentId": "d2a795e1-f645-4e24-bc0a-ab1965048fcc",
- "qualificationId": "string",
- "qualificationType": "IQ",
- "title": "string",
- "description": "string",
- "status": "planned",
- "protocolReference": "string",
- "performedBy": "string",
- "approvedBy": "string",
- "plannedDate": "2019-08-24",
- "performedDate": "2019-08-24",
- "approvedDate": "2019-08-24",
- "nextRequalificationDate": "2019-08-24",
- "requalificationFrequencyMonths": 9007199254740991,
- "acceptanceCriteria": "string",
- "results": "string",
- "deviations": "string",
- "linkedCapaId": "dd361286-3806-4a46-b6e8-fa27be86e690",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single equipmentqualification by identifier.
| qualificationId required | string <uuid> Equipment qualification UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object Equipment qualification record (IQ/OQ/PQ/DQ). |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "equipmentId": "d2a795e1-f645-4e24-bc0a-ab1965048fcc",
- "qualificationId": "string",
- "qualificationType": "IQ",
- "title": "string",
- "description": "string",
- "status": "planned",
- "protocolReference": "string",
- "performedBy": "string",
- "approvedBy": "string",
- "plannedDate": "2019-08-24",
- "performedDate": "2019-08-24",
- "approvedDate": "2019-08-24",
- "nextRequalificationDate": "2019-08-24",
- "requalificationFrequencyMonths": 9007199254740991,
- "acceptanceCriteria": "string",
- "results": "string",
- "deviations": "string",
- "linkedCapaId": "dd361286-3806-4a46-b6e8-fa27be86e690",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing equipmentqualification.
| qualificationId required | string <uuid> Equipment qualification UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| equipmentId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Equipment this qualification belongs to. |
| qualificationId | string [ 1 .. 80 ] characters Human-readable qualification ID. |
| qualificationType | string Enum: "IQ" "OQ" "PQ" "DQ" "FAT" "SAT" "requalification" "other" Type of qualification activity. |
| title | string [ 1 .. 255 ] characters Qualification title. |
| description | string <= 5000 characters Detailed qualification description. |
| status | string Enum: "planned" "in_progress" "passed" "failed" "deferred" "cancelled" Current qualification status. |
| protocolReference | string <= 255 characters Reference to the qualification protocol document. |
| performedBy | string [ 1 .. 128 ] characters User who performed the qualification. |
| approvedBy | string [ 1 .. 128 ] characters User who approved the qualification. |
| plannedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Planned qualification date. |
| performedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Actual qualification date. |
| approvedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Approval date. |
| nextRequalificationDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Next requalification due date. |
| requalificationFrequencyMonths | integer ( 0 .. 9007199254740991 ] Requalification interval in months. |
| acceptanceCriteria | string <= 5000 characters Acceptance criteria for pass/fail determination. |
| results | string <= 5000 characters Qualification results and observations. |
| deviations | string <= 5000 characters Deviations found during qualification. |
| linkedCapaId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked CAPA for deviations. |
| linkedNcrId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked NCR for failures. |
| notes | string <= 5000 characters Additional notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object Equipment qualification record (IQ/OQ/PQ/DQ). |
required | object |
{- "equipmentId": "d2a795e1-f645-4e24-bc0a-ab1965048fcc",
- "qualificationId": "string",
- "qualificationType": "IQ",
- "title": "string",
- "description": "string",
- "status": "planned",
- "protocolReference": "string",
- "performedBy": "string",
- "approvedBy": "string",
- "plannedDate": "2019-08-24",
- "performedDate": "2019-08-24",
- "approvedDate": "2019-08-24",
- "nextRequalificationDate": "2019-08-24",
- "requalificationFrequencyMonths": 9007199254740991,
- "acceptanceCriteria": "string",
- "results": "string",
- "deviations": "string",
- "linkedCapaId": "dd361286-3806-4a46-b6e8-fa27be86e690",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "equipmentId": "d2a795e1-f645-4e24-bc0a-ab1965048fcc",
- "qualificationId": "string",
- "qualificationType": "IQ",
- "title": "string",
- "description": "string",
- "status": "planned",
- "protocolReference": "string",
- "performedBy": "string",
- "approvedBy": "string",
- "plannedDate": "2019-08-24",
- "performedDate": "2019-08-24",
- "approvedDate": "2019-08-24",
- "nextRequalificationDate": "2019-08-24",
- "requalificationFrequencyMonths": 9007199254740991,
- "acceptanceCriteria": "string",
- "results": "string",
- "deviations": "string",
- "linkedCapaId": "dd361286-3806-4a46-b6e8-fa27be86e690",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of supplierlots.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by supplier. |
| status | string Enum: "received" "quarantined" "released" "rejected" "returned" "consumed" "expired" "recalled" Filter by status. |
| isQuarantined | boolean Filter by quarantine status. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "lotId": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "lotNumber": "string",
- "batchNumber": "string",
- "productName": "string",
- "productCode": "string",
- "description": "string",
- "status": "received",
- "quantityReceived": 0,
- "quantityUnit": "string",
- "receivedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "certificateOfAnalysis": "string",
- "certificateOfConformance": "string",
- "inspectionStatus": "pending",
- "linkedInspectionId": "0edf4a40-25e8-47fb-a973-378e5f727620",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "storageLocation": "string",
- "isQuarantined": true,
- "quarantineReason": "string",
- "disposition": "accept",
- "dispositionDate": "2019-08-24",
- "dispositionBy": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a supplierlot within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| lotId required | string [ 1 .. 80 ] characters Human-readable lot ID. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked supplier. |
| lotNumber required | string [ 1 .. 100 ] characters Supplier lot number. |
| batchNumber | string <= 100 characters Supplier batch number. |
| productName required | string [ 1 .. 255 ] characters Product or material name. |
| productCode | string <= 100 characters Product or material code. |
| description | string <= 5000 characters Lot description. |
| status required | string Enum: "received" "quarantined" "released" "rejected" "returned" "consumed" "expired" "recalled" Current lot status. |
| quantityReceived | number Quantity received. |
| quantityUnit | string <= 50 characters Unit of measure for quantity. |
| receivedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date the lot was received. |
| expiryDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Lot expiry date. |
| certificateOfAnalysis | string <= 500 characters Certificate of analysis reference. |
| certificateOfConformance | string <= 500 characters Certificate of conformance reference. |
| inspectionStatus | string Enum: "pending" "passed" "failed" "waived" Incoming inspection status. |
| linkedInspectionId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked inspection record. |
| linkedNcrId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked NCR for rejected lots. |
| storageLocation | string <= 255 characters Storage location. |
| isQuarantined required | boolean Whether the lot is currently quarantined. |
| quarantineReason | string <= 2000 characters Reason for quarantine. |
| disposition | string Enum: "accept" "reject" "return_to_supplier" "rework" "scrap" "use_as_is" Disposition decision. |
| dispositionDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date of disposition decision. |
| dispositionBy | string [ 1 .. 128 ] characters User who made the disposition decision. |
| notes | string <= 5000 characters Additional notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object Supplier lot record for incoming material tracking. |
required | object |
{- "lotId": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "lotNumber": "string",
- "batchNumber": "string",
- "productName": "string",
- "productCode": "string",
- "description": "string",
- "status": "received",
- "quantityReceived": 0,
- "quantityUnit": "string",
- "receivedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "certificateOfAnalysis": "string",
- "certificateOfConformance": "string",
- "inspectionStatus": "pending",
- "linkedInspectionId": "0edf4a40-25e8-47fb-a973-378e5f727620",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "storageLocation": "string",
- "isQuarantined": true,
- "quarantineReason": "string",
- "disposition": "accept",
- "dispositionDate": "2019-08-24",
- "dispositionBy": "string",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "lotId": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "lotNumber": "string",
- "batchNumber": "string",
- "productName": "string",
- "productCode": "string",
- "description": "string",
- "status": "received",
- "quantityReceived": 0,
- "quantityUnit": "string",
- "receivedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "certificateOfAnalysis": "string",
- "certificateOfConformance": "string",
- "inspectionStatus": "pending",
- "linkedInspectionId": "0edf4a40-25e8-47fb-a973-378e5f727620",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "storageLocation": "string",
- "isQuarantined": true,
- "quarantineReason": "string",
- "disposition": "accept",
- "dispositionDate": "2019-08-24",
- "dispositionBy": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single supplierlot by identifier.
| lotId required | string <uuid> Supplier lot UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object Supplier lot record for incoming material tracking. |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "lotId": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "lotNumber": "string",
- "batchNumber": "string",
- "productName": "string",
- "productCode": "string",
- "description": "string",
- "status": "received",
- "quantityReceived": 0,
- "quantityUnit": "string",
- "receivedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "certificateOfAnalysis": "string",
- "certificateOfConformance": "string",
- "inspectionStatus": "pending",
- "linkedInspectionId": "0edf4a40-25e8-47fb-a973-378e5f727620",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "storageLocation": "string",
- "isQuarantined": true,
- "quarantineReason": "string",
- "disposition": "accept",
- "dispositionDate": "2019-08-24",
- "dispositionBy": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing supplierlot.
| lotId required | string <uuid> Supplier lot UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| lotId | string [ 1 .. 80 ] characters Human-readable lot ID. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked supplier. |
| lotNumber | string [ 1 .. 100 ] characters Supplier lot number. |
| batchNumber | string <= 100 characters Supplier batch number. |
| productName | string [ 1 .. 255 ] characters Product or material name. |
| productCode | string <= 100 characters Product or material code. |
| description | string <= 5000 characters Lot description. |
| status | string Enum: "received" "quarantined" "released" "rejected" "returned" "consumed" "expired" "recalled" Current lot status. |
| quantityReceived | number Quantity received. |
| quantityUnit | string <= 50 characters Unit of measure for quantity. |
| receivedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date the lot was received. |
| expiryDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Lot expiry date. |
| certificateOfAnalysis | string <= 500 characters Certificate of analysis reference. |
| certificateOfConformance | string <= 500 characters Certificate of conformance reference. |
| inspectionStatus | string Enum: "pending" "passed" "failed" "waived" Incoming inspection status. |
| linkedInspectionId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked inspection record. |
| linkedNcrId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked NCR for rejected lots. |
| storageLocation | string <= 255 characters Storage location. |
| isQuarantined | boolean Whether the lot is currently quarantined. |
| quarantineReason | string <= 2000 characters Reason for quarantine. |
| disposition | string Enum: "accept" "reject" "return_to_supplier" "rework" "scrap" "use_as_is" Disposition decision. |
| dispositionDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date of disposition decision. |
| dispositionBy | string [ 1 .. 128 ] characters User who made the disposition decision. |
| notes | string <= 5000 characters Additional notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object Supplier lot record for incoming material tracking. |
required | object |
{- "lotId": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "lotNumber": "string",
- "batchNumber": "string",
- "productName": "string",
- "productCode": "string",
- "description": "string",
- "status": "received",
- "quantityReceived": 0,
- "quantityUnit": "string",
- "receivedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "certificateOfAnalysis": "string",
- "certificateOfConformance": "string",
- "inspectionStatus": "pending",
- "linkedInspectionId": "0edf4a40-25e8-47fb-a973-378e5f727620",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "storageLocation": "string",
- "isQuarantined": true,
- "quarantineReason": "string",
- "disposition": "accept",
- "dispositionDate": "2019-08-24",
- "dispositionBy": "string",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "lotId": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "lotNumber": "string",
- "batchNumber": "string",
- "productName": "string",
- "productCode": "string",
- "description": "string",
- "status": "received",
- "quantityReceived": 0,
- "quantityUnit": "string",
- "receivedDate": "2019-08-24",
- "expiryDate": "2019-08-24",
- "certificateOfAnalysis": "string",
- "certificateOfConformance": "string",
- "inspectionStatus": "pending",
- "linkedInspectionId": "0edf4a40-25e8-47fb-a973-378e5f727620",
- "linkedNcrId": "a25b8858-84bc-4462-ae21-a03ed506f278",
- "storageLocation": "string",
- "isQuarantined": true,
- "quarantineReason": "string",
- "disposition": "accept",
- "dispositionDate": "2019-08-24",
- "dispositionBy": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of recallevents.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "initiated" "investigating" "containment" "notification" "remediation" "monitoring" "closed" Filter by status. |
| severity | string Enum: "low" "medium" "high" "critical" Filter by severity. |
| recallType | string Enum: "supplier" "internal" "customer" "regulatory" Filter by recall type. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by supplier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "recallId": "string",
- "title": "string",
- "description": "string",
- "recallType": "supplier",
- "status": "initiated",
- "severity": "low",
- "initiatedDate": "2019-08-24",
- "closedDate": "2019-08-24",
- "recallReference": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "affectedLotIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "affectedProductNames": [
- "string"
], - "affectedQuantity": 0,
- "affectedQuantityUnit": "string",
- "rootCause": "string",
- "containmentActions": "string",
- "correctiveActions": "string",
- "customerNotificationRequired": true,
- "customerNotificationDate": "2019-08-24",
- "regulatoryNotificationRequired": true,
- "regulatoryNotificationDate": "2019-08-24",
- "regulatoryReference": "string",
- "linkedComplaintIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "linkedNcrIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a recallevent within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| recallId required | string [ 1 .. 80 ] characters Human-readable recall event ID. |
| title required | string [ 1 .. 255 ] characters Recall event title. |
| description | string <= 5000 characters Detailed recall description. |
| recallType required | string Enum: "supplier" "internal" "customer" "regulatory" Type of recall. |
| status required | string Enum: "initiated" "investigating" "containment" "notification" "remediation" "monitoring" "closed" Current recall status. |
| severity required | string Enum: "low" "medium" "high" "critical" Recall severity level. |
| initiatedDate required | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date the recall was initiated. |
| closedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date the recall was closed. |
| recallReference | string <= 255 characters External recall reference number. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked supplier if supplier-initiated. |
| affectedLotIds | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] UUIDs of affected supplier lots. |
| affectedProductNames | Array of strings Names of affected products. |
| affectedQuantity | number Total affected quantity. |
| affectedQuantityUnit | string <= 50 characters Unit of measure for affected quantity. |
| rootCause | string <= 5000 characters Root cause analysis. |
| containmentActions | string <= 5000 characters Containment actions taken. |
| correctiveActions | string <= 5000 characters Corrective actions planned or taken. |
| customerNotificationRequired required | boolean Whether customer notification is required. |
| customerNotificationDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date customer was notified. |
| regulatoryNotificationRequired required | boolean Whether regulatory notification is required. |
| regulatoryNotificationDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date regulator was notified. |
| regulatoryReference | string <= 255 characters Regulatory notification reference. |
| linkedComplaintIds | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] UUIDs of linked complaints. |
| linkedNcrIds | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] UUIDs of linked NCRs. |
| notes | string <= 5000 characters Additional notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object Product/material recall event record. |
required | object |
{- "recallId": "string",
- "title": "string",
- "description": "string",
- "recallType": "supplier",
- "status": "initiated",
- "severity": "low",
- "initiatedDate": "2019-08-24",
- "closedDate": "2019-08-24",
- "recallReference": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "affectedLotIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "affectedProductNames": [
- "string"
], - "affectedQuantity": 0,
- "affectedQuantityUnit": "string",
- "rootCause": "string",
- "containmentActions": "string",
- "correctiveActions": "string",
- "customerNotificationRequired": true,
- "customerNotificationDate": "2019-08-24",
- "regulatoryNotificationRequired": true,
- "regulatoryNotificationDate": "2019-08-24",
- "regulatoryReference": "string",
- "linkedComplaintIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "linkedNcrIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "recallId": "string",
- "title": "string",
- "description": "string",
- "recallType": "supplier",
- "status": "initiated",
- "severity": "low",
- "initiatedDate": "2019-08-24",
- "closedDate": "2019-08-24",
- "recallReference": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "affectedLotIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "affectedProductNames": [
- "string"
], - "affectedQuantity": 0,
- "affectedQuantityUnit": "string",
- "rootCause": "string",
- "containmentActions": "string",
- "correctiveActions": "string",
- "customerNotificationRequired": true,
- "customerNotificationDate": "2019-08-24",
- "regulatoryNotificationRequired": true,
- "regulatoryNotificationDate": "2019-08-24",
- "regulatoryReference": "string",
- "linkedComplaintIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "linkedNcrIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single recallevent by identifier.
| recallId required | string <uuid> Recall event UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object Product/material recall event record. |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "recallId": "string",
- "title": "string",
- "description": "string",
- "recallType": "supplier",
- "status": "initiated",
- "severity": "low",
- "initiatedDate": "2019-08-24",
- "closedDate": "2019-08-24",
- "recallReference": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "affectedLotIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "affectedProductNames": [
- "string"
], - "affectedQuantity": 0,
- "affectedQuantityUnit": "string",
- "rootCause": "string",
- "containmentActions": "string",
- "correctiveActions": "string",
- "customerNotificationRequired": true,
- "customerNotificationDate": "2019-08-24",
- "regulatoryNotificationRequired": true,
- "regulatoryNotificationDate": "2019-08-24",
- "regulatoryReference": "string",
- "linkedComplaintIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "linkedNcrIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing recallevent.
| recallId required | string <uuid> Recall event UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| recallId | string [ 1 .. 80 ] characters Human-readable recall event ID. |
| title | string [ 1 .. 255 ] characters Recall event title. |
| description | string <= 5000 characters Detailed recall description. |
| recallType | string Enum: "supplier" "internal" "customer" "regulatory" Type of recall. |
| status | string Enum: "initiated" "investigating" "containment" "notification" "remediation" "monitoring" "closed" Current recall status. |
| severity | string Enum: "low" "medium" "high" "critical" Recall severity level. |
| initiatedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date the recall was initiated. |
| closedDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date the recall was closed. |
| recallReference | string <= 255 characters External recall reference number. |
| supplierId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked supplier if supplier-initiated. |
| affectedLotIds | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] UUIDs of affected supplier lots. |
| affectedProductNames | Array of strings Names of affected products. |
| affectedQuantity | number Total affected quantity. |
| affectedQuantityUnit | string <= 50 characters Unit of measure for affected quantity. |
| rootCause | string <= 5000 characters Root cause analysis. |
| containmentActions | string <= 5000 characters Containment actions taken. |
| correctiveActions | string <= 5000 characters Corrective actions planned or taken. |
| customerNotificationRequired | boolean Whether customer notification is required. |
| customerNotificationDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date customer was notified. |
| regulatoryNotificationRequired | boolean Whether regulatory notification is required. |
| regulatoryNotificationDate | string <date> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Date regulator was notified. |
| regulatoryReference | string <= 255 characters Regulatory notification reference. |
| linkedComplaintIds | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] UUIDs of linked complaints. |
| linkedNcrIds | Array of strings <uuid> [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] UUIDs of linked NCRs. |
| notes | string <= 5000 characters Additional notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object Product/material recall event record. |
required | object |
{- "recallId": "string",
- "title": "string",
- "description": "string",
- "recallType": "supplier",
- "status": "initiated",
- "severity": "low",
- "initiatedDate": "2019-08-24",
- "closedDate": "2019-08-24",
- "recallReference": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "affectedLotIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "affectedProductNames": [
- "string"
], - "affectedQuantity": 0,
- "affectedQuantityUnit": "string",
- "rootCause": "string",
- "containmentActions": "string",
- "correctiveActions": "string",
- "customerNotificationRequired": true,
- "customerNotificationDate": "2019-08-24",
- "regulatoryNotificationRequired": true,
- "regulatoryNotificationDate": "2019-08-24",
- "regulatoryReference": "string",
- "linkedComplaintIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "linkedNcrIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "recallId": "string",
- "title": "string",
- "description": "string",
- "recallType": "supplier",
- "status": "initiated",
- "severity": "low",
- "initiatedDate": "2019-08-24",
- "closedDate": "2019-08-24",
- "recallReference": "string",
- "supplierId": "e01eb4c4-8eb9-4fb7-b625-61f58c6148db",
- "affectedLotIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "affectedProductNames": [
- "string"
], - "affectedQuantity": 0,
- "affectedQuantityUnit": "string",
- "rootCause": "string",
- "containmentActions": "string",
- "correctiveActions": "string",
- "customerNotificationRequired": true,
- "customerNotificationDate": "2019-08-24",
- "regulatoryNotificationRequired": true,
- "regulatoryNotificationDate": "2019-08-24",
- "regulatoryReference": "string",
- "linkedComplaintIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "linkedNcrIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Execute a bulk action on multiple items. Maximum 100 items per request. Each item is processed independently — partial failures are reported per item.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| operationType required | string Enum: "approve" "reject" "reassign" "change_status" "change_priority" "extend_due_date" "delegate" "delete" "acknowledge" The bulk action to perform. |
| entityType required | string [ 1 .. 64 ] characters Entity type being operated on. |
| itemIds required | Array of strings <uuid> [ 1 .. 100 ] items [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ] IDs of items to process. Maximum 100 per request. |
object Action-specific parameters. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object Bulk operation record. |
object Response metadata. |
{- "operationType": "approve",
- "entityType": "string",
- "itemIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "parameters": {
- "property1": null,
- "property2": null
}
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "operationType": "string",
- "entityType": "string",
- "actorId": "d2f1b55c-8cee-4a0d-af57-aebaeff77518",
- "parameters": {
- "property1": null,
- "property2": null
}, - "totalItems": 9007199254740991,
- "succeeded": 9007199254740991,
- "failed": 9007199254740991,
- "skipped": 9007199254740991,
- "itemResults": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "success",
- "error": "string"
}
], - "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns a paginated list of bulk operation audit records for the organization.
| operationType | string Filter by operation type. |
| entityType | string Filter by entity type. |
| limit | integer [ 1 .. 100 ] Maximum results to return. |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects List of bulk operation records. |
object Response metadata. |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "operationType": "string",
- "entityType": "string",
- "actorId": "d2f1b55c-8cee-4a0d-af57-aebaeff77518",
- "parameters": {
- "property1": null,
- "property2": null
}, - "totalItems": 9007199254740991,
- "succeeded": 9007199254740991,
- "failed": 9007199254740991,
- "skipped": 9007199254740991,
- "itemResults": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "success",
- "error": "string"
}
], - "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Returns a single bulk operation audit record with per-item results.
| operationId required | string <uuid> Bulk operation identifier |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object Bulk operation record. |
object Response metadata. |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "operationType": "string",
- "entityType": "string",
- "actorId": "d2f1b55c-8cee-4a0d-af57-aebaeff77518",
- "parameters": {
- "property1": null,
- "property2": null
}, - "totalItems": 9007199254740991,
- "succeeded": 9007199254740991,
- "failed": 9007199254740991,
- "skipped": 9007199254740991,
- "itemResults": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "success",
- "error": "string"
}
], - "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns the organization's automation rules, optionally filtered by trigger event or active state.
| triggerEvent | string Filter by trigger event. |
| isActive | boolean Filter by active state. |
| limit | integer [ 1 .. 100 ] |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "triggerEvent": "string",
- "conditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": "string"
}
]
}, - "actions": [
- {
- "type": "create_entity",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "priority": -9007199254740991,
- "isActive": true,
- "runCount": -9007199254740991,
- "lastRunAt": "2019-08-24T14:15:22Z",
- "lastErrorAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Creates a new automation rule. The rule will fire on matching workflow events once activated.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters Rule display name. |
| description | string <= 1000 characters Optional rule description. |
| triggerEvent required | string [ 1 .. 128 ] characters Workflow event type that fires this rule. |
required | object or any Condition tree evaluated against the triggering event payload. |
required | Array of objects [ 1 .. 20 ] items At least one action (max 20). |
| priority | integer [ 0 .. 9999 ] Execution order. |
| isActive | boolean Whether to activate the rule immediately. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "name": "string",
- "description": "string",
- "triggerEvent": "string",
- "conditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": "string"
}
]
}, - "actions": [
- {
- "type": "create_entity",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "priority": 9999,
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "triggerEvent": "string",
- "conditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": "string"
}
]
}, - "actions": [
- {
- "type": "create_entity",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "priority": -9007199254740991,
- "isActive": true,
- "runCount": -9007199254740991,
- "lastRunAt": "2019-08-24T14:15:22Z",
- "lastErrorAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns a single automation rule by identifier.
| ruleId required | string <uuid> Automation rule identifier |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "triggerEvent": "string",
- "conditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": "string"
}
]
}, - "actions": [
- {
- "type": "create_entity",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "priority": -9007199254740991,
- "isActive": true,
- "runCount": -9007199254740991,
- "lastRunAt": "2019-08-24T14:15:22Z",
- "lastErrorAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Updates an existing automation rule. Each update creates a new version snapshot.
| ruleId required | string <uuid> Automation rule identifier |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters Rule display name. |
| description | string <= 1000 characters Optional rule description. |
| triggerEvent | string [ 1 .. 128 ] characters Workflow event type that fires this rule. |
object or any Condition tree evaluated against the triggering event payload. | |
Array of objects [ 1 .. 20 ] items At least one action (max 20). | |
| priority | integer [ 0 .. 9999 ] Execution order. |
| isActive | boolean Whether to activate the rule immediately. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "name": "string",
- "description": "string",
- "triggerEvent": "string",
- "conditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": "string"
}
]
}, - "actions": [
- {
- "type": "create_entity",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "priority": 9999,
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "triggerEvent": "string",
- "conditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": "string"
}
]
}, - "actions": [
- {
- "type": "create_entity",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "priority": -9007199254740991,
- "isActive": true,
- "runCount": -9007199254740991,
- "lastRunAt": "2019-08-24T14:15:22Z",
- "lastErrorAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns the automation rule execution audit log for the organization.
| ruleId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by rule. |
| triggerEvent | string Filter by event type. |
| conditionsMet | boolean Filter by match outcome. |
| limit | integer [ 1 .. 200 ] |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "ruleId": "70af3071-65d9-4ec3-b3cb-5283e8d55dac",
- "triggerEvent": "string",
- "eventPayload": {
- "property1": null,
- "property2": null
}, - "conditionsMet": true,
- "actionsExecuted": [
- {
- "type": "create_entity",
- "status": "success",
- "error": "string",
- "durationMs": 9007199254740991,
- "output": {
- "property1": null,
- "property2": null
}
}
], - "chainDepth": 9007199254740991,
- "correlationId": "string",
- "durationMs": 9007199254740991,
- "errorMessage": "string",
- "executedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Returns all workflow definitions for the organization, optionally filtered by entity type or active state.
| entityType | string Filter by entity type. |
| isActive | boolean Filter by active state. |
| isDraft | boolean Filter by draft state. |
| limit | integer [ 1 .. 100 ] |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "entityType": "string",
- "triggerStatusFrom": "string",
- "triggerStatusTo": "string",
- "version": -9007199254740991,
- "isActive": true,
- "isDraft": true,
- "graph": {
- "nodes": [
- {
- "id": "string",
- "type": "start",
- "label": "string",
- "position": {
- "x": 0,
- "y": 0
}, - "config": {
- "property1": null,
- "property2": null
}
}
], - "edges": [
- {
- "id": "string",
- "source": "string",
- "target": "string",
- "label": "string",
- "condition": null
}
], - "viewport": {
- "x": 0,
- "y": 0,
- "zoom": 0
}
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "activatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Creates a new workflow definition in draft status. Only draft workflows can be edited.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters |
| description | string <= 1000 characters |
| entityType required | string [ 1 .. 64 ] characters |
| triggerStatusFrom | string <= 64 characters |
| triggerStatusTo | string <= 64 characters |
required | object |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "name": "string",
- "description": "string",
- "entityType": "string",
- "triggerStatusFrom": "string",
- "triggerStatusTo": "string",
- "graph": {
- "nodes": [
- {
- "id": "string",
- "type": "start",
- "label": "string",
- "position": {
- "x": 0,
- "y": 0
}, - "config": {
- "property1": null,
- "property2": null
}
}
], - "edges": [
- {
- "id": "string",
- "source": "string",
- "target": "string",
- "label": "string",
- "condition": null
}
], - "viewport": {
- "x": 0,
- "y": 0,
- "zoom": 0
}
}
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "entityType": "string",
- "triggerStatusFrom": "string",
- "triggerStatusTo": "string",
- "version": -9007199254740991,
- "isActive": true,
- "isDraft": true,
- "graph": {
- "nodes": [
- {
- "id": "string",
- "type": "start",
- "label": "string",
- "position": {
- "x": 0,
- "y": 0
}, - "config": {
- "property1": null,
- "property2": null
}
}
], - "edges": [
- {
- "id": "string",
- "source": "string",
- "target": "string",
- "label": "string",
- "condition": null
}
], - "viewport": {
- "x": 0,
- "y": 0,
- "zoom": 0
}
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "activatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns a single workflow definition by identifier.
| definitionId required | string <uuid> Workflow definition identifier |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "entityType": "string",
- "triggerStatusFrom": "string",
- "triggerStatusTo": "string",
- "version": -9007199254740991,
- "isActive": true,
- "isDraft": true,
- "graph": {
- "nodes": [
- {
- "id": "string",
- "type": "start",
- "label": "string",
- "position": {
- "x": 0,
- "y": 0
}, - "config": {
- "property1": null,
- "property2": null
}
}
], - "edges": [
- {
- "id": "string",
- "source": "string",
- "target": "string",
- "label": "string",
- "condition": null
}
], - "viewport": {
- "x": 0,
- "y": 0,
- "zoom": 0
}
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "activatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Updates a draft workflow definition. Active workflows are immutable; create a new draft version to make changes.
| definitionId required | string <uuid> Workflow definition identifier |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters |
| description | string <= 1000 characters |
| entityType | string [ 1 .. 64 ] characters |
| triggerStatusFrom | string <= 64 characters |
| triggerStatusTo | string <= 64 characters |
object |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "name": "string",
- "description": "string",
- "entityType": "string",
- "triggerStatusFrom": "string",
- "triggerStatusTo": "string",
- "graph": {
- "nodes": [
- {
- "id": "string",
- "type": "start",
- "label": "string",
- "position": {
- "x": 0,
- "y": 0
}, - "config": {
- "property1": null,
- "property2": null
}
}
], - "edges": [
- {
- "id": "string",
- "source": "string",
- "target": "string",
- "label": "string",
- "condition": null
}
], - "viewport": {
- "x": 0,
- "y": 0,
- "zoom": 0
}
}
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "entityType": "string",
- "triggerStatusFrom": "string",
- "triggerStatusTo": "string",
- "version": -9007199254740991,
- "isActive": true,
- "isDraft": true,
- "graph": {
- "nodes": [
- {
- "id": "string",
- "type": "start",
- "label": "string",
- "position": {
- "x": 0,
- "y": 0
}, - "config": {
- "property1": null,
- "property2": null
}
}
], - "edges": [
- {
- "id": "string",
- "source": "string",
- "target": "string",
- "label": "string",
- "condition": null
}
], - "viewport": {
- "x": 0,
- "y": 0,
- "zoom": 0
}
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "activatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Validates the workflow graph and activates the definition. Any previously active version for the same entity/trigger pair is deactivated.
| definitionId required | string <uuid> Workflow definition identifier |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "entityType": "string",
- "triggerStatusFrom": "string",
- "triggerStatusTo": "string",
- "version": -9007199254740991,
- "isActive": true,
- "isDraft": true,
- "graph": {
- "nodes": [
- {
- "id": "string",
- "type": "start",
- "label": "string",
- "position": {
- "x": 0,
- "y": 0
}, - "config": {
- "property1": null,
- "property2": null
}
}
], - "edges": [
- {
- "id": "string",
- "source": "string",
- "target": "string",
- "label": "string",
- "condition": null
}
], - "viewport": {
- "x": 0,
- "y": 0,
- "zoom": 0
}
}, - "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "activatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns executing and historical workflow instances for the organization.
| status | string Enum: "active" "completed" "rejected" "cancelled" "error" |
| entityType | string |
| entityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| definitionId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| limit | integer [ 1 .. 200 ] |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "definitionId": "058563fe-6949-46e9-9fb3-06a0e3a11f6a",
- "definitionVersion": -9007199254740991,
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "status": "active",
- "currentNodeId": "string",
- "startedBy": "932a196a-d409-4047-802d-e8867bdcb77c",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Returns chain templates owned by the organization, plus system templates by default.
| category | string Enum: "complaint" "nonconformance" "audit_finding" "change_control" "deviation" "supplier_corrective_action" "general" |
| triggerEntityType | string |
| isActive | boolean |
| includeSystem | boolean |
| limit | integer [ 1 .. 100 ] |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "category": "complaint",
- "triggerEntityType": "string",
- "triggerConditions": null,
- "steps": [
- {
- "id": "string",
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}, - "nextStepId": "string",
- "trueStepId": "string",
- "falseStepId": "string",
- "parallelStepIds": [
- "string"
], - "joinStepId": "string"
}
], - "isSystem": true,
- "isActive": true,
- "version": -9007199254740991,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Creates a new chain template. Only user-owned templates can be created; system templates are immutable.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters |
| description | string <= 1000 characters |
| category required | string Enum: "complaint" "nonconformance" "audit_finding" "change_control" "deviation" "supplier_corrective_action" "general" |
| triggerEntityType required | string [ 1 .. 64 ] characters |
| triggerConditions | any |
required | Array of objects [ 1 .. 20 ] items |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "name": "string",
- "description": "string",
- "category": "complaint",
- "triggerEntityType": "string",
- "triggerConditions": null,
- "steps": [
- {
- "id": "string",
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}, - "nextStepId": "string",
- "trueStepId": "string",
- "falseStepId": "string",
- "parallelStepIds": [
- "string"
], - "joinStepId": "string"
}
]
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "category": "complaint",
- "triggerEntityType": "string",
- "triggerConditions": null,
- "steps": [
- {
- "id": "string",
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}, - "nextStepId": "string",
- "trueStepId": "string",
- "falseStepId": "string",
- "parallelStepIds": [
- "string"
], - "joinStepId": "string"
}
], - "isSystem": true,
- "isActive": true,
- "version": -9007199254740991,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns a single chain template by identifier.
| templateId required | string <uuid> Chain template identifier |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "category": "complaint",
- "triggerEntityType": "string",
- "triggerConditions": null,
- "steps": [
- {
- "id": "string",
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}, - "nextStepId": "string",
- "trueStepId": "string",
- "falseStepId": "string",
- "parallelStepIds": [
- "string"
], - "joinStepId": "string"
}
], - "isSystem": true,
- "isActive": true,
- "version": -9007199254740991,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Updates a user-owned chain template. System templates cannot be modified.
| templateId required | string <uuid> Chain template identifier |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters |
| description | string <= 1000 characters |
| category | string Enum: "complaint" "nonconformance" "audit_finding" "change_control" "deviation" "supplier_corrective_action" "general" |
| triggerEntityType | string [ 1 .. 64 ] characters |
| triggerConditions | any |
Array of objects [ 1 .. 20 ] items |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "name": "string",
- "description": "string",
- "category": "complaint",
- "triggerEntityType": "string",
- "triggerConditions": null,
- "steps": [
- {
- "id": "string",
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}, - "nextStepId": "string",
- "trueStepId": "string",
- "falseStepId": "string",
- "parallelStepIds": [
- "string"
], - "joinStepId": "string"
}
]
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "category": "complaint",
- "triggerEntityType": "string",
- "triggerConditions": null,
- "steps": [
- {
- "id": "string",
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}, - "nextStepId": "string",
- "trueStepId": "string",
- "falseStepId": "string",
- "parallelStepIds": [
- "string"
], - "joinStepId": "string"
}
], - "isSystem": true,
- "isActive": true,
- "version": -9007199254740991,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Clones a template (including system templates) into a new org-owned draft.
| templateId required | string <uuid> Chain template identifier |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "category": "complaint",
- "triggerEntityType": "string",
- "triggerConditions": null,
- "steps": [
- {
- "id": "string",
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}, - "nextStepId": "string",
- "trueStepId": "string",
- "falseStepId": "string",
- "parallelStepIds": [
- "string"
], - "joinStepId": "string"
}
], - "isSystem": true,
- "isActive": true,
- "version": -9007199254740991,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns executing and historical chain instances for the organization.
| status | string Enum: "active" "completed" "cancelled" "error" |
| rootEntityType | string |
| rootEntityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| templateId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| limit | integer [ 1 .. 200 ] |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "templateVersion": -9007199254740991,
- "templateName": "string",
- "rootEntityType": "string",
- "rootEntityId": "ffcdb974-7dd1-4727-b1cd-39415010f491",
- "status": "active",
- "currentStepIds": [
- "string"
], - "startedBy": "932a196a-d409-4047-802d-e8867bdcb77c",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Starts a new chain instance against a root entity using the specified template.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| templateId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Chain template to instantiate. |
| rootEntityType required | string [ 1 .. 64 ] characters Entity type that starts the chain. |
| rootEntityId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Entity instance that the chain will run against. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "rootEntityType": "string",
- "rootEntityId": "ffcdb974-7dd1-4727-b1cd-39415010f491"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "templateVersion": -9007199254740991,
- "templateName": "string",
- "rootEntityType": "string",
- "rootEntityId": "ffcdb974-7dd1-4727-b1cd-39415010f491",
- "status": "active",
- "currentStepIds": [
- "string"
], - "startedBy": "932a196a-d409-4047-802d-e8867bdcb77c",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "errorMessage": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Inbound event gateway — accept events from external systems and route them through automation rules.
Accept an event pushed by an external system. The gateway authenticates the source, optionally verifies an HMAC signature or IP allowlist, validates the payload against the registered schema, applies field mappings, records an audit row, and dispatches to the automation rule engine.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| event_type | string [ 1 .. 128 ] characters Event type identifier. May also be supplied via the X-Event-Type header. |
| event_id | string [ 8 .. 255 ] characters Unique event identifier used for idempotency. |
| timestamp | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Event timestamp emitted by the source system. |
object Event-specific payload fields. | |
| property name* additional property | any |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
| status required | string Enum: "accepted" "duplicate" Pipeline outcome for this delivery. |
| deliveryId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Identifier of the audit row created for this delivery. |
| eventType required | string Event type identifier echoed back. |
| internalEventType | string Internal workflow event type emitted. |
object Entity auto-created as a result of this delivery. | |
object |
{- "event_type": "string",
- "event_id": "stringst",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": {
- "property1": null,
- "property2": null
}, - "property1": null,
- "property2": null
}{- "status": "accepted",
- "deliveryId": "73dc828d-801d-4d29-b7e4-e046662a5901",
- "eventType": "string",
- "internalEventType": "string",
- "autoCreatedEntity": {
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns a cursor-paginated collection of inboundeventsources.
| isActive | boolean Filter by active state. |
| limit | integer [ 1 .. 100 ] |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "verificationMode": "api_key_only",
- "allowedIps": [
- "string"
], - "apiKeyId": "37ba0474-c0bb-4910-bfb5-d6cebb614366",
- "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Creates a inboundeventsource within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters Human-readable source name. |
| description | string <= 1000 characters Operator-facing description. |
| verificationMode required | string Enum: "api_key_only" "hmac_signature" "ip_allowlist" How inbound requests from this source are authenticated. |
| signingSecret | string [ 16 .. 256 ] characters HMAC signing secret; auto-generated if omitted in hmac mode. |
| allowedIps | Array of strings <= 20 items [ items [ 1 .. 64 ] characters ] CIDR allowlist applied when verification mode is ip_allowlist. |
| apiKeyId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... API key bound to this source. |
| isActive | boolean Whether to activate the source immediately. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "name": "string",
- "description": "string",
- "verificationMode": "api_key_only",
- "signingSecret": "stringstringstri",
- "allowedIps": [
- "string"
], - "apiKeyId": "37ba0474-c0bb-4910-bfb5-d6cebb614366",
- "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "verificationMode": "api_key_only",
- "allowedIps": [
- "string"
], - "apiKeyId": "37ba0474-c0bb-4910-bfb5-d6cebb614366",
- "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns a single inboundeventsource by identifier.
| sourceId required | string <uuid> Inbound event source identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "verificationMode": "api_key_only",
- "allowedIps": [
- "string"
], - "apiKeyId": "37ba0474-c0bb-4910-bfb5-d6cebb614366",
- "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Applies a partial update to an existing inboundeventsource.
| sourceId required | string <uuid> Inbound event source identifier. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters Human-readable source name. |
| description | string <= 1000 characters Operator-facing description. |
| verificationMode | string Enum: "api_key_only" "hmac_signature" "ip_allowlist" How inbound requests from this source are authenticated. |
| signingSecret | string [ 16 .. 256 ] characters HMAC signing secret; auto-generated if omitted in hmac mode. |
| allowedIps | Array of strings <= 20 items [ items [ 1 .. 64 ] characters ] CIDR allowlist applied when verification mode is ip_allowlist. |
| apiKeyId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... API key bound to this source. |
| isActive | boolean Whether to activate the source immediately. |
| rotateSigningSecret | boolean Regenerate the signing secret on save. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "name": "string",
- "description": "string",
- "verificationMode": "api_key_only",
- "signingSecret": "stringstringstri",
- "allowedIps": [
- "string"
], - "apiKeyId": "37ba0474-c0bb-4910-bfb5-d6cebb614366",
- "isActive": true,
- "rotateSigningSecret": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "verificationMode": "api_key_only",
- "allowedIps": [
- "string"
], - "apiKeyId": "37ba0474-c0bb-4910-bfb5-d6cebb614366",
- "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns a cursor-paginated collection of inboundeventtypes.
| sourceId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by source. |
| isActive | boolean Filter by active state. |
| limit | integer [ 1 .. 100 ] |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "eventTypeKey": "string",
- "description": "string",
- "payloadSchema": {
- "property1": null,
- "property2": null
}, - "transformation": {
- "mappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "staticFields": {
- "property1": null,
- "property2": null
}
}, - "internalEventType": "string",
- "autoCreateEntity": true,
- "autoCreateConfig": {
- "entityType": "string",
- "fieldMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "defaults": {
- "property1": null,
- "property2": null
}, - "linkTo": {
- "entityType": "string",
- "entityIdField": "string"
}
}, - "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Creates a inboundeventtype within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| sourceId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Source that will emit events of this type. |
| eventTypeKey required | string [ 1 .. 128 ] characters External event type identifier. |
| description | string <= 1000 characters Operator-facing description. |
object Optional JSON Schema used to validate inbound payloads. | |
object Field mapping configuration. | |
| internalEventType | string <= 128 characters Workflow event type emitted after dispatch. Defaults to custom:webhook_received. |
| autoCreateEntity | boolean Whether to auto-create a QMS entity on dispatch. |
object Auto-create configuration. | |
| isActive | boolean Whether to activate the event type immediately. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "eventTypeKey": "string",
- "description": "string",
- "payloadSchema": {
- "property1": null,
- "property2": null
}, - "transformation": {
- "mappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "staticFields": {
- "property1": null,
- "property2": null
}
}, - "internalEventType": "string",
- "autoCreateEntity": true,
- "autoCreateConfig": {
- "entityType": "string",
- "fieldMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "defaults": {
- "property1": null,
- "property2": null
}, - "linkTo": {
- "entityType": "string",
- "entityIdField": "string"
}
}, - "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "eventTypeKey": "string",
- "description": "string",
- "payloadSchema": {
- "property1": null,
- "property2": null
}, - "transformation": {
- "mappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "staticFields": {
- "property1": null,
- "property2": null
}
}, - "internalEventType": "string",
- "autoCreateEntity": true,
- "autoCreateConfig": {
- "entityType": "string",
- "fieldMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "defaults": {
- "property1": null,
- "property2": null
}, - "linkTo": {
- "entityType": "string",
- "entityIdField": "string"
}
}, - "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns a single inboundeventtype by identifier.
| typeId required | string <uuid> Inbound event type identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "eventTypeKey": "string",
- "description": "string",
- "payloadSchema": {
- "property1": null,
- "property2": null
}, - "transformation": {
- "mappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "staticFields": {
- "property1": null,
- "property2": null
}
}, - "internalEventType": "string",
- "autoCreateEntity": true,
- "autoCreateConfig": {
- "entityType": "string",
- "fieldMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "defaults": {
- "property1": null,
- "property2": null
}, - "linkTo": {
- "entityType": "string",
- "entityIdField": "string"
}
}, - "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Applies a partial update to an existing inboundeventtype.
| typeId required | string <uuid> Inbound event type identifier. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| sourceId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Source that will emit events of this type. |
| eventTypeKey | string [ 1 .. 128 ] characters External event type identifier. |
| description | string <= 1000 characters Operator-facing description. |
object Optional JSON Schema used to validate inbound payloads. | |
object Field mapping configuration. | |
| internalEventType | string <= 128 characters Workflow event type emitted after dispatch. Defaults to custom:webhook_received. |
| autoCreateEntity | boolean Whether to auto-create a QMS entity on dispatch. |
object Auto-create configuration. | |
| isActive | boolean Whether to activate the event type immediately. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "eventTypeKey": "string",
- "description": "string",
- "payloadSchema": {
- "property1": null,
- "property2": null
}, - "transformation": {
- "mappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "staticFields": {
- "property1": null,
- "property2": null
}
}, - "internalEventType": "string",
- "autoCreateEntity": true,
- "autoCreateConfig": {
- "entityType": "string",
- "fieldMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "defaults": {
- "property1": null,
- "property2": null
}, - "linkTo": {
- "entityType": "string",
- "entityIdField": "string"
}
}, - "isActive": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "eventTypeKey": "string",
- "description": "string",
- "payloadSchema": {
- "property1": null,
- "property2": null
}, - "transformation": {
- "mappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "staticFields": {
- "property1": null,
- "property2": null
}
}, - "internalEventType": "string",
- "autoCreateEntity": true,
- "autoCreateConfig": {
- "entityType": "string",
- "fieldMappings": [
- {
- "sourceField": "string",
- "targetField": "string",
- "transform": "none",
- "valueMap": {
- "property1": "string",
- "property2": "string"
}
}
], - "defaults": {
- "property1": null,
- "property2": null
}, - "linkTo": {
- "entityType": "string",
- "entityIdField": "string"
}
}, - "isActive": true,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns an audit log of inbound events received by the gateway with raw and transformed payloads, dispatch status, and processing metrics.
| sourceId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by source. |
| eventTypeKey | string Filter by event type key. |
| status | string Enum: "received" "validated" "transformed" "dispatched" "failed" "rejected" "duplicate" Filter by delivery status. |
| fromDate | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Return deliveries received at or after this timestamp. |
| toDate | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Return deliveries received at or before this timestamp. |
| limit | integer [ 1 .. 200 ] |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "eventTypeKey": "string",
- "eventTypeId": "f899218d-6f2c-4300-8a70-a6910536041b",
- "rawPayload": {
- "property1": null,
- "property2": null
}, - "transformedPayload": {
- "property1": null,
- "property2": null
}, - "status": "received",
- "errorMessage": "string",
- "sourceIp": "string",
- "idempotencyKey": "string",
- "autoCreatedEntityType": "string",
- "autoCreatedEntityId": "1b63ca89-3459-40c3-8162-d27ad8103c8d",
- "processingTimeMs": 9007199254740991,
- "receivedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Returns a single inbound delivery including raw payload, transformed payload, and any auto-created entity reference.
| deliveryId required | string <uuid> Inbound delivery identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "eventTypeKey": "string",
- "eventTypeId": "f899218d-6f2c-4300-8a70-a6910536041b",
- "rawPayload": {
- "property1": null,
- "property2": null
}, - "transformedPayload": {
- "property1": null,
- "property2": null
}, - "status": "received",
- "errorMessage": "string",
- "sourceIp": "string",
- "idempotencyKey": "string",
- "autoCreatedEntityType": "string",
- "autoCreatedEntityId": "1b63ca89-3459-40c3-8162-d27ad8103c8d",
- "processingTimeMs": 9007199254740991,
- "receivedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Process map live data linking — bind diagram nodes to QMS entities and surface per-node health.
Returns all entity links for the specified process map, optionally scoped to a single node.
| processMapId required | string <uuid> Process map identifier. |
| processMapId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by process map. |
| nodeId | string [ 1 .. 255 ] characters Filter by node identifier. |
| linkType | string Enum: "document" "risk" "control" "training" "objective" "standard_clause" "equipment" "role" Filter by link type. |
| limit | integer [ 1 .. 200 ] |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "processMapId": "e422f0c9-86de-41ed-b5aa-ed7e68a5f42e",
- "nodeId": "string",
- "linkType": "document",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "entityLabel": "string",
- "notes": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Links a process map node to a QMS entity (document, risk, control, training, objective, standard clause, equipment, or role).
| processMapId required | string <uuid> Process map identifier. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| processMapId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Process map the node belongs to. |
| nodeId required | string [ 1 .. 255 ] characters Node identifier inside the process map graph. |
| linkType required | string Enum: "document" "risk" "control" "training" "objective" "standard_clause" "equipment" "role" Kind of QMS entity linked to a process map node. |
| entityId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Linked entity identifier. |
| entityLabel | string <= 512 characters Display label cached for performance. |
| notes | string <= 2000 characters Operator notes about the link. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "processMapId": "e422f0c9-86de-41ed-b5aa-ed7e68a5f42e",
- "nodeId": "string",
- "linkType": "document",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "entityLabel": "string",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "processMapId": "e422f0c9-86de-41ed-b5aa-ed7e68a5f42e",
- "nodeId": "string",
- "linkType": "document",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "entityLabel": "string",
- "notes": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Updates the cached label or notes on an existing node link. The target entity and node cannot be changed — delete and recreate the link instead.
| processMapId required | string <uuid> Process map identifier. |
| linkId required | string <uuid> Node link identifier. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| entityLabel | string <= 512 characters Updated cached display label. |
| notes | string <= 2000 characters Updated operator notes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "entityLabel": "string",
- "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "processMapId": "e422f0c9-86de-41ed-b5aa-ed7e68a5f42e",
- "nodeId": "string",
- "linkType": "document",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "entityLabel": "string",
- "notes": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns cached per-node health plus an aggregate summary for the whole process map. Call the refresh endpoint to recompute.
| processMapId required | string <uuid> Process map identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "data": {
- "summary": {
- "processMapId": "e422f0c9-86de-41ed-b5aa-ed7e68a5f42e",
- "totalNodes": 9007199254740991,
- "healthyCount": 9007199254740991,
- "warningCount": 9007199254740991,
- "criticalCount": 9007199254740991,
- "issueCount": 9007199254740991,
- "lastCalculatedAt": "2019-08-24T14:15:22Z"
}, - "nodes": [
- {
- "processMapId": "e422f0c9-86de-41ed-b5aa-ed7e68a5f42e",
- "nodeId": "string",
- "status": "healthy",
- "issueCount": 9007199254740991,
- "issues": [
- {
- "linkType": "document",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "entityLabel": "string",
- "issue": "string",
- "severity": "warning"
}
], - "lastCalculatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "meta": {
- "property1": null,
- "property2": null
}
}Recomputes health for every node with at least one link, writes the result to the health cache, and returns the updated records. Stale cache rows for nodes not present in nodeIds are pruned.
| processMapId required | string <uuid> Process map identifier. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| nodeIds required | Array of strings [ 0 .. 500 ] items [ items [ 1 .. 255 ] characters ] Current node IDs in the process map graph. Stale cache rows for other node IDs are pruned. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "nodeIds": [
- "string"
]
}{- "data": {
- "processMapId": "e422f0c9-86de-41ed-b5aa-ed7e68a5f42e",
- "rollup": "healthy",
- "nodes": [
- {
- "processMapId": "e422f0c9-86de-41ed-b5aa-ed7e68a5f42e",
- "nodeId": "string",
- "status": "healthy",
- "issueCount": 9007199254740991,
- "issues": [
- {
- "linkType": "document",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "entityLabel": "string",
- "issue": "string",
- "severity": "warning"
}
], - "lastCalculatedAt": "2019-08-24T14:15:22Z"
}
]
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns a cursor-paginated collection of remediationflowtemplates.
| entityType | string Enum: "non_conformity" "capa" "complaint" "quality_event" "audit_finding" "change_request" "supplier_corrective_action" Filter by entity type. |
| isSystem | boolean Filter system vs org templates. |
| isActive | boolean Filter by active state. |
| limit | integer [ 1 .. 100 ] |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "non_conformity",
- "matchConditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}, - "steps": [
- {
- "id": "string",
- "order": 9007199254740991,
- "title": "string",
- "description": "string",
- "icon": "string",
- "estimatedDuration": "string",
- "completionCriteria": {
- "type": "checklist",
- "checklistItems": [
- {
- "id": "string",
- "label": "string",
- "required": true
}
], - "targetStatus": "string",
- "requiredFields": [
- "string"
], - "actionSourceType": "string"
}, - "guidance": {
- "instructions": "string",
- "tips": [
- "string"
], - "warnings": [
- "string"
], - "relatedGuideTopicId": "string",
- "exampleText": "string"
}, - "availableActions": [
- {
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "requiredWhen": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}
}
], - "isSystem": true,
- "isActive": true,
- "sortOrder": -9007199254740991,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Creates a remediationflowtemplate within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters Template name. |
| description | string <= 2000 characters Operator description. |
| entityType required | string Enum: "non_conformity" "capa" "complaint" "quality_event" "audit_finding" "change_request" "supplier_corrective_action" Entity type a remediation flow applies to. |
object Reuses the Epic 04 condition expression shape. | |
required | Array of objects [ 1 .. 25 ] items Step definitions. |
| isActive | boolean Defaults to true. |
| sortOrder | integer [ 0 .. 10000 ] Defaults to 100. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "name": "string",
- "description": "string",
- "entityType": "non_conformity",
- "matchConditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}, - "steps": [
- {
- "id": "string",
- "order": 9007199254740991,
- "title": "string",
- "description": "string",
- "icon": "string",
- "estimatedDuration": "string",
- "completionCriteria": {
- "type": "checklist",
- "checklistItems": [
- {
- "id": "string",
- "label": "string",
- "required": true
}
], - "targetStatus": "string",
- "requiredFields": [
- "string"
], - "actionSourceType": "string"
}, - "guidance": {
- "instructions": "string",
- "tips": [
- "string"
], - "warnings": [
- "string"
], - "relatedGuideTopicId": "string",
- "exampleText": "string"
}, - "availableActions": [
- {
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "requiredWhen": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}
}
], - "isActive": true,
- "sortOrder": 10000
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "non_conformity",
- "matchConditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}, - "steps": [
- {
- "id": "string",
- "order": 9007199254740991,
- "title": "string",
- "description": "string",
- "icon": "string",
- "estimatedDuration": "string",
- "completionCriteria": {
- "type": "checklist",
- "checklistItems": [
- {
- "id": "string",
- "label": "string",
- "required": true
}
], - "targetStatus": "string",
- "requiredFields": [
- "string"
], - "actionSourceType": "string"
}, - "guidance": {
- "instructions": "string",
- "tips": [
- "string"
], - "warnings": [
- "string"
], - "relatedGuideTopicId": "string",
- "exampleText": "string"
}, - "availableActions": [
- {
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "requiredWhen": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}
}
], - "isSystem": true,
- "isActive": true,
- "sortOrder": -9007199254740991,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns a single remediationflowtemplate by identifier.
| templateId required | string <uuid> Remediation flow template identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "non_conformity",
- "matchConditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}, - "steps": [
- {
- "id": "string",
- "order": 9007199254740991,
- "title": "string",
- "description": "string",
- "icon": "string",
- "estimatedDuration": "string",
- "completionCriteria": {
- "type": "checklist",
- "checklistItems": [
- {
- "id": "string",
- "label": "string",
- "required": true
}
], - "targetStatus": "string",
- "requiredFields": [
- "string"
], - "actionSourceType": "string"
}, - "guidance": {
- "instructions": "string",
- "tips": [
- "string"
], - "warnings": [
- "string"
], - "relatedGuideTopicId": "string",
- "exampleText": "string"
}, - "availableActions": [
- {
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "requiredWhen": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}
}
], - "isSystem": true,
- "isActive": true,
- "sortOrder": -9007199254740991,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Applies a partial update to an existing remediationflowtemplate.
| templateId required | string <uuid> Remediation flow template identifier. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters Template name. |
| description | string <= 2000 characters Operator description. |
| entityType | string Enum: "non_conformity" "capa" "complaint" "quality_event" "audit_finding" "change_request" "supplier_corrective_action" Entity type a remediation flow applies to. |
object Reuses the Epic 04 condition expression shape. | |
Array of objects [ 1 .. 25 ] items Step definitions. | |
| isActive | boolean Defaults to true. |
| sortOrder | integer [ 0 .. 10000 ] Defaults to 100. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "name": "string",
- "description": "string",
- "entityType": "non_conformity",
- "matchConditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}, - "steps": [
- {
- "id": "string",
- "order": 9007199254740991,
- "title": "string",
- "description": "string",
- "icon": "string",
- "estimatedDuration": "string",
- "completionCriteria": {
- "type": "checklist",
- "checklistItems": [
- {
- "id": "string",
- "label": "string",
- "required": true
}
], - "targetStatus": "string",
- "requiredFields": [
- "string"
], - "actionSourceType": "string"
}, - "guidance": {
- "instructions": "string",
- "tips": [
- "string"
], - "warnings": [
- "string"
], - "relatedGuideTopicId": "string",
- "exampleText": "string"
}, - "availableActions": [
- {
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "requiredWhen": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}
}
], - "isActive": true,
- "sortOrder": 10000
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "entityType": "non_conformity",
- "matchConditions": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}, - "steps": [
- {
- "id": "string",
- "order": 9007199254740991,
- "title": "string",
- "description": "string",
- "icon": "string",
- "estimatedDuration": "string",
- "completionCriteria": {
- "type": "checklist",
- "checklistItems": [
- {
- "id": "string",
- "label": "string",
- "required": true
}
], - "targetStatus": "string",
- "requiredFields": [
- "string"
], - "actionSourceType": "string"
}, - "guidance": {
- "instructions": "string",
- "tips": [
- "string"
], - "warnings": [
- "string"
], - "relatedGuideTopicId": "string",
- "exampleText": "string"
}, - "availableActions": [
- {
- "type": "create_entity",
- "label": "string",
- "config": {
- "property1": null,
- "property2": null
}
}
], - "requiredWhen": {
- "mode": "simple",
- "operator": "and",
- "rules": [
- {
- "field": "string",
- "operator": "eq",
- "value": null
}
], - "children": [
- null
]
}
}
], - "isSystem": true,
- "isActive": true,
- "sortOrder": -9007199254740991,
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Returns the currently active remediation flow for a given entity or null if no flow is active.
| entityType required | string <uuid> QMS entity type (non_conformity, capa, complaint, etc.). |
| entityId required | string <uuid> Target entity identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object or null Flow instance or null when no template matched. |
object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "status": "active",
- "currentStepId": "string",
- "stepProgress": {
- "property1": {
- "status": "pending",
- "checklistState": {
- "property1": true,
- "property2": true
}, - "completedAt": "2019-08-24T14:15:22Z",
- "completedBy": "2ba8855d-779c-4ca1-9d57-eeb46654c1ad",
- "notes": "string"
}, - "property2": {
- "status": "pending",
- "checklistState": {
- "property1": true,
- "property2": true
}, - "completedAt": "2019-08-24T14:15:22Z",
- "completedBy": "2ba8855d-779c-4ca1-9d57-eeb46654c1ad",
- "notes": "string"
}
}, - "startedBy": "932a196a-d409-4047-802d-e8867bdcb77c",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "abandonedAt": "2019-08-24T14:15:22Z",
- "abandonedReason": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Starts a remediation flow for an entity. Supply a template id to pick one explicitly, or omit to let the server auto-select the highest-priority matching template. Returns null when no template applies.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| templateId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Force a specific template; omit to auto-select via match conditions. |
| entityType required | string Enum: "non_conformity" "capa" "complaint" "quality_event" "audit_finding" "change_request" "supplier_corrective_action" Entity type a remediation flow applies to. |
| entityId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object or null Flow instance or null when no template matched. |
object |
{- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "entityType": "non_conformity",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "status": "active",
- "currentStepId": "string",
- "stepProgress": {
- "property1": {
- "status": "pending",
- "checklistState": {
- "property1": true,
- "property2": true
}, - "completedAt": "2019-08-24T14:15:22Z",
- "completedBy": "2ba8855d-779c-4ca1-9d57-eeb46654c1ad",
- "notes": "string"
}, - "property2": {
- "status": "pending",
- "checklistState": {
- "property1": true,
- "property2": true
}, - "completedAt": "2019-08-24T14:15:22Z",
- "completedBy": "2ba8855d-779c-4ca1-9d57-eeb46654c1ad",
- "notes": "string"
}
}, - "startedBy": "932a196a-d409-4047-802d-e8867bdcb77c",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "abandonedAt": "2019-08-24T14:15:22Z",
- "abandonedReason": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Updates checklist state and/or notes for a step inside an active remediation flow. Does not advance the flow.
| flowId required | string <uuid> Remediation flow instance identifier. |
| stepId required | string <uuid> Step identifier inside the template steps array. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
object Updated checklist state for the step. | |
| notes | string <= 4000 characters Updated notes for the step. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object or null Flow instance or null when no template matched. |
object |
{- "checklistState": {
- "property1": true,
- "property2": true
}, - "notes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "status": "active",
- "currentStepId": "string",
- "stepProgress": {
- "property1": {
- "status": "pending",
- "checklistState": {
- "property1": true,
- "property2": true
}, - "completedAt": "2019-08-24T14:15:22Z",
- "completedBy": "2ba8855d-779c-4ca1-9d57-eeb46654c1ad",
- "notes": "string"
}, - "property2": {
- "status": "pending",
- "checklistState": {
- "property1": true,
- "property2": true
}, - "completedAt": "2019-08-24T14:15:22Z",
- "completedBy": "2ba8855d-779c-4ca1-9d57-eeb46654c1ad",
- "notes": "string"
}
}, - "startedBy": "932a196a-d409-4047-802d-e8867bdcb77c",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "abandonedAt": "2019-08-24T14:15:22Z",
- "abandonedReason": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Completes the step after validating its completion criteria (checklist, entity status, field population, or manual). Advances the flow to the next applicable step, skipping steps whose requiredWhen condition evaluates false against current entity data.
| flowId required | string <uuid> Remediation flow instance identifier. |
| stepId required | string <uuid> Step identifier inside the template steps array. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| force | boolean Reserved for future use; currently ignored. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object or null Flow instance or null when no template matched. |
object |
{- "force": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "status": "active",
- "currentStepId": "string",
- "stepProgress": {
- "property1": {
- "status": "pending",
- "checklistState": {
- "property1": true,
- "property2": true
}, - "completedAt": "2019-08-24T14:15:22Z",
- "completedBy": "2ba8855d-779c-4ca1-9d57-eeb46654c1ad",
- "notes": "string"
}, - "property2": {
- "status": "pending",
- "checklistState": {
- "property1": true,
- "property2": true
}, - "completedAt": "2019-08-24T14:15:22Z",
- "completedBy": "2ba8855d-779c-4ca1-9d57-eeb46654c1ad",
- "notes": "string"
}
}, - "startedBy": "932a196a-d409-4047-802d-e8867bdcb77c",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "abandonedAt": "2019-08-24T14:15:22Z",
- "abandonedReason": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Connected email-sending identities — list, read, and update non-secret metadata. Credential-bearing operations (create, rotate, delete) stay in-app only.
Returns a cursor-paginated collection of email senders for the caller's organization.
| scope | string Enum: "user" "org" "platform" Filter by sender scope (user / org / platform). |
| kind | string Enum: "smtp" "microsoft_oauth" "gmail_oauth" "platform_ses" Filter by provider kind. |
| isDefaultOrg | boolean Filter to the org-default sender only. |
| limit | integer [ 1 .. 100 ] Maximum rows to return. |
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "integrationId": "497a18ca-284e-40c0-985d-f72be35d468e",
- "kind": "smtp",
- "scope": "user",
- "senderType": "personal",
- "authMode": "delegated",
- "fromAddress": "string",
- "fromName": "string",
- "replyTo": "string",
- "authenticatingPrincipal": "string",
- "supportsInbound": true,
- "inboundAddress": "string",
- "isDefaultOrg": true,
- "verifiedAt": "2019-08-24T14:15:22Z",
- "verificationError": "string",
- "dailySendCount": -9007199254740991,
- "dailySendResetAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "property1": null,
- "property2": null
}
}Returns a single email sender. Credentials are never included — they are kept in Supabase Vault.
| senderId required | string <uuid> Email sender UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "integrationId": "497a18ca-284e-40c0-985d-f72be35d468e",
- "kind": "smtp",
- "scope": "user",
- "senderType": "personal",
- "authMode": "delegated",
- "fromAddress": "string",
- "fromName": "string",
- "replyTo": "string",
- "authenticatingPrincipal": "string",
- "supportsInbound": true,
- "inboundAddress": "string",
- "isDefaultOrg": true,
- "verifiedAt": "2019-08-24T14:15:22Z",
- "verificationError": "string",
- "dailySendCount": -9007199254740991,
- "dailySendResetAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Updates non-secret metadata on an email sender — display name, reply-to, and default-sender flag. Passwords, OAuth tokens, and tenant consents are managed from inside the Q360 app.
| senderId required | string <uuid> Email sender UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
string or null Display name shown to recipients. Pass null to clear. | |
string or null Reply-To override for outbound notifications. Pass null to clear. | |
| isDefaultOrg | boolean Mark this sender as the organization default. Only one org-scoped sender may be default at a time. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
object |
{- "fromName": "string",
- "replyTo": "string",
- "isDefaultOrg": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "integrationId": "497a18ca-284e-40c0-985d-f72be35d468e",
- "kind": "smtp",
- "scope": "user",
- "senderType": "personal",
- "authMode": "delegated",
- "fromAddress": "string",
- "fromName": "string",
- "replyTo": "string",
- "authenticatingPrincipal": "string",
- "supportsInbound": true,
- "inboundAddress": "string",
- "isDefaultOrg": true,
- "verifiedAt": "2019-08-24T14:15:22Z",
- "verificationError": "string",
- "dailySendCount": -9007199254740991,
- "dailySendResetAt": "2019-08-24T14:15:22Z",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "property1": null,
- "property2": null
}
}Per-organization email templates. Each template is classified by domain (capa, document, audit, …) and kind (notification, reminder, overdue, …) so consumers can group or filter the catalog.
Returns a cursor-paginated collection of emailtemplates.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| notificationType | string Filter by notification type. |
| enabled | boolean Filter by enabled status. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "notificationType": "string",
- "variantKey": "string",
- "domain": "capa",
- "kind": "notification",
- "enabled": true,
- "subjectJson": [
- {
- "type": "text",
- "value": "string",
- "id": "string"
}
], - "templateJson": {
- "property1": null,
- "property2": null
}, - "compiledHtml": "string",
- "compiledText": "string",
- "previewText": "string",
- "templateVersion": 6,
- "description": "string",
- "personalSenderAllowed": true,
- "createdBy": "string",
- "updatedBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a emailtemplate within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| notificationType required | string [ 1 .. 64 ] characters Notification type key. |
| variantKey | string [ 1 .. 64 ] characters ^[a-z0-9_]+$ Variant slug. Defaults to "default" when omitted. |
| enabled | boolean Delivery enabled flag. |
required | Array of objects non-empty Structured React Email subject parts. |
required | object React Email Editor JSON document. |
| compiledHtml required | string non-empty Compiled React Email HTML with Q360 variable markers. |
| compiledText required | string non-empty Compiled plain text with Q360 variable markers. |
| previewText | string Inbox preview text. |
| templateVersion | number React Email template schema version. Value: 6 |
| description | string <= 500 characters Template description. |
| personalSenderAllowed | boolean Whether user-scoped actor senders may be used. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "notificationType": "string",
- "variantKey": "string",
- "enabled": true,
- "subjectJson": [
- {
- "type": "text",
- "value": "string",
- "id": "string"
}
], - "templateJson": {
- "property1": null,
- "property2": null
}, - "compiledHtml": "string",
- "compiledText": "string",
- "previewText": "string",
- "templateVersion": 6,
- "description": "string",
- "personalSenderAllowed": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "notificationType": "string",
- "variantKey": "string",
- "domain": "capa",
- "kind": "notification",
- "enabled": true,
- "subjectJson": [
- {
- "type": "text",
- "value": "string",
- "id": "string"
}
], - "templateJson": {
- "property1": null,
- "property2": null
}, - "compiledHtml": "string",
- "compiledText": "string",
- "previewText": "string",
- "templateVersion": 6,
- "description": "string",
- "personalSenderAllowed": true,
- "createdBy": "string",
- "updatedBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single emailtemplate by identifier.
| templateId required | string <uuid> Email template UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "notificationType": "string",
- "variantKey": "string",
- "domain": "capa",
- "kind": "notification",
- "enabled": true,
- "subjectJson": [
- {
- "type": "text",
- "value": "string",
- "id": "string"
}
], - "templateJson": {
- "property1": null,
- "property2": null
}, - "compiledHtml": "string",
- "compiledText": "string",
- "previewText": "string",
- "templateVersion": 6,
- "description": "string",
- "personalSenderAllowed": true,
- "createdBy": "string",
- "updatedBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing emailtemplate.
| templateId required | string <uuid> Email template UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| enabled | boolean Delivery enabled flag. |
Array of objects non-empty Structured React Email subject parts. | |
object React Email Editor JSON document. | |
| compiledHtml | string non-empty Compiled React Email HTML with Q360 variable markers. |
| compiledText | string non-empty Compiled plain text with Q360 variable markers. |
| previewText | string Inbox preview text. |
| templateVersion | number React Email template schema version. Value: 6 |
| description | string <= 500 characters Template description. |
| personalSenderAllowed | boolean Whether user-scoped actor senders may be used. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "enabled": true,
- "subjectJson": [
- {
- "type": "text",
- "value": "string",
- "id": "string"
}
], - "templateJson": {
- "property1": null,
- "property2": null
}, - "compiledHtml": "string",
- "compiledText": "string",
- "previewText": "string",
- "templateVersion": 6,
- "description": "string",
- "personalSenderAllowed": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "notificationType": "string",
- "variantKey": "string",
- "domain": "capa",
- "kind": "notification",
- "enabled": true,
- "subjectJson": [
- {
- "type": "text",
- "value": "string",
- "id": "string"
}
], - "templateJson": {
- "property1": null,
- "property2": null
}, - "compiledHtml": "string",
- "compiledText": "string",
- "previewText": "string",
- "templateVersion": 6,
- "description": "string",
- "personalSenderAllowed": true,
- "createdBy": "string",
- "updatedBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Playbook instances — start, advance, pause, resume, abandon. Instances carry a pinned template version so runtime behaviour is reproducible.
Cursor-paginated collection of playbook instances for the caller's organization.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "active" "paused" "completed" "abandoned" Filter by status. |
| initiatedBy | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by instance initiator. |
| anchorEntityType | string Filter by anchor entity type. |
| anchorEntityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by anchor entity ID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "templateKey": "string",
- "templateVersion": -9007199254740991,
- "templateName": "string",
- "initiatedBy": "7c3ed0e2-d24e-40a1-b1fe-f6a01ac857c6",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee",
- "status": "active",
- "currentStepId": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "lastActivityAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Instantiates the given template, pins its version, and returns the running instance.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| templateId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Template ID to instantiate. |
| anchorEntityType | string [ 1 .. 64 ] characters Entity type this instance is anchored to. |
| anchorEntityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Record ID this instance is anchored to. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "templateKey": "string",
- "templateVersion": -9007199254740991,
- "templateName": "string",
- "initiatedBy": "7c3ed0e2-d24e-40a1-b1fe-f6a01ac857c6",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee",
- "status": "active",
- "currentStepId": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "lastActivityAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single playbook instance by ID.
| instanceId required | string <uuid> Playbook instance UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "templateKey": "string",
- "templateVersion": -9007199254740991,
- "templateName": "string",
- "initiatedBy": "7c3ed0e2-d24e-40a1-b1fe-f6a01ac857c6",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee",
- "status": "active",
- "currentStepId": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "lastActivityAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Marks the named step complete and advances the instance per the template.
| instanceId required | string <uuid> Playbook instance UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| stepId required | string non-empty Step identifier to mark complete. |
| note | string <= 2000 characters Short note recorded with the completion. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "stepId": "string",
- "note": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "templateKey": "string",
- "templateVersion": -9007199254740991,
- "templateName": "string",
- "initiatedBy": "7c3ed0e2-d24e-40a1-b1fe-f6a01ac857c6",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee",
- "status": "active",
- "currentStepId": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "lastActivityAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Skips the named step with a required reason.
| instanceId required | string <uuid> Playbook instance UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| stepId required | string non-empty Step identifier to skip. |
| reason required | string [ 1 .. 500 ] characters Required justification for skipping the step. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "stepId": "string",
- "reason": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "templateKey": "string",
- "templateVersion": -9007199254740991,
- "templateName": "string",
- "initiatedBy": "7c3ed0e2-d24e-40a1-b1fe-f6a01ac857c6",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee",
- "status": "active",
- "currentStepId": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "lastActivityAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Flips status from active to paused.
| instanceId required | string <uuid> Playbook instance UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "templateKey": "string",
- "templateVersion": -9007199254740991,
- "templateName": "string",
- "initiatedBy": "7c3ed0e2-d24e-40a1-b1fe-f6a01ac857c6",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee",
- "status": "active",
- "currentStepId": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "lastActivityAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Flips status from paused to active.
| instanceId required | string <uuid> Playbook instance UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "templateKey": "string",
- "templateVersion": -9007199254740991,
- "templateName": "string",
- "initiatedBy": "7c3ed0e2-d24e-40a1-b1fe-f6a01ac857c6",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee",
- "status": "active",
- "currentStepId": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "lastActivityAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Terminates an instance with a required reason.
| instanceId required | string <uuid> Playbook instance UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| reason required | string [ 1 .. 500 ] characters Required justification for abandoning the instance. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "reason": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "templateKey": "string",
- "templateVersion": -9007199254740991,
- "templateName": "string",
- "initiatedBy": "7c3ed0e2-d24e-40a1-b1fe-f6a01ac857c6",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee",
- "status": "active",
- "currentStepId": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "lastActivityAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Standard readiness roll-up — per-standard clause coverage summary computed from QMS records and clause-requirement catalogues.
Returns the clause-by-clause readiness summary for the caller's organization and the named standard. Percentages count partial clauses as half-credit.
| standardId required | string <uuid> Standard ID, e.g. "iso9001:2015". |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "standardId": "string",
- "totalClauses": -9007199254740991,
- "coveredClauses": -9007199254740991,
- "partialClauses": -9007199254740991,
- "missingClauses": -9007199254740991,
- "excludedClauses": -9007199254740991,
- "readinessPercent": 0,
- "clauses": [
- {
- "clauseRef": "string",
- "status": "covered",
- "requirements": [ ],
- "justification": "string",
- "excludedAt": "2019-08-24T14:15:22Z"
}
], - "computedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Smart-trigger playbook suggestions — list, accept (start the instance), dismiss. Gated on Business+ plans.
Cursor-paginated collection of playbook suggestions for the caller's organization.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| status | string Enum: "pending" "accepted" "dismissed" "expired" Filter by status. |
| anchorEntityType | string Filter by anchor entity type. |
| anchorEntityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by anchor entity ID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateKey": "string",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee",
- "recipientUserId": "b75206a2-d744-4b29-9351-fc8f8b811db2",
- "reason": "string",
- "source": "seed_trigger",
- "sourceRuleId": "string",
- "status": "pending",
- "acceptedInstanceId": "bbe2cea4-5ac9-4c8e-8d48-63b4e797dbdb",
- "createdAt": "2019-08-24T14:15:22Z",
- "decidedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Starts the bound playbook and marks the suggestion accepted. Returns the resulting playbook instance.
| suggestionId required | string <uuid> Playbook suggestion UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "templateKey": "string",
- "templateVersion": -9007199254740991,
- "templateName": "string",
- "initiatedBy": "7c3ed0e2-d24e-40a1-b1fe-f6a01ac857c6",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee",
- "status": "active",
- "currentStepId": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "lastActivityAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Marks the suggestion dismissed.
| suggestionId required | string <uuid> Playbook suggestion UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "templateKey": "string",
- "templateId": "196100ac-4eec-4fb6-a7f7-86c8b584771d",
- "anchorEntityType": "string",
- "anchorEntityId": "a773e1b8-4d96-4014-92a7-a62b991c67ee",
- "recipientUserId": "b75206a2-d744-4b29-9351-fc8f8b811db2",
- "reason": "string",
- "source": "seed_trigger",
- "sourceRuleId": "string",
- "status": "pending",
- "acceptedInstanceId": "bbe2cea4-5ac9-4c8e-8d48-63b4e797dbdb",
- "createdAt": "2019-08-24T14:15:22Z",
- "decidedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Cursor-paginated collection of bundle export records for the caller's organization.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] Maximum number of records to return. |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| search | string [ 1 .. 200 ] characters Case-insensitive free-text search. |
| instanceId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Filter by playbook instance ID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "instanceId": "64d2028c-ae87-4069-a624-66089d957ef9",
- "exportFormat": "pdf",
- "exportedBy": "c7f843d4-08c2-431e-9aba-674f889eddae",
- "contentHash": "string",
- "templateKey": "string",
- "templateVersion": -9007199254740991,
- "stepCount": -9007199254740991,
- "evidenceCount": -9007199254740991,
- "signatureCount": -9007199254740991,
- "wasRedacted": true,
- "storagePath": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Builds the playbook evidence bundle, records an audit row, and returns the audit row metadata. The rendered HTML is delivered separately by the in-app export flow — this endpoint records the export and is the hook that ties API consumers into the usage cap.
| instanceId required | string <uuid> Playbook instance UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| redactPersonalData | boolean Whether to apply the redaction banner to the bundle. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "redactPersonalData": true
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "instanceId": "64d2028c-ae87-4069-a624-66089d957ef9",
- "exportFormat": "pdf",
- "exportedBy": "c7f843d4-08c2-431e-9aba-674f889eddae",
- "contentHash": "string",
- "templateKey": "string",
- "templateVersion": -9007199254740991,
- "stepCount": -9007199254740991,
- "evidenceCount": -9007199254740991,
- "signatureCount": -9007199254740991,
- "wasRedacted": true,
- "storagePath": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Delivered after a controlled document transitions to Published and a publication event is recorded. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
required | object |
required | object |
{- "delivery": {
- "deliveryId": "b54ddedc-4261-4384-a96d-a7bb7151f7b7",
- "attempt": 1,
- "sentAt": "2026-04-05T03:15:00.000Z",
- "signatureVersion": "v1"
}, - "event": {
- "id": "ef38733d-476a-48bb-bda9-8dff0c3d06c1",
- "type": "document.published",
- "occurredAt": "2026-04-05T03:14:00.000Z",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "data": {
- "document": {
- "id": "9f97f34c-7e83-4d8d-a3e6-c4af44f21511",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "docId": "PROC-DOC-001",
- "title": "Document Control Procedure",
- "description": "Defines the approval, publication, and review lifecycle for controlled documents.",
- "type": "Procedure",
- "status": "Published",
- "clause": "7.5",
- "subClause": "7.5.3",
- "standardId": "iso9001",
- "domain": "Support & Resources",
- "phase": "Do",
- "priority": "High",
- "stage": "Stage 3",
- "owner": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-05T09:00:00.000Z",
- "updatedAt": "2026-04-04T10:00:00.000Z",
- "dueDate": "2026-04-30",
- "reviewDate": "2026-10-01",
- "content": "# Document Control Procedure",
- "publishedContent": "# Document Control Procedure",
- "currentVersionNumber": 3,
- "publishedVersionNumber": 3,
- "mandatory": true,
- "notes": "Applies to all released QMS documents.",
- "attachments": [ ],
- "tags": [
- "document-control",
- "qms-core"
], - "relatedDocumentIds": [
- "e4d2cb2a-4327-4a7d-a726-cfcccf0d7680"
]
}
}
}
}Delivered after a CAPA is created or auto-generated by workflow automation. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
required | object |
required | object |
{- "delivery": {
- "deliveryId": "dc962456-2af6-493e-8d42-32cd3203c7ad",
- "attempt": 1,
- "sentAt": "2026-04-05T03:15:00.000Z",
- "signatureVersion": "v1"
}, - "event": {
- "id": "6fe1af1f-7895-4c22-ba79-58cd53162f93",
- "type": "capa.created",
- "occurredAt": "2026-04-05T03:14:00.000Z",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "data": {
- "capa": {
- "id": "36d97ebf-2943-4284-9ef8-fcd5dfd02b80",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "capaId": "CA-2026-001",
- "type": "corrective",
- "title": "Resolve missing review records",
- "description": "A corrective action for missing document review evidence.",
- "nonConformityId": "91ff8444-ac62-4be4-bfd5-f88e1f6fba2d",
- "rootCause": "Review ownership was not assigned to a named role.",
- "status": "In Progress",
- "severity": "Major",
- "openedBy": "22222222-2222-4222-8222-222222222222",
- "openedAt": "2026-04-01T08:30:00.000Z",
- "dueDate": "2026-04-20",
- "expectedClosureDate": "2026-04-22",
- "owner": "22222222-2222-4222-8222-222222222222",
- "actions": [
- {
- "id": "c6d48d06-0d65-47eb-b654-b8766ae7b0a7",
- "description": "Update the review matrix and assign accountable owners.",
- "owner": "22222222-2222-4222-8222-222222222222",
- "dueDate": "2026-04-12",
- "status": "In Progress",
- "notes": "Draft revision prepared for approval."
}
], - "effectiveness": {
- "notes": "Verification scheduled for the next monthly compliance review."
}, - "attachments": [ ],
- "relatedDocumentIds": [
- "9f97f34c-7e83-4d8d-a3e6-c4af44f21511"
], - "notes": "Escalated from audit finding AUD-2026-Q2-001.",
- "updatedAt": "2026-04-05T01:20:00.000Z"
}
}
}
}Delivered after a training program enters the active state and downstream automation can consume it. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
required | object |
required | object |
{- "delivery": {
- "deliveryId": "243f4fdb-b89e-4490-8b66-7dddc2b026db",
- "attempt": 1,
- "sentAt": "2026-04-05T03:15:00.000Z",
- "signatureVersion": "v1"
}, - "event": {
- "id": "a4e7288a-cc4e-4f06-a239-5e8b27fc2d45",
- "type": "training.program_activated",
- "occurredAt": "2026-04-05T03:14:00.000Z",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "data": {
- "program": {
- "id": "4e512dc9-c429-44ea-a9e3-0f1c73db70ab",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "programId": "TP-2026-007",
- "title": "Document Control Refresher",
- "description": "Annual refresher training for document owners and approvers.",
- "category": "qms",
- "status": "active",
- "deliveryMethod": "attestation",
- "ownerId": "22222222-2222-4222-8222-222222222222",
- "defaultDueWithinDays": 14,
- "defaultValidityDays": 365,
- "effectivenessRequired": true,
- "passingScore": 85,
- "metadata": {
- "source": "internal",
- "audience": "document-owners"
}, - "createdBy": "22222222-2222-4222-8222-222222222222",
- "createdAt": "2026-03-18T01:00:00.000Z",
- "updatedAt": "2026-04-04T23:30:00.000Z"
}
}
}
}Delivered when an export job finishes successfully. Includes the full job metadata and output URL. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
required | object |
required | object |
{- "delivery": {
- "deliveryId": "73dc828d-801d-4d29-b7e4-e046662a5901",
- "attempt": 1,
- "sentAt": "2019-08-24T14:15:22Z",
- "signatureVersion": "v1"
}, - "event": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "export.completed",
- "occurredAt": "2019-08-24T14:15:22Z",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "data": {
- "exportJob": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "jobId": "string",
- "jobType": "document_publish",
- "status": "pending",
- "title": "string",
- "description": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "sourceEntityType": "string",
- "sourceEntityIds": [ ],
- "outputFormat": "pdf",
- "outputFileSize": 9007199254740991,
- "branded": true,
- "documentVersion": "string",
- "filters": { },
- "recordCount": 9007199254740991,
- "errorMessage": "string",
- "retryCount": 9007199254740991,
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "createdBy": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}
}
}Delivered when a controlled document is published to an external destination such as Google Drive, SharePoint, or a customer handoff package. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
required | object |
required | object |
{- "delivery": {
- "deliveryId": "73dc828d-801d-4d29-b7e4-e046662a5901",
- "attempt": 1,
- "sentAt": "2019-08-24T14:15:22Z",
- "signatureVersion": "v1"
}, - "event": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "document.externally_published",
- "occurredAt": "2019-08-24T14:15:22Z",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "data": {
- "publication": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "documentVersion": "string",
- "destinationId": "d0a0ebc7-d6b4-4f3c-a5af-5761a8148e3a",
- "destinationLabel": "string",
- "externalRef": "string",
- "status": "pending",
- "publishedBy": "string",
- "publishedAt": "2019-08-24T14:15:22Z",
- "recalledAt": "2019-08-24T14:15:22Z",
- "recalledBy": "string",
- "notes": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}
}
}Delivered when an approval or review SLA crosses the breach threshold. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| escalationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Escalation record ID |
| entityType required | string Type of entity (e.g. capa, ncr) |
| entityId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Entity record ID |
| severity required | string Enum: "warning" "breached" "critical" SLA severity level |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp when breach occurred |
{- "escalationId": "36d4450c-e33e-466e-912a-3ff655dc6900",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "severity": "warning",
- "occurredAt": "2019-08-24T14:15:22Z"
}Delivered when a stuck approval is escalated to a backup approver or manager. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| escalationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Escalation record ID |
| entityType required | string Type of entity requiring approval |
| entityId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Entity record ID |
| escalatedTo required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... User ID to whom escalation was sent |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp when escalation occurred |
{- "escalationId": "36d4450c-e33e-466e-912a-3ff655dc6900",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "escalatedTo": "c8032e88-ac0e-4b32-9faa-854aaf82ca0a",
- "occurredAt": "2019-08-24T14:15:22Z"
}Delivered when a document revision impact assessment is computed and confirmed. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| documentId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Document ID |
| assessmentId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Assessment ID |
| versionNumber required | integer [ -9007199254740991 .. 9007199254740991 ] Revision version number |
required | object Summary of impacts by category |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp when assessment was completed |
{- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "assessmentId": "673a0734-83cc-415f-a672-f8ef54b2727c",
- "versionNumber": -9007199254740991,
- "impactSummary": {
- "property1": 0,
- "property2": 0
}, - "occurredAt": "2019-08-24T14:15:22Z"
}Delivered after revision impact follow-up actions are executed post-publish. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| documentId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Document ID |
| assessmentId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Assessment ID |
| versionNumber required | integer [ -9007199254740991 .. 9007199254740991 ] Revision version number |
required | object Count of actions performed by type |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp when impacts were executed |
{- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "assessmentId": "673a0734-83cc-415f-a672-f8ef54b2727c",
- "versionNumber": -9007199254740991,
- "resultCounts": {
- "property1": 0,
- "property2": 0
}, - "occurredAt": "2019-08-24T14:15:22Z"
}Delivered when a legal or investigation hold is placed on one or more QMS artifacts. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| holdId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Hold ID |
| holdName required | string Hold name |
| holdType required | string Enum: "legal" "investigation" "regulatory" "litigation" Type of hold |
| itemCount required | integer [ -9007199254740991 .. 9007199254740991 ] Number of artifacts affected |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... When the hold was placed |
{- "holdId": "05363803-5510-4d71-8d1f-307021f9ad73",
- "holdName": "string",
- "holdType": "legal",
- "itemCount": -9007199254740991,
- "occurredAt": "2019-08-24T14:15:22Z"
}Delivered when a legal hold is released and held artifacts are unfrozen. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| holdId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Hold ID |
| holdName required | string Hold name |
| releasedBy required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... User ID who released the hold |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... When the hold was released |
{- "holdId": "05363803-5510-4d71-8d1f-307021f9ad73",
- "holdName": "string",
- "releasedBy": "a2085a74-d82f-4659-8839-785d40e6c409",
- "occurredAt": "2019-08-24T14:15:22Z"
}Delivered when a QMS artifact is archived for retention or lifecycle management. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| archiveRecordId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Archive record ID |
| artifactType required | string Enum: "document" "evidence" "export" "capa" "ncr" "audit" "training_record" Type of artifact archived |
| artifactId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of the archived artifact |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... When the archive was created |
{- "archiveRecordId": "7903b6ed-562a-4d29-a903-77db4f9b86b6",
- "artifactType": "document",
- "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
- "occurredAt": "2019-08-24T14:15:22Z"
}Delivered when a defensible deletion request is executed and the artifact is removed. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| deletionRequestId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Deletion request ID |
| artifactType required | string Enum: "document" "evidence" "export" "capa" "ncr" "audit" "training_record" Type of artifact deleted |
| artifactId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of the deleted artifact |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... When the deletion was executed |
{- "deletionRequestId": "8b89ef41-d1db-42e9-b0b4-92660989dab7",
- "artifactType": "document",
- "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
- "occurredAt": "2019-08-24T14:15:22Z"
}Delivered when a new competency definition is created in the org library. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| eventType required | string Value: "competency.defined" |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
required | object |
{- "eventType": "competency.defined",
- "occurredAt": "2019-08-24T14:15:22Z",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "code": "string",
- "name": "string",
- "description": "string",
- "category": "technical",
- "assessmentMethod": "training_completion",
- "proficiencyLevels": [
- "string"
], - "expiryMonths": 1,
- "status": "active",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}Delivered when a member is assessed against a competency. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| eventType required | string Value: "competency.assessed" |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
required | object |
{- "eventType": "competency.assessed",
- "occurredAt": "2019-08-24T14:15:22Z",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "assessedLevel": "string",
- "assessedBy": "string",
- "assessedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "evidence": "string",
- "linkedTrainingRecords": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "valid",
- "supersededBy": "608778cc-35f6-47d1-a540-9bcbfdf24101",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}Delivered when a previously valid competency assessment crosses its expiry date. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| eventType required | string Value: "competency.expired" |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
required | object |
{- "eventType": "competency.expired",
- "occurredAt": "2019-08-24T14:15:22Z",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "assessedLevel": "string",
- "assessedBy": "string",
- "assessedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "evidence": "string",
- "linkedTrainingRecords": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "valid",
- "supersededBy": "608778cc-35f6-47d1-a540-9bcbfdf24101",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
}Delivered when a mandatory role-competency requirement is unmet for a member. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| eventType required | string Value: "competency.gap_detected" |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
required | object |
{- "eventType": "competency.gap_detected",
- "occurredAt": "2019-08-24T14:15:22Z",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "data": {
- "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",
- "competencyId": "714bc50d-aee6-4a74-a077-3bf4ed561f7c",
- "roleName": "string",
- "requiredLevel": "string"
}
}Delivered when the inbound event gateway successfully processes and dispatches an external event. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| deliveryId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Inbound delivery audit row identifier. |
| sourceId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Registered source that posted the event. |
| sourceName required | string Operator-configured source name. |
| eventTypeKey required | string External event type identifier. |
| internalEventType required | string Workflow event type emitted for this delivery. |
object Entity auto-created from the delivery, if configured. | |
required | object Transformed payload dispatched to the workflow bus. |
{- "deliveryId": "73dc828d-801d-4d29-b7e4-e046662a5901",
- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "sourceName": "string",
- "eventTypeKey": "string",
- "internalEventType": "string",
- "autoCreatedEntity": {
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5"
}, - "payload": {
- "property1": null,
- "property2": null
}
}Delivered when the inbound event gateway rejects or fails to process an external event (schema validation failure, HMAC mismatch, etc.). Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| deliveryId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Audit row identifier (may be absent if recording failed). |
| sourceId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Source that the failed event was attributed to. |
| eventTypeKey required | string External event type identifier. |
| reason required | string Reason for failure (e.g. schema_validation_failed). |
Array of objects Per-field error detail when validation fails. |
{- "deliveryId": "73dc828d-801d-4d29-b7e4-e046662a5901",
- "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
- "eventTypeKey": "string",
- "reason": "string",
- "errors": [
- {
- "path": "string",
- "message": "string"
}
]
}Delivered when a process map node transitions from healthy or warning into a worse status (warning or critical) after a refresh. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| processMapId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Process map whose health changed. |
| nodeId required | string Node whose status transitioned. |
| previousStatus required | string Enum: "healthy" "warning" "critical" "unknown" Status before the transition. |
| currentStatus required | string Enum: "healthy" "warning" "critical" "unknown" Status after the transition. |
| issueCount required | integer [ 0 .. 9007199254740991 ] Number of issues on the node after transition. |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... When the transition was detected. |
{- "processMapId": "e422f0c9-86de-41ed-b5aa-ed7e68a5f42e",
- "nodeId": "string",
- "previousStatus": "healthy",
- "currentStatus": "healthy",
- "issueCount": 9007199254740991,
- "occurredAt": "2019-08-24T14:15:22Z"
}Delivered when a process map node transitions from a degraded status back to healthy after a refresh. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
| processMapId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Process map whose health recovered. |
| nodeId required | string Node whose status transitioned back to healthy. |
| previousStatus required | string Enum: "healthy" "warning" "critical" "unknown" Status before the transition. |
| currentStatus required | string Enum: "healthy" "warning" "critical" "unknown" Status after the transition. |
| occurredAt required | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... When the recovery was detected. |
{- "processMapId": "e422f0c9-86de-41ed-b5aa-ed7e68a5f42e",
- "nodeId": "string",
- "previousStatus": "healthy",
- "currentStatus": "healthy",
- "occurredAt": "2019-08-24T14:15:22Z"
}Delivered once per organisation when a standard's published version is migrated forward (e.g. qspp:2026 → qspp:2027). Triggered by the version-bump migration script. Lets customer-side automation re-pull cross-reference tables or re-emit notifications. Webhook deliveries are signed using the X-Q360-Signature and X-Q360-Timestamp headers.
required | object |
required | object |
{- "delivery": {
- "deliveryId": "d2f5e8a7-5b3c-4f8c-9e1d-a7b8c9d0e1f2",
- "attempt": 1,
- "sentAt": "2027-04-22T03:00:00.000Z",
- "signatureVersion": "v1"
}, - "event": {
- "id": "0a1b2c3d-4e5f-6789-abcd-ef0123456789",
- "type": "standard.migrated",
- "occurredAt": "2027-04-22T03:00:00.000Z",
- "organizationId": "11111111-1111-4111-8111-111111111111",
- "data": {
- "fromStandardId": "qspp:2026",
- "toStandardId": "qspp:2027",
- "migratedAt": "2027-04-22T03:00:00.000Z"
}
}
}Returns a cursor-paginated collection of externalportals.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| portalType | string Enum: "supplier" "customer" "auditor" "partner" "general" |
| status | string Enum: "active" "inactive" "archived" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "portalType": "supplier",
- "allowedActions": [
- "string"
], - "requireNda": true,
- "welcomeMessage": "string",
- "status": "active",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a externalportal within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name required | string [ 1 .. 200 ] characters |
| description | string <= 2000 characters |
| portalType required | string Enum: "supplier" "customer" "auditor" "partner" "general" |
| allowedActions | Array of strings |
| requireNda | boolean |
| welcomeMessage | string <= 5000 characters |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "portalType": "supplier",
- "allowedActions": [
- "string"
], - "requireNda": true,
- "welcomeMessage": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "portalType": "supplier",
- "allowedActions": [
- "string"
], - "requireNda": true,
- "welcomeMessage": "string",
- "status": "active",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single externalportal by identifier.
| portalId required | string <uuid> External portal UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "portalType": "supplier",
- "allowedActions": [
- "string"
], - "requireNda": true,
- "welcomeMessage": "string",
- "status": "active",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing externalportal.
| portalId required | string <uuid> External portal UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| name | string [ 1 .. 200 ] characters |
| description | string <= 2000 characters |
| portalType | string Enum: "supplier" "customer" "auditor" "partner" "general" |
| allowedActions | Array of strings |
| requireNda | boolean |
| welcomeMessage | string <= 5000 characters |
| status | string Enum: "active" "inactive" "archived" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "name": "string",
- "description": "string",
- "portalType": "supplier",
- "allowedActions": [
- "string"
], - "requireNda": true,
- "welcomeMessage": "string",
- "status": "active"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "description": "string",
- "portalType": "supplier",
- "allowedActions": [
- "string"
], - "requireNda": true,
- "welcomeMessage": "string",
- "status": "active",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of externalparticipants.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| portalId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| status | string Enum: "invited" "active" "suspended" "revoked" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "name": "string",
- "email": "user@example.com",
- "company": "string",
- "role": "string",
- "status": "invited",
- "invitedBy": "9803bd85-1570-4d91-99f5-3a4d18ccfff0",
- "invitedAt": "2019-08-24T14:15:22Z",
- "lastActiveAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a externalparticipant within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| portalId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| name required | string [ 1 .. 200 ] characters |
| email required | string <email> ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z... |
| company | string <= 200 characters |
| role | string <= 200 characters |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "name": "string",
- "email": "user@example.com",
- "company": "string",
- "role": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "name": "string",
- "email": "user@example.com",
- "company": "string",
- "role": "string",
- "status": "invited",
- "invitedBy": "9803bd85-1570-4d91-99f5-3a4d18ccfff0",
- "invitedAt": "2019-08-24T14:15:22Z",
- "lastActiveAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single externalparticipant by identifier.
| participantId required | string <uuid> External participant UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "name": "string",
- "email": "user@example.com",
- "company": "string",
- "role": "string",
- "status": "invited",
- "invitedBy": "9803bd85-1570-4d91-99f5-3a4d18ccfff0",
- "invitedAt": "2019-08-24T14:15:22Z",
- "lastActiveAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing externalparticipant.
| participantId required | string <uuid> External participant UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| portalId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| name | string [ 1 .. 200 ] characters |
string <email> ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z... | |
| company | string <= 200 characters |
| role | string <= 200 characters |
| status | string Enum: "invited" "active" "suspended" "revoked" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "name": "string",
- "email": "user@example.com",
- "company": "string",
- "role": "string",
- "status": "invited"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "name": "string",
- "email": "user@example.com",
- "company": "string",
- "role": "string",
- "status": "invited",
- "invitedBy": "9803bd85-1570-4d91-99f5-3a4d18ccfff0",
- "invitedAt": "2019-08-24T14:15:22Z",
- "lastActiveAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a cursor-paginated collection of portaltasks.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| portalId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| participantId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| taskType | string Enum: "evidence_submission" "document_review" "form_response" "capa_response" "acknowledgement" "general" |
| status | string Enum: "pending" "in_progress" "submitted" "accepted" "rejected" "expired" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "taskType": "evidence_submission",
- "title": "string",
- "description": "string",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "dueDate": "2019-08-24T14:15:22Z",
- "status": "pending",
- "submittedAt": "2019-08-24T14:15:22Z",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewedAt": "2019-08-24T14:15:22Z",
- "reviewNotes": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Creates a portaltask within the organization resolved from the caller's API key.
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| portalId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| participantId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| taskType required | string Enum: "evidence_submission" "document_review" "form_response" "capa_response" "acknowledgement" "general" |
| title required | string [ 1 .. 300 ] characters |
| description | string <= 5000 characters |
| entityType | string <= 100 characters |
| entityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| dueDate | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "taskType": "evidence_submission",
- "title": "string",
- "description": "string",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "dueDate": "2019-08-24T14:15:22Z"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "taskType": "evidence_submission",
- "title": "string",
- "description": "string",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "dueDate": "2019-08-24T14:15:22Z",
- "status": "pending",
- "submittedAt": "2019-08-24T14:15:22Z",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewedAt": "2019-08-24T14:15:22Z",
- "reviewNotes": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a single portaltask by identifier.
| taskId required | string <uuid> Portal task UUID. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "taskType": "evidence_submission",
- "title": "string",
- "description": "string",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "dueDate": "2019-08-24T14:15:22Z",
- "status": "pending",
- "submittedAt": "2019-08-24T14:15:22Z",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewedAt": "2019-08-24T14:15:22Z",
- "reviewNotes": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Applies a partial update to an existing portaltask.
| taskId required | string <uuid> Portal task UUID. |
| Idempotency-Key | string [ 8 .. 255 ] characters Optional but strongly recommended for create and update requests. Reusing the same key for the same semantic operation prevents duplicate writes. |
| portalId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| participantId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| taskType | string Enum: "evidence_submission" "document_review" "form_response" "capa_response" "acknowledgement" "general" |
| title | string [ 1 .. 300 ] characters |
| description | string <= 5000 characters |
| entityType | string <= 100 characters |
| entityId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| dueDate | string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[... Timestamp in ISO 8601 UTC format. |
| status | string Enum: "pending" "in_progress" "submitted" "accepted" "rejected" "expired" |
| reviewNotes | string <= 5000 characters |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "taskType": "evidence_submission",
- "title": "string",
- "description": "string",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "dueDate": "2019-08-24T14:15:22Z",
- "status": "pending",
- "reviewNotes": "string"
}{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "taskType": "evidence_submission",
- "title": "string",
- "description": "string",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "dueDate": "2019-08-24T14:15:22Z",
- "status": "pending",
- "submittedAt": "2019-08-24T14:15:22Z",
- "reviewedBy": "849e71dc-4e73-4d65-b54c-c7fc0faacffa",
- "reviewedAt": "2019-08-24T14:15:22Z",
- "reviewNotes": "string",
- "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}Returns a paginated, filterable list of external collaboration activity log entries.
| cursor | string [ 1 .. 512 ] characters Opaque pagination cursor returned by a previous list response. |
| limit | integer [ 1 .. 100 ] |
| sort | string^[A-Za-z][A-Za-z0-9_.]*:(asc|desc)$ Sort expression in the form |
| portalId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| participantId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Stable UUID identifier. |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | Array of objects |
required | object |
{- "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "portalId": "5cadf6e5-3395-44e3-8b95-54104ab6f8b8",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "action": "string",
- "entityType": "string",
- "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
- "taskId": "e6e9d88a-9b63-468a-aec3-b7a11de27af8",
- "ipAddress": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z",
- "pagination": {
- "limit": 1,
- "returned": 9007199254740991,
- "nextCursor": "string",
- "previousCursor": "string",
- "hasMore": true
}
}
}Returns an aggregated analytics snapshot across all QMS modules including CAPAs, NCRs, audits, risks, training, and compliance coverage.
| dateRange | string Enum: "last_30d" "last_90d" "last_365d" "all_time" |
| X-RateLimit-Limit | integer >= 1 Maximum number of requests permitted in the current rate limit window. |
| X-RateLimit-Remaining | integer >= 0 Remaining requests available in the current rate limit window. |
required | object |
required | object |
{- "data": {
- "capas": {
- "total": 0,
- "open": 0,
- "closed": 0,
- "overdue": 0,
- "closureRate": 0,
- "avgClosureDays": 0
}, - "ncrs": {
- "total": 0,
- "open": 0,
- "closed": 0
}, - "audits": {
- "total": 0,
- "completed": 0,
- "planned": 0,
- "findingCount": 0
}, - "risks": {
- "total": 0,
- "active": 0,
- "mitigated": 0,
- "averageScore": 0
}, - "training": {
- "total": 0,
- "completed": 0,
- "overdue": 0,
- "completionRate": 0,
- "effectivenessRate": 0
}, - "compliance": {
- "totalRequirements": 0,
- "mapped": 0,
- "coveragePercent": 0
}, - "generatedAt": "2019-08-24T14:15:22Z"
}, - "meta": {
- "requestId": "stringst",
- "version": "v1",
- "generatedAt": "2019-08-24T14:15:22Z"
}
}