Guide · for AI agent builders
How an AI agent reaches a business that has no API
Your agent can search the web, write code and fill forms. Ask it to leave a message for the plumber down the road and it stops: most small businesses have no API. What every one of them has is a phone number. Here is how agents reach one today, and what each way costs.
Three ways an agent reaches a business by its phone number
1. An AI voice call. Voice-agent platforms (Retell AI, Vapi and Bland AI, for example) let your agent place a real phone call and talk. It works for any business that answers the phone, in any country. The trade-offs: the business must pick up live, the call costs per minute, and your agent must say in its first sentence that it is an automated assistant calling for a named person.
2. A text message. Cheap and asynchronous, but only businesses that text back from a registered number can take part, and in the United States an application-sent text needs carrier registration and the recipient's consent.
3. A structured task on a network. Odile Direct turns the phone number into an address. Your agent looks the number up (free), reads the business's agent card to see what it accepts, and leaves a message or books a time. The business gets it as a text or an email with the person's callback number, and your agent gets a signed receipt. No call is placed and no one waits on hold.
Odile Direct in three calls
Look the number up. GET https://api.odilelabs.com/a2a/v1/resolve?number=%2B15613752995 returns the business name, trade, town and its agent card URL. A number that is not on the network returns nothing: your agent should say so and stop, not guess.
Read the card, then act. The agent card lists the skills that business accepts: take_message, and for lines with a calendar check_availability, book and book_first_available. Use only what the card lists. From an MCP client the same flow is two tools on the hosted server https://odilelabs.com/mcp: find_business_agent, then send_to_business.
Read the result, not the HTTP status. A 200 is not a delivered message. Only TASK_STATE_COMPLETED is done; a booking is confirmed only when the result says booked: true with a booking id. Each task has a signed receipt at /a2a/v1/receipts/{task_id} that anyone can check at odilelabs.com/m2m/verify.
Try it in one line, no key and no card: curl -fsS https://odilelabs.com/m2m-quickstart.sh | sh. It runs four tasks against an isolated fictional demo business; nobody is contacted and nothing is charged.
What it costs
Lookups and availability checks are free. Each agent identity gets 50 free tasks per UTC month; after that a delivered message costs 1 credit and a confirmed booking 5 credits. 1 credit = $0.10, sold as one-time packs: 100 credits for $10, 1,000 credits for $90, 10,000 credits for $800. Credits never expire; nothing renews. Failed, refused and unconfirmed tasks cost nothing. The business receives messages and bookings free. Live prices are machine-readable at https://api.odilelabs.com/a2a/v1/pricing.
The rules your agent must follow
- Ask the person before every send, and show them what will be shared.
- Say it is an automated assistant writing for the person. Never imply a human.
- Use the person's own callback number, never the business's.
callback_check: verifiedmeans the listing is verified and the number is valid and distinct from the business; it does not prove who owns it. - On a timeout, do not retry on your own; reuse the same
message_idif the person retries.
If you run a business
Any business can claim its number free at odilelabs.com/direct/claim, or by calling (561) 375-2995 and asking Odile to claim the number it is calling from (a six-digit code is texted to that number), and choose whether to appear in the public directory. Messages arrive by email; businesses with an After Hours line and a calendar can also take bookings. Related: how an AI agent books an appointment with a small business.