Fundup AI

Fundup AI API

v1.4.0

API Reference

This reference provides detailed information about all available API endpoints. Each endpoint includes 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 Yes Start date for funding events (required)
funding_date_end string Yes End date for funding events (required)
limit integer No Number of companies to return (1-50). Maximum 50 records per request.
offset integer No Number of companies to skip (0-499). Maximum 500 total records accessible via API.
min_funding string No Minimum funding amount (e.g., "1M", "500K", "2.5B")
max_funding string No Maximum funding amount (e.g., "10M", "2B", "100K")
countries array No Filter by countries using 2-letter ISO codes (e.g., ["US", "GB", "DE"])
stages array No Filter by funding stages (e.g., ["Seed", "Series A", "Series B", "undisclosed"])
industries array No Filter by industries (e.g., ["AI", "Fintech", "Healthcare"])
technologies array No Filter by technology names (e.g., ["Cloudflare", "Google Cloud"])
company_size array No Filter by company size (e.g., ["1-10", "11-50", "51-200"])
validated_contacts boolean No Show only companies with validated contacts (true = only validated, omit or false = all companies)
investors array No Filter by investor names
currency string No Filter by funding currency (e.g., "USD", "EUR", "GBP")
tags array No Filter by tag names (e.g., ["SaaS", "B2B", "AI Infrastructure"]). Use GET /api/v1/filters to retrieve available tags.
search string No Search in company names, descriptions, and industries
has_open_roles boolean No When true, return only companies that currently have open job postings in the Fundup AI database.
hiring_departments array No 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 No 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 No 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.
{
  "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 Yes 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 Yes 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 Yes 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 Yes 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 Yes Unique company identifier
department string No Filter by department. Values: it, sales, marketing, design, finance, hr, operations, support, management, executive, communication, legal
seniority string No Filter by seniority. Values: junior, mid, senior, manager, director, executive
search string No Search within role titles
page integer No Page number (default: 1)
per_page integer No 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 Yes 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 Yes 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 Yes Start date for funding events (required)
funding_date_end string Yes End date for funding events (required)
limit integer No Number of fundings to return (1-50). Maximum 50 records per request.
offset integer No Number of fundings to skip (0-499). Maximum 500 total records accessible via API.
min_amount string No Minimum funding amount (e.g., "1M", "500K", "2.5B")
max_amount string No Maximum funding amount (e.g., "10M", "2B", "100K")
stages array No Filter by funding stages (e.g., ["Seed", "Series A", "Series B", "undisclosed"])
countries array No Filter by company countries using 2-letter ISO codes
industries array No Filter by company industries
technologies array No Filter by technology names (e.g., ["Cloudflare", "Google Cloud"])
currency string No Filter by funding currency (e.g., "USD", "EUR", "GBP", "INR", "TRY", "JPY")
investors array No Filter by investor names
company_size array No Filter by company size categories
validated_contacts boolean No Show only companies with validated contacts (true = only validated, omit or false = all companies)
tags array No Filter by tag names (e.g., ["SaaS", "B2B", "AI Infrastructure"]). Use GET /api/v1/filters to retrieve available tags.
search string No Search across company names, descriptions, and industries
has_open_roles boolean No When true, return only funding events whose company currently has open job postings in the Fundup AI database.
hiring_departments array No 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 No 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 No 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.
{
  "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
}