Pre-Black Friday: 20% off, for as long as you stayEARLYBFon Solo and AgencyEnds Nov 28Start free

How-to guide

How to Find a CMO's Phone Number (2026)

A direct dial beats a switchboard. Here is how to get one, check what you may call, and repeat it for a whole list.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

The fastest way to find a CMO's phone number is to search a people database for CMOs flagged with a phone, then pull the direct dial by person id. A switchboard reaches a gatekeeper. A direct dial or mobile reaches the CMO.

TL;DR

  • Filter CMOs with hasPhone: true, size the list for free, then pull numbers only for people you will call.
  • Time: about 15 minutes for one CMO, about 30 for a list of 500. Cost: 1 LeadOcean record per number pulled.
  • Check the calling rules first. The API returns a number, not permission to dial it.

Prerequisites

  • A LeadOcean account on the free plan: app.leadocean.io/register. Free gives you 1,000 records for life, every feature and 5 requests a second.
  • An API key from the app, exported as $LEADOCEAN_API_KEY.
  • curl and jq.
  • A target: a company domain for one CMO, or a filter set for a list.

Step 1: Pick a direct dial over a switchboard

A main line rings reception. A direct dial or mobile rings the person. CMOs sit behind assistants and brand-inquiry queues, so the main line rarely gets you through.

LeadOcean returns each number with the source's own type label, such as mobile, direct, office or unknown. Call mobile and direct first. Treat office as a fallback. A mobile carries the strictest calling rules (see Step 5).

Title matching is the one trap. "CMO" is a keyword match, so you also get "Fractional CMO" and "Founder and CMO". Read the title column before you dial.

Three habits keep the spend low. Pull a number only for CMOs you will call this week. Narrow by employeeRange so you call companies that fit your offer. Skip a CMO whose title is a keyword hit, such as an advisor, before you spend a record on them.

Industry shapes the list. In the count below, hospitals and health care lead the CMO phone-flag list, ahead of advertising services. A healthcare CMO and an agency CMO need different openers, so split the list by industry before you write a script.

Step 2: Size the CMO list for free

Count before you spend. A count costs 0 records. Use the MCP tool leadocean_count_leads, or send count=true with limit=1 as query parameters on the search endpoint.

bash
curl -s -X POST "https://api.leadocean.io/v1/people/search?count=true&limit=1" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": ["CMO"],
    "jobLevel": ["C-Team"],
    "country": ["US"],
    "hasPhone": true
  }'

meta.total is capped at 100,000 on this call. Enum values are exact strings, so write C-Team, not c-team. Check spelling with leadocean_list_enum_values.

Step 3: Search for CMOs with a phone on file

Search returns people, one record per row. The body is flat JSON, filters are arrays, and limit runs 1 to 100.

bash
curl -s -X POST "https://api.leadocean.io/v1/people/search" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": ["CMO"],
    "jobLevel": ["C-Team"],
    "country": ["US"],
    "employeeRange": ["51-200"],
    "hasPhone": true,
    "limit": 25
  }' | jq '.meta, (.data | length)'

Page on with meta.nextCursor. One search stops at 10,000 rows (meta.depthCapped), so narrow by industry or headcount instead of paging deeper. To find one named company's CMO, call GET /v1/companies/{domain}/people and filter the title.

Step 4: Pull the direct dial

Spend records last. Each phone pull costs 1 record per call, including a call that finds nothing. A 25-person test batch costs 25 records.

Take the person id from a search row and ask for the phone.

bash
curl -s "https://api.leadocean.io/v2/people/phone?person_id=1234567" \
  -H "x-api-key: $LEADOCEAN_API_KEY" | jq

Numbers come back best first, and best points at the top one.

For a list over a few hundred people, skip the loop. Start an export with POST /v1/exports and the full preset, which includes phone_1_number and phone_2_number. 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, 50k rows a file).

bash
curl -s -X POST "https://api.leadocean.io/v1/exports" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "us-cmos-with-phone",
    "filters": { "title": ["CMO"], "jobLevel": ["C-Team"], "country": ["US"], "hasPhone": true },
    "limit": 500,
    "preset": "full",
    "reveal": "email_phone"
  }'

Poll GET /v1/exports/{id}, then fetch GET /v1/exports/{id}/download. You can build the same export in the app: filter builder, column picker, price preview, then download.

Step 5: Check what you may call before you dial

Having a number is not permission to call it. Rules differ by country, by whether the line is a mobile, and by whether you use an autodialer or a recorded message.

  • The phone endpoint returns no do-not-call flag. Its absence is not clearance.
  • Run your list through the registries that apply to you before a campaign.
  • In the US, the FTC's Telemarketing Sales Rule exempts most calls to a business, including from its Do Not Call provisions. The exemption does not cover calls selling nondurable office or cleaning supplies, and the ban on misrepresentation still applies (16 CFR 310.6(b)(7), checked October 2026).
  • A CMO's personal mobile can carry stricter rules than a business line. Ask your counsel, and keep a suppression list.

This is not legal advice.

What you get

A short list, not a dump. Every row in the slice below has a phone flag, and some pulls will return an office line rather than a direct dial. Sort by type and call direct and mobile first.

A free count run on 2026-10-21 with leadocean_count_leads (title CMO, job level C-Team, country US, hasPhone true). It is a phone-flag count, not a verified-number count.

json
{
  "total": 12484,
  "totalIsExact": true,
  "distinctCompanies": 9049,
  "credits": 0,
  "facets": {
    "industry": [
      { "value": "Hospitals and Health Care", "count": 1681 },
      { "value": "Advertising Services", "count": 722 },
      { "value": "Software Development", "count": 670 }
    ],
    "seniority": [
      { "value": "c_suite", "count": 10796 },
      { "value": "owner", "count": 1688 }
    ]
  }
}

The phone call returns this shape. It is the response shape from the API reference, with placeholder values.

json
{
  "success": true,
  "data": {
    "found": true,
    "phones": [
      { "phone": "+1 415 555 0133", "type": "direct" },
      { "phone": "+1 415 555 0134", "type": "office" }
    ],
    "best": { "phone": "+1 415 555 0133", "type": "direct" }
  }
}

Troubleshooting

ErrorCauseFix
401Missing or wrong x-api-key headerRe-export $LEADOCEAN_API_KEY from the app's API keys page
429Above your plan's rate limit (5 a second on Free, 200 on Agency)Wait for the Retry-After header, then slow the loop
402Out of records. Free is 1,000 for lifeCheck GET /v1/usage, or move to a paid plan
Empty resultsA bad enum value, such as c-teamLook up exact strings with leadocean_list_enum_values
found: false on the phone callNo number held for that personSkip them. The call still costs 1 record
400 on an exportOver the 50,000-row ceiling, or a filter that cannot be appliedLower limit or split the filter set

FAQ

Is a CMO's direct dial better than the company main line?

Yes. A main line routes through reception, and marketing leaders are often screened by assistants. A direct dial or mobile skips that step.

Can I find a CMO's number from a LinkedIn URL?

Yes. GET /v2/people/phone accepts linkedin_url as well as person_id. It costs 1 record per call.

How do I find CMO numbers at scale?

Filter with hasPhone: true, size the list for free, then run POST /v1/exports with phone columns. The full preset includes up to 2 phones per person by default.

Does LeadOcean tell me if a number is on a do-not-call list?

No. The phone endpoint does not return a dnc field. Check your own list against the registries that apply to your market.

Can I use this for other titles?

Yes. See how to find a VP of Sales phone number for the same recipe. For the full phone product, see find phone number and the Claude skill. Plans are on pricing.

Pull your first CMO direct dial on the free plan

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →