Review Queue
Manage private-preview external write proposals: inspect staged connector payloads, approve or reject delivery, and monitor each proposal through final status.
The review queue API lets authorized reviewers manage external write proposals - staged write-backs to external clinical systems that require human approval before delivery.
All endpoints are workspace-scoped and require authentication with an API key or session token that carries the appropriate ReviewQueue permissions.
Endpoints
List external write proposals
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
[]50Successful Response
Validation Error
GET /v1/{workspace_id}/external-write-proposals HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"connector_type": "text",
"data_source_id": "123e4567-e89b-12d3-a456-426614174000",
"fhir_resource_type": "text",
"fhir_resource_id": "text",
"proposed_payload": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"confidence": 1,
"origin_run_id": "text",
"origin_run_kind": "text",
"origin_event_id": "123e4567-e89b-12d3-a456-426614174000",
"event_type": "text",
"entity_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "proposed",
"decided_by": "123e4567-e89b-12d3-a456-426614174000",
"decided_at": "2026-01-01T00:00:00.000Z",
"reject_reason": "text",
"push_attempt_count": 0,
"vendor_resource_id": "text",
"error": "text",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}
],
"has_more": true,
"continuation_token": null
}Returns a paginated list of external write proposals, newest first.
Permissions: Requires ReviewQueue:View.
Get external write proposal
The separate single-proposal read endpoint has been removed. Inspect the proposal records returned by the workspace list above and use each proposal's identifier for the supported review operations.
Approve external write proposal
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
A human-review proposal for an external (EHR) write-back — the Review Queue.
Staged by connector-runner when a review_required sink would otherwise
auto-push (world.external_write_proposals); a reviewer approves/rejects, and the
egress drain delivers approved ones. proposed_payload is the full FHIR write
body and MAY contain PHI — this surface is workspace-scoped (FORCE-RLS) and
permission-gated (ReviewQueue); never log it. connector_type/fhir_*/
status/idempotency_key are opaque strings; the ids are uuid.
0Validation Error
POST /v1/{workspace_id}/external-write-proposals/{proposal_id}/approve HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"connector_type": "text",
"data_source_id": "123e4567-e89b-12d3-a456-426614174000",
"fhir_resource_type": "text",
"fhir_resource_id": "text",
"proposed_payload": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"confidence": 1,
"origin_run_id": "text",
"origin_run_kind": "text",
"origin_event_id": "123e4567-e89b-12d3-a456-426614174000",
"event_type": "text",
"entity_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "proposed",
"decided_by": "123e4567-e89b-12d3-a456-426614174000",
"decided_at": "2026-01-01T00:00:00.000Z",
"reject_reason": "text",
"push_attempt_count": 0,
"vendor_resource_id": "text",
"error": "text",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}Approves a proposal that is currently in proposed status. The reviewer identity is derived from the authenticated session.
Error responses:
403
Caller has no authenticated user identity (e.g., an API key without a bound person identity).
404
Proposal not found in this workspace.
409
Proposal is no longer in proposed status (already decided or claimed by the delivery engine).
Permissions: Requires ReviewQueue:Review.
Reject external write proposal
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
A human-review proposal for an external (EHR) write-back — the Review Queue.
Staged by connector-runner when a review_required sink would otherwise
auto-push (world.external_write_proposals); a reviewer approves/rejects, and the
egress drain delivers approved ones. proposed_payload is the full FHIR write
body and MAY contain PHI — this surface is workspace-scoped (FORCE-RLS) and
permission-gated (ReviewQueue); never log it. connector_type/fhir_*/
status/idempotency_key are opaque strings; the ids are uuid.
0Validation Error
POST /v1/{workspace_id}/external-write-proposals/{proposal_id}/reject HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 17
{
"reason": "text"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"connector_type": "text",
"data_source_id": "123e4567-e89b-12d3-a456-426614174000",
"fhir_resource_type": "text",
"fhir_resource_id": "text",
"proposed_payload": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"confidence": 1,
"origin_run_id": "text",
"origin_run_kind": "text",
"origin_event_id": "123e4567-e89b-12d3-a456-426614174000",
"event_type": "text",
"entity_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "proposed",
"decided_by": "123e4567-e89b-12d3-a456-426614174000",
"decided_at": "2026-01-01T00:00:00.000Z",
"reject_reason": "text",
"push_attempt_count": 0,
"vendor_resource_id": "text",
"error": "text",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}Rejects a proposal that is currently in proposed status. The reviewer identity is derived from the authenticated session.
Error responses:
403
Caller has no authenticated user identity.
404
Proposal not found in this workspace.
409
Proposal is no longer in proposed status.
Permissions: Requires ReviewQueue:Review.
Proposal lifecycle
Proposals move through the following states:
proposed- Staged by the connector system, awaiting human review.approved- A reviewer approved the proposal. Awaiting delivery.rejected- A reviewer rejected the proposal. Will not be delivered.pushing- The delivery engine is actively sending the write to the external system.pushed- Successfully delivered to the external system.failed- Delivery reached a permanent failure, exhausted its retry attempts, or was blocked because retrying could create an unsafe duplicate write.superseded- Reserved by the response schema. The current public routes do not transition proposals into this state.
Only proposals in proposed status can be approved or rejected. Attempting to decide a proposal in any other status returns a 409 Conflict response.
Concurrency safety
The approve and reject endpoints use guarded state transitions. If two reviewers attempt to decide the same proposal simultaneously, only one succeeds. The other receives a 409 Conflict response and should reload the queue to see the current state.
Audit logging
Every approval or rejection is audit-logged with the connector type, resource type, and reviewer identity. The proposed payload is never included in audit log entries.
Last updated
Was this helpful?

