# FundedIQ API and MCP server FundedIQ is a database of recently funded startups: the company, its funding rounds, its investors, and its founders' contact details. 60,745 funded companies and 83,046 funding rounds covering rounds from 2020-02-02 to 2026-08-21, refreshed weekly. ## Getting a key An API key needs a Pro subscription. Create one at https://fundediq.co/account/#api. The key is shown once and starts with `fiq_sk_`. Send it as `Authorization: Bearer ` on every request; it is never accepted in a query string. ## Credits Pro includes 2,000 credits a month. They do not roll over. - `GET /account` and `GET /filters`: free. - `GET|POST /companies` (search): 1 credit per call, regardless of how many rows come back. A search that matches nothing is free. Ask for a large `pageSize` (up to 100) rather than paging one row at a time. - `POST /companies/unlock`: 1 credit per company, and 0 for a company already unlocked in the current billing period, including one unlocked in the FundedIQ web app. ## Recommended workflow 1. `GET /filters` (free) for the exact filter spellings. 2. `GET /companies` with those filters to find candidates. 3. Read `investorCount` and `contactCount` on each result to decide which records are worth unlocking. 4. `POST /companies/unlock` with up to 100 domains at once. ## Conventions - Base URL: `https://fundediq.co/api/v1` - All amounts are whole US dollars. All dates are ISO `YYYY-MM-DD`. - `domain` is the company's bare hostname and is the stable identifier across every endpoint. - List filters are expressed by REPEATING the parameter (`?industries=A&industries=B`). Values are never comma-split, because many industry and country values contain commas. - Errors are `{ "error": { "code": "...", "message": "..." } }`. Branch on `code`, show `message`. - Rate limit: 60 requests per minute per key. A 429 carries `Retry-After`. - Every response carries `X-Credits-Charged`, `X-Credits-Balance`, `X-RateLimit-Limit` and `X-RateLimit-Remaining`. ## Endpoints ### GET /account Plan, subscription status, remaining credits, when the credit period resets, and what each call costs. Call it before a large batch instead of discovering the balance by running out. Cost: Free ```bash curl https://fundediq.co/api/v1/account \ -H "Authorization: Bearer $FUNDEDIQ_API_KEY" ``` Response: ```json { "data": { "email": "you@example.com", "plan": "pro", "status": "active", "onTrial": false, "credits": { "total": 2000, "used": 61, "remaining": 1939 }, "periodEnd": "2026-09-17T00:00:00+00:00", "trialEnd": null, "endsAt": null, "rates": { "search": 1, "unlockPerCompany": 1, "filters": 0, "account": 0 } } } ``` ### GET /filters Every value the industry, country, city, round-type and employee-band filters accept, with the number of companies behind each. Filters match exact strings, so read them here rather than guessing: a guessed spelling returns an empty result that looks exactly like a real one. Cost: Free ```bash curl https://fundediq.co/api/v1/filters \ -H "Authorization: Bearer $FUNDEDIQ_API_KEY" ``` Response: ```json { "data": { "industries": [ { "value": "Artificial Intelligence, Machine Learning", "companyCount": 4812 }, { "value": "SaaS", "companyCount": 3990 } ], "countries": [ { "value": "United States", "companyCount": 31204 } ], "cities": [ { "value": "San Francisco", "companyCount": 4771 } ], "rounds": [ { "value": "Seed", "companyCount": 18033 } ], "sizes": [ { "value": "11-50", "companyCount": 21447 } ] } } ``` ### GET /companies Filter the database and get company profiles back, with the latest round and counts of how many investors and founder contacts each company has. Those counts are what let an agent decide what is worth unlocking before it spends anything. Cost: 1 credit per call, whatever the page size. A search that matches nothing is free. Parameters: - `q` (string): Keyword search over company name and description. - `industries` (string[]): Exact industry values. Repeat the parameter for several. Values may themselves contain commas, so they are never comma-split. - `countries` (string[]): Exact country values. - `cities` (string[]): Exact city values. - `rounds` (string[]): Latest round type. - `sizes` (string[]): Employee band. - `dateFrom` (date): Earliest latest-round date (YYYY-MM-DD). - `dateTo` (date): Latest latest-round date (YYYY-MM-DD). - `amountMin` (integer): Minimum total raised, in whole US dollars. - `amountMax` (integer): Maximum total raised, in whole US dollars. - `foundedFrom` (integer): Founded in this year or later. - `hasContacts` (boolean): Only companies with at least one founder contact on file. - `hasInvestors` (boolean): Only companies with at least one named investor on file. - `sort` (enum): recent (default), oldest, amount_desc, total_desc, company_asc. - `page` (integer): 1-based page number. - `pageSize` (integer): Rows per page, up to 100. Default 50. A call costs the same at 1 row as at 100, so ask for more rows rather than more pages. - `includeFacets` (boolean): Also return value counts per filter dimension. ```bash curl -G https://fundediq.co/api/v1/companies \ -H "Authorization: Bearer $FUNDEDIQ_API_KEY" \ --data-urlencode "countries=United States" \ --data-urlencode "dateFrom=2026-08-01" \ --data-urlencode "hasContacts=true" \ --data-urlencode "pageSize=100" ``` Response: ```json { "data": [ { "domain": "northwind.io", "company": "Northwind", "description": "Freight routing for mid-market shippers.", "industry": "Logistics", "country": "United States", "state": "California", "city": "San Francisco", "employeeRange": "11-50", "foundedYear": 2021, "totalRaisedUsd": 18500000, "roundCount": 2, "latestRound": { "date": "2026-08-17", "type": "Series A", "amountUsd": 14000000 }, "investorCount": 3, "contactCount": 2, "url": "https://fundediq.co/northwind-northwind-io-funding/", "locked": [ "investors", "contacts", "rounds", "linkedin", "monthlyVisits", "jobOpenings", "itSpendUsd" ] } ], "meta": { "total": 1284, "page": 1, "pageSize": 100, "returned": 100, "hasMore": true, "credits": { "charged": 1, "balance": 1938 } } } ``` ### POST /companies/unlock Investor names, every funding round with its announcement URL, founders and executives with emails and LinkedIn, company LinkedIn, monthly traffic, open roles and IT spend, for up to 100 companies in one call. A company already unlocked in the current billing period is free, including one unlocked in the web app. Cost: 1 credit per company. 0 for a company already unlocked this period. Parameters: - `domains` (string[]): Up to 100 company domains, as returned in the `domain` field of a search result. A full URL is accepted and normalised to its host. ```bash curl -X POST https://fundediq.co/api/v1/companies/unlock \ -H "Authorization: Bearer $FUNDEDIQ_API_KEY" \ -H "Content-Type: application/json" \ -d '{"domains": ["northwind.io"]}' ``` Response: ```json { "data": [ { "domain": "northwind.io", "company": "Northwind", "description": "Freight routing for mid-market shippers.", "industry": "Logistics", "country": "United States", "state": "California", "city": "San Francisco", "employeeRange": "11-50", "foundedYear": 2021, "totalRaisedUsd": 18500000, "roundCount": 2, "latestRound": { "date": "2026-08-17", "type": "Series A", "amountUsd": 14000000 }, "investorCount": 3, "contactCount": 2, "url": "https://fundediq.co/northwind-northwind-io-funding/", "investors": [ "Union Square Ventures", "Bessemer", "Craft" ], "rounds": [ { "date": "2026-08-17", "type": "Series A", "amountUsd": 14000000, "announcementUrl": "https://www.crunchbase.com/funding_round/example" }, { "date": "2024-03-05", "type": "Seed", "amountUsd": 4500000, "announcementUrl": null } ], "contacts": [ { "name": "Dana", "title": "Co-founder & CEO", "email": "dana@northwind.io", "emailConfidence": "verified", "linkedin": "https://www.linkedin.com/in/example" } ], "linkedin": "https://www.linkedin.com/company/example", "monthlyVisits": 41200, "monthlyVisitsGrowthPct": 12.4, "jobOpenings": 6, "itSpendUsd": null } ], "meta": { "requested": 1, "unlocked": 1, "notFound": [], "credits": { "charged": 1, "alreadyHeld": 0, "balance": 1937 } } } ``` ## Errors - `missing_api_key` (401): No `Authorization: Bearer` header (and no `X-API-Key`). Send the key as a header. It is never read from the query string, which would put a credential in CDN logs and referrers. - `invalid_api_key` (401): The key does not exist, or has been revoked. Create a new one in your account. Revoked and unknown keys are deliberately indistinguishable. - `pro_required` (403): The key belongs to an Alerts account. The API and MCP server are Pro features. - `no_subscription` (403): The subscription behind this key has lapsed. Restart it from the account screen; the same key resumes working. - `insufficient_credits` (402): The call costs more credits than the balance. Nothing was charged. The body carries `needed` and `balance`. Credits reset monthly; `GET /account` says when. - `not_found` (404): None of the domains sent to `/companies/unlock` are in the dataset. Nothing was charged. Use the `domain` value from a search result rather than one you constructed. - `too_many_domains` (400): More than 100 domains in one unlock call. Split the batch. Nothing was charged. - `rate_limited` (429): More than 60 requests in a minute on one key. Wait the number of seconds in the `Retry-After` header. The limit is per key, so a second key does not raise it. ## MCP server `https://fundediq.co/api/mcp`. Streamable HTTP, stateless, no OAuth. Authenticate with the same `Authorization: Bearer fiq_sk_…` header. It exposes four tools that are the endpoints above, metered identically: `search_funded_startups`, `unlock_companies`, `list_filter_values`, `get_account`. ### Claude Code Run this in your terminal, in any project. ```bash claude mcp add --transport http fundediq https://fundediq.co/api/mcp \ --header "Authorization: Bearer fiq_sk_YOUR_KEY" ``` ### Claude Desktop claude_desktop_config.json (Settings → Developer → Edit Config). ```json { "mcpServers": { "fundediq": { "command": "npx", "args": [ "-y", "mcp-remote", "https://fundediq.co/api/mcp", "--header", "Authorization: Bearer fiq_sk_YOUR_KEY" ] } } } ``` ### Cursor ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one. ```json { "mcpServers": { "fundediq": { "url": "https://fundediq.co/api/mcp", "headers": { "Authorization": "Bearer fiq_sk_YOUR_KEY" } } } } ``` ### VS Code (Copilot) .vscode/mcp.json in your workspace. ```json { "servers": { "fundediq": { "type": "http", "url": "https://fundediq.co/api/mcp", "headers": { "Authorization": "Bearer fiq_sk_YOUR_KEY" } } } } ``` ### Any other MCP client Streamable HTTP, stateless, static bearer token. No OAuth flow to complete. ```json { "name": "fundediq", "transport": "http", "url": "https://fundediq.co/api/mcp", "headers": { "Authorization": "Bearer fiq_sk_YOUR_KEY" } } ```