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

How-to guide

How to Find an Event Organizer's Email Address (2026)

Look the address up instead of guessing it. Four steps take you from a title search to an event organizer email with a deliverability status, plus the patterns to fall back on.

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

The fastest way to find an event organizer's email is to look it up in a contact database, not to guess it. Search by title and region, enrich the person, then read the email status before you send. This guide does that against LeadOcean with curl and spends 3 records.

Examples use placeholders (Acme, acme.com, Jane Doe). Swap in your own domain.

TL;DR

  • Event organizer emails come from three places: a database lookup, a pattern guess at the company domain, or the organizer's own event and sponsor pages. Only the first gives you a deliverability status.
  • Search with a title keyword, enrich with reveal_email, and send only to verified or catch_all_valid addresses.
  • Takes about 10 minutes and spends 3 of the 1,000 free records. Sizing the audience first costs nothing.

Prerequisites

  • A LeadOcean account. The free plan gives 1,000 records one-off, no card: register here.
  • An API key from the app, exported as $LEADOCEAN_API_KEY.
  • curl and jq.
bash
export LEADOCEAN_API_KEY="paste-your-key-here"

Every request goes to https://api.leadocean.io with the header x-api-key. A free key has both scopes, search and enrich, and runs at 5 requests a second.

Step 1: Size the event organizer list before you pull it

Send count=true and limit=1 as query parameters and the call returns a total without spending a record. Filters go in a flat JSON body, and every filter is an array of strings.

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": ["Event Organizer"],
    "salesRegion": ["EMEA"]
  }' | jq '.meta'

There is no "event organizer" job function, so a title keyword does the work. Titles vary: "Event Organizer", "Event Organiser", "Events Manager", "Event Coordinator". Run one count per wording and compare, because a keyword catches only the words you typed.

meta.total is capped at 100,000, and meta.totalIsExact tells you whether it is a floor. Enum values are exact strings: EMEA works, Europe is a continent value and belongs in continent.

Step 2: Search for the organizer at one company

Add the company's domain to find the organizer at that account. Each person returned costs one record, so keep limit small.

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 '{
    "domain": ["acme.com"],
    "title": ["Event"],
    "limit": 2
  }' > organizers.json

jq '.data | length' organizers.json

Search rows are thin: they carry has_email and has_phone flags, not the address itself. Read the titles in the rows and pick the person who runs the event you care about before you spend a record on enrichment.

Most organizers sit at junior levels. In the count below, 846 of 936 mailable organizers are entry seniority, so do not filter on jobLevel VP or Director. A small agency often has one person doing everything, so the owner is a valid target too.

Step 3: Enrich the person to get the email

Each search row carries an id at meta.source_ids.person_id. Send it back to enrich that exact person. Enrich takes exactly one of linkedin_url, email, phone or person_id.

bash
PID=$(jq -r '.data[0].meta.source_ids.person_id' organizers.json)

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\": \"$PID\", \"reveal_email\": true}" > person.json

This costs one record. reveal_email costs nothing extra and returns every email we hold for that person. If we hold nothing, you get a 404 and no charge. There is no lookup by name plus domain: search first, then enrich by person_id.

Step 4: Verify before you send

Read email_status and send only to addresses worth sending to. A verified or catch_all_valid status is safe. A catch_all status means the domain accepts everything, so the mailbox may not exist.

bash
jq -r '.data.contact_data.contact_emails[]
  | select(.status == "verified" or .status == "catch_all_valid")
  | .email' person.json

Bounced emails are not refunded, so treat every other status as a no-send. The full list of statuses is verified, catch_all_valid, catch_all, risky, unknown, untested, invalid, role, disposable, spam_trap, abuse, derived and none.

Step 5: Use a pattern only when the lookup finds nothing

When the organizer is not in the data, guess at the company domain, then verify the guess before you send. Four common patterns:

text
first.last@acme.com    jane.doe@acme.com
flast@acme.com         jdoe@acme.com
first@acme.com         jane@acme.com
firstl@acme.com        janed@acme.com

Find the pattern from any other address you already hold at that domain, then apply it to the organizer's name. Never send to a guessed address that has not been verified. A guess at a catch-all domain always looks valid and tells you nothing.

Event teams often publish shared addresses on sponsor and exhibitor pages, such as sponsors@ or info@. These reach a shared inbox, not the person. Use them to learn the domain pattern, then email the named organizer.

Step 6: Pull the whole list as a CSV

For a list rather than one person, start an export. POST /v1/exports takes up to 50,000 rows a request and 500,000 a day. Bulk CSV export is not on the Free plan. Size the list first with the free count.

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": "event-organizers-emea",
    "filters": {
      "title": ["Event Organizer"],
      "salesRegion": ["EMEA"]
    },
    "limit": 250,
    "preset": "full"
  }'

Poll GET /v1/exports/{id}, then download from GET /v1/exports/{id}/download. The app's Exports page does the same with a filter builder, a column picker and the record price before you start. It needs no code. See pricing for which plan includes it.

What you get

The Step 1 count is free. The free MCP tool leadocean_count_leads ran title "Event Organizer", split by salesRegion, on 2026-10-21. It counts people with a verified, catch_all_valid or catch_all email by default, so these are mailable counts.

RegionMailable event organizers (2026-10-21)
Worldwide936
APAC293
NORAM283
EMEA250
LATAM11

The four regions sum to 837, less than the worldwide figure, because some people carry no region. Without the email filter the same title matches 12,769 people, so about 7% of organizers hold an address worth sending to. Each call returned totalIsExact: true and credits: 0. The 936 span 651 distinct companies, and 235 of the 936 people work in the Events Services industry.

A record-level response has the shape below (response shape from the API reference, placeholder values):

json
{
  "success": true,
  "data": {
    "profile_data": { "name": "Jane Doe", "title": "Event Organizer", "company": "Acme" },
    "contact_data": {
      "has_email": true,
      "email_status": "verified",
      "contact_emails": [
        { "email": "jane.doe@acme.com", "type": "work", "status": "verified" }
      ]
    }
  },
  "meta": { "source": "leadocean" }
}

Each record carries its own fetched_at date, and the dataset refreshes monthly. Check the date on anything you plan to act on.

Troubleshooting

ErrorCauseFix
401Missing or wrong x-api-key headerRe-export $LEADOCEAN_API_KEY and check the header name. Retrying will not help
402Out of records. On Free the 1,000 are a one-off allowanceMove to Solo at $97 a month, or lower limit
429Over the plan's rate limit: 5 requests a second on Free, 200 on AgencyHonour the Retry-After header and back off
Empty dataA filter value is not an exact enum string, or the title wording is too narrowList the allowed values with GET /v1/enums and copy one, or try "Events" as the keyword
404 on enrichWe hold nothing for that personNo charge. Search again, or try the pattern route in Step 5
400 or 429 on exportOver 50,000 rows a request, or over 500,000 rows a daySplit the export into several requests, or wait for the reset

FAQ

Where do event organizer emails come from?

From a contact database, from a pattern guess at the company domain, or from public pages the organizer publishes. Only a database lookup returns a deliverability status. Guesses and scraped addresses need verifying before you send.

How many event organizer emails can I get for free?

The free plan gives 1,000 records one-off with no card. One search row costs one record and one enrichment costs one more, so a verified address for one organizer costs about 2 records. Sizing the audience with count=true is free.

Can I find an event organizer's email from their name and event?

Not in one call. Search by domain or companyName with a title keyword, then enrich the match by person_id.

Why does an event organizer email bounce?

Usually the address was guessed, the person moved on to another event company, or the domain is catch-all and the mailbox never existed. Read email_status and the record's fetched_at date before you send. Bounced emails are not refunded.

Is a catch-all email safe to send to?

Only with care. A catch_all_valid status passed an extra check. A plain catch_all status means the domain accepts any address, so the mailbox may not exist.

Where do I go next?

The same recipe works for other roles: VP of Sales, VP of Marketing and VP of Engineering. Solo is $97 a month and Agency is $497 a month if you outgrow the free records: see pricing.

Find your first event organizer email with a free API key

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

Get your free API key →