API Documentation

Public REST API for InvestorMatch.Pro. Upload a pitch deck for AI analysis, retrieve job status, and fetch ranked investor matches. All endpoints are authenticated with a Bearer API key (im_live_… for production, im_test_… for test mode). The paid deck/campaign endpoints are credit-metered and rate-limited; the blog endpoint is a separate, admin-only, free, unmetered publishing channel.

Base URL: https://investormatch.pro/api/v1. A machine-readable OpenAPI 3 description is served at /openapi.json.

Quick start

  1. Get your API key — generate a test or live key from your account settings.
  2. Submit a pitch deck — upload a PDF or provide a URL to analyze.
  3. Get investor matches — retrieve AI-powered investor recommendations with fit scores.

Authentication

Every request carries a Bearer API key in the Authorization header. Keys prefixed im_live_ run against production and consume credits; keys prefixed im_test_ run in test mode so you can develop safely before going live.

Rate limits

  • Free tier: 5 API calls per month.
  • Paid tier: 60 requests per minute and 1,000 requests per day.

Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Endpoints

Analysis

Paid deck-analysis endpoints. Usable by any valid API key. Credit-metered and rate-limited (60 req/min, 1,000 req/day on paid tier).

  • POST /api/v1/analyze — Submit a pitch deck for analysis
  • GET /api/v1/jobs/{id} — Get job status
  • GET /api/v1/jobs/{id}/matches — Get ranked investor matches

Blog

Admin-only blog publishing. Requires an API key owned by an admin; any other valid key receives 403. Free, unmetered, and not rate-limited. The only programmatic blog action is creating a draft — listing, editing, and publishing happen in the admin dashboard, not via the API.

  • POST /api/v1/blog/posts — Create a blog post draft (admin-only)

Credits

Check your credit balance and free-quota usage, list purchasable bundles, and start a Stripe checkout to top up. Authenticated and rate-limited; these calls do not themselves consume analysis credits.

  • GET /api/v1/credits — Get credit balance and usage
  • GET /api/v1/credits/bundles — List purchasable credit bundles
  • POST /api/v1/credits/purchase — Start a credit purchase (Stripe Checkout)
  • POST /api/v1/credits/webhook — Stripe payment webhook (internal)

API Keys

Programmatically create, list, and revoke your own API keys. Authenticated with an existing key and rate-limited; these calls do not consume analysis credits.

  • POST /api/v1/keys — Create a new API key
  • GET /api/v1/keys — List your API keys
  • DELETE /api/v1/keys/{id} — Revoke an API key

Auto-Refill

Read and update your automatic credit top-up settings (threshold, amount, monthly cap, and saved payment method). Authenticated and rate-limited.

  • GET /api/v1/auto-refill — Get auto-refill settings
  • PUT /api/v1/auto-refill — Update auto-refill settings

Investors

Read-only access to the verified investor database — search firms and fetch a firm's partners and portfolio. Authenticated and rate-limited; does not consume analysis credits.

  • GET /api/v1/investors — Search the verified investor database
  • GET /api/v1/investors/{id} — Get a single investor firm
  • GET /api/v1/investors/{id}/partners — Get a firm's partners
  • GET /api/v1/investors/{id}/portfolio — Get a firm's portfolio

MCP server (AI assistants)

InvestorMatch runs a remote MCP (Model Context Protocol) server, so AI assistants such as Claude and ChatGPT can search the investor directory and read your campaigns, matches, outreach drafts and teardowns. Every tool is read-only: nothing spends credits, nothing sends email, and nothing changes your account.

Endpoints

  • POST https://investormatch.pro/mcp — signed in (OAuth or API key); all 11 tools.
  • POST https://investormatch.pro/mcp/public — anonymous, no sign-in; the 4 public directory tools only.

Authentication

AI assistants: add https://investormatch.pro/mcp as a custom connector and sign in with your InvestorMatch account when prompted (OAuth). Manage or revoke connected assistants from your account settings.

Developers: send an API key as Authorization: Bearer im_live_…. A request to /mcp without a valid token gets 401 with a WWW-Authenticate header pointing at the OAuth metadata.

Public tools (both endpoints)

  • search_investors — Search the public VC directory by firm name, stage, sector and HQ location.
  • get_investor — Get a firm's full public profile: thesis, check size, partners, portfolio and funds.
  • list_investor_filters — List the stage, sector and location values search_investors accepts.
  • search_fundraising_guides — Search InvestorMatch's published fundraising guides and articles.

Founder tools (signed in, /mcp only)

  • list_my_campaigns — List your fundraising campaigns with status, unlock state and match count.
  • get_campaign — Get one campaign: status and the company profile extracted from your deck.
  • list_matches — List a campaign's matched investors, best fit first, with fit score and reasons.
  • get_match — Get the full detail of one match: why the firm fits and the partner to pitch.
  • get_outreach_drafts — Get the pre-drafted cold emails and LinkedIn messages for a campaign's matches.
  • list_my_teardowns — List your pitch-deck teardowns with status and readiness score.
  • get_teardown — Get a teardown report: readiness score, critical issues and action plan.

MCP rate limits

  • Anonymous: 30 requests per minute and 500 per day, per IP.
  • Signed in: 120 requests per minute.

Examples

Add it to Claude Code:

claude mcp add --transport http investormatch https://investormatch.pro/mcp

Initialize a session against the public endpoint:

curl -X POST https://investormatch.pro/mcp/public \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'

Manage your API keys | How Investor Match works | Pricing