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

How-to guide

How to Build a B2B Lead List for Fintech (Buyers, Filters and Messaging)

Pick the buying committee, count the list for free, then spend records only on the people you will email.

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

A fintech deal is rarely signed by the person who wants it. The champion is in product or engineering, but compliance and risk can stop the deal.

This guide picks that committee, finds it with LeadOcean filters, sizes the list with a free count and drafts a first message per role. It works whether you sell software, data or services to fintech teams.

TL;DR

  • Target three roles per account: the budget owner (CFO, COO or CTO), the champion (product or engineering lead) and the gatekeeper (compliance or risk).
  • Size first with a free count. On 2026-10-21, US-headquartered Financial Services companies with 51 to 1,000 employees held 92,547 mailable VPs and C-level people across 5,460 employers.
  • The recipe takes about 40 minutes and spends about 30 records, so it fits inside the Free plan's 1,000.

Prerequisites

  • A LeadOcean account on the Free plan. Sign up at app.leadocean.io, no card.
  • An API key exported as $LEADOCEAN_API_KEY.
  • curl and jq, or any HTTP client.
  • Optional: the hosted MCP server at https://api.leadocean.io/mcp if you would rather run the counts from Claude.

Step 1: Pick the buying committee

Pick the roles before you touch a filter. Fintech buyers split into three groups, and each reads a cold email differently.

You sellEconomic buyerChampionGatekeeper
Developer or infrastructure toolsCTO, VP EngineeringDirector of engineering, platform leadSecurity, compliance
Compliance, fraud or risk softwareChief Risk Officer, CCOHead of fraud or financial crimeIT, legal
Services, data or marketingCEO, CRO, CFOVP Product, VP GrowthFinance, legal

Company size changes the committee. At 50 people the CEO or CTO buys and one person owns compliance. At 500 people there is a risk team, a vendor review and a security questionnaire before any contract.

LeadOcean has no "fintech" industry. It files most fintech companies under Financial Services, with neighbours such as Banking, Credit Intermediation, Capital Markets and Insurance. Look the exact strings up before you use them.

bash
curl -s "https://api.leadocean.io/v1/enums/industry?limit=500" \
  -H "x-api-key: $LEADOCEAN_API_KEY" | jq -r '.data.values[]' | grep -iE "financ|bank|credit|capital|insur"

The same lookup is free through the MCP tool leadocean_list_enum_values. Enum values are exact strings, so Fintech as an industry returns nothing.

One warning. Financial Services also holds wealth advisers, brokers and lenders that are not technology companies. If you sell to software-led fintechs only, narrow by size and role, then read the first batch.

Step 2: Turn the committee into filters

Write the filters as flat JSON. Every filter is an array, even when it holds one value.

json
{
  "industry": ["Financial Services"],
  "hqCountry": ["US"],
  "employeeRange": ["51-200", "201-500", "501-1000"],
  "jobLevel": ["C-Team", "VP"]
}

For the gatekeepers, switch to titles. Title values are keywords, so list the variants you want.

json
{
  "industry": ["Financial Services"],
  "hqCountry": ["US"],
  "employeeRange": ["51-200", "201-500", "501-1000"],
  "title": ["Chief Compliance Officer", "Head of Compliance", "Chief Risk Officer"]
}

Run one list per role. A compliance officer and a platform engineer on one sequence get a message that fits neither.

Exclude what you cannot sell to. Add excludeTitle values such as ["intern", "assistant"] and excludeCompanyName for competitors and existing customers.

Step 3: Split by size, function and region

Fintech is not one market. A payments processor, a lender and a wealth platform feel different pressure.

  • Headcount. Use employeeRange. From 51 to 200 people, the founder or CTO decides. From 201 to 1,000, a compliance lead and a vendor process exist. Above 1,000, expect procurement and a security review.
  • Function. Use jobFunction set to Engineering or Information Technology for builders, and Finance & Accounting for the money side. Compliance titles are best caught with title.
  • Region. Use hqCountry for the account and country for the person. A UK lead and a US lead face different regulators, so write them separate lines.

Count each cut with leadocean_count_leads before you commit. If a segment holds a few hundred people or fewer, merge it with its neighbour. A list that small cannot support its own sequence.

The companyKeywords filter matches words in the employer's description, so ["fintech"] can find companies the industry label misses. It applies only when the matching companies number 50,000 or fewer. On 2026-10-21 it was refused for a US-wide fintech query, so add a state, a size band or an industry before you rely on it.

Step 4: Size the list with a free count

Count before you pull. A count costs no records and can run as often as you like.

bash
curl -s "https://api.leadocean.io/v1/people/search?count=true" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "industry": ["Financial Services"],
    "hqCountry": ["US"],
    "employeeRange": ["51-200", "201-500", "501-1000"],
    "title": ["Chief Compliance Officer", "Head of Compliance", "Chief Risk Officer"],
    "limit": 1
  }' | jq '.meta'

count=true goes in the query string. The JSON body rejects unknown fields. The response has no rows, only meta.total (capped at 100,000) and meta.countOnly: true.

For the company side, GET /v1/companies/count takes the company-search filters and returns an exact total with breakdowns by industry, headcount band, HQ country and HQ state. Use it to see which states hold the accounts before you pick a region.

Step 5: Pull a 25-row test batch

Pull a small batch first. Read the titles and employers. If half are the wrong kind of firm, tighten the filters before you spend more.

bash
curl -s "https://api.leadocean.io/v1/people/search" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "industry": ["Financial Services"],
    "hqCountry": ["US"],
    "employeeRange": ["51-200", "201-500", "501-1000"],
    "jobFunction": ["Engineering", "Information Technology"],
    "jobLevel": ["Director", "VP", "C-Team"],
    "limit": 25
  }' > batch.json

jq '.data | length' batch.json

A page of 25 is 25 records. Page with cursor from meta.nextCursor when you want more. One search pages to 10,000 rows, and the last page carries meta.depthCapped: true. Narrow the filters instead of walking further.

Each row carries an email status. Send to verified and catch_all_valid. Read the status before you send, because LeadOcean does not credit back bounces.

Step 6: Enrich the people you will contact

Enrich only the people you will contact. Enrich takes exactly one of linkedin_url, email, phone or person_id.

bash
curl -s -X POST "https://api.leadocean.io/v1/people/enrich" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "content-type: application/json" \
  -d '{"person_id": "PERSON_ID_FROM_SEARCH", "reveal_email": true}'

Enrich also returns career history in resume_data: past roles, education, certifications and publications, each when held. A compliance lead often lists a named certification, and a past role at a bank tells you which rules they know. That is a better opener than a job title. An enrichment that finds nothing is a 404 and costs nothing.

For a phone number, call GET /v2/people/phone. A v2 contact call costs one record even when it finds nothing.

Step 7: Write messages that fit the buyer

Fintech buyers are cautious by training. Open with a specific problem and a small first step, not a claim about speed.

BuyerTheir pressureFirst line angle
CTO or VP EngineeringUptime, integration time, audit trailSay what it connects to and how long setup takes
Chief Risk Officer or CCORegulator exams, manual review queuesName the one review step you remove
Head of fraudFalse positives, chargebacksLead with the measurable task, not a model name
CEO at a small firmRunway, licence costsOffer the smallest first step, with a price

Keep claims you can prove. Do not cite a customer, a regulator or a result you cannot show. Compliance staff check claims, and they distrust urgency.

Do not promise compliance outcomes. Say what your product does. Let their team decide what it means for their licence.

Keep it to three lines: one on their situation, one on what you do, one question.

text
Subject: Review queues at Acme

Jane, do manual reviews at Acme still run through a shared inbox?
We give that queue an audit trail and an owner for each case.
Worth a look, or is the review process settled this quarter?

The names above are placeholders. Replace them with fields from your batch.

Step 8: Export the full list

When the test batch reads right, export the rest. Bulk CSV export is not on Free; it comes with Solo at $97 a month and with Agency at $497 a month. On Free, page the search endpoint inside your 1,000 records.

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 fintech compliance leads",
    "filters": {
      "industry": ["Financial Services"],
      "hqCountry": ["US"],
      "employeeRange": ["51-200", "201-500", "501-1000"],
      "title": ["Chief Compliance Officer", "Head of Compliance", "Chief Risk Officer"]
    },
    "limit": 1125
  }'

The filters go inside filters and the row count in limit. Every exported row costs one record. An export takes up to 50,000 rows a request and 500,000 a day. The app at app.leadocean.io has an Exports page with a filter builder, a column picker and the record price before you start.

What you get

These are free counts from the LeadOcean MCP tools on 2026-10-21. They count mailable people (verified, catch_all_valid or catch_all email), not everyone. Industry is Financial Services.

FilterMailable peopleEmployers
US HQ, VP or C-Team (any size)661,15637,503
US HQ, 51 to 1,000 employees, VP or C-Team92,5475,460
US HQ, 51 to 1,000 employees, Engineering or IT, Director, VP or C-Team5,1561,764
US HQ, 51 to 1,000 employees, title Chief Compliance Officer, Head of Compliance or Chief Risk Officer1,125683

Without the email condition, the second filter matches 295,460 people and the fourth matches 3,337. The gap is people with no usable address.

Two cautions on reading these numbers. First, VP is a common title in banking and asset management, so 92,547 VPs and C-level people at 5,460 employers is not 17 decision makers per account. In finance, VP is often a mid-level title, so many of these people do not own a budget. Use the function cut or the title cut, not the level cut alone. Second, the compliance title list is narrow on purpose. Add title variants such as BSA Officer or AML Officer only after you have read the first batch, because each added title widens the list fast. A company count for the same industry, country and size bands returned 10,242 companies, led by California (1,447) and New York (1,280).

The shape of one search row follows (response shape from the API reference, placeholder values).

json
{
  "success": true,
  "data": [
    {
      "profile_data": {
        "profile_full_name": "Jane Doe",
        "profile_headline": "Chief Compliance Officer at Acme"
      },
      "contact_data": {
        "has_email": true,
        "has_phone": false,
        "email_status": "verified",
        "contact_current_experiences": [
          { "company_name": "Acme", "company_domain": "acme.com", "job_title": "Chief Compliance Officer" }
        ]
      },
      "meta": { "source_ids": { "person_id": "PERSON_ID" } }
    }
  ],
  "meta": { "nextCursor": "CURSOR", "depthCapped": false }
}

Troubleshooting

ErrorCauseFix
401Missing or wrong x-api-keyRe-export $LEADOCEAN_API_KEY and check the header name
429Above the plan's rate limit (5 requests a second on Free, 200 on Agency)Wait for Retry-After, then slow the loop
402The 1,000 Free records are spentMove to Solo or Agency, or narrow the pull
Empty resultsA misspelled enum value such as Fintech as an industryLook the value up with /v1/enums or leadocean_list_enum_values
Export refusedOver 50,000 rows a request or 500,000 a daySplit by state or headcount band and run several exports
Export rejected on FreeBulk CSV export is not on FreePage the search endpoint, or move to Solo

FAQ

Is there a fintech industry filter?

No. Use Financial Services and its neighbours, then narrow by headcount and role. Read a 25-row batch to check that the employers are the kind you sell to.

Does the count include people I can email?

The default count includes only people whose best email is verified, catch_all_valid or catch_all. Pass emailStatus to widen it, and label the number by what you filtered.

How many records does this guide spend?

About 30: a 25-row test batch plus a few enrichments. Counts, enum lookups and enrichments that find nothing cost no records.

Can I filter by funding stage?

Funding filters narrow a search, but they do not work in the free count tool, so the counts here leave them out. Count without them, then add them when you search.

Where is the phone number?

Call GET /v2/people/phone, or find_phone in MCP. Phone numbers are included on every plan, Free too. Each call costs one record, even when it finds nothing.

Count your fintech list free, then pull the first 25 contacts

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

Get your free API key →