API Reference

v1

https://www.startuphub.ai/api/v1

PlansCredits

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.

Search & Filter startups and investors across 50+ fields
AI Enrichment with live web data via RAG pipeline
Email Discovery and validation with 100% accuracy
MCP Server for Claude, Cursor, Windsurf, and other AI tools

Use Markdown or MCP URL in the header to copy the full docs or endpoint for Claude, Cursor, ChatGPT, and Gemini.

Quick start

bash
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.

2Create an API key (up to 3 per account)
3Copy the key immediately (shown only once)
4Pass it as Bearer sk_live_...
API keys are sensitive. Never expose them in client-side code, public repos, or browser requests.

Header format

http
Authorization: Bearer sk_live_a1b2c3d4e5f6...

Example with curl

bash
curl "https://www.startuphub.ai/api/v1/startups?q=ai" \
  -H "Authorization: Bearer sk_live_a1b2c3d4e5f6..."
GET/startups

Search and filter the startup database by name, sector, country, tech stack, stealth status, founder-contact availability, and more. Returns paginated results with metadata. This is the API surface that powers stealth-startup deal-flow workflows for VC, M&A, and corp-dev buyers.

Cost:
1 credit per request

Query Parameters

qstring

Search query (matches name, description)

sectorstring

Filter by sector (e.g. "AI", "Fintech")

countrystring

Filter by HQ country

statusstring

Operating status: Active, Acquired, Closed

employees_mininteger

Min employee count

employees_maxinteger

Max employee count

founded_afterstring

Founded on or after this date (YYYY-MM-DD)

founded_beforestring

Founded on or before this date (YYYY-MM-DD)

sortstring

Sort field.dir: founded_date.desc, total_funding.desc, total_score.desc, current_revenue.desc, employee_count.desc, employee_growth_quarterly_cagr.desc, latest_funding_date.desc, created_at.desc

stealthstring

Stealth-mode filter. "true" = stealth only, "false" = exclude stealth. Stealth visibility requires Pro Lite tier or higher; Free tier never sees stealth rows.

domain_tldstring

Comma-separated TLD list. e.g. "ai,io,so" returns only startups whose primary website sits on those TLDs. Indexed; fast.

cdnstring

Comma-separated detected CDNs: "cloudflare", "vercel", "cloudfront", "fastly", "netlify". Detected per startup from response headers at promote-time.

email_providerstring

Comma-separated detected email providers from MX records: "google_workspace", "m365", "zoho", "proton", "rackspace", "fastmail", "yandex", "mimecast", "proofpoint", "barracuda", "self_hosted", "gateway". Powers vendor-segmentation queries.

has_known_emailsstring

"true" returns only startups where at least one founder/team email has been verified (mass-discovered or claimed). Pro Lite tier and higher only. Pro Lite sees redacted emails (r***@company.com); Pro sees full addresses. This is the founders-with-emails moneymaker filter.

hostingstring

Comma-separated detected hosting providers: aws, azure, gcp, vercel, render, railway, flyio, heroku, hetzner, ovh, vultr, linode, scaleway, digitalocean, netlify, github_pages. Detected via response headers (vendor-specific X-* tokens) + reverse-DNS on the resolved IP (catches Hetzner/OVH/Vultr/generic EC2 boxes).

paymentstring

Comma-separated detected payment processors: stripe, paddle, lemonsqueezy, polar, paypal, square, adyen, braintree, klarna, afterpay, affirm, bolt, mollie, razorpay, chargebee, recurly, plaid, coinbase_commerce, apple_pay, google_pay.

compliancestring

Comma-separated compliance certifications detected in footer text/badges: soc2, hipaa, iso27001, iso27017, pci_dss, gdpr, ccpa, fedramp. The enterprise-buyer filter — SOC 2 certification is the single biggest signal for sales-led B2B readiness.

status_pagestring

Status page vendor (operational maturity proxy): statuspage, instatus, betterstack, freshstatus, statusgator.

cookie_consentstring

EU/regulated-market compliance proxy via detected cookie consent vendor: onetrust, cookiebot, cookiehub, iubenda, termly, osano. Startups running OneTrust are typically selling into enterprise.

hiring_platformstring

ATS / hiring vendor (proxy for stage + ATS sophistication): greenhouse, lever, ashby, workable, rippling_ats, recruitee, bamboohr.

bookingstring

Booking widget (sales-led B2B signal): calendly, calcom, savvycal, chilipiper.

email_marketingstring

Email marketing / capture tool: klaviyo, mailchimp, convertkit, beehiiv, loops, hubspot_forms, customer_io, substack.

ai_supportstring

Customer-facing AI support widget (distinguishes "AI-using" from generic Intercom): intercom_fin, ada, sierra, decagon, drift_ai, fin_ai.

a11ystring

Accessibility overlay widget (regulated-buyer signal): userway, accessibe, audioeye, equalweb.

affiliate_programstring

Affiliate platform: partnerstack, rewardful, tolt, firstpromoter, impact, refersion, shareasale, cj_affiliate, rakuten_advertising, awin. Use affiliate_self_hosted to match startups that run their own affiliate page without a vendor.

has_affiliate_programstring

"true" returns only startups with any affiliate program signal (vendor-detected OR self-hosted /affiliate page). Quick toggle for partnership-deal filtering.

limitintegerdefault: 20

Results per page (1-100)

offsetintegerdefault: 0

Pagination offset

Errors

401
Invalid or missing API key
403
Filter requires higher tier (e.g. has_known_emails=true on Free)
429
Daily rate limit exceeded

Request

cURL
curl
# The "fresh stealth founder lead" query — every stealth startup on .ai
# or .io with at least one verified founder email, newest first.
curl "https://www.startuphub.ai/api/v1/startups?stealth=true&domain_tld=ai,io&has_known_emails=true&sort=founded_date.desc&limit=20" \
  -H "Authorization: Bearer sk_live_..."
JavaScript
javascript
// Fresh stealth founder leads — the deal-flow query.
const res = await fetch(
  "https://www.startuphub.ai/api/v1/startups?stealth=true&domain_tld=ai,io&has_known_emails=true&sort=founded_date.desc&limit=20",
  {
    headers: {
      Authorization: "Bearer sk_live_...",
    },
  }
);

const { data, pagination } = await res.json();
// data[].tech_fingerprint exposes detected CDN, email provider, analytics
// stack, payments, and frameworks. data[].domain_created_at is the RDAP
// registration date so you can compute domain-age-vs-founding signals.
Python
python
import requests

# Fresh stealth founder leads — the deal-flow query.
resp = requests.get(
    "https://www.startuphub.ai/api/v1/startups",
    params={
        "stealth": "true",
        "domain_tld": "ai,io",
        "has_known_emails": "true",
        "sort": "founded_date.desc",
        "limit": 20,
    },
    headers={"Authorization": "Bearer sk_live_..."},
)

data = resp.json()

Response

json
{
  "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,
      "stealth_mode": null,
      "domain_tld": "com",
      "domain_created_at": "2021-01-06",
      "has_known_emails": true,
      "tech_fingerprint": {
        "cdn": "cloudflare",
        "email_provider": "google_workspace",
        "email_provider_confidence": "high",
        "analytics": ["ga4"],
        "payments": [],
        "frameworks": ["nextjs"],
        "fingerprinted_at": "2026-05-21T09:14:00Z"
      },
      "logo_url": "https://cdn.startuphub.ai/..."
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 5,
    "offset": 0
  },
  "credits": {
    "used": 1,
    "remaining": 49
  }
}
GET/startups/:slug

Retrieve the full profile for a startup by its URL slug. Fields returned depend on your plan tier (Free returns basic fields, Pro+ returns everything).

Cost:
1 credit per request

Query Parameters

slugstringrequired

The startup slug (URL identifier)

Errors

401
Invalid or missing API key
403
Stealth profile (Pro+ required)
404
Startup not found

Request

cURL
curl
curl "https://www.startuphub.ai/api/v1/startups/anthropic" \
  -H "Authorization: Bearer sk_live_..."
JavaScript
javascript
const res = await fetch(
  "https://www.startuphub.ai/api/v1/startups/anthropic",
  {
    headers: {
      Authorization: "Bearer sk_live_...",
    },
  }
);

const { data } = await res.json();
Python
python
import requests

resp = requests.get(
    "https://www.startuphub.ai/api/v1/startups/anthropic",
    headers={"Authorization": "Bearer sk_live_..."},
)

data = resp.json()

Response

json
{
  "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/..."
  }
}
GET/companies/technology

Scan a company website for its technology stack. The endpoint first checks StartupHub.ai for a matching company and cached tech fingerprint, then optionally runs a fresh live scan. Perfect for CRM enrich flows where each row has a website domain.

Cost:
1 credit per request

Query Parameters

domainstringrequired

Company domain or URL (e.g. anthropic.com or https://anthropic.com/about)

livebooleandefault: false

true = force a fresh live scan even when DB fingerprint exists

Errors

400
Missing or invalid domain parameter
401
Invalid or missing API key
429
Insufficient credits

Request

cURL
curl
curl "https://www.startuphub.ai/api/v1/companies/technology?domain=anthropic.com&live=true" \
  -H "Authorization: Bearer sk_live_..."
JavaScript
javascript
const res = await fetch(
  "https://www.startuphub.ai/api/v1/companies/technology?domain=anthropic.com&live=true",
  {
    headers: {
      Authorization: "Bearer sk_live_...",
    },
  }
);
const { data } = await res.json();
Python
python
import requests

resp = requests.get(
    "https://www.startuphub.ai/api/v1/companies/technology",
    params={"domain": "anthropic.com", "live": "true"},
    headers={"Authorization": "Bearer sk_live_..."},
)
data = resp.json()

Response

json
{
  "data": {
    "domain": "anthropic.com",
    "source": "database+live",
    "company": {
      "id": "uuid",
      "name": "Anthropic",
      "slug": "anthropic",
      "website": "https://anthropic.com",
      "startuphub_url": "https://www.startuphub.ai/startups/anthropic",
      "domain_tld": "com",
      "domain_created_at": "2021-01-06"
    },
    "technology_stack": {
      "resolved": {
        "raw": {
          "cdn": "cloudflare",
          "hosting": "aws",
          "email_provider": "google_workspace",
          "frameworks": ["nextjs", "react"],
          "payments": ["stripe"],
          "analytics": ["ga4"],
          "fingerprinted_at": "2026-05-25T15:20:00.000Z"
        }
      }
    }
  },
  "credits": { "cost": 1, "remaining_period": 9999, "remaining_balance": 2000 }
}
GET/investors

Search VCs, angels, accelerators, and other investor types by name, country, or investor type.

Cost:
1 credit per request

Query Parameters

qstring

Search query (name, description)

countrystring

Filter by country

typestring

Investor type: VC, Angel, Accelerator, CVC, PE

limitintegerdefault: 20

Results per page (1-100)

offsetintegerdefault: 0

Pagination offset

Request

cURL
curl
curl "https://www.startuphub.ai/api/v1/investors?q=sequoia&type=VC" \
  -H "Authorization: Bearer sk_live_..."
JavaScript
javascript
const res = await fetch(
  "https://www.startuphub.ai/api/v1/investors?q=sequoia&type=VC",
  {
    headers: {
      Authorization: "Bearer sk_live_...",
    },
  }
);
Python
python
import requests

resp = requests.get(
    "https://www.startuphub.ai/api/v1/investors",
    params={"q": "sequoia", "type": "VC"},
    headers={"Authorization": "Bearer sk_live_..."},
)

Response

json
{
  "data": [
    {
      "id": "uuid",
      "name": "Sequoia Capital",
      "investor_type": "VC",
      "country": "United States",
      "description": "...",
      "total_score": 95.0
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 20,
    "offset": 0
  }
}
GET/people

Search founders, executives, board members, and key team members by name, title, country, or sector.

Cost:
1 credit per request

Query Parameters

qstring

Search query (matches name, title)

countrystring

Filter by country

titlestring

Filter by current title (partial match)

sectorstring

Filter by sector

tagstring

Filter by tag: Unit 8200, Unit 81, Serial Entrepreneur, AI Expert, Investor, Has Exits

limitintegerdefault: 20

Results per page (1-100)

offsetintegerdefault: 0

Pagination offset

Errors

401
Invalid or missing API key
429
Daily rate limit exceeded

Request

cURL
curl
curl "https://www.startuphub.ai/api/v1/people?tag=Unit+8200&limit=10" \
  -H "Authorization: Bearer sk_live_..."
JavaScript
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
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

json
{
  "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
  }
}
POST/enrich

Full 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.

Cost:
5 credits per request

Body Parameters

namestringrequired

Company name

websitestring

Company website (improves matching)

linkedin_urlstring

Company LinkedIn profile URL

Errors

403
Requires Pro Lite or higher plan

Request

cURL
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
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
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

json
{
  "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
}
POST/email/discover

Find a professional email address given a person's name and company domain.

Cost:
3 credits per request

Body Parameters

firstNamestringrequired

Person's first name

lastNamestringrequired

Person's last name

domainstringrequired

Company email domain (e.g. anthropic.com)

Request

cURL
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
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
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

json
{
  "found": true,
  "email": "[email protected]",
  "domain": "anthropic.com",
  "totalCombinationsTested": 12
}
POST/email/validate

Verify if an email address is valid and deliverable.

Cost:
1 credit per request

Body Parameters

emailstringrequired

Email address to validate

Request

cURL
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
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
python
import requests

resp = requests.post(
    "https://www.startuphub.ai/api/v1/email/validate",
    json={"email": "[email protected]"},
    headers={"Authorization": "Bearer sk_live_..."},
)

Response

json
{
  "email": "[email protected]",
  "valid": true,
  "reason": "Verified",
  "details": null
}
POST/startups/submit

Agent-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).

Cost:
5 credits per request

Body Parameters

namestringrequired

Official company name (≤80 chars; no listicle words like "best/top/2026")

websitestringrequired

Company website URL

one_linerstringrequired

One-sentence pitch in third person, 20–200 chars

descriptionstringrequired

Full description in third person, 30–400 words, plain text only

sectorsarrayrequired

1–5 sectors from the controlled vocabulary

founded_datestring

YYYY, YYYY-MM, or YYYY-MM-DD

hq_countrystring

Country

hq_citystring

City

linkedin_urlstring

Company LinkedIn URL

twitter_urlstring

Company Twitter/X URL

github_urlstring

Company GitHub URL

logo_urlstring

Optional logo image URL — server fetches and stores (≤2MB, PNG/JPEG/WebP/SVG/GIF)

stagestring

Pre-seed | Seed | Series A/B/C/D | Series E+ | Growth | Late Stage | Pre-IPO | Public | Acquired | Bootstrapped

business_modelstring

B2B SaaS | B2C SaaS | Marketplace | API/Developer Tools | Hardware | ...

employee_countnumber

total_fundingnumber

USD

latest_funding_roundstring

e.g. "Series B"

latest_funding_datestring

YYYY or YYYY-MM-DD

latest_valuationnumber

USD

stock_exchangestring

NASDAQ | NYSE | ... — for public companies

tickerstring

linkedin_followersnumber

github_starsnumber

former_namesarray

Previous company names

facebook_urlstring

youtube_urlstring

blog_urlstring

substack_urlstring

discord_urlstring

slack_urlstring

community_urlstring

status_urlstring

changelog_urlstring

roadmap_urlstring

api_docs_urlstring

security_page_urlstring

demo_urlstring

demo_video_urlstring

coding_languagesarray

e.g. ["Python", "TypeScript", "Rust"]

frameworks_toolsarray

cloud_providersarray

e.g. ["AWS", "GCP"]

certificationsarray

SOC 2 | SOC 2 Type II | ISO 27001 | HIPAA | GDPR | PCI DSS | FedRAMP | ...

is_raisingboolean

raising_roundstring

raising_targetnumber

USD

raising_use_of_fundsstring

pitch_deck_urlstring

is_hiringboolean

careers_urlstring

contact_emailstring

partnerships_emailstring

press_emailstring

foundersarray

Array of { name, role, linkedin_url, email } — matched to existing people by slug / name / LinkedIn; unmatched stashed in admin review queue

team_membersarray

Same shape as founders

notable_investorsarray

Array of { name, slug, website } — matched to existing investors

competitorsarray

Array of { name, slug, website } — matched to existing startups

mentioned_articlesarray

Array of { slug } or { url } — links to StartupHub.ai posts; bidirectional

productsarray

Array of { name, description, url } — stashed in meta_fields for admin promotion

Errors

400
validation_failed — response includes errors[] with field, message, suggestion
409
duplicate — a profile with this website domain already exists
429
rate_limit — daily/monthly credit cap reached

Request

cURL
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
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
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

json
{
  "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 }
}
POST/investors/submit

Submit a new investor profile (VC, angel, accelerator, etc.) for moderation review. Same flow as Submit a Startup. Deduped by website domain or name+country.

Cost:
5 credits per request

Body Parameters

namestringrequired

Official firm name (≤100 chars)

typestringrequired

VC | Angel | Accelerator | Incubator | Corporate VC | Family Office | Sovereign Wealth Fund | Crowdfunding | PE | Hedge Fund | Syndicate

descriptionstringrequired

Third-person, 20–400 words

websitestring

Firm website

countrystring

citystring

sector_focusarray

Up to 10 sectors invested in

stage_focusarray

Pre-seed | Seed | Series A | Series B | Series C | Series D | Growth | Late Stage

logo_urlstring

Optional logo URL (≤2MB)

Request

cURL
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
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
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

json
{
  "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 }
}
POST/people/submit

Submit 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.

Cost:
5 credits per request

Body Parameters

namestringrequired

Person's full name (≤80 chars)

current_titlestring

e.g. "CEO at OpenAI" — required if no linkedin_url

linkedin_urlstring

Personal LinkedIn (linkedin.com/in/...) — required if no current_title

descriptionstring

Third-person bio, ≤300 words

citystring

countrystring

twitter_urlstring

github_urlstring

avatar_urlstring

Optional avatar image URL (≤2MB)

Request

cURL
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
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
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

json
{
  "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 }
}
POST/agent-readiness

Scans 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.

Cost:
1 credit per request

Body Parameters

urlstringrequired

Full URL of the website to scan (e.g. https://anthropic.com)

Request

cURL
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
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
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

json
{
  "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 }
}
POST/lists/ai-generate

Prompt → curated list of matching startups. Pass a natural-language brief ("stealth AI agent startups in Israel founded after 2024") and the engine runs a Google-grounded search, parses the results, finds or creates the matching startup rows, and returns up to 50 IDs you can hand to /lists/submit to publish. Pair with /v1/lists/submit for a complete prompt-to-public-list workflow. Each call: 5 credits.

Cost:
5 credits per request

Body Parameters

promptstring

Natural-language brief — required unless pasted_list is provided

pasted_liststring

Raw text (YC batch page, a16z portfolio, CSV, article). Names + context extracted automatically.

typestringdefault: startup

Entity type — only "startup" supported today

limitintegerdefault: 20

Max suggestions to return (1-50)

Errors

400
Both prompt and pasted_list missing, or type !== "startup"
429
Daily / monthly cap hit, OR per-user 10-call-per-10-minute burst limit
502
AI returned no usable results (try a more specific prompt)
504
Gemini timeout — retry with simpler prompt

Request

cURL
curl
curl -X POST "https://www.startuphub.ai/api/v1/lists/ai-generate" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "stealth AI agent startups in Israel founded after 2024",
    "limit": 15
  }'
JavaScript
javascript
const res = await fetch("https://www.startuphub.ai/api/v1/lists/ai-generate", {
  method: "POST",
  headers: {
    Authorization: "Bearer sk_live_...",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    prompt: "stealth AI agent startups in Israel founded after 2024",
    limit: 15,
  }),
});

const { data } = await res.json();
console.log(`Found ${data.matched} startups (${data.created} brand new)`);
Python
python
import requests

resp = requests.post(
    "https://www.startuphub.ai/api/v1/lists/ai-generate",
    json={
        "prompt": "stealth AI agent startups in Israel founded after 2024",
        "limit": 15,
    },
    headers={"Authorization": "Bearer sk_live_..."},
)
data = resp.json()["data"]
print(f"Found {data['matched']} startups ({data['created']} brand new)")

Response

json
{
  "data": {
    "found": [
      {
        "id": "uuid",
        "name": "Anoma Labs",
        "slug": "anoma-labs",
        "logoUrl": "https://www.google.com/s2/favicons?domain=anomalabs.com&sz=128"
      }
    ],
    "total_suggestions": 18,
    "matched": 15,
    "created": 3
  },
  "credits": { "used": 5, "limit": 15, "remaining": 10 }
}

// Pipe data.found[].id into POST /lists/submit to publish the
// curated list as a public page on StartupHub.ai.
GET/advertiser/analytics

Live 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.

Cost:
1 credit per request

Query Parameters

ad_idinteger

Filter to a single ad (must be owned by you). Omit for all of your ads.

daysinteger

Lookback window in days (default 30, max 365).

Request

cURL
curl
curl -H "Authorization: Bearer sk_live_..." \
  "https://www.startuphub.ai/api/v1/advertiser/analytics?days=30"
JavaScript
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
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

json
{
  "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
}
POST/monitor

Create a watch on any company by URL and get alerts when it changes — funding, jobs, tech stack, headcount, news, status, pricing, new domains. Pass a webhook_url for near-real-time delivery: the moment a change is detected we POST a structured event to your endpoint. GET /monitor lists your watches (free); DELETE /monitor?id=… cancels one (free). Plan tier governs how many companies you can watch, the cadence, and which signals.

Cost:
5 credits per request

Body Parameters

urlstringrequired

Company website or domain to watch (e.g. acme.com). Works on stealth startups not yet in the directory.

signalsstring[]

funding, jobs, tech, headcount, news, status, pricing, domains. Defaults to everything your plan allows.

frequencystring

Cadence: weekly | daily | 12h | 4h. Clamped to your plan max (faster = higher tier).

webhook_urlstring

HTTPS endpoint. We POST {event, entity_id, title, body, metadata, delivered_at} the moment a change is detected.

delivery_channelsstring[]

email | slack | teams. Defaults to email. webhook_url is independent and always fires when set.

Errors

402
Plan watch limit reached — upgrade to track more companies
409
You are already watching this domain

Request

cURL
curl
curl -X POST "https://www.startuphub.ai/api/v1/monitor" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"cursor.com","signals":["funding","jobs","pricing"],"webhook_url":"https://yourapp.com/hooks/monitor"}'
JavaScript
javascript
const res = await fetch("https://www.startuphub.ai/api/v1/monitor", {
  method: "POST",
  headers: { Authorization: "Bearer sk_live_...", "Content-Type": "application/json" },
  body: JSON.stringify({
    url: "cursor.com",
    signals: ["funding", "jobs", "pricing"],
    webhook_url: "https://yourapp.com/hooks/monitor",
  }),
});
const { data } = await res.json();
Python
python
import requests
resp = requests.post(
    "https://www.startuphub.ai/api/v1/monitor",
    headers={"Authorization": "Bearer sk_live_..."},
    json={
        "url": "cursor.com",
        "signals": ["funding", "jobs", "pricing"],
        "webhook_url": "https://yourapp.com/hooks/monitor",
    },
)
print(resp.json()["data"])

Response

json
{
  "data": {
    "id": "a1b2c3d4-...",
    "domain": "cursor.com",
    "entity_name": "Cursor",
    "frequency": "daily",
    "signals": ["funding", "jobs", "pricing"],
    "delivery_channels": ["email"],
    "webhook_url": "https://yourapp.com/hooks/monitor",
    "next_poll_at": "2026-05-25T20:30:00Z"
  },
  "credits": { "cost": 5, "remaining_period": 49995, "remaining_balance": 0 }
}

// Webhook payload — POSTed to webhook_url the moment a change is detected:
{
  "event": "funding",
  "entity_id": "...",
  "title": "Cursor raised a Series C",
  "body": "Led by ... · $...",
  "metadata": { "signal": "funding" },
  "delivered_at": "2026-05-25T21:14:00Z"
}
GET/intel/preview

Free teaser for the deep intelligence lookup. Resolves any identifier (name, company, domain, LinkedIn, or email) to a person or company and returns the identity plus a manifest of which intelligence sections are available (regulatory filings, ownership and control, fund assets under management, compensation benchmarks, affiliated entities, verified contacts) without revealing the underlying values. Unlock the full dossier via /intel/lookup. Rate-limited per IP to 10/day for unauthenticated callers.

Cost:
1 credit per request

Query Parameters

qstringrequired

Any identifier: a name, company, domain, LinkedIn URL, or email

Errors

400
Missing q parameter
429
Daily rate limit exceeded

Request

cURL
curl
curl "https://www.startuphub.ai/api/v1/intel/preview?q=anthropic.com"
JavaScript
javascript
const res = await fetch("https://www.startuphub.ai/api/v1/intel/preview?q=anthropic.com");
const dossier = await res.json();
Python
python
import requests
resp = requests.get("https://www.startuphub.ai/api/v1/intel/preview", params={"q": "anthropic.com"})

Response

json
{
  "resolved": { "matched": true, "company": { "name": "Anthropic" } },
  "sections": [
    { "key": "filings", "tier": "locked", "status": "ok", "preview": "1,537 regulatory filings on record" },
    { "key": "compensation", "tier": "locked", "status": "ok", "preview": "Median compensation ~$188k" }
  ],
  "unlock": { "cost_credits": 10, "endpoint": "/api/v1/intel/lookup" }
}
GET/intel/lookup

Full intelligence dossier on any person or company, every section unredacted: regulatory and corporate filings, financial ownership and control structure, fund assets under management and control persons, compensation benchmarks (median and percentile ranges by role), affiliated entities, and verified contacts. People are automatically linked to the companies and funds they are connected to, and those are profiled too. Compiled from authoritative public records.

Cost:
10 credits per request

Query Parameters

qstringrequired

Any identifier: a name, company, domain, LinkedIn URL, or email

Errors

400
Missing q parameter
401
Invalid or missing API key
429
Insufficient credits

Request

cURL
curl
curl "https://www.startuphub.ai/api/v1/intel/lookup?q=Sequoia%20Capital%20Operations" \
  -H "Authorization: Bearer sk_live_..."
JavaScript
javascript
const res = await fetch(
  "https://www.startuphub.ai/api/v1/intel/lookup?q=Sequoia%20Capital%20Operations",
  { headers: { Authorization: "Bearer sk_live_..." } }
);
const dossier = await res.json();
Python
python
import requests
resp = requests.get(
    "https://www.startuphub.ai/api/v1/intel/lookup",
    params={"q": "Sequoia Capital Operations"},
    headers={"Authorization": "Bearer sk_live_..."},
)

Response

json
{
  "resolved": { "matched": true, "company": { "name": "Sequoia Capital Operations" } },
  "sections": [
    { "key": "fund_adv", "status": "ok", "data": { "private_fund_assets": "...", "control_related": "Y" } },
    { "key": "compensation", "status": "ok", "data": { "median_annual_wage": 188000 } }
  ]
}

Rate Limits

Daily credit limits reset at midnight UTC. Your current usage is visible in real-time at My Account → API.

EndpointCreditsFreePro MiniPro LiteProPro+
Email Validate150/day200/day500/day2,000/day10,000/day
Email Discover35/day20/day50/day200/day1,000/day
Search / DB150/day200/day500/day2,000/day10,000/day
Profile125/day100/day250/day1,000/day5,000/day
Logo110/day40/day100/day500/day2,500/day
Enrich5--5/day25/day100/day500/day

Hit your daily limit? Top up credits one-off or upgrade your plan for a higher daily ceiling.

Pay with x402 (no account)

Autonomous agents (Claude Code, Codex, and others) can pay per request with USDC on the Base network via the x402 protocol — no signup, no API key. Supported endpoints return HTTP 402 with payment instructions; your client pays and retries. This is the x402 mesh: keyless, pay-per-call access.

Step 1 — get a Base USDC wallet (one time)

Generate a key, fund it with a few dollars of USDC on Base (covers thousands of calls):

npm i viem x402-fetch

import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
const pk = generatePrivateKey();            // store securely
const account = privateKeyToAccount(pk);
console.log("Fund with USDC on Base:", account.address);

Or use Coinbase Wallet / MetaMask on the Base network. Buy or bridge USDC via bridge.base.org. Base USDC: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Step 2 — call any priced endpoint

x402-fetch handles the 402 → pay → retry handshake automatically:

import { wrapFetchWithPayment } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.WALLET_PRIVATE_KEY);
const fetchWithPay = wrapFetchWithPayment(fetch, account);

// No API key needed — payment is automatic on the 402.
const res = await fetchWithPay(
  "https://www.startuphub.ai/api/v1/intel/lookup?q=Sequoia%20Capital%20Operations"
);
const dossier = await res.json();

The 402 response

{
  "version": "2",
  "accepts": [{
    "scheme": "exact",
    "network": "base",
    "asset": "USDC",
    "amount": "10000",        // micro-units; 10000 = $0.01
    "payTo": "0x...",         // StartupHub.ai receiving wallet
    "resource": "<the URL you called>",
    "maxTimeoutSeconds": 60
  }]
}

USDC has 6 decimals (1 USDC = 1,000,000 micro-units). Sign an EIP-3009 transferWithAuthorization and retry with header X-Payment. Payments settle in USDC on Base only. Bearer-key callers are unaffected; x402 is the keyless fallback. A 401 instead of 402 means x402 is not enabled for that endpoint yet.

Errors

The API uses standard HTTP status codes. All error responses include an error field with a human-readable message.

400

Bad Request

Missing or invalid parameters

401

Unauthorized

Invalid or missing API key

403

Forbidden

Feature requires a higher plan tier

404

Not Found

Resource does not exist

429

Rate Limited

Daily credit limit exceeded

500

Server Error

Internal error (retry after a moment)

Error response format

json
{
  "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

https://www.startuphub.ai/api/mcp

claude_desktop_config.json / .cursor/mcp.json

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.

Ready to get started?

Create a free API key and start building in minutes. No credit card required.