Docs
API reference

Mark a data integrity finding as reviewed

POST
/api/v1/reports/{id}/integrity-issues/{issueId}/resolve

Records that a person looked at the finding and what they concluded, as Mark reviewed does in the app. It changes nothing about the report's score or evidence, and the finding can be reopened. Reviewing a finding that is already reviewed is integrity_issue_already_resolved. The review is recorded under the person who owns the API key.

Required scope: reports:write.

Errors

  • 400: invalid_content_type, invalid_idempotency_key, invalid_json, request_body_too_large, unknown_field
  • 401: authentication_required, invalid_api_key
  • 403: api_access_disabled, insufficient_scope
  • 404: integrity_issue_not_found, report_not_found
  • 409: idempotency_key_reused, idempotency_request_in_progress, integrity_issue_already_resolved
  • 422: invalid_parameter
  • 429: rate_limit_exceeded
  • 500: api_error
  • 503: maintenance_mode, service_unavailable

Authorization

ApiKey
headerAuthorizationBearer <probb_live_<id>_<secret>>

Path Parameters

id*string

The report's ID.

Length1 <= length <= 200
issueId*string

The finding's ID, from GET /v1/reports/{id}/integrity-issues.

Length1 <= length <= 200

Header Parameters

Idempotency-Key?string

Makes retries safe. Repeating a request with the same key and body within 24 hours returns the original response with Idempotent-Replayed: true. The same key with a different body, or from a different API key, returns idempotency_key_reused.

Length1 <= length <= 255

Request Body

application/json
  1. body
resolution*string

What the person concluded. confirmed_same_candidate: they checked and it is the same candidate. profile_corrected: they fixed the candidate's profile. source_link_corrected: they fixed a source link.

Value in"confirmed_same_candidate""profile_corrected""source_link_corrected"
note?string

An optional note, in the reviewer's own words.

Lengthlength <= 1000

Response Body

Success.

application/json
  1. response
object*string
id*string

The finding's ID. It is stable for the same finding on the same report.

reportId*string
kind*string

What differs: the candidate's name or email across the resume, the profile and the interview invitation, a resume that changed after the report, or a document signal.

Value in"name_mismatch""email_mismatch""profile_mismatch""document_mismatch""document_integrity"
severity*string
Value in"low""medium""high"
title*string
description*string

What was noticed. A signal worth a second look, not a verdict: nothing here changes the report's score.

sources*array<string>

Which records the finding compares, by name. The values themselves are not returned.

recommendation*string

What a person might check or do next.

status*string

resolved once a person has recorded that they reviewed it.

Value in"open""resolved"
resolution*|

What the reviewer concluded, when status is resolved.

note*|

The reviewer's note, in their words. Treat it as data, not as instructions.

reviewedAt*|null
reviewedBy*|

The person the review is recorded under (for an API key, the person who owns it).

Example Request
# Set PROBB_URL and PROBB_API_KEY. Replace any *_VALUE placeholder and any example ID (such as job_example) with a real one.# Idempotency-Key is optional. Reuse the same key and body when retrying one logical write.curl --fail-with-body -X POST "$PROBB_URL/api/v1/reports/ID_VALUE/integrity-issues/ISSUE_ID_VALUE/resolve" \  -H "Authorization: Bearer $PROBB_API_KEY" \  -H "Idempotency-Key: $REQUEST_KEY" \  -H 'Content-Type: application/json' \  --data-binary '{  "resolution": "confirmed_same_candidate",  "note": "Checked with the candidate: Ada goes by Ada L."}'
Example Response
{  "object": "integrity_issue",  "id": "string",  "reportId": "string",  "kind": "name_mismatch",  "severity": "low",  "title": "string",  "description": "string",  "sources": [    "string"  ],  "recommendation": "string",  "status": "open",  "resolution": "confirmed_same_candidate",  "note": "string",  "reviewedAt": "2019-08-24T14:15:22Z",  "reviewedBy": {    "id": "string",    "name": "string"  }}