Reference

API Reference

Detailed documentation for every endpoint: parameters, example requests, and response formats.

GET /health

Health check endpoint to verify API status

Example request

curl
curl -X GET "https://fundup.ai/api/v1/health" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "message": "API is running",
  "status": "healthy",
  "timestamp": 1703123456,
  "version": "1.0.0"
}
GET /companies

Retrieve a list of companies with advanced filtering and optimized server-side pagination. Uses hybrid database filtering for improved performance.

Parameters

Parameter Type Required Description
funding_date_start string Required Start date for funding events (required)
funding_date_end string Required End date for funding events (required)
limit integer Optional Number of companies to return (1-50). Maximum 50 records per request.
offset integer Optional Number of companies to skip (0-499). Maximum 500 total records accessible via API.
min_funding string Optional Minimum funding amount (e.g., "1M", "500K", "2.5B")
max_funding string Optional Maximum funding amount (e.g., "10M", "2B", "100K")
countries array Optional Filter by countries using 2-letter ISO codes (e.g., ["US", "GB", "DE"])
stages array Optional Filter by funding stages (e.g., ["Seed", "Series A", "Series B", "undisclosed"])
industries array Optional Filter by industries (e.g., ["AI", "Fintech", "Healthcare"])
technologies array Optional Filter by technology names (e.g., ["Cloudflare", "Google Cloud"])
company_size array Optional Filter by company size (e.g., ["1-10", "11-50", "51-200"])
validated_contacts boolean Optional Show only companies with validated contacts (true = only validated, omit or false = all companies)
investors array Optional Filter by investor names
currency string Optional Filter by funding currency (e.g., "USD", "EUR", "GBP")
tags array Optional Filter by tag names (e.g., ["SaaS", "B2B", "AI Infrastructure"]). Use GET /api/v1/filters to retrieve available tags.
search string Optional Search in company names, descriptions, and industries
has_open_roles boolean Optional When true, return only companies that currently have open job postings in the Fundup AI database.
hiring_departments array Optional Filter by hiring department. Allowed values: it (Engineering/IT), sales, marketing, design, finance, hr, operations, support, management, executive, communication, legal. Only applied when has_open_roles=true.
hiring_seniority array Optional Filter by seniority level of open roles. Allowed values: junior, mid, senior, manager, director, executive. Only applied when has_open_roles=true.
hiring_role_type string Optional Filter by role type. Allowed values: leadership (VP, Director, C-level), ic (individual contributors). Omit or leave blank for all role types. Only applied when has_open_roles=true.

Example request

curl
curl -X GET "https://fundup.ai/api/v1/companies?funding_date_start=2025-01-01&funding_date_end=2025-12-31&limit=5&countries[]=US&search=tech&validated_contacts=true" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "data": [
    {
      "companyName": "Example Corp",
      "country": "US",
      "country_name": "United States",
      "currency": "USD",
      "fundingAmount": "5M",
      "fundingAnnounceDate": "2025-09-18",
      "id": "comp_123",
      "stage": "Series A"
    },
    {
      "companyName": "Stealth Startup",
      "country": "US",
      "country_name": "United States",
      "currency": "USD",
      "fundingAmount": "2M",
      "fundingAnnounceDate": "2025-08-15",
      "id": "comp_124",
      "stage": "Seed"
    }
  ],
  "pagination": {
    "has_more": false,
    "limit": 25,
    "offset": 0,
    "total": 2
  }
}

Error responses

401 Unauthorized - Invalid or missing API key
{
  "error": "Invalid API key"
}
429 Too Many Requests - Rate limit exceeded. Response includes limit_type, limit, used, and optionally retry_after. A rejected 429 request does not itself consume quota; only successful (2xx) responses count against your limits.
{
  "detail": "rate_limit_exceeded",
  "error": "Per-minute rate limit exceeded (20 requests per minute). Retry after 60 seconds.",
  "limit": 20,
  "limit_type": "per_minute",
  "retry_after": 60,
  "used": 20
}
GET /companies/{company_id}

Get detailed information about a specific company. The contacts field follows the same availability rules as GET /companies/{id}/contacts: contacts are included during the 30-day fresh window after funding, or if you have previously revealed this company via the Fundup AI dashboard.

Parameters

Parameter Type Required Description
company_id string Required Unique company identifier

Example request

curl
curl -X GET "https://fundup.ai/api/v1/companies/comp_123" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "companyName": "Example Corp",
  "contacts": [
    {
      "id": "contact_789",
      "linkedinUrl": "https://linkedin.com/in/johndoe",
      "name": "John Doe",
      "title": "CEO"
    }
  ],
  "country": "United States",
  "country_name": "United States",
  "description": "AI-powered solution",
  "fundings": [
    {
      "fundingAmount": "5M",
      "fundingAnnounceDate": "2025-09-18",
      "id": "fund_456",
      "stage": "Series A"
    }
  ],
  "highlights": [
    {
      "highlight": "Company raised $5M in Series A funding",
      "id": "highlight_123",
      "source": "news"
    },
    {
      "highlight": "AI-powered solution with strong market traction",
      "id": "highlight_124",
      "source": "ai"
    }
  ],
  "id": "comp_123",
  "industries": [
    "AI",
    "SaaS"
  ],
  "linkedinUrl": "https://linkedin.com/company/example",
  "tags": [
    {
      "category": "model",
      "id": "tag_1",
      "name": "SaaS",
      "slug": "saas"
    },
    {
      "category": "model",
      "id": "tag_2",
      "name": "B2B",
      "slug": "b2b"
    },
    {
      "category": "stage",
      "id": "tag_3",
      "name": "Series A",
      "slug": "series-a"
    }
  ],
  "tech_stack": {
    "categories": [
      "IaaS"
    ],
    "companyId": "comp_123",
    "technologies": [
      {
        "categories": [
          "IaaS"
        ],
        "name": "Google Cloud"
      }
    ],
    "technologyNames": [
      "Google Cloud"
    ]
  },
  "total_contacts": 1,
  "total_fundings": 1,
  "website": "https://example.com"
}

Error responses

404 Company not found
{
  "error": "Company not found",
  "message": "The requested company could not be found"
}
GET /companies/{company_id}/tech-stack

Get tech stack for a specific company. Returns 404 if tech stack is not available (e.g., website down, not yet analyzed).

Parameters

Parameter Type Required Description
company_id string Required Unique company identifier

Example request

curl
curl -X GET "https://fundup.ai/api/v1/companies/comp_123/tech-stack" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "data": {
    "categories": [
      "IaaS",
      "CDN"
    ],
    "companyId": "comp_123",
    "domain": "example.com",
    "technologies": [
      {
        "categories": [
          "IaaS"
        ],
        "description": "Cloud platform",
        "name": "Google Cloud"
      },
      {
        "categories": [
          "CDN"
        ],
        "description": "CDN provider",
        "name": "Cloudflare"
      }
    ],
    "technologyNames": [
      "Google Cloud",
      "Cloudflare"
    ]
  }
}

Error responses

404 Company or tech stack not found
{
  "error": "Tech stack not found"
}
GET /companies/{company_id}/fundings

Get all funding rounds for a specific company, including investor details.

Parameters

Parameter Type Required Description
company_id string Required Unique company identifier

Example request

curl
curl -X GET "https://fundup.ai/api/v1/companies/comp_123/fundings" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "data": [
    {
      "companyId": "comp_123",
      "currency": "USD",
      "fundingAmount": "5000000",
      "fundingAmountUsd": 5000000,
      "fundingAnnounceDate": "2025-09-18T00:00:00+00:00",
      "id": "fund_456",
      "investors": [
        {
          "name": "Accel",
          "type": "lead"
        },
        {
          "name": "Y Combinator",
          "type": "participant"
        }
      ],
      "stage": "Series A"
    }
  ]
}

Error responses

404 Company not found
{
  "error": "Company not found"
}
GET /companies/{company_id}/contacts

Get key decision-maker contacts for a company. Contacts are returned under two conditions: (1) the company was funded within the last 30 days (free fresh window, same as the dashboard), or (2) you have previously revealed this company via the Fundup AI dashboard. The API never triggers Hunter lookups or consumes Reveal Credits, it reads from your existing reveal cache only.

Parameters

Parameter Type Required Description
company_id string Required Unique company identifier

Example request

curl
curl -X GET "https://fundup.ai/api/v1/companies/comp_123/contacts" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "data": [
    {
      "email": "[email protected]",
      "linkedinUrl": "https://linkedin.com/in/janesmith",
      "name": "Jane Smith",
      "title": "CEO"
    }
  ]
}

Error responses

404 Company not found, or contacts not yet available. Reveal the company via the dashboard first, or check back within 30 days of funding.
{
  "code": "CONTACTS_NOT_AVAILABLE",
  "error": "Contacts not available via API for this company.",
  "hint": "Contacts are returned during the 30-day fresh window after funding, or if you have revealed this company via the Fundup AI dashboard."
}
GET /companies/{company_id}/open-roles

Get open job postings for a company with optional department/seniority filtering and pagination.

Parameters

Parameter Type Required Description
company_id string Required Unique company identifier
department string Optional Filter by department. Values: it, sales, marketing, design, finance, hr, operations, support, management, executive, communication, legal
seniority string Optional Filter by seniority. Values: junior, mid, senior, manager, director, executive
search string Optional Search within role titles
page integer Optional Page number (default: 1)
per_page integer Optional Results per page, 1-50 (default: 25)

Example request

curl
curl -X GET "https://fundup.ai/api/v1/companies/comp_123/open-roles?department=it&seniority=senior&page=1&per_page=25" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "data": [
    {
      "companyId": "comp_123",
      "employmentType": "full-time",
      "firstSeenAt": "2025-09-01T00:00:00+00:00",
      "hunterDepartment": "it",
      "hunterSeniority": "senior",
      "id": 12345,
      "lastSyncedAt": "2025-10-01T00:00:00+00:00",
      "location": "Remote",
      "remoteType": "remote",
      "title": "Senior Backend Engineer",
      "titleNormalizedEn": "Senior Backend Engineer",
      "url": "https://example.com/jobs/123"
    }
  ],
  "pagination": {
    "has_more": true,
    "page": 1,
    "per_page": 25,
    "total": 42
  }
}

Error responses

400 Invalid pagination parameters
{
  "error": "page and per_page must be positive integers"
}
404 Company not found
{
  "error": "Company not found"
}
GET /companies/{company_id}/highlights

Get AI-extracted key business highlights for a company.

Parameters

Parameter Type Required Description
company_id string Required Unique company identifier

Example request

curl
curl -X GET "https://fundup.ai/api/v1/companies/comp_123/highlights" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "data": [
    {
      "createdAt": "2025-09-18T00:00:00+00:00",
      "highlight": "Raised $5M Series A to expand into European markets.",
      "id": "hl_abc123",
      "source": "news"
    }
  ]
}

Error responses

404 Company not found or no highlights available
{
  "code": "HIGHLIGHTS_NOT_FOUND",
  "error": "No highlights found for this company"
}
GET /companies/{company_id}/news

Get funding news articles associated with a company.

Parameters

Parameter Type Required Description
company_id string Required Unique company identifier

Example request

curl
curl -X GET "https://fundup.ai/api/v1/companies/comp_123/news" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "data": [
    {
      "createdAt": "2025-09-18T00:00:00+00:00",
      "fundingId": "fund_456",
      "id": "news_abc123",
      "title": "Example Corp raises $5M Series A to expand AI platform",
      "url": "https://techcrunch.com/example"
    }
  ]
}

Error responses

404 Company not found or no news available
{
  "code": "NEWS_NOT_FOUND",
  "error": "No news found for this company"
}
GET /fundings

Retrieve recent funding events with advanced filtering and optimized server-side pagination. Uses hybrid database filtering for improved performance.

Parameters

Parameter Type Required Description
funding_date_start string Required Start date for funding events (required)
funding_date_end string Required End date for funding events (required)
limit integer Optional Number of fundings to return (1-50). Maximum 50 records per request.
offset integer Optional Number of fundings to skip (0-499). Maximum 500 total records accessible via API.
min_amount string Optional Minimum funding amount (e.g., "1M", "500K", "2.5B")
max_amount string Optional Maximum funding amount (e.g., "10M", "2B", "100K")
stages array Optional Filter by funding stages (e.g., ["Seed", "Series A", "Series B", "undisclosed"])
countries array Optional Filter by company countries using 2-letter ISO codes
industries array Optional Filter by company industries
technologies array Optional Filter by technology names (e.g., ["Cloudflare", "Google Cloud"])
currency string Optional Filter by funding currency (e.g., "USD", "EUR", "GBP", "INR", "TRY", "JPY")
investors array Optional Filter by investor names
company_size array Optional Filter by company size categories
validated_contacts boolean Optional Show only companies with validated contacts (true = only validated, omit or false = all companies)
tags array Optional Filter by tag names (e.g., ["SaaS", "B2B", "AI Infrastructure"]). Use GET /api/v1/filters to retrieve available tags.
search string Optional Search across company names, descriptions, and industries
has_open_roles boolean Optional When true, return only funding events whose company currently has open job postings in the Fundup AI database.
hiring_departments array Optional Filter by hiring department. Allowed values: it (Engineering/IT), sales, marketing, design, finance, hr, operations, support, management, executive, communication, legal. Only applied when has_open_roles=true.
hiring_seniority array Optional Filter by seniority level of open roles. Allowed values: junior, mid, senior, manager, director, executive. Only applied when has_open_roles=true.
hiring_role_type string Optional Filter by role type. Allowed values: leadership (VP, Director, C-level), ic (individual contributors). Omit or leave blank for all role types. Only applied when has_open_roles=true.

Example request

curl
curl -X GET "https://fundup.ai/api/v1/fundings?funding_date_start=2025-01-01&funding_date_end=2025-12-31&limit=10&stages[]=Series%20A&currency=USD&search=tech&validated_contacts=true" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "data": [
    {
      "company": {
        "country": "US",
        "id": "comp_123",
        "industries": [
          "AI",
          "SaaS"
        ],
        "name": "Example Corp",
        "tags": [
          {
            "category": "model",
            "id": "tag_1",
            "name": "SaaS",
            "slug": "saas"
          },
          {
            "category": "model",
            "id": "tag_2",
            "name": "B2B",
            "slug": "b2b"
          }
        ]
      },
      "currency": "USD",
      "fundingAmount": "5M",
      "fundingAnnounceDate": "2025-09-18",
      "id": "fund_456",
      "stage": "Series A"
    },
    {
      "company": {
        "country": "DE",
        "id": "comp_124",
        "industries": [
          "AI",
          "Enterprise"
        ],
        "name": "European Startup",
        "tags": [
          {
            "category": "tech",
            "id": "tag_3",
            "name": "AI Infrastructure",
            "slug": "ai-infrastructure"
          }
        ]
      },
      "currency": "EUR",
      "fundingAmount": "2.5M",
      "fundingAnnounceDate": "2025-08-15",
      "id": "fund_457",
      "stage": "Series A"
    }
  ],
  "pagination": {
    "has_more": false,
    "limit": 50,
    "offset": 0,
    "total": 2
  }
}

Error responses

401 Unauthorized - Invalid or missing API key
{
  "error": "Invalid API key"
}
429 Too Many Requests - Rate limit exceeded. Response includes limit_type, limit, used, and optionally retry_after. A rejected 429 request does not itself consume quota; only successful (2xx) responses count against your limits.
{
  "detail": "rate_limit_exceeded",
  "error": "Per-minute rate limit exceeded (20 requests per minute). Retry after 60 seconds.",
  "limit": 20,
  "limit_type": "per_minute",
  "retry_after": 60,
  "used": 20
}
GET /filters

Get available filter values for API endpoints (countries, industries, stages, company sizes, tech stack categories, technologies)

Example request

curl
curl -X GET "https://fundup.ai/api/v1/filters" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "data": {
    "company_sizes": [
      "1-10",
      "11-50",
      "51-200",
      "201-1000",
      "1000+"
    ],
    "countries": [
      "US",
      "GB",
      "DE",
      "FR",
      "CA"
    ],
    "currencies": [
      "USD",
      "EUR",
      "GBP",
      "INR",
      "TRY",
      "JPY",
      "KRW"
    ],
    "industries": [
      "AI",
      "Fintech",
      "Healthcare",
      "SaaS",
      "E-commerce"
    ],
    "stages": [
      "Seed",
      "Series A",
      "Series B",
      "Series C+",
      "Debt",
      "undisclosed"
    ],
    "tags": [
      {
        "category": "model",
        "id": "tag_1",
        "name": "SaaS",
        "slug": "saas"
      },
      {
        "category": "model",
        "id": "tag_2",
        "name": "B2B",
        "slug": "b2b"
      },
      {
        "category": "tech",
        "id": "tag_3",
        "name": "AI Infrastructure",
        "slug": "ai-infrastructure"
      },
      {
        "category": "stage",
        "id": "tag_4",
        "name": "Seed",
        "slug": "seed"
      },
      {
        "category": "vertical",
        "id": "tag_5",
        "name": "HealthTech",
        "slug": "healthtech"
      }
    ],
    "technologyOptions": [
      "Cloudflare",
      "Google Cloud",
      "AWS"
    ]
  },
  "success": true,
  "timestamp": 1703123456
}
GET /stats

Get API usage statistics and real-time rate limit usage for the authenticated user. The rate_limits object includes per_minute, daily, monthly, monthly_export, daily_company_detail, and monthly_pagination, each with limit, used, remaining, and reset_unix. All keys (live and test) share the same account-wide budgets.

Example request

curl
curl -X GET "https://fundup.ai/api/v1/stats" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example response

200: OK
{
  "api_key": {
    "created_at": 1703123456,
    "last_used_at": 1739876543,
    "name": "Production Key",
    "type": "live"
  },
  "average_response_time": 120.5,
  "daily_usage": [
    {
      "date": "2025-02-18",
      "requests": 45
    },
    {
      "date": "2025-02-19",
      "requests": 12
    }
  ],
  "endpoints_used": [
    "get_companies",
    "get_company"
  ],
  "failed_requests": 2,
  "rate_limits": {
    "daily": {
      "limit": 300,
      "remaining": 255,
      "reset_unix": 1739923200,
      "used": 45
    },
    "daily_company_detail": {
      "limit": 100,
      "remaining": 90,
      "reset_unix": 1739923200,
      "used": 10
    },
    "monthly": {
      "limit": 3000,
      "remaining": 1800,
      "reset_unix": 1740787200,
      "used": 1200
    },
    "monthly_export": {
      "limit": 3000,
      "remaining": 2200,
      "reset_unix": 1740787200,
      "used": 800
    },
    "monthly_pagination": {
      "limit": 200,
      "remaining": 150,
      "reset_unix": 1740787200,
      "used": 50
    },
    "per_minute": {
      "limit": 20,
      "remaining": 17,
      "reset_unix": 1739876543,
      "used": 3
    }
  },
  "successful_requests": 148,
  "total_requests": 150,
  "user_rate_limit": 3000
}