API Reference · v1

Read-only REST API. Four endpoints, key-required.

Browse our public funding-rounds and company database programmatically. Pages are public; API requests require a per-user bearer token.

Quickstart

  1. Visit /keys/, enter your email, and open the magic link.
  2. Copy the raw secret from the link destination — it is shown exactly once.
  3. Send Authorization: Bearer <prefix>.<secret> with every request.
curl https://data.aimalcolm.com/api/v1/funding-rounds/ \
  -H "Authorization: Bearer mlm_xxxxxxxx.yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"

Authentication

Every request to /api/v1/ must carry an Authorization: Bearer <key> header. Anonymous traffic is rate-limited to 0 requests per hour and will respond with HTTP 401 / 429.

Keys take the format mlm_<prefix>.<secret>. The prefix is stored in plaintext (so it is greppable in your own logs without revealing the secret); only the SHA-256 of the secret is persisted on our side.

Lost a key? Request another email link from /keys/. Each user can have up to 3 active keys.

Rate limits

The Free tier ships at 200 requests/hour per key, tracked on a sliding window. Every response carries:

  • X-RateLimit-Limit — your hourly cap.
  • X-RateLimit-Remaining — calls left in the current window.
  • X-RateLimit-Reset — Unix timestamp when the bucket frees up.

Over-quota requests respond with HTTP 429 and a Retry-After header. Back off; do not loop hammer.

Pagination

List responses are paginated: default 50 results per page, up to 200. Pass ?page=N and ?page_size=K.

The response envelope is { count, next, previous, results } — follow the next URL until null.

GET

/api/v1/funding-rounds/

List funding rounds (pre-seed through Series A) ordered by announced date, newest first.

Query parameters

stage
One of pre_seed, seed, series_a.
country
Exact match on the company's normalized country (e.g. United States).
major_sector
Exact match on the sector enum (TECHNOLOGY, HEALTHCARE, …).
industry
Case-insensitive substring match (e.g. fintech).
announced_after / announced_before
ISO date (YYYY-MM-DD), inclusive.
min_amount_usd / max_amount_usd
Whole-dollar amounts; rows with null amounts pass through min but are excluded by max.
curl 'https://data.aimalcolm.com/api/v1/funding-rounds/?stage=seed&country=France' \
  -H "Authorization: Bearer mlm_xxxxxxxx.yyyy"
{
  "count": 4,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 326,
      "company_domain": "acme.ai",
      "company": {
        "domain": "acme.ai",
        "name": "Acme AI",
        "country": "United States",
        "major_sector": "TECHNOLOGY",
        "industry": "AI/ML",
        "logo_url": "https://logo.clearbit.com/acme.ai"
      },
      "stage": "seed",
      "amount_usd": 12000000,
      "announced_date": "2026-03-15",
      "lead_investor": "Sequoia Capital",
      "investors": [
        "Sequoia Capital",
        "Benchmark"
      ],
      "blurb": "Acme AI builds observability tools for production ML systems.",
      "evidence_url": "https://techcrunch.com/2026/03/15/acme-ai-seed/",
      "provenance": [
        "news"
      ]
    },
    {
      "id": 326,
      "company_domain": "lumen-energy.fr",
      "company": {
        "domain": "lumen-energy.fr",
        "name": "Lumen Energy",
        "country": "France",
        "major_sector": "ENERGY",
        "industry": "Cleantech",
        "logo_url": "https://logo.clearbit.com/lumen-energy.fr"
      },
      "stage": "series_a",
      "amount_usd": 8640000,
      "announced_date": "2026-04-02",
      "lead_investor": "Partech",
      "investors": [
        "Partech",
        "Bpifrance"
      ],
      "blurb": "Lumen Energy operates a grid-optimization platform for European utilities.",
      "evidence_url": "https://tech.eu/2026/04/02/lumen-energy-series-a/",
      "provenance": [
        "news"
      ]
    }
  ]
}
GET

/api/v1/funding-rounds/<id>/

Retrieve a single funding round by integer id.

curl https://data.aimalcolm.com/api/v1/funding-rounds/326/ \
  -H "Authorization: Bearer mlm_xxxxxxxx.yyyy"
{
  "id": 326,
  "company_domain": "acme.ai",
  "company": {
    "domain": "acme.ai",
    "name": "Acme AI",
    "country": "United States",
    "major_sector": "TECHNOLOGY",
    "industry": "AI/ML",
    "logo_url": "https://logo.clearbit.com/acme.ai"
  },
  "stage": "seed",
  "amount_usd": 12000000,
  "announced_date": "2026-03-15",
  "lead_investor": "Sequoia Capital",
  "investors": [
    "Sequoia Capital",
    "Benchmark"
  ],
  "blurb": "Acme AI builds observability tools for production ML systems.",
  "evidence_url": "https://techcrunch.com/2026/03/15/acme-ai-seed/",
  "provenance": [
    "news"
  ]
}
GET

/api/v1/companies/

List companies (only those with completed enrichment), ordered by last funding date.

Query parameters

country / major_sector / industry
Same semantics as on funding rounds.
last_stage
Filter by the company's most recent funding stage.
has_funding
Boolean: true only returns companies that have at least one tracked round.
curl 'https://data.aimalcolm.com/api/v1/companies/?major_sector=TECHNOLOGY&page_size=10' \
  -H "Authorization: Bearer mlm_xxxxxxxx.yyyy"
{
  "count": 4,
  "next": null,
  "previous": null,
  "results": [
    {
      "domain": "acme.ai",
      "name": "Acme AI",
      "country": "United States",
      "city": "San Francisco",
      "major_sector": "TECHNOLOGY",
      "industry": "AI/ML",
      "logo_url": "https://logo.clearbit.com/acme.ai",
      "employee_count": 14,
      "founded_year": 2024,
      "last_funding_stage": "seed",
      "last_funding_date": "2026-03-15",
      "total_raised_usd": 12000000
    },
    {
      "domain": "lumen-energy.fr",
      "name": "Lumen Energy",
      "country": "France",
      "city": "Paris",
      "major_sector": "ENERGY",
      "industry": "Cleantech",
      "logo_url": "https://logo.clearbit.com/lumen-energy.fr",
      "employee_count": 8,
      "founded_year": 2023,
      "last_funding_stage": "series_a",
      "last_funding_date": "2026-04-02",
      "total_raised_usd": 8640000
    }
  ]
}
GET

/api/v1/companies/<domain>/

Retrieve one company by its normalized domain. Includes founders + full funding history.

curl https://data.aimalcolm.com/api/v1/companies/acme.ai/ \
  -H "Authorization: Bearer mlm_xxxxxxxx.yyyy"
{
  "domain": "acme.ai",
  "name": "Acme AI",
  "country": "United States",
  "city": "San Francisco",
  "major_sector": "TECHNOLOGY",
  "industry": "AI/ML",
  "logo_url": "https://logo.clearbit.com/acme.ai",
  "employee_count": 14,
  "founded_year": 2024,
  "last_funding_stage": "seed",
  "last_funding_date": "2026-03-15",
  "total_raised_usd": 12000000,
  "description": "Acme AI builds observability tools for production machine-learning systems.",
  "website": "https://acme.ai",
  "location": "San Francisco, USA",
  "founders": [
    {
      "full_name": "",
      "linkedin_slug": "",
      "title": "CEO & Co-Founder"
    },
    {
      "full_name": "",
      "linkedin_slug": "",
      "title": "CTO & Co-Founder"
    }
  ],
  "funding_rounds": [
    {
      "id": 326,
      "company_domain": "acme.ai",
      "company": {
        "domain": "acme.ai",
        "name": "Acme AI",
        "country": "United States",
        "major_sector": "TECHNOLOGY",
        "industry": "AI/ML",
        "logo_url": "https://logo.clearbit.com/acme.ai"
      },
      "stage": "seed",
      "amount_usd": 12000000,
      "announced_date": "2026-03-15",
      "lead_investor": "Sequoia Capital",
      "investors": [
        "Sequoia Capital",
        "Benchmark"
      ],
      "blurb": "Acme AI builds observability tools for production ML systems.",
      "evidence_url": "https://techcrunch.com/2026/03/15/acme-ai-seed/",
      "provenance": [
        "news"
      ]
    }
  ]
}

Errors

Code Meaning
401Missing, malformed, or revoked API key.
403Reserved for future tier checks; not currently emitted.
404Unknown id / domain, or quarantined row.
405Write methods (POST / PUT / DELETE) are not supported.
429Rate limit exceeded. Read Retry-After and back off.

Changelog

  • v1.0 Initial release. Four read-only endpoints. Free tier at 200 req/hour.