StartupHub.ai API
Access the world's most comprehensive startup intelligence platform programmatically. Search millions of data points across startups, investors, people, products, funding rounds, exits, news, research and patents. Enrich profiles with AI, find logos, discover and validate emails.
Paste the MCP URL into Claude / Cursor / ChatGPT / Gemini. Paste the docs markdown into any AI to get help integrating the REST API.
Quick start
curl "https://www.startuphub.ai/api/v1/startups?q=anthropic" \ -H "Authorization: Bearer sk_live_..."
Authentication
All API requests require a Bearer token in the Authorization header.
Bearer sk_live_...Header format
Authorization: Bearer sk_live_a1b2c3d4e5f6...
Example with curl
curl "https://www.startuphub.ai/api/v1/startups?q=ai" \ -H "Authorization: Bearer sk_live_a1b2c3d4e5f6..."
/startupsSearch and filter the startup database by name, sector, country, status, and more. Returns paginated results with metadata.
Query Parameters
qstringSearch query (matches name, description)
sectorstringFilter by sector (e.g. "AI", "Fintech")
countrystringFilter by HQ country
statusstringOperating status: Active, Acquired, Closed
limitintegerdefault: 20Results per page (1-100)
offsetintegerdefault: 0Pagination offset
Errors
Request
cURL
curl "https://www.startuphub.ai/api/v1/startups?q=anthropic&limit=5" \ -H "Authorization: Bearer sk_live_..."
JavaScript
const res = await fetch(
"https://www.startuphub.ai/api/v1/startups?q=anthropic&limit=5",
{
headers: {
Authorization: "Bearer sk_live_...",
},
}
);
const { data, pagination } = await res.json();Python
import requests
resp = requests.get(
"https://www.startuphub.ai/api/v1/startups",
params={"q": "anthropic", "limit": 5},
headers={"Authorization": "Bearer sk_live_..."},
)
data = resp.json()Response
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Anthropic",
"slug": "anthropic",
"one_liner": "AI safety company building reliable AI systems",
"website": "https://anthropic.com",
"hq_country": "United States",
"hq_city": "San Francisco",
"founded_date": "2021-01-01",
"operating_status": "Active",
"sectors": ["AI", "Machine Learning"],
"total_score": 92.5,
"logo_url": "https://cdn.startuphub.ai/..."
}
],
"pagination": {
"total": 1,
"limit": 5,
"offset": 0
},
"credits": {
"used": 1,
"remaining": 49
}
}/startups/:slugRetrieve the full profile for a startup by its URL slug. Fields returned depend on your plan tier (Free returns basic fields, Pro+ returns everything).
Query Parameters
slugstringrequiredThe startup slug (URL identifier)
Errors
Request
cURL
curl "https://www.startuphub.ai/api/v1/startups/anthropic" \ -H "Authorization: Bearer sk_live_..."
JavaScript
const res = await fetch(
"https://www.startuphub.ai/api/v1/startups/anthropic",
{
headers: {
Authorization: "Bearer sk_live_...",
},
}
);
const { data } = await res.json();Python
import requests
resp = requests.get(
"https://www.startuphub.ai/api/v1/startups/anthropic",
headers={"Authorization": "Bearer sk_live_..."},
)
data = resp.json()Response
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Anthropic",
"slug": "anthropic",
"one_liner": "AI safety company...",
"description": "Anthropic is an AI safety...",
"website": "https://anthropic.com",
"hq_country": "United States",
"total_funding": 15000000000,
"employee_count": 1500,
"sectors": ["AI", "ML"],
"total_score": 92.5,
"logo_url": "https://cdn.startuphub.ai/..."
}
}/investorsSearch VCs, angels, accelerators, and other investor types by name, country, or investor type.
Query Parameters
qstringSearch query (name, description)
countrystringFilter by country
typestringInvestor type: VC, Angel, Accelerator, CVC, PE
limitintegerdefault: 20Results per page (1-100)
offsetintegerdefault: 0Pagination offset
Request
cURL
curl "https://www.startuphub.ai/api/v1/investors?q=sequoia&type=VC" \ -H "Authorization: Bearer sk_live_..."
JavaScript
const res = await fetch(
"https://www.startuphub.ai/api/v1/investors?q=sequoia&type=VC",
{
headers: {
Authorization: "Bearer sk_live_...",
},
}
);Python
import requests
resp = requests.get(
"https://www.startuphub.ai/api/v1/investors",
params={"q": "sequoia", "type": "VC"},
headers={"Authorization": "Bearer sk_live_..."},
)Response
{
"data": [
{
"id": "uuid",
"name": "Sequoia Capital",
"investor_type": "VC",
"country": "United States",
"description": "...",
"total_score": 95.0
}
],
"pagination": {
"total": 1,
"limit": 20,
"offset": 0
}
}/peopleSearch founders, executives, board members, and key team members by name, title, country, or sector.
Query Parameters
qstringSearch query (matches name, title)
countrystringFilter by country
titlestringFilter by current title (partial match)
sectorstringFilter by sector
tagstringFilter by tag: Unit 8200, Unit 81, Serial Entrepreneur, AI Expert, Investor, Has Exits
limitintegerdefault: 20Results per page (1-100)
offsetintegerdefault: 0Pagination offset
Errors
Request
cURL
curl "https://www.startuphub.ai/api/v1/people?tag=Unit+8200&limit=10" \ -H "Authorization: Bearer sk_live_..."
JavaScript
const res = await fetch(
"https://www.startuphub.ai/api/v1/people?tag=Unit+8200&limit=10",
{
headers: {
Authorization: "Bearer sk_live_...",
},
}
);
const { data, pagination } = await res.json();Python
import requests
resp = requests.get(
"https://www.startuphub.ai/api/v1/people",
params={"tag": "Unit 8200", "limit": 10},
headers={"Authorization": "Bearer sk_live_..."},
)
data = resp.json()Response
{
"data": [
{
"id": "uuid",
"name": "Avi Shua",
"slug": "avi-shua",
"title": "CIO",
"current_title": "Chief Innovation Officer at Orca Security",
"city": "Tel Aviv",
"country": "Israel",
"sectors": ["Cybersecurity", "Cloud"],
"total_score": 85.0,
"tags": ["Unit 8200", "Serial Entrepreneur", "Has Exits"],
"avatar_url": "https://cdn.startuphub.ai/..."
}
],
"pagination": {
"total": 1,
"limit": 5,
"offset": 0
},
"credits": {
"used": 1,
"remaining": 49
}
}/logoFind square and horizontal logos for any company across our 65M+ company-profile graph. Checks our curated logo cache first, then fetches live from the company website. Best-in-class success rate.
Body Parameters
namestringCompany name (used for cache lookup)
websitestringrequiredCompany website URL (required for live fetch)
Request
cURL
curl -X POST "https://www.startuphub.ai/api/v1/logo" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "Stripe", "website": "https://stripe.com"}'JavaScript
const res = await fetch("https://www.startuphub.ai/api/v1/logo", {
method: "POST",
headers: {
Authorization: "Bearer sk_live_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Stripe",
website: "https://stripe.com",
}),
});Python
import requests
resp = requests.post(
"https://www.startuphub.ai/api/v1/logo",
json={
"name": "Stripe",
"website": "https://stripe.com",
},
headers={"Authorization": "Bearer sk_live_..."},
)Response
{
"data": {
"name": "Stripe",
"square_logo": "https://cdn.startuphub.ai/logos/stripe.png",
"horizontal_logo": "https://cdn.startuphub.ai/logos/stripe-h.png",
"has_square": true,
"has_horizontal": true,
"source": "cache"
}
}
// has_horizontal is null/false for ~60% of companies (no marketing-site
// wordmark to scrape). has_square is populated for ~95% of companies via
// favicon + og:image fallbacks. Both fields surface as either a CDN URL
// or null — clients should null-check before rendering./enrichFull AI-powered RAG enrichment. Creates a new profile if the company doesn't exist, triggers enrichment with live web data, and returns cached results if already enriched. Requires Pro Lite or higher.
Body Parameters
namestringrequiredCompany name
websitestringCompany website (improves matching)
linkedin_urlstringCompany LinkedIn profile URL
Errors
Request
cURL
curl -X POST "https://www.startuphub.ai/api/v1/enrich" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "Anthropic", "website": "https://anthropic.com"}'JavaScript
const res = await fetch("https://www.startuphub.ai/api/v1/enrich", {
method: "POST",
headers: {
Authorization: "Bearer sk_live_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Anthropic",
website: "https://anthropic.com",
}),
});Python
import requests
resp = requests.post(
"https://www.startuphub.ai/api/v1/enrich",
json={
"name": "Anthropic",
"website": "https://anthropic.com",
},
headers={"Authorization": "Bearer sk_live_..."},
)Response
{
"data": {
"id": "uuid",
"name": "Anthropic",
"slug": "anthropic",
"description": "Anthropic is an AI safety...",
"website": "https://anthropic.com",
"total_funding": 15000000000,
"employee_count": 1500
},
"source": "cache",
"enriched": true
}/email/discoverFind a professional email address given a person's name and company domain.
Body Parameters
firstNamestringrequiredPerson's first name
lastNamestringrequiredPerson's last name
domainstringrequiredCompany email domain (e.g. anthropic.com)
Request
cURL
curl -X POST "https://www.startuphub.ai/api/v1/email/discover" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"firstName":"Dario","lastName":"Amodei","domain":"anthropic.com"}'JavaScript
const res = await fetch("https://www.startuphub.ai/api/v1/email/discover", {
method: "POST",
headers: {
Authorization: "Bearer sk_live_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
firstName: "Dario",
lastName: "Amodei",
domain: "anthropic.com",
}),
});Python
import requests
resp = requests.post(
"https://www.startuphub.ai/api/v1/email/discover",
json={
"firstName": "Dario",
"lastName": "Amodei",
"domain": "anthropic.com",
},
headers={"Authorization": "Bearer sk_live_..."},
)Response
{
"found": true,
"email": "[email protected]",
"domain": "anthropic.com",
"totalCombinationsTested": 12
}/email/validateVerify if an email address is valid and deliverable.
Body Parameters
emailstringrequiredEmail address to validate
Request
cURL
curl -X POST "https://www.startuphub.ai/api/v1/email/validate" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'JavaScript
const res = await fetch("https://www.startuphub.ai/api/v1/email/validate", {
method: "POST",
headers: {
Authorization: "Bearer sk_live_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
email: "[email protected]",
}),
});Python
import requests
resp = requests.post(
"https://www.startuphub.ai/api/v1/email/validate",
json={"email": "[email protected]"},
headers={"Authorization": "Bearer sk_live_..."},
)Response
{
"email": "[email protected]",
"valid": true,
"reason": "Verified",
"details": null
}/startups/submitAgent-friendly endpoint that lets an AI agent (or any API client) submit a new startup for inclusion on StartupHub.ai. Submissions enter a moderation queue and become public after admin approval (typically within 24h). Strict format: third-person prose, no HTML/markdown, no listicle titles. On bad input returns 400 with field-level errors and copy-paste suggestions so the agent can self-correct without human help. Optional logo_url is fetched and stored automatically (≤2MB).
Body Parameters
namestringrequiredOfficial company name (≤80 chars; no listicle words like "best/top/2026")
websitestringrequiredCompany website URL
one_linerstringrequiredOne-sentence pitch in third person, 20–200 chars
descriptionstringrequiredFull description in third person, 30–400 words, plain text only
sectorsarrayrequired1–5 sectors from the controlled vocabulary
founded_datestringYYYY, YYYY-MM, or YYYY-MM-DD
hq_countrystringCountry
hq_citystringCity
linkedin_urlstringCompany LinkedIn URL
twitter_urlstringCompany Twitter/X URL
github_urlstringCompany GitHub URL
logo_urlstringOptional logo image URL — server fetches and stores (≤2MB, PNG/JPEG/WebP/SVG/GIF)
stagestringPre-seed | Seed | Series A/B/C/D | Series E+ | Growth | Late Stage | Pre-IPO | Public | Acquired | Bootstrapped
business_modelstringB2B SaaS | B2C SaaS | Marketplace | API/Developer Tools | Hardware | ...
employee_countnumbertotal_fundingnumberUSD
latest_funding_roundstringe.g. "Series B"
latest_funding_datestringYYYY or YYYY-MM-DD
latest_valuationnumberUSD
stock_exchangestringNASDAQ | NYSE | ... — for public companies
tickerstringlinkedin_followersnumbergithub_starsnumberformer_namesarrayPrevious company names
facebook_urlstringyoutube_urlstringblog_urlstringsubstack_urlstringdiscord_urlstringslack_urlstringcommunity_urlstringstatus_urlstringchangelog_urlstringroadmap_urlstringapi_docs_urlstringsecurity_page_urlstringdemo_urlstringdemo_video_urlstringcoding_languagesarraye.g. ["Python", "TypeScript", "Rust"]
frameworks_toolsarraycloud_providersarraye.g. ["AWS", "GCP"]
certificationsarraySOC 2 | SOC 2 Type II | ISO 27001 | HIPAA | GDPR | PCI DSS | FedRAMP | ...
is_raisingbooleanraising_roundstringraising_targetnumberUSD
raising_use_of_fundsstringpitch_deck_urlstringis_hiringbooleancareers_urlstringcontact_emailstringpartnerships_emailstringpress_emailstringfoundersarrayArray of { name, role, linkedin_url, email } — matched to existing people by slug / name / LinkedIn; unmatched stashed in admin review queue
team_membersarraySame shape as founders
notable_investorsarrayArray of { name, slug, website } — matched to existing investors
competitorsarrayArray of { name, slug, website } — matched to existing startups
mentioned_articlesarrayArray of { slug } or { url } — links to StartupHub.ai posts; bidirectional
productsarrayArray of { name, description, url } — stashed in meta_fields for admin promotion
Errors
Request
cURL
curl -X POST "https://www.startuphub.ai/api/v1/startups/submit" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Anthropic",
"website": "https://anthropic.com",
"one_liner": "Anthropic builds reliable, interpretable, and steerable AI systems for the safety-conscious enterprise.",
"description": "Anthropic is an AI safety company building large-scale language models with a focus on reliability and interpretability. Founded in 2021 by former OpenAI executives, the company researches techniques for making AI systems more honest, harmless, and helpful. Anthropic offers Claude, an enterprise-grade chat assistant, alongside research APIs.",
"sectors": ["Artificial Intelligence", "AI Research"],
"founded_date": "2021",
"hq_country": "United States",
"hq_city": "San Francisco",
"logo_url": "https://anthropic.com/logo.png"
}'JavaScript
const res = await fetch("https://www.startuphub.ai/api/v1/startups/submit", {
method: "POST",
headers: {
Authorization: "Bearer sk_live_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Anthropic",
website: "https://anthropic.com",
one_liner: "Anthropic builds reliable, interpretable, and steerable AI systems...",
description: "Anthropic is an AI safety company...",
sectors: ["Artificial Intelligence", "AI Research"],
founded_date: "2021",
hq_country: "United States",
logo_url: "https://anthropic.com/logo.png",
}),
});
const data = await res.json();
if (!res.ok && data.error === "validation_failed") {
// Each error has { field, message, suggestion } — fix and retry
for (const err of data.errors) {
console.warn(`${err.field}: ${err.message} — ${err.suggestion}`);
}
}Python
import requests
resp = requests.post(
"https://www.startuphub.ai/api/v1/startups/submit",
json={
"name": "Anthropic",
"website": "https://anthropic.com",
"one_liner": "Anthropic builds reliable, interpretable, and steerable AI systems...",
"description": "Anthropic is an AI safety company...",
"sectors": ["Artificial Intelligence", "AI Research"],
"founded_date": "2021",
"hq_country": "United States",
"logo_url": "https://anthropic.com/logo.png",
},
headers={"Authorization": "Bearer sk_live_..."},
)
data = resp.json()
if resp.status_code == 400 and data.get("error") == "validation_failed":
for err in data["errors"]:
print(f"{err['field']}: {err['message']} -- {err.get('suggestion', '')}")Response
{
"success": true,
"status": "pending_review",
"message": "Submission received. An admin will review within 24 hours. The profile is not publicly visible until approved.",
"startup": {
"id": "uuid",
"slug": "anthropic",
"name": "Anthropic",
"url": "https://www.startuphub.ai/startups/anthropic",
"moderation_status": "flagged_pending",
"logo_url": "https://bsmromhjxdnndenlrpgx.supabase.co/storage/v1/object/public/entity-images/startups/uuid.png"
},
"credits": { "used": 5, "limit": 100, "remaining": 95 }
}/investors/submitSubmit a new investor profile (VC, angel, accelerator, etc.) for moderation review. Same flow as Submit a Startup. Deduped by website domain or name+country.
Body Parameters
namestringrequiredOfficial firm name (≤100 chars)
typestringrequiredVC | Angel | Accelerator | Incubator | Corporate VC | Family Office | Sovereign Wealth Fund | Crowdfunding | PE | Hedge Fund | Syndicate
descriptionstringrequiredThird-person, 20–400 words
websitestringFirm website
countrystringcitystringsector_focusarrayUp to 10 sectors invested in
stage_focusarrayPre-seed | Seed | Series A | Series B | Series C | Series D | Growth | Late Stage
logo_urlstringOptional logo URL (≤2MB)
Request
cURL
curl -X POST "https://www.startuphub.ai/api/v1/investors/submit" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Sequoia Capital",
"type": "VC",
"description": "Sequoia Capital is a venture capital firm founded in 1972 with a focus on technology and consumer companies. The firm invests across stages from seed to growth and has backed companies including Apple, Google, and Nvidia.",
"website": "https://sequoiacap.com",
"country": "United States",
"city": "Menlo Park",
"stage_focus": ["Seed", "Series A", "Series B", "Growth"]
}'JavaScript
const res = await fetch("https://www.startuphub.ai/api/v1/investors/submit", {
method: "POST",
headers: { Authorization: "Bearer sk_live_...", "Content-Type": "application/json" },
body: JSON.stringify({
name: "Sequoia Capital",
type: "VC",
description: "Sequoia Capital is a venture capital firm...",
website: "https://sequoiacap.com",
stage_focus: ["Seed", "Series A", "Growth"],
}),
});Python
import requests
resp = requests.post(
"https://www.startuphub.ai/api/v1/investors/submit",
json={
"name": "Sequoia Capital",
"type": "VC",
"description": "Sequoia Capital is a venture capital firm...",
"website": "https://sequoiacap.com",
"stage_focus": ["Seed", "Series A", "Growth"],
},
headers={"Authorization": "Bearer sk_live_..."},
)Response
{
"success": true,
"status": "pending_review",
"investor": { "id": "uuid", "slug": "sequoia-capital", "name": "Sequoia Capital",
"url": "https://www.startuphub.ai/investors/sequoia-capital",
"moderation_status": "flagged_pending" },
"credits": { "used": 5, "limit": 100, "remaining": 95 }
}/people/submitSubmit a new person profile (founder, executive, board member). Requires either current_title or linkedin_url to disambiguate from common-name dupes. Third-person bio, plain text, ≤300 words.
Body Parameters
namestringrequiredPerson's full name (≤80 chars)
current_titlestringe.g. "CEO at OpenAI" — required if no linkedin_url
linkedin_urlstringPersonal LinkedIn (linkedin.com/in/...) — required if no current_title
descriptionstringThird-person bio, ≤300 words
citystringcountrystringtwitter_urlstringgithub_urlstringavatar_urlstringOptional avatar image URL (≤2MB)
Request
cURL
curl -X POST "https://www.startuphub.ai/api/v1/people/submit" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Dario Amodei",
"current_title": "CEO and Co-founder at Anthropic",
"linkedin_url": "https://linkedin.com/in/darioamodei",
"description": "Dario Amodei is the CEO and co-founder of Anthropic. He previously served as VP of Research at OpenAI.",
"country": "United States"
}'JavaScript
const res = await fetch("https://www.startuphub.ai/api/v1/people/submit", {
method: "POST",
headers: { Authorization: "Bearer sk_live_...", "Content-Type": "application/json" },
body: JSON.stringify({
name: "Dario Amodei",
current_title: "CEO and Co-founder at Anthropic",
linkedin_url: "https://linkedin.com/in/darioamodei",
}),
});Python
import requests
resp = requests.post(
"https://www.startuphub.ai/api/v1/people/submit",
json={"name": "Dario Amodei", "current_title": "CEO and Co-founder at Anthropic",
"linkedin_url": "https://linkedin.com/in/darioamodei"},
headers={"Authorization": "Bearer sk_live_..."},
)Response
{
"success": true,
"status": "pending_review",
"person": { "id": "uuid", "slug": "dario-amodei", "name": "Dario Amodei",
"url": "https://www.startuphub.ai/people/dario-amodei",
"moderation_status": "flagged_pending" },
"credits": { "used": 5, "limit": 100, "remaining": 95 }
}/agent-readinessScans any website and scores how well it is optimised for AI agents — robots.txt, sitemap, llms.txt, llms-full.txt, markdown content-negotiation, MCP server card, and more. Returns a score out of 100, a letter grade, and per-check pass/warn/fail results with improvement suggestions. Using Clay? See /integrations/clay for the copy-paste HTTP API column setup.
Body Parameters
urlstringrequiredFull URL of the website to scan (e.g. https://anthropic.com)
Request
cURL
curl -X POST "https://www.startuphub.ai/api/v1/agent-readiness" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "url": "https://anthropic.com" }'JavaScript
const res = await fetch("https://www.startuphub.ai/api/v1/agent-readiness", {
method: "POST",
headers: {
Authorization: "Bearer sk_live_...",
"Content-Type": "application/json",
},
body: JSON.stringify({ url: "https://anthropic.com" }),
});
const { data } = await res.json();
console.log(data.totalScore, data.grade);Python
import requests
resp = requests.post(
"https://www.startuphub.ai/api/v1/agent-readiness",
headers={"Authorization": "Bearer sk_live_..."},
json={"url": "https://anthropic.com"},
)
data = resp.json()["data"]
print(data["totalScore"], data["grade"])Response
{
"data": {
"url": "https://anthropic.com",
"totalScore": 82,
"grade": "A",
"categories": [
{ "category": "crawlability", "label": "Crawlability", "score": 100, "passed": 3, "total": 3 },
{ "category": "content", "label": "Content", "score": 75, "passed": 3, "total": 4 },
{ "category": "agent_protocols", "label": "Agent Protocols", "score": 60, "passed": 2, "total": 3 }
],
"checks": [
{
"id": "robots-txt",
"label": "robots.txt present",
"status": "pass",
"category": "crawlability",
"weight": 3,
"detail": "robots.txt found and accessible."
},
{
"id": "llms-txt",
"label": "llms.txt present",
"status": "fail",
"category": "agent_protocols",
"weight": 3,
"detail": "No llms.txt found. Add one at /llms.txt to help agents discover your site structure.",
"fix_prompt": "Create /llms.txt at your site root listing your most important URLs (one per line, plain text). Example:\nhttps://example.com/about\nhttps://example.com/products\nhttps://example.com/api-docs\nThis is the primary discovery file for AI agents."
}
],
"markdown": "## Agent Readiness Report\n**Score:** 82/100 (A)\n...",
"scannedAt": "2026-04-23T12:00:00.000Z",
"totalMs": 1840
},
"credits": { "used": 1, "limit": 50, "remaining": 49 }
}/advertiser/analyticsLive performance for ads owned by your account: impressions, clicks, CTR, daily trend, by-placement and by-variant breakdown. Same JSON shape your /my-account?tab=ads dashboard renders. Free for own data — no credit cost.
Query Parameters
ad_idintegerFilter to a single ad (must be owned by you). Omit for all of your ads.
daysintegerLookback window in days (default 30, max 365).
Request
cURL
curl -H "Authorization: Bearer sk_live_..." \ "https://www.startuphub.ai/api/v1/advertiser/analytics?days=30"
JavaScript
const res = await fetch("https://www.startuphub.ai/api/v1/advertiser/analytics?days=30", {
headers: { Authorization: "Bearer sk_live_..." },
});
const { ads, totals } = await res.json();
console.log(totals.impressions, totals.clicks, totals.ctr);Python
import requests
resp = requests.get(
"https://www.startuphub.ai/api/v1/advertiser/analytics",
headers={"Authorization": "Bearer sk_live_..."},
params={"days": 30},
)
data = resp.json()
print(data["totals"])Response
{
"ads": [
{
"ad": { "id": 1234, "title": "Airwallex for global startups", "status": "active", "is_published": true },
"impressions": 48210,
"clicks": 312,
"ctr": 0.6,
"surface_breakdown": {
"article": { "impressions": 28100, "clicks": 178 },
"profile_page": { "impressions": 14210, "clicks": 95 },
"search": { "impressions": 5900, "clicks": 39 }
},
"variant_breakdown": {
"v1-uuid": { "impressions": 24000, "clicks": 165, "ctr": 0.7 },
"v2-uuid": { "impressions": 24210, "clicks": 147, "ctr": 0.6 }
},
"series": [
{ "day": "2026-04-01", "impressions": 1620, "clicks": 11 },
{ "day": "2026-04-02", "impressions": 1750, "clicks": 9 }
]
}
],
"totals": { "impressions": 48210, "clicks": 312, "ctr": 0.6 },
"window_days": 30
}Rate Limits
Daily credit limits reset at midnight UTC. Your current usage is visible in real-time at My Account → API.
| Endpoint | Credits | Free | Market Map Maker | Pro Lite | Pro | Pro+ |
|---|---|---|---|---|---|---|
| Email Validate | 1 | 50/day | 500/day | 2,000/day | 10,000/day | |
| Email Discover | 3 | 5/day | 50/day | 200/day | 1,000/day | |
| Search / DB | 1 | 50/day | 500/day | 2,000/day | 10,000/day | |
| Profile | 1 | 25/day | 250/day | 1,000/day | 5,000/day | |
| Logo | 1 | 10/day | 100/day | 500/day | 2,500/day | |
| Enrich | 5 | -- | 25/day | 100/day | 500/day |
Hit your daily limit? Top up credits one-off or upgrade your plan for a higher daily ceiling.
Errors
The API uses standard HTTP status codes. All error responses include an error field with a human-readable message.
400Bad Request
Missing or invalid parameters
401Unauthorized
Invalid or missing API key
403Forbidden
Feature requires a higher plan tier
404Not Found
Resource does not exist
429Rate Limited
Daily credit limit exceeded
500Server Error
Internal error (retry after a moment)
Error response format
{
"error": "Rate limit exceeded",
"message": "You've reached your daily limit of 50 search requests. Upgrade to Pro Lite for higher limits.",
"upgrade_url": "https://www.startuphub.ai/pricing"
}MCP Server
Connect StartupHub.ai data directly to Claude Desktop, Cursor, Windsurf, or any MCP-compatible AI tool. All API endpoints are available as MCP tools.
Search startups and investors from your AI chat
Enrich companies with live web data
Discover and validate emails inline
Find company logos for presentations
Endpoint URL
claude_desktop_config.json / .cursor/mcp.json
{
"mcpServers": {
"startuphub": {
"url": "https://www.startuphub.ai/api/mcp",
"headers": {
"Authorization": "Bearer sk_live_..."
}
}
}
}The `Authorization` header is optional — without it you get the free tools (email validate, email discover, agent readiness, logo, trends). Add a key to unlock startup search, submit, edit, and profile tools.
Use it in your favourite AI client
StartupHub speaks Model Context Protocol over HTTP — paste one URL into any of these and your assistant gains 30+ tools for searching, enriching, finding emails, validating emails, scanning AI-readiness, and submitting startup data. See the full tool catalog →
Claude Desktop
The reference MCP client. Free + Pro.
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"startuphub": {
"url": "https://www.startuphub.ai/api/mcp",
"headers": { "Authorization": "Bearer sk_live_..." }
}
}
}Claude Code
Anthropic's terminal coding agent.
one command
claude mcp add startuphub --transport http https://www.startuphub.ai/api/mcp \
--header "Authorization: Bearer sk_live_..."OpenAI Codex CLI
OpenAI's open-source coding agent. STDIO + HTTP MCP.
~/.codex/config.toml
[mcp_servers.startuphub]
url = "https://www.startuphub.ai/api/mcp"
[mcp_servers.startuphub.http_headers]
Authorization = "Bearer sk_live_..."Cursor
AI-native code editor.
.cursor/mcp.json (project) or ~/.cursor/mcp.json (global)
{
"mcpServers": {
"startuphub": {
"url": "https://www.startuphub.ai/api/mcp",
"headers": { "Authorization": "Bearer sk_live_..." }
}
}
}Windsurf
Codeium's AI IDE.
Settings → MCP servers → Add
{
"mcpServers": {
"startuphub": {
"serverUrl": "https://www.startuphub.ai/api/mcp",
"headers": { "Authorization": "Bearer sk_live_..." }
}
}
}Zed
High-performance collaborative editor.
Settings → context_servers
{
"context_servers": {
"startuphub": {
"command": null,
"url": "https://www.startuphub.ai/api/mcp",
"headers": { "Authorization": "Bearer sk_live_..." }
}
}
}Continue.dev
Open-source AI extension for VS Code & JetBrains.
~/.continue/config.json
{
"mcpServers": [
{
"name": "startuphub",
"url": "https://www.startuphub.ai/api/mcp",
"headers": { "Authorization": "Bearer sk_live_..." }
}
]
}Cline (VS Code)
AI coding assistant inside VS Code.
Cline settings → MCP servers
{
"startuphub": {
"url": "https://www.startuphub.ai/api/mcp",
"headers": { "Authorization": "Bearer sk_live_..." }
}
}Goose (Block)
Open-source AI agent from Block.
~/.config/goose/config.yaml
extensions:
startuphub:
type: streamable_http
uri: https://www.startuphub.ai/api/mcp
headers:
Authorization: "Bearer sk_live_..."ChatGPT Desktop
Plus / Team / Enterprise. Web ChatGPT does not support MCP.
Settings → Beta features → Connectors
URL: https://www.startuphub.ai/api/mcp
Header: Authorization: Bearer sk_live_...Gemini CLI
Google's terminal Gemini agent.
~/.gemini/settings.json
{
"mcpServers": {
"startuphub": {
"httpUrl": "https://www.startuphub.ai/api/mcp",
"headers": { "Authorization": "Bearer sk_live_..." }
}
}
}JetBrains AI Assistant
IntelliJ / WebStorm / PyCharm.
Settings → Tools → AI Assistant → MCP
Add server →
URL: https://www.startuphub.ai/api/mcp
Header: Authorization: Bearer sk_live_...Building your own agent?
The endpoint speaks streamable-HTTP MCP, so it works with the official OpenAI Agents SDK (MCPServerStreamableHttp), LangChain's MultiServerMCPClient, LlamaIndex, LibreChat, and the broader MCP ecosystem. Without a Bearer header you get five free tools rate-limited per IP; with a key you get all 30+ tools and your plan’s quota.Use it inside no-code platforms
Drop the email finder, validator, and AI-readiness scanner into Zapier, Make, n8n, or Clay. Three core endpoints (/email/discover, /email/validate, /agent-readiness/scan) work in any HTTP-capable workflow tool. Native nodes ship for n8n today; Zapier and Make natives are in review.
n8n
Open-source workflow automation. Install n8n-nodes-startuphub from the Community Nodes panel.
Clay
Drop a domain into a Clay table → get back the AI-readiness score and per-category breakdown.
Zapier
Use Webhooks-by-Zapier today. Native Zapier app is in their review queue.
Make (Integromat)
Use the HTTP "Make a request" module today. Native Make app coming after Zapier ships.
Ready to get started?
Create a free API key and start building in minutes. No credit card required.