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

How-to guide

How to Test the Most Innovative B2B Lead Gen & Sales Intelligence Tools (A 30-Minute Buyer Test)

Innovation claims are cheap. Four queries show whether a tool sizes lists for free, returns career history, speaks MCP and tells you what a record costs.

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

Most "innovative tools" lists rank brand names. This one gives you four queries to run against any vendor's API, so you rank them yourself.

TL;DR

  • Innovation in this category shows up in four places: free list sizing, depth of the person record, agent access over MCP, and a cost you can read before you spend.
  • The test takes about 30 minutes and spends about 3 LeadOcean records of the free 1,000. Run the same four checks on every vendor you shortlist.
  • Pass or fail is binary. A tool that cannot answer "how many people match, for free?" has not caught up.

Prerequisites

  • A free LeadOcean account and API key from app.leadocean.io. Export it as $LEADOCEAN_API_KEY.
  • curl and jq.
  • Optional: an MCP client such as Claude Code, for Step 4.
  • The vendor you are testing, with a trial key. Reuse the same four requests against it.

Step 1: Size the list before you pay for it

A modern tool tells you the audience size without charging records. Ask for a count, not a page.

bash
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 '{"title":["Head of Revenue Operations"],"country":["US"],"limit":1}' | jq .meta

count=true goes in the query string, not the JSON body, which rejects unknown fields. The data array comes back empty, meta.countOnly is true and the call costs nothing. meta.total is capped at 100,000.

For companies, GET /v1/companies/count is also free. It returns an exact total with breakdowns by industry, headcount band, HQ country, HQ state and NAICS.

Score it: does the vendor size a filter set for free, and is the number exact or a floor?

Step 2: Pull one page and read the cost

Search with a flat JSON body. Filters are arrays, limit runs 1 to 100, and you page with a cursor.

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": ["Head of Revenue Operations"],
    "country": ["US"],
    "jobLevel": ["Director", "VP"],
    "limit": 1
  }' | jq '{person_id: .data[0].meta.source_ids.person_id, meta: .meta}'

One record is one person you receive. A page of 1 is 1 record. One search pages to 10,000 rows, then meta.depthCapped is true and there is no nextCursor. Narrow the filters instead of walking the index.

Score it: is the unit of cost written down, and can you predict the bill from the request?

Step 3: Enrich and check for career history

Depth is where tools differ most. Enrich takes exactly one of linkedin_url, email, phone or person_id. Use the person_id from Step 2.

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_STEP_2", "reveal_email": true}' \
  | jq '{current: .data.contact_data.contact_current_experiences, past: .data.resume_data.experiences}'

Since 17 October 2026 the response carries resume_data: past roles with title, company name, dates and job level, plus education, certifications, awards and more, each when held. Past employers carry no company_id yet, so match them by name.

A person we hold nothing for is a 404 and costs nothing.

Score it: does the record show where the person worked before, or only today's title?

Step 4: Ask it in plain English over MCP

If a tool claims to be AI-ready, connect it to an agent and ask. LeadOcean runs a hosted MCP server at https://api.leadocean.io/mcp with 13 tools and OAuth sign-in, so no key is pasted.

bash
claude mcp add --transport http leadocean https://api.leadocean.io/mcp

Then prompt:

text
How many Heads of Revenue Operations are in the US with a
mailable email? Use the free count tool only. Do not search.

The agent calls leadocean_count_leads, a free tool. It states the filters it used and that the default counts verified, catch-all-valid and catch-all addresses.

Score it: can an agent size a list and see the price of each tool before it calls one?

What you get

Run on 21 October 2026 through the free leadocean_count_leads MCP tool, with facets off:

json
{
  "filters": { "title": ["Head of Revenue Operations"], "country": ["US"] },
  "total": 279,
  "totalIsExact": true,
  "totalAll": 472,
  "distinctCompanies": 266,
  "credits": 0
}

total is the mailable count (email status verified, catch_all_valid or catch_all). totalAll is the same filters with no email condition. The gap of 193 people is the reason to read the label on any count a vendor shows you.

The enrich response shape from the API reference, with placeholder values:

json
{
  "success": true,
  "data": {
    "profile_data": { "profile_full_name": "Jane Doe", "profile_headline": "Head of Revenue Operations at Acme" },
    "contact_data": {
      "email_status": "verified",
      "contact_emails": [{ "email": "jane@acme.com", "type": "work", "status": "verified" }],
      "contact_current_experiences": [{ "...": "company name, domain, job title" }]
    },
    "resume_data": {
      "experiences": [{ "...": "title, company name, start and end dates, job level" }],
      "educations": [],
      "certifications": []
    },
    "meta": { "source_ids": { "person_id": "1234567890" } }
  },
  "meta": { "credits": 1 }
}

Top-level groups follow the API reference. The keys inside each past role are summarized, not exact, so run Step 3 on one person and read the real keys.

Troubleshooting

ErrorCauseFix
401Missing or wrong x-api-key headerCheck $LEADOCEAN_API_KEY is exported and sent as x-api-key
429Above the plan's rate limit (5 a second on Free, 200 on Agency)Honor Retry-After, or move to a plan with a higher rate
402Free records spentCheck usage with GET /v1/usage, then see pricing
Empty resultsAn enum value that does not exist, such as jobLevel "Vice President"Use exact values: C-Team, VP, Director, Manager, Staff, Other. Check with GET /v1/enums
meta.depthCapped is trueOne search reached 10,000 rowsAdd filters and split the list
Export refusedOver 50,000 rows a request or 500,000 a daySplit the export; bulk CSV export is not on Free

FAQ

Which B2B lead gen tool is the most innovative?

The one that passes your four checks with your filters. Rankings go stale in a quarter, and a query takes minutes. Run it on your shortlist.

Does LeadOcean replace a sequencer or a CRM?

No. LeadOcean is a data API with a hosted MCP server and an app for exports. It has no sequencer, dialer, CRM or Chrome extension. Pair it with the tools you already use.

How many records does the test spend?

About 3: one search record and two enrichments. Counts, filter lists, enum lookups and enrichments that find nothing cost nothing. The free plan holds 1,000 records, for life, with no card.

Is free list sizing really free?

Yes. count=true search, GET /v1/companies/count and the MCP tools leadocean_count_leads and leadocean_count_companies spend no records.

Where do I compare the vendors?

Test it yourself before you believe a roundup

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

Get your free API key →