Whova Event Scraper - Sessions, Speakers, Sponsors & Exhibitors avatar

Whova Event Scraper - Sessions, Speakers, Sponsors & Exhibitors

Pricing

$2.00 / 1,000 results

Go to Apify Store
Whova Event Scraper - Sessions, Speakers, Sponsors & Exhibitors

Whova Event Scraper - Sessions, Speakers, Sponsors & Exhibitors

Turn any public Whova event into clean, structured data. One run captures the full agenda (sessions, times, rooms, tracks, docs), the complete speaker roster with bios and their sessions, sponsors with tiers and logos, and exhibitors with booth numbers. No login. Export to JSON, CSV, or Excel.

Pricing

$2.00 / 1,000 results

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Whova Event Scraper — Sessions, Speakers, Sponsors & Exhibitors

Extract sessions, speakers, sponsors, and exhibitors (with booth numbers and sponsor tiers) from any public Whova event page as clean, structured JSON. No login / no cookies — it reads Whova's own public event-webpage data.

Why this Whova scraper?

Typical scrapersThis actor
Grab one list (just the agenda)Pulls four datasets in one run — sessions, speakers, sponsors, exhibitors
Miss the dedicated speaker directoryMerges the full speaker roster from the agenda and the speaker directory, deduplicated by profile
Drop breakout sessionsCaptures subsessions as their own rows, linked to the parent
Skip booth/tier metadataKeeps exhibitor booth numbers and sponsor tiers
Fail on empty sectionsEmpty results finish as a successful run with a plain-English note — no charge

Use cases

  • Event lead generation — pull sponsor and exhibitor companies with websites, logos, tiers, and booth numbers for outreach before or during the show.
  • Conference agenda research — capture every session's title, time, room, tracks, description, and attached documents for competitive or planning analysis.
  • Speaker sourcing — build a complete, deduplicated speaker roster with titles, affiliations, bios, and the sessions each person appears in.
  • Expo-floor mapping — export exhibitors by booth number and category to plan a walk-through or compare year-over-year participation.
  • Multi-event monitoring — scrape several Whova events at once and track who's sponsoring, exhibiting, or speaking across an industry.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the Whova Event Scraper, fill in the inputs you need, and click Start.
  3. Watch results stream into the dataset table as each record is parsed.
  4. Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.

Input

{
"startUrls": [
{ "url": "https://whova.com/embedded/event/RO1JdFJs9ii6Fx75WrNTg1kBuSNRjetEH9eL7BSaXKQ%3D/" }
],
"includeSessions": true,
"includeSpeakers": true,
"includeSponsors": true,
"includeExhibitors": true,
"maxItems": 0,
"maxConcurrency": 5,
"minDelayMs": 250,
"maxRequestRetries": 4,
"proxyConfiguration": { "useApifyProxy": true }
}
  • startUrls — public Whova event pages or embedded URLs. Any URL containing the event id works, e.g. https://whova.com/embedded/event/<event_id>/. Open an event's public agenda or exhibitor page and copy the long code after /event/.
  • eventIds — alternative to URLs: paste raw Whova event ids (the long code after /event/, usually ending in %3D or =).
  • includeSessions / includeSpeakers / includeSponsors / includeExhibitors — toggle each record type (all true by default).
  • maxItems — hard cap on total records across all events and types (0 = no limit).
  • maxConcurrency — how many events to process in parallel (default 5, max 20).
  • minDelayMs — politeness delay before each API call (default 250 ms).
  • maxRequestRetries — retries per request on network/HTTP errors; the proxy IP is rotated on each retry (default 4).
  • proxyConfiguration — uses Apify Proxy (datacenter) by default; recommended.

Heads-up on links: a whova.com/web/<code> app link won't work on its own — that short code isn't the event id the data needs. Use the embedded URL (containing /embedded/event/) or the raw id. If you paste something unsupported, the run still finishes successfully and explains how to get the right id.

Output

Every record carries recordType, eventId, eventName, sourceUrl, scrapedAt, and isVirtualEvent. Missing values are null (never invented). Sessions additionally include parentSessionId and isSubsession, so breakout subsessions are captured as their own rows and linked to their parent. The examples below show the most useful fields per type.

Session

{
"recordType": "session",
"sessionId": "2917325",
"name": "The United Kingdom",
"startTime": "2023-04-22 09:00:00",
"endTime": "2023-04-22 10:00:00",
"place": "4th Floor, Venture",
"description": "The United Kingdom (UK) is at the forefront…",
"descriptionHtml": "<div><p>…</p></div>",
"tracks": ["Showcase"],
"documents": [{ "title": "Slides", "url": "https://…", "description": null }],
"sessionOrder": 2,
"speakerNames": ["Michael Kill", "Peter Marks", "Carly Heath", "Philip Kolvin"],
"speakerCount": 4,
"eventName": "Sociable City Summit 2023",
"eventTimezone": "America/New_York"
}

Speaker (full roster — merged from the agenda + speaker directory, deduplicated by profile)

{
"recordType": "speaker",
"profileId": "28928388",
"name": "Ariel Palitz",
"title": "Global Government and Hospitality Consultant",
"affiliation": "NYC Alliance, Oaktree Solutions, Venue Advisors",
"location": "New York, New York, United States",
"bio": "…",
"photoUrl": "https://…",
"photoIsLinkedinCdn": false,
"photoIsDefault": false,
"hasLinkedin": true,
"hasPicture": true,
"role": "Speaker",
"roles": ["Speaker"],
"sessionIds": ["2931508", "2931510"],
"sessionCount": 2,
"socialLinks": { "linkedin": null, "facebook": null, "twitter": null, "instagram": null, "tiktok": null, "youtube": null, "pinterest": null }
}

Sponsor

{
"recordType": "sponsor",
"companyId": "121043",
"name": "Curb",
"website": "https://www.gocurb.com/",
"logoUrl": "https://…",
"tier": "Advocate",
"categories": [],
"boothNumber": null,
"unpaid": false,
"description": "…",
"socialLinks": { "linkedin": null, "facebook": null, "twitter": null, "instagram": null, "tiktok": null, "youtube": null, "pinterest": null },
"links": []
}

Exhibitor

{
"recordType": "exhibitor",
"companyId": null,
"name": "3D Group",
"website": "https://www.3dgroup.net",
"logoUrl": "https://…",
"tier": null,
"categories": [],
"boothNumber": "215",
"unpaid": false,
"description": "360 Feedback - Leadership Coaching - Team Effectiveness…",
"socialLinks": { "linkedin": null, "facebook": null, "twitter": null, "instagram": null, "tiktok": null, "youtube": null, "pinterest": null },
"links": []
}

Notes:

  • Records contain public, professional/business information only — no attendee personal contact details (personal email, phone, home address) are ever emitted.
  • Many fields are optional and returned as null when Whova has no value (e.g. an exhibitor with no tier, a sponsor with no booth).
  • Empty results are reported as success. If an event has no public data for the types you selected, the run finishes successfully with a plain-English explanation written to the RUN_SUMMARY in the run's key-value store, and an empty run is never charged.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/whova-event-scraper').call({
startUrls: [
{ url: 'https://whova.com/embedded/event/RO1JdFJs9ii6Fx75WrNTg1kBuSNRjetEH9eL7BSaXKQ%3D/' },
],
includeSessions: true,
includeSpeakers: true,
includeSponsors: true,
includeExhibitors: true,
maxItems: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} records`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new records straight into your CRM or sheet.
  • Slack — get notified when a run finds something new.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "pull every sponsor and exhibitor (with booth numbers) from this Whova event page" and let it run this scraper for you.

More scrapers from scrapesage

Need data from other event platforms and lead sources? Try these:

Tips

  • Use the embedded URL (containing /embedded/event/) or the raw event id — a whova.com/web/<code> app link won't resolve to the data.
  • Keep the default Apify Proxy (datacenter) on; the actor rotates the proxy IP on each retry for reliability.
  • Set maxItems to a small number for a test run — the actor samples fairly across all four types so you see every record type, and RUN_SUMMARY reports both what was written and what was available. Set it to 0 for everything.
  • Toggle off any record type you don't need (e.g. includeSpeakers: false) to keep runs focused and cheaper.
  • For large events the actor downloads and parses the entire agenda before writing, so the first records can take 1–2 minutes (longer for very large events) and then appear all at once — that startup delay is normal.

FAQ

Do I need a Whova login? No. The actor only reads public event-webpage data — no account, no cookies.

An event returned 0 exhibitors or 0 sponsors — is it broken? No. Many events (e.g. summits) have no expo hall or haven't published a section yet. The run succeeds and RUN_SUMMARY explains why; empty runs cost nothing.

Will it get speakers that aren't attached to the agenda? Yes. Many events keep their roster in a separate speaker directory. The actor pulls that full directory and merges it with any agenda-linked speakers (deduplicated by profile), and even backfills a session's speaker list where the agenda left it blank.

Where do booth numbers come from? Whova stores the booth in the exhibitor's location field; the actor maps it to boothNumber.

Can I scrape several events at once? Yes — add multiple URLs or event ids and they're processed in parallel up to maxConcurrency.

Is the data legal to collect? The actor gathers public, professional/business information only and never emits personal contact details. It is an independent tool and is not affiliated with, endorsed by, or sponsored by Whova. Use it in accordance with the laws and terms that apply to you.

What export formats are available? JSON, CSV, Excel, XML, and RSS via the dataset, or programmatically through the Apify API.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.