Phone closes high ticket B2B deals when the person who answers can sign. Most of the work is the list: the right title, a direct dial, a small call block. This guide builds that list with the LeadOcean API.
TL;DR
- It takes about 30 minutes to size a buyer list, pull a first batch and set up your call block.
- The walkthrough spends about 25 records for the search plus 1 per phone pull. Sizing counts are free.
- Call buyers with budget authority, not gatekeepers. Open with a reason tied to their company, ask for a short meeting, and book the next step before you hang up.
Prerequisites
- A LeadOcean API key from app.leadocean.io. The free plan has 1,000 records, one-off, and no card.
- The key in your shell as
$LEADOCEAN_API_KEY. curlandjq.- A phone or dialer you already use. LeadOcean supplies data, not a dialer.
export LEADOCEAN_API_KEY="paste-your-key-here"Step 1: Pick the person who can sign
A high ticket deal is closed by the person who owns the budget, so call that title first. For most software and services deals that is a VP or a C-level leader in the function that feels the pain.
Write the buyer down as filters, not as a feeling. Seniority and function are closed lists, so check the exact strings before you use them.
Use leadocean_list_enum_values with name "job_level"
Use leadocean_list_enum_values with name "job_function" and q "Sales"Job levels are C-Team, VP, Director, Manager, Staff and Other. The sales function is Sales & Business Development. A wrong value can return an empty list or a 400.
Step 2: Size the list for free
Count before you spend. Send count=true as a query parameter with limit 1 in the body, or ask the MCP tool leadocean_count_leads.
curl -s -X POST "https://api.leadocean.io/v1/people/search?count=true" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobLevel": ["VP", "C-Team"],
"jobFunction": ["Sales & Business Development"],
"country": ["US"],
"employeeRange": ["201-500", "501-1000"],
"hasPhone": true,
"limit": 1
}'meta.total is capped at 100,000 on this call. If the number is huge, narrow by industry. Ticket size follows company size, so a mid-size band is a good place to start.
Step 3: Search and keep the best accounts
Search returns people, one record per row. Filters are arrays, the body is flat JSON and limit runs 1 to 100.
curl -s -X POST "https://api.leadocean.io/v1/people/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobLevel": ["VP", "C-Team"],
"jobFunction": ["Sales & Business Development"],
"country": ["US"],
"employeeRange": ["201-500", "501-1000"],
"hasPhone": true,
"limit": 25
}' | jq '.meta, (.data | length)'Page on with meta.nextCursor. One search stops at 10,000 rows (meta.depthCapped). Narrow the filters instead of paging deeper. Then cut the 25 to the accounts you would be glad to win. Phones are for a short list, not a spray.
Step 4: Pull the direct dial
Spend records last. Each phone pull is 1 record, including a call that finds nothing. Take the person id from a search row and ask for the phone.
curl -s "https://api.leadocean.io/v2/people/phone?person_id=1234567" \
-H "x-api-key: $LEADOCEAN_API_KEY" | jqIn Claude, the MCP tool leadocean_find_phone does the same lookup for 1 record. For a few hundred people, start an export with POST /v1/exports instead of looping. One export takes up to 50,000 rows and an account gets 500,000 a day. Bulk CSV export is not on Free. It comes with Solo ($97 a month) and Agency ($497 a month).
Step 5: Run the call block
The list is only half of closing by phone. The rest is how you spend the first minute and how you handle the second call.
Use this structure for each call.
1. Reason (10 seconds): "Jane, this is <you> at <company>. I saw <specific fact about Acme>. Do you have a minute?"
2. One question about their current way of doing it.
3. One sentence on what you change, with a number you can defend.
4. Ask for the next step: a 20 minute call with a date and time.
5. Log the outcome the same day.Call in blocks of 60 to 90 minutes, in the buyer's business hours. Try the first number, then the second only if the first is a dead line. Stop after two attempts a day.
Keep the block small. Twenty accounts you researched beat two hundred you did not. Before each block, read one line about each company: a hire, a launch, a funding round or a new office. That line is your reason to call.
Pair every call with one email. Pull the work address in the same record lookup flow with GET /v2/people/email/work, which costs 1 record. Send the email after a missed call, not before. It should say who you are, why you called and one question they can answer in a line.
Track four numbers per block: dials, connects, meetings booked and deals moved a stage. If connects are low, your numbers or call times are wrong. If meetings are low, your reason to call is weak. Fix one thing at a time and keep the list fixed while you test.
Close on the second or third conversation, not the first. A high ticket deal needs a champion, a clear cost of doing nothing and a named next date. Send a short email after every connected call with the one thing you agreed.
Step 6: Handle the three objections that stall big deals
Most stalls on a high ticket call come from three places. Plan one line for each before the block starts.
- "Send me something." Agree, then fix a time. Say: "Happy to. I will send one page today. Can we book 15 minutes Thursday to go through it?"
- "We have a vendor." Ask what they would change about it. A buyer with no answer has no loyalty. A buyer with an answer just handed you the pitch.
- "No budget." Ask when budget is set and who signs. Put that date in your notes and call back before it.
Write the buyer's own words in your notes. On the second call, open with their sentence, not yours. That is what makes a cold list feel like a warm one.
Step 7: Check what you may call
Having a number is not permission to dial it. Rules differ by country, by mobile versus office line and by dialer type. The API does not return a usable do-not-call flag, and its absence is not clearance.
Check the registries that apply to your market before a campaign. Keep a suppression list. This is not legal advice.
What you get
A free count run on 2026-10-21 with leadocean_count_leads: jobLevel VP or C-Team, jobFunction Sales & Business Development, country US, employeeRange 201-500 or 501-1000, hasPhone true. It counts people with a phone on file. It is not a verified-number count.
{
"total": 94147,
"totalIsExact": true,
"distinctCompanies": 25550,
"credits": 0
}The phone call returns this shape. It is the response shape from the API reference, with placeholder values.
{
"success": true,
"data": {
"found": true,
"phones": [
{ "phone": "+1 415 555 0133", "type": "direct" },
{ "phone": "+1 415 555 0134", "type": "office" }
]
}
}Call direct and mobile numbers first. An office line mostly reaches a gatekeeper.
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing or wrong x-api-key | Check $LEADOCEAN_API_KEY is exported and the header is x-api-key. |
| 429 | Above the plan's rate limit (5 a second on Free, 200 on Agency) | Back off for the Retry-After seconds, then slow the loop. |
| 402 | The 1,000 free records are spent | Move to a paid plan on pricing. |
| Empty results | A filter value that is not an exact enum string | Look it up with leadocean_list_enum_values. |
depthCapped true, no nextCursor | One search reached 10,000 rows | Narrow by industry, country or headcount band. |
| 400 or 429 on an export | 400: over 50,000 rows in one export. 429: past 500,000 rows a day | Split the segment into several exports. |
FAQ
Does phone still work for high ticket B2B?
Yes, for a short list of senior buyers. It works worst as a high-volume spray. Combine a call with a short email so the buyer recognizes your name.
Who should I call first?
The person who owns the budget for the problem you solve. Start with VP and C-Team in that function. Use how to sell to a VP of Sales if your buyer is in sales.
How many records does this cost?
The sizing count is free. A search costs 1 record per person returned and a phone pull costs 1 record. The walkthrough is about 25 records.
Can I get numbers for one named person?
Search by domain and title, then pull the phone by person_id. See how to find a VP of Sales phone number and how to find a sales director's phone number.
Does LeadOcean include a dialer?
No. LeadOcean returns data by API, MCP or CSV export. Use your own phone or dialer. More sales guides are in the blog.
Build your first call list of buyers who can sign
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →