Docs
API reference

Retry an interview's scoring

POST
/api/v1/interviews/{id}/retry-scoring

Queues the evaluation of a finished interview again after it failed, as Retry scoring does in the app. It costs nothing: scoring is part of the interview already paid for. Answers with the interview. Its status stays failed until the new evaluation lands, then becomes completed (or failed again); follow it with GET /v1/interviews/{id} or the interview.completed webhook. An interview whose scoring did not fail, including one that is still being scored, is interview_scoring_not_failed, so a good evaluation is never replaced.

Required scope: interviews:write.

Errors

  • 400: invalid_idempotency_key, unknown_field
  • 401: authentication_required, invalid_api_key
  • 403: api_access_disabled, insufficient_scope
  • 404: interview_not_found
  • 409: idempotency_key_reused, idempotency_request_in_progress, interview_scoring_not_failed
  • 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 interview's ID.

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

Response Body

Success.

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

The interview's ID. It stays the same when the invitation is re-sent.

reportId*string

The report the interview was created for.

candidate*|

The candidate interviewed. Null if the candidate was deleted.

job*|

The job interviewed for. Null if the job was deleted.

status*string

invited from the invitation until the candidate starts (the interview is prepared in the background), in_progress, evaluating once the candidate has finished and scoring runs, completed when the evaluation is ready, expired if the invitation lapsed unused, cancelled if it was cancelled or replaced, and failed with a failureCode.

Value in"invited""in_progress""evaluating""completed""expired""cancelled""failed"
failureCode*|

Why the interview failed, when status is failed. invitation_failed means the email could not be delivered; the interview is otherwise intact and can be re-sent.

invitation*

How the candidate was invited.

reminders*

The reminder emails for an invitation the candidate has not started. At most two go out. Change the schedule with PATCH /v1/organization/interview-reminders; to nudge a candidate now, resend the interview.

interviewVersion*string

The interview version the candidate takes. It never changes.

createdAt*string

When the interview was created.

Formatdate-time
updatedAt*string

When the interview last changed.

Formatdate-time
expiresAt*string

When the invitation stops working if unused.

Formatdate-time
startedAt*|

When the candidate started.

completedAt*|

When the candidate finished.

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/interviews/ID_VALUE/retry-scoring" \  -H "Authorization: Bearer $PROBB_API_KEY" \  -H "Idempotency-Key: $REQUEST_KEY"
Example Response
{  "object": "interview",  "id": "string",  "reportId": "string",  "candidate": {    "id": "string",    "name": "string"  },  "job": {    "id": "string",    "title": "string"  },  "status": "invited",  "failureCode": "preparation_failed",  "invitation": {    "email": "string",    "emailStatus": "queued",    "sentAt": "2019-08-24T14:15:22Z"  },  "reminders": {    "optedOut": true,    "nudgeSentAt": "2019-08-24T14:15:22Z",    "lastCallSentAt": "2019-08-24T14:15:22Z",    "nextReminderAt": "2019-08-24T14:15:22Z",    "nextReminderKind": "nudge",    "inactiveReason": "org_disabled"  },  "interviewVersion": "string",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z",  "expiresAt": "2019-08-24T14:15:22Z",  "startedAt": "2019-08-24T14:15:22Z",  "completedAt": "2019-08-24T14:15:22Z"}