Documentation
GTM & leads
Find companies, find the people at them, reveal and verify their work emails, and qualify accounts with hiring and news signals. Nine data vendors sit behind one endpoint, each priced per call. The routing on this page encodes measured head-to-head evals, not vendor marketing: Exa first for people, a ContactOut → Tomba → Icypeas email waterfall, and a hard rule that nothing gets sent to an unverified address.
When to use which
People and emails
| Need | Call | Price | Mode |
|---|---|---|---|
| People and contacts from a query. Start here. | vaaya/onefind, then onefind-deep | 2¢, then per filled field | sync, async |
| Find people by ICP (primary) | exa/search with category: "people" | 1¢/query | sync |
| Find people by ICP (fallback) | contactout/people-search | 1¢/profile | sync |
| Reveal a work email (try first) | exa/search + exa/contents | 1¢ + 0.1¢/URL | sync |
| Reveal a verified email (fallback) | contactout/linkedin-contacts | 10¢ (free on miss) | sync |
| Email from name + company (the rung after a ContactOut miss) | tomba/email-finder | 4¢ | sync |
| Email (next rung, on different infrastructure) | icypeas/email-search | 4¢ + 1¢/poll | async |
| Deliverability (primary, any address) | tomba/email-verifier | 2¢ | sync |
| Deliverability (second opinion) | icypeas/email-verification | 2¢ + 1¢/poll | async |
| Deliverability (alternate) | contactout/email-verify | 2¢ | sync |
| All emails at a company + its pattern | tomba/domain-search | 4¢ | sync |
| Generic inboxes at a domain (contact@, support@…) | icypeas/domain-scan | 4¢ + 1¢/poll | async |
| Email behind a LinkedIn profile | tomba/linkedin-finder | 5¢ | sync |
| Article author + their email | tomba/author-finder | 4¢ | sync |
| Email → person + company (cheap reverse lookup) | tomba/enrich | 4¢ | sync |
| Phone by email / domain / LinkedIn | tomba/phone-finder | 10¢ | sync |
| Deep person enrich / reverse lookup incl. phones | nyne/person-enrich | 55¢ (lite 30¢) | async |
Companies and signals
| Need | Call | Price | Mode |
|---|---|---|---|
| Companies like your best customers (≤100) | openfunnel/lookalikes | ~1¢/company | sync |
| Whole-market TAM from an ICP (thousands) | openfunnel/tam-build | per company delivered | async |
| Companies running a tech (from job posts) | openfunnel/tech-companies | 40¢/page | sync |
| Tech + LLM-verified buying intent | openfunnel/tech-intent | 20¢/qualified | async |
| Qualify one account against a question | openfunnel/deep-research | 20¢ | sync |
| Raw job postings by title/tech/salary/date | theirstack/jobs | 40¢/≤10 jobs | sync |
| Companies by tech stack + active hiring | theirstack/companies | 60¢/≤5 companies | sync |
| One company’s tech stack with confidence + dates | theirstack/technographics | 25¢ | sync |
| One company’s buying-intent topics | theirstack/buying-intents | 25¢ | sync |
| Fresh funding rounds market-wide | signalbase/funding | 25¢/≤100 rows | sync |
| M&A events, acquirer and target | signalbase/acquisitions | 25¢/≤100 rows | sync |
| Executive job changes | signalbase/job-changes | 25¢/≤100 rows | sync |
| Hiring signals market-wide | signalbase/hiring | 25¢/≤100 rows | sync |
| Investors DB by type and ticket size | signalbase/investors | 25¢/≤100 rows | sync |
| Funding rounds with news sources | fundable/deals | 10¢/row returned | sync |
| Who led a round, which partner, which angels | fundable/deal-investors | 10¢ flat | sync |
| A fund’s or a person’s deal history | fundable/investor-deals … | 10¢/row returned | sync |
| Name → Fundable id, to enter the graph | fundable/company-search … | 1¢ | sync |
| Deep private-company profile (pick sections) | akta/company-enrich | 4–35¢/section | sync |
| Entity-resolved news with sentiment | akta/news | ~2¢/10 articles | sync |
| Alt-data: reviews, headcount, traffic, jobs, social | akta/employee-reviews … | 11–21¢ | sync |
| SEO and PPC competitor research | spyfu/query | 1–3¢ | sync |
| Investor intel (thesis, partners, check size) | nyne/company-funders | 30¢ | async |
| Who follows / replied to a profile or post | nyne/person-interactions | 30¢ | async |
The chain that works: OpenFunnel answers which companies, exa/search with category: "people" answers who to talk to there, and the email waterfall turns names into verified contacts. For emails the waterfall order is Exa (cheapest) → contactout/linkedin-contacts (free on a miss) → tomba/email-finder → icypeas/email-search. Verify every address before a real send with tomba/email-verifier.
exa: people discovery (try it first)
- Price
- 1¢/query ·
exa/contents0.1¢/URL - Latency
- fast
- Query style
- free text, no canonicalizing needed
Exa is the primary people-discovery engine. Phrase an open ICP query (role + seniority + industry + company size + geography) and run one query per role. Read each profile’s name, title, company, and /in/ URL from the returned text.
curl -X POST https://vaaya.ai/api/run/exa/search \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "VP Sales at fintech companies with 21-100 employees in India, LinkedIn profiles",
"category": "people",
"numResults": 50,
"contents": { "text": true }
}'- To reveal an email, try Exa first:
exa/searchthe person + company, thenexa/contents(0.1¢/URL) on the best hits to pull the address off the page. Full Exa params on Web search. - ContactOut (below) is the fallback for people data; a scrape or web search is the fallback for information: an email on a page, not in a database. See Web scraping.
- Exa takes free-text values like “Midwest” or “fintech”, and so does the ContactOut fallback. There is no filter vocabulary to canonicalize on either path.
contactout: find, enrich, verify (the people fallback)
- Price
- people-search 1¢/profile · linkedin-contacts 10¢ (free on miss) · person-from-email 10¢ · email-verify 2¢
- Latency
- fast
- Mode
- sync
Use ContactOut when Exa surfaces too few people, or when Exa can’t resolve the email. It replaced Prospeo here on 2026-08-22: a 25-lead probe measured 3× the hit rate with a richer payload. Filters are free text, so there is no vocabulary to canonicalize, and a miss bills nothing.
curl -X POST https://vaaya.ai/api/run/contactout/people-search \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"job_title": ["VP Sales"],
"location": ["India"],
"seniority": ["Vice President"],
"page_size": 10
}'contactout/linkedin-contacts (10¢, free on a miss) returns work and personal emails straight from a profile URL. The parameter is profile, not linkedin_url. Add include_phone: true for phone numbers at 30¢. The response nests under profile with array fields: {"email": [...], "work_email": [...], "personal_email": [...], "phone": [...]}. Read work_email first for outbound.
curl -X POST https://vaaya.ai/api/run/contactout/linkedin-contacts \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"profile": "https://www.linkedin.com/in/satyanadella"}'contactout/person-from-email (10¢) goes the other direction: an email becomes a name, title, company, LinkedIn URL, and work history. Use it to identify an inbound signup or reply before you respond.
Gotchas
- The
linkedin-contactsparameter isprofile. Passinglinkedin_urlis rejected at schema validation: 0¢ and no transaction row, but also no result. page_sizeonpeople-searchIS the price: a page of 10 costs 10¢ whether or not you enrich anyone. Ask for what you need (max 25).- Boolean
AND/OR/NOTwork insidejob_titleandskillsstrings. - Never use bulk enrich endpoints. Bulk charges on misses; per-find is free on a miss.
- On a miss, fall through to
tomba/email-finderrather than retrying.
tomba: the cheap email-intelligence rung
- Price
- 2–10¢ per call
- Latency
- ~2s (
email-finder) · ~12s (linkedin-finder) - Mode
- sync
Tomba and ContactOut are complementary, not substitutes: the 2026-08-20 probe measured ContactOut at 3× the hit rate, with Tomba still adding roughly 2 fills per 10 ContactOut misses. So Tomba is the second rung, never the first. It also bills on a miss, which ContactOut does not. Tomba covers two things no other vendor here does: every known email at a company plus its pattern (domain-search), and article URL → author + email (author-finder).
tomba/email-verifier(2¢): the primary deliverability check, real SMTP/MX verification on any address. Readdata.email.result(deliverable/undeliverable/risky).tomba/email-finder(4¢): name + company/domain → most likely email with a confidence score. The best rung after acontactout/linkedin-contactsmiss; preferdomainovercompanywhen known.tomba/linkedin-finder(5¢): LinkedIn profile URL → email (full: truereturns all associated emails). Use afteremail-finder, not instead of it.tomba/domain-search(4¢): company/domain → all known emails + the domain’s pattern. Optionaldepartment(engineering/sales/finance/hr/it/marketing/operations/management),country(2-letter),page/limit(10|20|50). Good first step when you only know the company.tomba/author-finder(4¢): article/blog URL → author name, email, socials. The hook for content-based prospecting.tomba/enrich(4¢): email → person + company profile in one call. Escalate tonyne/person-enrichonly when you need phone/social depth.tomba/phone-finder(10¢): email/domain/LinkedIn → phone. The cheap rung before Nyne when only a number is missing.
# 1) name + domain → likely email
curl -X POST https://vaaya.ai/api/run/tomba/email-finder \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "stripe.com", "full_name": "Jane Doe"}'
# 2) verify before any real send
curl -X POST https://vaaya.ai/api/run/tomba/email-verifier \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "jane.doe@stripe.com"}'Gotchas
linkedin-finderis slow (~12s median) and throws transient upstream 5xx on ~20% of calls; a retry usually clears it.linkedin-findercan return a personal-domain or previous-company email. Always runtomba/email-verifieron the answer and sanity-check the domain against the target company.
icypeas: the second rung, on different infrastructure
- Price
- finder 4¢ · verifier 2¢ · domain scan 4¢ · poll 1¢
- Latency
- usually a few seconds end to end
- Mode
- async: launch, then poll
icypeas/result
Icypeas prices match Tomba (finder 4¢, verifier 2¢) but run on different infrastructure. Fall through Tomba ↔ Icypeas on a miss, or cross-check a risky Tomba verdict before a send that matters. All Icypeas searches are async: the launch returns { "item": { "_id": ... } } immediately; poll icypeas/result (1¢) with that id every 3–5 seconds until items[0].status leaves NONE/SCHEDULED/IN_PROGRESS.
# launch → { "item": { "_id": "..." } }
curl -X POST https://vaaya.ai/api/run/icypeas/email-search \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"firstname": "Jane", "lastname": "Doe", "domainOrCompany": "stripe.com"}'
# poll every 3-5s (1¢ per poll)
curl -X POST https://vaaya.ai/api/run/icypeas/result \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"id": "<item._id>"}'icypeas/email-search(4¢): name + company/domain → professional email with a certainty grade (ultra_sure/sure/…) and MX provider. Prefer a bare domain indomainOrCompany.icypeas/email-verification(2¢): SMTP-level deliverability on any address; the second opinion when Tomba saysrisky.icypeas/domain-scan(4¢): a domain’s role-based/generic inboxes (contact@, support@, admin@…). Complementstomba/domain-search, which lists people. Use this when any reachable inbox will do.icypeas/result(1¢): fetch/poll byid, or list recent searches with{"mode": "single", "limit": 10}.
Gotchas
- Status semantics:
FOUND/DEBITED= hit (readitems[0].results);NOT_FOUND/DEBITED_NOT_FOUND= processed but empty;BAD_INPUT/INSUFFICIENT_FUNDS/ABORTED= terminal errors. - The vendor caps result reads at 30/minute. Poll every 3–5 seconds, no tighter.
nyne: deep enrich, reverse lookup, investor intel
- Price
- person 55¢ (lite 30¢) · funders 30¢ · interactions 30¢
- Latency
- async; polls usually complete in under a second
- Polling
nyne/result(free)- Match rate
- ~92%
All Nyne actions are async: the submit returns 202 with a request_id; poll nyne/result (free) with the same endpoint name until status is "completed", then read result. nyne/person-enrich is the reverse lookup: “who is this email / phone number / Instagram handle?” Pass any one identifier (email, phone, social_media_url, or name + company) and get back best work/personal emails, alternate emails, phone numbers, social profiles, work history, and seniority.
# reverse lookup from any one identifier
curl -X POST https://vaaya.ai/api/run/nyne/person-enrich \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "jane@acme.com"}'
# → 202 + request_id; poll until status is "completed" (free)
curl -X POST https://vaaya.ai/api/run/nyne/result \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"endpoint": "person/enrichment", "request_id": "req_..."}'nyne/person-enrich(55¢, or 30¢ withlite_enrich: true): LinkedIn, X, Instagram, GitHub, and Facebook URLs all work insocial_media_url; for a bare handle, build the profile URL first.nyne/company-funders(30¢): investor intel for a fundraise. Pass the investor’scompany_nameorcompany_domain→ thesis, partners with LinkedIn URLs, average check size, rounds, recent investments. Qualify funds before outreach.nyne/person-interactions(30¢): engagement mining.social_media_url+typeofreplies|followers|following(plustweet_idfor one post) → the people engaging with a launch or topic, with the engagement as the outreach hook.
Gotchas
- Billing happens at submit, not at poll. The poll itself is free.
- Escalate here from
tomba/enrich(4¢) only when you need phone numbers or social depth; it’s a 14× price jump.
openfunnel: company discovery
- Price
- lookalikes ~1¢/company · tech pages 40¢ · intent 20¢/qualified
- Mode
- sync shortlists · async at scale
- Polling
openfunnel/results(free helper)
Exa, ContactOut, and Nyne find people; OpenFunnel finds companies. The chain: OpenFunnel (which companies) → exa/search with category: "people" at those companies (who to talk to) → the email waterfall (verified contacts).
curl -X POST https://vaaya.ai/api/run/openfunnel/lookalikes \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"seed_domains": ["stripe.com", "brex.com"],
"limit": 50,
"locations": ["USA"]
}'openfunnel/lookalikes(sync, ≤100, ~1¢/company): companies resemblingseed_domains(≤10, your closed-won accounts) and/or aquery. Filters:min_employees/max_employees,funding_stages,locations.openfunnel/lookalikes-bulk(async, ≤2000/call): for more than 100 results. Never paginate the sync action to get there.openfunnel/tam-build(async): the entire market for a plain-English ICP, thousands of companies, billed per company delivered. Pollopenfunnel/resultswith{"kind": "tam"}, page viacursor, and useopenfunnel/job-control(pause/cancel) to cap spend. Reach for it when the question is “everyone we could sell to”, not for shortlists.openfunnel/tech-companies(sync, 40¢/page of 50): companies whose recent job posts mention a tech.variationscovers alternate phrasings;include_evidencereturns the job-post snippet, the outreach hook. The competitor-displacement and “sells-to-users-of-X” play.openfunnel/tech-intent(async, 20¢/qualified): same, but an LLM verifies each company against anactivity(“migrating off Redshift”). Keeplimit≤25; it’s the priciest, highest-precision signal.openfunnel/deep-research(sync, 20¢): qualify one domain against anactivity_question(job posts) and/orqualifier_question(LinkedIn org). Run it before drafting to a big account. The answer plus sources feed the message hook.- Free helpers:
openfunnel/lookup-companies(canonicalize ≤100),openfunnel/options(filter vocabularies),openfunnel/results,openfunnel/job-control,openfunnel/balance.
Gotchas
limitonlookalikesdefaults to 10 upstream. Always set it.locationstakes ISO alpha-3 codes:USA, notUS.lookup-companiestakes objects like{"domain": "x.com"}or{"name": "X"}, never bare strings.- Async semantics: the submit returns a
job_id; pollopenfunnel/resultsuntilstatusis"completed". A null cursor on a running job does not mean done. Empty results are never billed; cancelling keeps and bills only what was already delivered.
theirstack: job postings and technographics
- Price
- jobs 40¢ · companies 60¢ · per-company lookups 25¢
- Billing
- per row returned;
limitis required - Mode
- sync
TheirStack is the raw data layer under the hiring-signal tools: direct filter queries over job postings themselves, plus cheap per-company tech-stack and buying-intent lookups with confidence and first/last-seen dates. Routing versus the neighbors: openfunnel/tech-companies and tech-intent answer “which companies use/need X” with LLM qualification; akta/job-posts returns one company’s postings inside an Akta profile; TheirStack is for precise posting-level filters: title, description, salary band, seniority, remote, posting date, tech mentioned.
curl -X POST https://vaaya.ai/api/run/theirstack/jobs \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"job_title_or": ["Head of Sales"],
"job_country_code_or": ["US"],
"posted_at_max_age_days": 14,
"limit": 10
}'theirstack/jobs(40¢, ≤10 postings): search job posts across thousands of career sites and boards. The hiring-signal primitive: who’s hiring for role X with tech Y right now.theirstack/companies(60¢, ≤5 companies): companies by firmographics (industry, headcount, revenue, funding stage), tech stack, and active hiring (job_filters+min_num_jobs_found), with the matching jobs and techs attached. The displacement/ABM finder: “Series B US companies hiring for Kubernetes”.theirstack/technographics(25¢): one company (bycompany_domain) → its technologies with confidence (low/medium/high), job-mention counts, and first/last dates seen. The evidence-dated alternative toakta/company-enrichwithsections: ["technology"]when you want the raw stack.theirstack/buying-intents(25¢): one company → buying-intent topics detected in its job posts, with confidence and dates. The cheaper single-account rung when a topic-level signal is enough and you don’t needopenfunnel/deep-research’s LLM answer.theirstack/tech-catalog(1¢): resolve free text to the case-sensitive slugs the filters need:{"q": "kubernetes"}, withkeyword_type: "technology"for techs only orkeyword_type_not: "technology"for intent topics only.
Gotchas
- The vendor bills per row returned, so
limitis required (≤10 on jobs, ≤5 on companies). Page withpagerather than raising limits. - Technology-slug filters are case-sensitive. Always resolve slugs through
theirstack/tech-catalogfirst. theirstack/jobsmust include a date filter (posted_at_max_age_days) or a company filter (company_domain_or); upstream rejects unbounded queries.
signalbase: real-time GTM signal events
- Price
- 25¢ per call, flat, whatever
limitreturns - Coverage
- 39,616 signals in the 30 days to 2026-08-10: 1,165 funding, 456 M&A, 9,108 job changes, 28,887 hiring
- Mode
- sync
Signalbase is the event stream: who raised, got acquired, changed jobs, or started hiring, with a date window on every query. It is the cheapest way to sweep a whole market, because the vendor bills one credit per CALL rather than per row. Set limit high (50 to 100) and page with page; issuing many narrow calls costs the same per call and returns less.
curl -X POST https://vaaya.ai/api/run/signalbase/funding \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date_preset": "last_30d", "round": "Series A", "countries": "US", "limit": 50}'signalbase/funding(25¢): rounds with type, amount, currency, company firmographics inline (headcount, country, industry, LinkedIn) and a confidence score. Filter withdate_preset("last_30d") ordateFrom/dateTo, plusround,round_flavor,amount_min/amount_max,investor_name,countries,categories.signalbase/acquisitions(25¢): M&A events with both sides and the deal amount.acquiring_companyandacquirer_countriesfilter the buyer.signalbase/job-changes(25¢): executive moves filtered bypositions,departments,senioritiesandnew_role. Names are GDPR-masked; the LinkedIn URL is present.signalbase/hiring(25¢): open positions with team size and applicant counts. Wide hiring sweeps belong here because the price is flat; posting-level salary, tech and description filters belong intheirstack/jobs.signalbase/investors(25¢): the investor database acrosstype(vc, angel, pe, corporate, government, accelerator, family_office, hedge_fund, crowdfunding) withticket_size_min/maxandheadquarters.signalbase/companiesandsignalbase/people(25¢ each): company search independent of any signal, and people search that carries the matched signal inline so each result explains why now.
Gotchas
- List filters are COMMA-SEPARATED STRINGS, not arrays:
countries: "US,GB". - Sorting uses
sort_byas the parameter name but validates against an internal enum:occurred_at,discovered_at,amount,employee_count,founded_year. PassingdateorsortByreturns a 400 before billing. - Most rows are sourced by watching VC portfolio pages rather than news, so
discoveredAtis often the time a page changed rather than the time a round was announced. On a 10-row sample taken 2026-08-27, 9 of 10 primary sources were portfolio pages and one signal dated that day traced to an article from 2024. Check the source before you treat a row as breaking news. - Investors come back empty on most funding rows (2 of 10 in the same sample). When you need who led a round, which partner sat on it, or the angels, use
fundable/deal-investors.
fundable: the funding graph
- Price
- 10¢ per billable row, charged on rows RETURNED · 1¢ lookups
- Coverage
- 97k venture-backed companies, 150k+ rounds, 64k institutional investors, 34k angels
- Mode
- sync
Fundable answers who was actually in a funding round. fundable/deals returns rounds with a written summary, the amount, the valuation and the news articles behind them. fundable/deal-investors then opens one round into its full lineup: the firms with a lead_investor flag, the individual partner credited on that deal under personnel, and the angels, each with a profile link. Nothing else on this page resolves a partner to a specific round.
curl -X POST https://vaaya.ai/api/run/fundable/deals \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"page_size": 10, "sort_by": "most_recent_deal", "deal": {"date_start": "2026-08-20", "financing_types": [{"type": "SERIES_A"}]}}'fundable/deals(10¢ per row returned,page_size≤25): rounds filtered bydeal.date_start/date_end(announcement date) ordeal.created_start/created_end(when Fundable ingested the round, which is the field to page on for gap-free incremental syncs), anddeal.financing_typesas objects:[{"type": "SEED", "pre": true}]. Rows carrycompany_id,investor_idsandangel_investor_idsas bare UUIDs.fundable/deal-investors(10¢ flat): one deal UUID returns the whole lineup at one price, however many investors it holds. Firms carrylead_investor, a domain and a LinkedIn URL;personnelcarries the partner on that round;angel_investorscarries name, LinkedIn and Twitter.fundable/company(10¢): resolve a deal row’scompany_idto a profile with the domain, employee band,total_raisedandlatest_valuation_usd. Also addressable bydomain,linkedinorcrunchbase.fundable/investor-dealsandfundable/person-deals(10¢ per row returned): walk a fund to its portfolio, or a person to every round they joined as an angel or as the partner on a firm’s deal.fundable/company-deals(10¢ per row returned): one company’s entire funding history as full deal objects.fundable/companyreturns only the latest round.fundable/company-search,fundable/investor-searchandfundable/person-search(1¢ each): resolve a name to Fundable’s own id, which is what the traversals take. Skip them when you already have a domain or LinkedIn URL.fundable/industry-searchandfundable/location-search(1¢): resolve"fintech"tofintech-e067and"san francisco"tosan-francisco-california.
Gotchas
locations,industriesandsuper_categoriesmatch on exact permalink. A hand-written value is dropped silently upstream, so the call returns unfiltered rows and still bills. Resolve every one through the two lookup endpoints first.- You are billed on rows RETURNED, not rows requested. Ask for 25 and match 2 and you pay for 2, so
page_size(required, ≤25) is only the ceiling your balance is checked against, not a budget you spend.deal-investorsandcompanybill flat, each being one billable unit. - There is no amount filter and no investor filter on
fundable/deals, despite what the vendor’s own docs claim. Both are rejected before billing. - Entity resolution is not perfect. On a 10-row sample one round was attributed to a same-named company, and
total_raisedcan lag the round attached to it. Trust the deal row and its source articles over the company aggregate. - Route wide, cheap event sweeps to
signalbase/funding(25¢ flat for up to 100 rows) and come here for the people in a round.
akta: private-company depth and news signals
- Price
- 4–35¢ per section · news ~2¢ per 10 articles
- Coverage
- 20M+ private companies, 70+ datapoints
- Mode
- sync
OpenFunnel finds which companies; Akta tells you everything about one: rich narrative sections with sources, plus de-duped, entity-resolved news. akta/company-search and akta/industry-search (both free) resolve a name (“Canva”) or free-text industry (“warehouse automation”) to Akta’s uuid or taxonomy code; domains work directly. Request only the sections you need:
curl -X POST https://vaaya.ai/api/run/akta/company-enrich \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company": "canva.com", "sections": ["firmographic", "funding_detail"]}'| Price | Sections |
|---|---|
| 4¢ | trust_signal · company_hierarchy · digital_presence · financial_estimate · location |
| 7¢ | customer_profile · industry |
| 11¢ | management_profile · strategic_signal |
| 14¢ | firmographic · business_model · company_assessment · product_offering · technology |
| 21¢ | funding_detail |
| 35¢ | mna_and_investment |
akta/news(~2¢ per 10 articles,limit≤100): de-duped, entity-resolved news with sentiment, an AI summary, and tagged company mentions. Scope bycompany(website URL),industry(code fromindustry-search), or free-textquery. Additive filters:sentiment_list(positive/negative/neutral),type_list(tag codes:CM01fund-raising,WT01strategic hiring,SD01product launches,SD02partnerships),news_score_list(High/Medium/Low relevance), andstart_date(YYYY-MM-DD) for incremental polls.- Alt-data by domain or uuid:
akta/employee-reviews(11¢, ≤50/page) ·akta/product-reviews(11¢) ·akta/headcount-trends(18¢) ·akta/website-traffic(11¢) ·akta/job-posts(21¢) ·akta/social-posts(11¢). Hiring, growth, culture, and demand signals for qualifying accounts.
Gotchas
- Section names are singular:
firmographic, notfirmographics. - Run
akta/company-search(free) first when a company name is ambiguous.
spyfu: SEO and PPC competitor research
- Price
- 1–3¢/call
- Mode
- sync
- Settlement
- MPP, no API key
SpyFu answers the search-marketing questions about a competitor: the keywords a domain ranks for or bids on, its SERP positions, its ad history, and who it competes with. One gateway action, spyfu/query. Pass path, a SpyFu v2 API path such as apis/domain_stats_api/v2/getLatestDomainStats, plus that operation’s own query params, like domain. Allowed families: domain_stats_api, serp_api, keyword_api, competitors_api, cloud_ad_history_api, organic_history_api.
curl -X POST https://vaaya.ai/api/run/spyfu/query \
-H "Authorization: Bearer $VAAYA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"path": "apis/domain_stats_api/v2/getLatestDomainStats", "domain": "stripe.com"}'Outreach discipline
Rules that keep deliverability and your sender reputation intact:
- Verify before every send.
tomba/email-verifier→deliverableis the gate; cross-check ariskyverdict withicypeas/email-verificationwhen the send matters. - Personalize every send. Generic blasts get sender accounts flagged. Reference something real: their post, their product, the trigger event.
- No bought lists. They bounce, and bounces kill deliverability. Build lists with search + enrichment instead.
- No cold WhatsApp, ever. It burns numbers and trust.
- Respect LinkedIn caps: roughly 25 invites/week and 30 DMs/day per account. Volume beyond that means a longer timeline or an email-first mix.
- Per-find enrichment only, never bulk. Bulk charges on misses; per-find is free on a miss.
- Sharpen a vague ICP before burning paid search. Nail down the revenue band, geography, and titles first. Both Exa and the ContactOut fallback take free text.