Verify business information by phone

Listings go stale. A shop moves, a contractor stops covering a town, a café stops taking cash. The quickest way to know is often to ring and ask. A real person makes the call, asks your questions and returns typed answers, with anything unclear marked as missing rather than guessed.

What a caller can confirm

Most details that drift on a listing can be checked in a short call to the business itself:

  • Whether the business is still operating at this number
  • The street address, suite number or a recent move
  • The service area, such as which towns or ZIP codes they cover
  • Accepted payment methods, such as cash, cards or checks
  • Accessibility details, such as step-free entry or accessible parking

You can ask in plain words from a chat app:

  • “Call Lakeside Hardware and check they are still at 14 Mill Road, and whether they take cash.”
  • “Ring Fieldwork Printing and ask if they deliver to Oak Park, and whether the shop has step-free entry.”

Your caller says who they are and who they are calling for, and tells the business the call is recorded. For opening hours on their own, see confirm opening hours.

One request per business, with typed fields

Each business gets its own request. Over the API, list the answers you need under collect so they come back as typed values: string, number, boolean or date. Up to 25 fields fit in one request. The example below uses fictional data.

POST /v1/calls (example data)
{
  "to": "+15125550142",
  "business": "Lakeside Hardware",
  "on_behalf_of": "Example Data Co.",
  "goal": "Confirm the business is operating, its street address, whether it serves ZIP 78704, accepted payment methods and whether the entrance is step-free.",
  "collect": {
    "still_operating": { "type": "boolean", "required": true },
    "street_address": { "type": "string" },
    "serves_78704": { "type": "boolean" },
    "accepts_cash": { "type": "boolean" },
    "payment_methods": { "type": "string", "description": "As stated by the business" },
    "step_free_entrance": { "type": "boolean" }
  },
  "metadata": { "record_id": "loc_0412" },
  "max_minutes": 5,
  "delivery": { "mode": "polling" }
}

The metadata values come back with the result, so you can match each answer to the row it belongs to. The full contract is in the developer docs.

When an answer is unclear, it is marked missing

Verified data is only useful if guesses stay out of it. If the person on the phone does not know whether they cover a ZIP code, or the line drops before a question is asked, an optional field comes back as null rather than a made-up value. The result also reports each check as confirmed, missing or unclear, with evidence from the transcript.

Alongside the typed outcome you get outcome notes, a summary, the recording and a transcript with speaker and timestamps. Recordings and transcripts can arrive a little after the call finishes, so poll the task until the URLs are present.

A call nobody answers ends as no_answer and costs nothing. That is not proof a business has closed. It is a reason to try again later or flag the record for review.

Checking a list of records

Data teams often have hundreds of locations to check. Send one request per business, each with its own Idempotency-Key so a retry never creates a duplicate call. Creation is limited to ten new tasks a minute per account and three open tasks per destination number, and a 429 response tells you when to retry.

Results can be polled, or delivered to a verified webhook connection. If your pipeline runs in a workflow tool, see the n8n step. An AI agent can also use the MCP server at https://humancalls.ai/mcp; setup is on connect a chat app.

Cost and limits

Calls cost $1 per connected minute, rounded up. Phone menus and hold time after the business answers count; ringing does not. Unanswered, declined and canceled calls cost $0. A new workspace gets 10 free minutes once the owner verifies their email. See pricing.

HumanCalls calls businesses in the US and Canada only. It does not make sales calls, cold calls to consumers, debt collection or political calls, or anything deceptive. Callers ask questions; they do not agree to anything you did not authorize. Details are under trust and process.

Questions

Is a person or an AI voice making the call?
A real, trained person makes every call. If you are weighing the two, see a human caller or an AI voice agent.
What happens if the business cannot answer one of my questions?
That field comes back as null and the check is marked missing or unclear, with the reason in the notes. Nothing is filled in by guesswork.
Can I verify many businesses at once?
Yes, as one request per business. Use a unique idempotency key for each and stay within the rate limits described in the docs.
Does an unanswered call tell me the business has closed?
Not on its own. It costs nothing and is returned as no_answer, so you can retry at another time before changing the record.

Related

  • Confirm opening hours with a phone callListings go stale. Have a real person phone a business to confirm today's opening hours, holiday hours or whether a service is offered before you travel.
  • Check stock and price by phoneHave a real person phone a supplier or store to confirm stock, price and lead time, and get the answers back as typed fields your team or AI agent can use.
  • An MCP server for phone callsThe HumanCalls MCP server lets Claude, ChatGPT and other clients ask a real person to phone a business. Address, sign-in and the seven tools.

Try it with 10 free minutes

$1 per connected minute after that, and nothing when nobody picks up.

Request a callConnect a chat app