Skip to content

Entity reviews

Get a review

GET /api/v1/entity_reviews/:id

Needs entity.review.view. Returns the review with a summary of its entity.

bash
curl -H "Authorization: Bearer $VERITY_API_KEY" \
     https://your-host/api/v1/entity_reviews/7
json
{
  "entity_review": {
    "id": 7,
    "entity_id": 42,
    "purpose": "periodic",
    "status": "in_progress",
    "outcome": "pending_manual_review",
    "outcome_reason": "periodic_cycle",
    "assigned_user_id": 3,
    "started_at": "2026-06-28T08:00:00Z",
    "completed_at": null,
    "updated_at": "2026-06-28T08:40:00Z",
    "entity": {
      "id": 42,
      "registration_number": "7555555555",
      "legal_name": "API Review Entity",
      "country_id": 1,
      "status": "ready_for_review",
      "current_score": 81,
      "risk_level": "high",
      "risk_level_updated_at": "2026-06-28T08:00:00Z",
      "sanctions_status": "needs_review"
    },
    "notes_count": 1,
    "checks_count": 1
  }
}

Fields

FieldTypeNotes
purposestringinitial or periodic
statusstringopen, in_progress, escalated, completed, cancelled
outcomestring | nullSet when the review completes
outcome_reasonstring | nullThe triggering reason recorded with the decision
assigned_user_idinteger | null
started_at, completed_at, updated_atstring | nullISO 8601
notes_count, checks_countinteger

The nested entity follows the same risk_level rule as everywhere else: the band appears only with risk_level_updated_at, and otherwise reads "risk_level": null, "risk_level_assessed": false.

current_score (coverage) is reported independently — an entity can be well covered and never assessed.

No write endpoints

Approving, rejecting, escalating and assigning are not available over the API. Each is a human decision that must carry an actor, a reason and an audit record, and several are gated on blockers that only make sense in front of someone who can resolve them.

To react to decisions programmatically, subscribe to outbound webhooks.