{"uid":"cap_moG9Q7bdEFUm89vBKME6v","slug":"call4me-ai-phone-call-agent-ad382888","name":"call4me – AI Phone Call Agent","description":"Let AI call for you: call4me phones businesses, books appointments and waits on hold, then patches you in. Works in ChatGPT, Claude Code and Codex.","url":"https://call4.me/api/x402/calls?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"to":{"type":"string","maxLength":40,"minLength":3,"description":"the number to call, e.g. \"+14155550123\", \"(415) 555-0123\", or abroad with its country code, e.g. \"+31 20 123 4567\""},"from":{"type":"string","maxLength":40,"description":"which of the account's numbers to call from (default: a call4me number in the callee's country). May be one of the user's own verified numbers (call4me_verify_number): the business sees it and calls back the user directly. A carrier may still refuse an own number as caller ID on some international calls"},"goal":{"type":"string","maxLength":1500,"minLength":5,"description":"what the call should achieve, in plain words: \"Book a table for 4 tomorrow (Sat Oct 3) around 7pm under Khami.\""},"facts":{"type":"string","maxLength":3000,"description":"anything else the caller may share beyond the category's fields, one per line"},"voice":{"enum":["marin","cedar","gleam","meridian","vesper","willow"],"type":"string","description":"caller voice (default marin); hear each at https://call4.me/voices"},"accent":{"type":"string","maxLength":40,"description":"an accent or dialect the caller speaks with for this call only, e.g. \"Austrian German\" for a call in Vienna (default: the profile's accent, else its voice's own)"},"details":{"type":"object","description":"answers to the category's fields by key, e.g. {\"reason\":\"annual physical\",\"patient_status\":\"existing\",\"availability\":\"weekday mornings next week\"}. Profile fields (name, DOB, phone, insurance...) are filled from the saved profile only when the call is for the profile's owner; for anyone else (on_behalf_of is another name) pass all of their details here, since the owner's are never used.","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","maxLength":1000}},"business":{"type":"string","maxLength":120,"minLength":1,"description":"who you are calling, as a person would say it: \"Nopa\", \"Dr. Chen's office\", \"Toyota of Berkeley service\""},"category":{"enum":["medical","dental","restaurant","veterinary","auto_service","auto_sales","home_service","personal_care","internet_new_service","internet_existing_account","flight_change","general"],"type":"string","description":"the kind of call; decides what must be known first (see call4me_get_requirements)"},"timezone":{"type":"string","maxLength":60,"description":"IANA time zone of the business, e.g. \"America/Los_Angeles\", so \"tomorrow\" is unambiguous"},"listen_in":{"type":"boolean","description":"ring the user as soon as the business answers so they can listen in: nobody on the call hears them and the caller keeps working. They press 1 anytime to take over, or hang up to stop listening. Rings their own phone: details.phone when given, else the one in their profile; a call with neither is refused."},"calling_as":{"type":"string","maxLength":80,"minLength":1,"description":"a company the caller calls from, e.g. \"Acme\": it introduces itself as \"Jordan from Acme\" (or \"calling from Acme\" without caller_name) instead of \"<user>'s assistant\", and callbacks to the number it called from answer as that company. Calling for several companies: pass the company on every call and give each one its own number (from), so callbacks reach the right identity."},"caller_name":{"type":"string","maxLength":30,"description":"a first name the caller introduces itself with, e.g. \"Jordan\", for this call only (default: the profile's assistant_name, else none: just \"<user>'s assistant\"). Put the caller's name and company here, never in the goal: the caller's identity comes only from these fields."},"flexibility":{"type":"string","maxLength":1500,"description":"what the caller may accept without asking: \"any time 6:30-8pm\", \"a different day this week is fine\", \"up to $300\". Anything outside this becomes a question to you."},"max_minutes":{"type":"integer","maximum":60,"minimum":1,"description":"the most minutes the answered call may run, including phone menus (default 10); the payment is this many minutes at the destination's per-minute price. Minutes the call does not use stay as credits on the paying wallet's call4me account"},"connect_when":{"type":"string","maxLength":300,"description":"when to ring the user and patch them into the call without being asked, e.g. \"as soon as a person picks up\" (skip the hold) or \"if they need to speak to me\". Rings their own phone: details.phone when given, else the one in their profile; a call with neither is refused. They hand the call back to the caller by pressing * or hanging up."},"on_behalf_of":{"type":"string","maxLength":80,"minLength":1,"description":"who the call is for, as the caller should say it (default: the profile's full_name). The caller calls FOR this person; it never claims to be them."},"callback_number":{"type":"string","maxLength":40,"description":"the number the caller gives for call-backs and on voicemail, when the user wants callbacks to ring a phone of theirs (e.g. \"(415) 555-0123\"). Default: the number the call comes from, so a call4me number answers the callback and finishes the task. A callback to callback_number goes straight to that phone instead, and call4me never hears it. Phone numbers in details or facts are only for finding or verifying an account, never given as the callback."}}},"responseSchema":{"type":"json","example":{"call":{"id":"call_ab12cd34","number":"(415) 555-0123","status":"dialing","outcome":null,"business":"Tartine Bakery","finished":false,"calling_number":"(510) 555-0199","open_questions":[]},"payer":"0x8a1e…","follow":"GET https://call4.me/api/calls/call_ab12cd34?wait_seconds=30 with Authorization: Bearer <api_key>","api_key":"cb_live_…","balance":"$0.00","credited":"$1.25","transaction":"0x5f2c…"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"2.5","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$2.5/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"2.5","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"2.5","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_UubaB9bS7SUVhQvduGlq1","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"2.5","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Places an AI-powered phone call to a business on the user's behalf to book appointments, wait on hold, or accomplish a stated goal, then patches the user in.","exampleAgentPrompt":"Call Tartine Bakery in San Francisco and book a table for 4 people this Saturday at 7pm under the name Khami — use the restaurant category and the marin voice.","exampleUseCases":[{"title":"Doctor appointment booked by AI","prompt":"Call Dr. Chen's office and book me an annual physical for weekday mornings next week — I'm an existing patient, my DOB is March 5 1985, and my insurance is Blue Shield. Use the medical category."},{"title":"Restaurant reservation on hold","prompt":"I need a table for 2 at Nopa in San Francisco this Friday around 8pm under the name Rivera — can you call them and book it for me? Use the restaurant category."},{"title":"Vet appointment for a pet","prompt":"Call Berkeley Animal Hospital and schedule a checkup for my cat Luna — she's a 3-year-old tabby, it's her first visit there. Use the veterinary category and note she needs a rabies booster."}],"resultDescription":"Returns a call object with a unique call ID, the dialed number, initial status (e.g. 'dialing'), the calling number used, and an open_questions array. Also returns an API key for polling the call's progress, a follow-up GET URL to check status with optional long-polling, credited balance, and the on-chain transaction hash for the x402 payment.","failureModes":["Invalid or unreachable phone number returns an error before the call is placed","Business is closed or does not answer — call ends with a no-answer outcome","Goal is too ambiguous for the AI to accomplish — call may complete but outcome is unsuccessful","Insufficient USDC balance to cover the $2.50 per-call fee — payment rejected","Unsupported country or number format causes a validation error","Category/details mismatch leads to AI confusion during the call","Rate limits or API key issues return authentication errors"],"whenToPreferThis":"Choose this endpoint when a user needs to interact with a real business by phone — especially for appointment booking, hold-queue waiting, or obtaining information that requires a live call. It is uniquely suited for scenarios where the user cannot or does not want to make the call themselves, and the interaction requires natural voice conversation with a business representative. It supports x402 micropayment-based per-call billing and is integration-ready for ChatGPT, Claude, and Codex agents.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-11-03T16:32:15.729Z","isFirstParty":false,"canonicalSlug":"call4me-ai-phone-call-agent-45c230bb"}