Product

Bulk export

Turn any people filter into a CSV of up to 50,000 rows. Count it free, pick the columns, download the file from the app, the API or an AI agent.

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

What it does

A bulk export is a people search that writes rows to a file instead of a page. It takes the same filters as search, so anything you can find you can export.

The file is a plain .csv, never zipped. It is built by a background worker, so a request is admitted or refused on the spot and you poll for the result. An email goes out when the file is ready.

Count first, then export. count_leads is free, and a search with count=true and limit 1 is free too. You see the size of the list before a single record is spent.

Each row written is 1 record, whatever columns it carries. Records are reserved when the export is admitted, and the ones for rows never written are released.

What you get

You choose a preset or an ordered list of column ids. GET /v1/exports/columns is free and public, and lists all of them.

CapabilityDetail
FiltersEvery people search filter except cursor, limit, count and facets
RowsUp to 50,000 per export, deduplicated by person_id
full preset45 columns: identity, profile, address, contact flags, emails 1 to 3, phones 1 to 2, current role, education, skills. Needs the enrich scope
search preset27 columns from the search row: identity, headline, location, current employer and title, contact flags. No contact points
Custom columnsOrdered ids from the catalogue, such as current_job_title and email_1_address
capsSizes of numbered blocks, 1 to 10: emails 3, phones 2, past roles 3, educations 2, certifications 2, awards 1
Email fieldsAddress, type, status, verified date per email. Status values include verified, catch_all_valid, catch_all and risky
DeliveryPoll GET /v1/exports/{id}, then GET /v1/exports/{id}/download (text/csv) or use the emailed link

Numbered columns come back as email_1_address, email_1_status and phone_1_number. A value we do not hold is empty.

How you use it

In the app

The Exports page at app.leadocean.io has a filter builder, a column picker with presets, the record price before you start, and a Download button. Build the filter, pick a preset, check the price, download.

The app is a data export. It has no sequencer, dialer, CRM or Chrome extension.

With the API

bash
curl -X POST "https://api.leadocean.io/v1/exports" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "acme-vp-sales-ca",
    "filters": {
      "jobLevel": ["VP"],
      "jobFunction": ["Sales & Business Development"],
      "country": ["CA"],
      "emailStatus": ["verified"]
    },
    "limit": 5000,
    "preset": "full"
  }'

The answer is a 202 with the job: id, status, estimatedTotal, remaining and pollAfter (10 seconds). When status is done, download the file with your key or the signed downloadUrl. DELETE /v1/exports/{id} cancels a job and keeps the rows already written.

From an AI agent

The hosted MCP server at https://api.leadocean.io/mcp signs in with OAuth 2.1, so no key is pasted. Export uses three of its 12 tools: leadocean_export_leads, leadocean_get_export and leadocean_list_exports. Try:

Count VPs of sales in Canada with a verified email. If under 10,000, export them with the search preset and give me the download link when it is ready.

The agent counts first with leadocean_count_leads, which is free, then starts the export. leadocean_get_export and leadocean_list_exports are free.

Pricing

Free is 1,000 records, one-off, no card. Pro is $499 a month, flat. Both get the same API, app and MCP server.

Pro has no per-record price and no credits. Exports, searches and lookups are unlimited inside fair use. Past the fair-use line a very large month is paced down to one request a minute until the reset, not cut off. See pricing.

Limits

  • Per export. 50,000 rows.
  • Per account. 500,000 rows a day and 10,000,000 rows per period. These can be raised: write to support@leadocean.io.
  • One at a time. One export runs per account at a time. The rest queue.
  • File life. The file is kept 7 days. The key-free emailed link works for 24 hours.
  • Rate limit. 100 requests per second per key, on every plan.
  • Count cap. meta.total on the REST API stops at 100,000. Use the MCP count for a bigger list.
  • Refusals. export_limit_rows, export_filter_unsupported (a filter the index cannot apply, so an export is never half-filtered), export_limit_daily, export_limit_monthly, and 402 when you lack the records.
  • Gaps. Certification columns exist but stay empty. About half of profile summaries end in an ellipsis. There is no refund for bounced emails, so filter on emailStatus.

FAQ

How many rows can I export at once?

50,000 per export. For a bigger list, split the filters so they do not overlap, for example one export per country or employeeRange. The walk-through is in pull 1M records with a bulk CSV export.

What is a bulk export?

It is a filter run that ends in a file, not a page of results. What is a bulk export explains how it differs from search and enrichment.

Does counting the list cost anything?

No. count_leads, list_filters, list_enum_values and a count=true search with limit 1 are free. Count before every export.

Can I export without a developer?

Yes. The Exports page in the app has the filter builder, the column picker and the price. For a worked example with live counts, see bulk B2B contact export.

Do I need the enrich scope?

Only for columns that reveal emails or phones, such as the full preset. The search preset needs the search scope only. Free keys get both scopes inside the 1,000 records.

Size your bulk export free, then pull the CSV

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

Get your free API key →