POST /screenings
JSON: fullName, type (individual or business), optional dateOfBirth, country, nationality, screeningType, customerId. A linked customer must belong to your organization and match the queried identity. name is accepted as an alias for fullName. Returns a screening UUID and result.matches.
GET /screenings/{id}
Retrieve the saved query, result, engine/source evidence, status, and recorded reviews.
PATCH /screenings/{id}/matches/{matchId}
JSON: disposition (true_positive, false_positive, under_review, dismissed), required reviewNotes explaining the decision. Use the returned match UUID, not entityId.
GET /screenings/{id}/report
Download the saved screening and reviewer evidence as application/pdf. Failed screenings cannot be exported as clean reports.
POST /screenings/batch
multipart/form-data with a file field. CSV columns: customer_ref, name, type, date_of_birth, country. customer_ref is optional for screening and required to save a portfolio; keep it stable and unique in your organization. Maximum 1,000 rows; successful saved checks count toward your plan.
POST /screenings/batch/{id}/portfolio
JSON: saveToPortfolio: true, optional screeningIds and customerRefs. Explicitly save selected completed live rows as customers and link their checks. Return per-row outcomes; repeated saves do not re-screen or charge again. Conflicting identities must be resolved.
POST /screenings/batch/{id}/monitoring
JSON: confirmRecurring: true, frequency (daily or weekly), optional customerIds. Requires a current paid subscription and previously saved batch customers. New entries use the completed batch check as their starting record; existing entries retain their cadence and paused state. Subsequent successful scans use allowance.
GET /customers/{id}/screenings
Retrieve completed checks linked to this customer, saved review decisions, and monitoring state. Paginate with limit and offset. Prior decisions provide context; they do not automatically resolve a new candidate.
POST /monitoring
JSON: fullName, entityType (individual or business), optional dateOfBirth, country, customerId, frequency (daily or weekly). Recurring screening requires a paid plan; free evaluation is limited.
GET /monitoring/hits
List changes flagged for review. Repeated unchanged results do not create new alerts.
POST /webhooks
JSON: url and events. Save the signing secret returned when creating the webhook; validate subsequent request signatures.