VC intelligence infrastructure
for autonomous agents.
950+ active VC funds. Live investor signals.
Self-register and get 25 free credits instantly. From €0.01 per call after that, and credits never expire.
This page is for software that runs without a person: registering, paying and calling on its own. Setting Fund Momentum up inside Claude, ChatGPT or Cursor for yourself? Go to /mcp →
01 — How it works
Three steps. No humans required.
An agent gets its own access key in one request, uses 25 free credits to try the data, and when those run out it can pay for more by itself with a digital dollar (USDC), with no card, account or person involved. Each lookup costs a cent or a few cents.
Register
Ask for a key and get one instantly, with 25 free credits and no approval or payment. You can also skip registering: four tools answer 10 calls a day with no key at all.
Pay when the free credits run out
The agent is told the price, pays it in USDC and repeats its request, then gets the data with a receipt. A timed-out request can be repeated safely: it never costs twice. Credits never expire.
No wallet yet? Wallet setup guide →
Call the MCP
Search funds, read profiles, check what changed. Credits are deducted automatically and every response says how many are left.
POST {"agent_name":"..."} (3–64 characters) to /_api/agent/register. Optional fields: email (makes a lost key recoverable; grants no extra access), operator_url and contact. The key is returned once; only a hash is stored, so a lost key cannot be re-read.
Limits: 3 new keys per IP and 10 per /24 network per UTC day. Past that you get a 429 that names the keyless route and inline payment as alternatives. The 25 free credits are granted once per email if you send one, and the site caps free grants per UTC day; past the cap registration still succeeds with a zero balance.
Without registering: search_funds, get_fund, get_changes (7-day window) and check_lp_coverage answer 10 calls per caller per UTC day, and the paid tools accept inline payment with no key.
A paid call without enough credit is not charged. It is answered with a payment challenge: HTTP 402 with a WWW-Authenticate: Payment header for plain HTTP clients, or JSON-RPC error -32042 inside a normal 200 response for MCP clients. The agent pays it over MPP with USDC on Tempo mainnet (chain 4217), repeats the call with the credential, and receives the data plus a Payment-Receipt carrying the on-chain reference. The chain id and token address in the challenge are authoritative.
Prices are set in EUR and settled in USDC at the ECB daily reference rate plus a 1.5% buffer. A challenge expires after five minutes. Spending is capped at €1,000 per payer per UTC day, checked before a challenge is issued. MPP payments cannot be reversed, which is why existence checks (a wrong slug) run before any challenge.
To buy a balance up front instead, POST {"amount_eur":80} to /_api/agent/credits/topup (€10, €80 or €500, i.e. 1,000, 10,000 or 100,000 credits) and pay the challenge the same way. The first completed payment on a key doubles its limits.
Need a funded wallet first? Wallet setup guide →
02 — What it costs
Pay per lookup. Credits never expire.
One credit is worth €0.01. Looking up a fund, or checking what changed, costs one credit. Investor signals and partner profiles cost €0.10, and matching a startup to funds costs €0.25. There is no subscription and nothing resets. To add credit in advance, an agent buys a pack in USDC; the bigger the pack, the cheaper each credit (up to 50% off).
| Tool | Price | What it does |
|---|---|---|
get_fund, get_changes | €0.01 per call | One fund’s profile; what changed since a date. |
search_funds | €0.01 per fund returned | Find funds by stage, country, industry or recent close. Up to 150 funds per key per UTC day. |
get_fund_signals, get_gp_profile | €0.10 per call | Investor signals; General Partner profiles. |
match_startup | €0.25 per call | Describe a startup, get the 10 best-matching funds. |
check_lp_coverage | Free | Counts of matching LPs. Never billed. |
search_lps | LP Radar subscription | LP records. Never sold per call or on credits. |
Add credit with USDC (agents)
An agent can top up its own balance with no human involved. Bigger packs cost less per credit.
| Top-up | Credits | Per credit | Discount |
|---|---|---|---|
| €10 | 1,000 | €0.010 | — |
| €80 | 10,000 | €0.008 | 20% off |
| €500 | 100,000 | €0.005 | 50% off |
Or buy the €10 pack by card (people)
Card checkout is for a person buying credits for their agent. It currently sells the €10 pack only; the larger, cheaper packs are bought in USDC above.
Credits never expire. No subscription. No monthly resets.
Packs and single calls. USDC top-ups (amount_eur 10, 80 or 500 at POST /_api/agent/credits/topup) grant 1,000, 10,000 or 100,000 credits. Paying a single call without a pack is €0.01 per credit. A card purchase is credited to the agent key linked to the buyer’s email (link one with POST /_api/agent/link); if no single key is linked yet, the credits wait on the account and move across when you link.
search_funds is billed per fund returned (minimum one credit), up to 150 funds per key per UTC day. A call that would exceed the remainder is refused before any charge. Every response reports matched and truncated. Callers who have not paid get at most 10 results per call and no offset; an over-cap limit is rejected rather than clamped.
Spend cap: €1,000 per payer per UTC day over MPP (card purchases are not counted against it). Balance: GET /_api/agent/me is free and never billed. The first completed payment, by USDC or card, doubles a key’s limits and lifts the result cap on search_funds.
Per-call prices are also in each tool’s description and in the generated reference at /_api/mcp-tools →
03 — Safe retries
Retries are safe. A call never costs twice.
If a paid request times out and your software sends it again, you are shown the same price instead of a new one, so you cannot be asked to pay twice. If you already paid and lost the answer, asking again returns it free. A mistyped fund name is refused before any payment is requested.
Your paid call timed out. You retry it.
You get back the same payment challenge, not a new one, for about ten minutes (a challenge itself expires after five). One call, one challenge, one payment — a retry cannot cost two payments. This matters because the retry usually happens in whatever framework is driving your agent, several layers below the code that knows a payment was involved.
And once a call has actually been paid for, retrying it returns the stored result, free, for an hour. An agent that paid and then lost the response does not pay a second time to get it back.
What counts as “the same call”
The payer, the tool, and the arguments. Argument order is irrelevant — {"slug":"x","stage":"seed"} and {"stage":"seed","slug":"x"} are one call, not two.
To draw that boundary yourself, set vc.fundmomentum/idempotency-key in the request’s params._meta. It is optional, and most agents never need it: with no key the boundary is derived for you.
"params": {
"name": "get_fund_signals",
"arguments": { "slug": "137-ventures" },
"_meta": { "vc.fundmomentum/idempotency-key": "your-own-key" }
}Error codes, and whether you were charged
| Code | Meaning | Were you charged? |
|---|---|---|
-32042 | Payment required. A challenge is attached in error.data.challenges. | No. Nothing has been charged. Pay the challenge and retry. |
-32043 | The credential you presented was rejected and no data was returned. | Money may have moved. If an on-chain transfer settled against the challenge, keep the transaction hash and send it to us — that hash is the proof of payment and it is what lets us credit you by hand. |
-32000not_found | The thing you asked for does not exist — an unknown slug, a name that matches several funds (they are listed, none is picked for you), or a fund with no published signals. Carries checked_before_payment: true. | Never charged. Fix the argument and call again. |
-32602invalid_args | An unknown, missing or malformed parameter, refused before any challenge. | Never charged. The message names what was expected. |
A wrong slug is refused before any payment. Existence is checked first, so you are never billed for a fund we do not carry. An MPP payment cannot be reversed, which is exactly why that check runs before the challenge is issued rather than after.
Near-miss names are resolved only when there is no doubt. A different case or spacing, or a name that is a hyphen-boundary prefix of exactly one real slug (speedinvest-africa → speedinvest-africa-fund), is served, and the result carries resolved_from so you learn the real slug. A name that matches several funds is listed, never guessed. This also runs before the challenge, so a wrong name is never charged.
04 — Connect your agent
Works with any MCP client.
Point any MCP-capable framework at one address and send your key in a header. Below are copy-paste examples for registering, the response you get back, and a typical config.
Register your agent
curl -X POST https://fundmomentum.vc/_api/agent/register \
-H "Content-Type: application/json" \
-d '{"agent_name": "my-workflow"}'Response (abridged)
{
"api_key": "fm_agent_...",
"agent_id": "agt_...",
"agent_credits": 25,
"free_credits_granted": 25,
"status": "registered",
"tools_paid_per_call": {
"get_fund_signals": "€0.10",
"get_gp_profile": "€0.10",
"match_startup": "€0.25"
},
"payment": {
"protocol": "mpp",
"methods": ["tempo_usdc"],
"topup_endpoint": "/_api/agent/credits/topup"
},
"mcp_endpoint": "https://fundmomentum.vc/_api/mcp"
}Every MCP response includes
{
"result": {
"content": [{ "type": "text", "text": "..." }],
"_meta": {
"credits_remaining": 9847,
"cost_per_call": "€0.01",
"billing": "per_call"
}
}
}MCP client config (any framework)
{
"mcpServers": {
"fund-momentum": {
"url": "https://fundmomentum.vc/_api/mcp",
"headers": { "X-API-Key": "YOUR_API_KEY" }
}
}
}ENDPOINT POST https://fundmomentum.vc/_api/mcp JSON-RPC 2.0 over HTTP
AUTH X-API-Key: <key> · Authorization: Bearer <key> · ?api_key=<key>
KEYLESS send no credential at all: search_funds, get_fund, check_lp_coverage,
get_changes (7-day window), 10 calls per caller per UTC day
DISCOVERY /_api/well-known/mcp/server-card tools, prices, limits, payment
/openapi.json OpenAPI 3.1 + MPP x-payment-info
/llms.txt LLM context and citation rules
/_api/mcp-tools generated tools reference (Markdown)
AGENT API POST /_api/agent/register {"agent_name":"..."} → key + 25 credits
GET /_api/agent/me balance and limits — free, never billed
POST /_api/agent/credits/topup {"amount_eur":80} → 402 → pay (10 | 80 | 500)
POST /_api/agent/link optional email; grants no access
PAYMENT MPP over Tempo mainnet · chain 4217 · USDC
402 → WWW-Authenticate: Payment ... → pay → retry → Payment-Receipt
€0.01 free tools · €0.10 signals and GP profiles · €0.25 matching
top-up packs €10 → 1,000 · €80 → 10,000 · €500 → 100,000 credits
€1,000 per payer per UTC day, checked before a challenge is issued
SYNC get_changes with the previous etag as if_none_match; advance to
next_since. Do not re-run search_funds on a schedule.
change_type: created · signal_updated · close_updated
CLOSES search_funds {"closed_since":"2026-09-01"} newest close first
get_fund → last_close {type, date, date_basis:"reported", amount_m, currency, source_url}
last_close is null when we have not covered a close, not when none happened
PUSH POST /_api/webhooks/subscribe {"url":"https://..."} Pro/Enterprise only
signed close_updated events · FM-Signature: t=…,v1=HMAC-SHA256
(agent credit keys poll get_changes instead)05 — Register
Register your agent now.
Get your API key and 25 free credits instantly. No approval, no payment, no human.
That is the whole form — no approval, no payment, no email needed. 25 free credits are included and work on all six fund tools immediately. Credits never expire. An email can be linked later at /_api/agent/link for invoices and key recovery; it grants no extra access. LP data: check_lp_coverage is free and costs no credit; LP records (search_lps) are never sold on credits and need an LP Radar subscription (€199/month or €1,499/year, bought by a person with card checkout).
06 — FAQ