---
title: "Check with contact"
method: POST
path: "/v1/errands/check"
tags: ["Owner"]
---

# Check with contact

`POST /v1/errands/check`

## Request

- Base URL: `https://api.vicem.ai`
- URL: `https://api.vicem.ai/v1/errands/check`
- Auth: HTTP bearer

## Request body

- CheckWithContactRequest
  - `contactId` string, required
  - `interactionId` string

## Response `200`

OK

- ErrandResponse
  - `id` string, required
  - `status` 'planned' | 'queued' | 'dialing' | 'ivr' | 'on_hold' | 'talking' | 'done' | 'failed' | 'needs_owner' | 'cancelled', required
  - `statusLine` string, required
  - `request` string, required
  - `goal` string, required
  - `targetName` string, nullable, required
  - `targetE164` string, required
  - `targetSource` 'contact' | 'places' | 'typed', nullable, required
  - `callLang` string, required
  - `reportLang` string, required
  - `allowedFacts` string[], required
  - `maxMinutes` integer, required
  - `holdMode` 'alert_owner' | 'carry_on', required
  - `holdLimitMinutes` integer, nullable
  - `payloadHash` string, nullable, required
  - `blocker` object, nullable, required
    - `reason` 'no_number' | 'invalid' | 'needs_area_code' | 'emergency' | 'premium' | 'short_code' | 'own_number' | 'unsupported_country' | 'opted_out' | 'business_dnc' | 'owner_daily_cap' | 'destination_daily_cap' | 'no_minutes' | 'service_off' | 'no_caller', required
    - `message` string, required
  - `outcome` object, nullable, required
    - `result` 'achieved' | 'partial' | 'not_achieved' | 'no_answer' | 'voicemail' | 'needs_owner' | 'refused_ai' | 'no_answer_closed', required
    - `summary` string, required
    - `timesOffered` string[], required
    - `price` string, nullable, required
    - `reference` string, nullable, required
    - `nextStep` string, nullable, required
    - `screener` object
      - `detected` boolean, required
      - `passed` boolean, required
      - `vendorHint` string, required
    - `counterpartAi` object
      - `vendorHint` string, nullable, required
      - `principal` string, nullable, required
    - `closedHours` string, nullable
    - `effective` string, nullable
    - `agreed` object, nullable
      - `when` string, nullable, required
      - `what` string, required
    - `scope` object
      - `security` boolean, required
      - `offered` string[], required
    - `reached` object
      - `by` 'person' | 'recording' | 'nobody', required
      - `words` string
      - `seq` integer
  - `summary` string, nullable, required
  - `holdMinutes` integer, required
  - `holdStartedAt` string, date-time
  - `holdPosition` integer, nullable
  - `holdWaitMinutes` integer, nullable
  - `callSeconds` integer, nullable, required
  - `interactionId` string, required
  - `groupId` string
  - `createdAt` string, date-time, required
  - `approvedAt` string, date-time, required
  - `endedAt` string, date-time, required
  - `mailFacts` object[]
    - `id` string, required
    - `label` string, required
    - `value` string, required
  - `wantsPerson` boolean
  - `topic` string, nullable
  - `screenerNote` string
  - `scheduledFor` string, date-time
  - `via` object, nullable
    - `clientName` string, required
  - `bookedLine` string, nullable
  - `again` object, nullable
    - `tryAt` string, date-time, required
  - `stopRequested` boolean
  - `notDialled` boolean
  - `doNotCall` boolean
  - `retryOf` string
  - `ownerJoined` boolean
  - `chase` object, nullable
    - `caseId` string, nullable, required
  - `more` object, nullable
    - `sooner` object, nullable, required
      - `caseId` string, required
    - `again` object, nullable, required
      - `caseId` string, required
  - `usedEarlier` boolean
  - `limits` object, nullable
    - `maxPrice` number, nullable, required
    - `currency` string, nullable, required
    - `window` object, nullable, required
      - `days` integer[], required
      - `from` string, nullable, required
      - `to` string, nullable, required
    - `mustNot` string[], required
    - `decide` 'first_fit' | 'compare', required
  - `callerId` object
    - `name` string, nullable, required
    - `fewerPickUps` boolean, required

## Other responses

- `400`: Invalid request (body not JSON, or schema validation failed).
- `401`: Missing, expired or invalid bearer token.
- `413`: Body over the limit (64 KB; 512 KB for contact import).
- `500`: Unexpected server error (reported to Sentry).

---

[API](https://skmtc.dev/vicem/apis/vicem-api.md) · [All operations](https://skmtc.dev/vicem/apis/vicem-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vicem/apis/vicem-api/revisions/9efcec07e5f4?raw)
