Fundup AI

Fundup AI API

v1.2.7

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"])
currently_hiring boolean No Filter by hiring status (true/false)
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

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

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,
  "total_job_listings": 5,
  "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 /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
currently_hiring boolean No Filter by companies currently hiring (true/false)
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

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, daily_company_detail, monthly_pagination, monthly_export, and test_key_monthly (for test keys), each with limit, used, remaining, and reset_unix.

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
    },
    "test_key_monthly": null
  },
  "successful_requests": 148,
  "total_requests": 150,
  "user_rate_limit": 3000
}
POST /companies/{id}/follow

Follow a company to receive updates and notifications

Parameters

Parameter Type Required Description
id string Yes Company ID (path parameter)

Example Request

curl
curl -X POST "https://fundup.ai/api/v1/companies/comp_123/follow" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json"

Example Response

200 OK
{
  "company_id": "comp_123",
  "company_name": "Example Corp",
  "message": "Company followed successfully",
  "success": true
}

Error Responses

400 Bad Request - Company already followed or invalid request
{
  "error": "Company is already being followed"
}
404 Company not found
{
  "error": "Company not found"
}
DELETE /companies/{id}/follow

Unfollow a company to stop receiving updates and notifications

Parameters

Parameter Type Required Description
id string Yes Company ID (path parameter)

Example Request

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

Example Response

200 OK
{
  "company_id": "comp_123",
  "company_name": "Example Corp",
  "message": "Company unfollowed successfully",
  "success": true
}

Error Responses

400 Bad Request - Company not being followed
{
  "error": "Company is not being followed"
}
404 Company not found
{
  "error": "Company not found"
}
GET /following/companies

Get list of companies you are following with detailed information

Parameters

Parameter Type Required Description
page integer No Page number for pagination
per_page integer No Number of companies per page (1-100)

Example Request

curl
curl -X GET "https://fundup.ai/api/v1/following/companies?page=1&per_page=25" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example Response

200 OK
{
  "data": {
    "followed_companies": [
      {
        "company_id": "comp_123",
        "company_logo": "https://example.com/logo.png",
        "company_name": "Example Corp",
        "country": "United States",
        "currency": "USD",
        "description": "AI-powered solution for enterprise customers",
        "followed_at": "2025-09-19T14:20:00Z",
        "fundingAmount": "5M",
        "fundingAnnounceDate": "2025-09-18",
        "icpMatch": 85,
        "industries": [
          "AI",
          "SaaS",
          "Enterprise"
        ],
        "last_updated": "2025-09-20T10:30:00Z",
        "notification_preferences": {
          "crm": false,
          "email": true,
          "slack": false,
          "webhook": false
        },
        "stage": "Series A"
      }
    ],
    "page": 1,
    "per_page": 25,
    "total_count": 1,
    "total_pages": 1
  },
  "success": true
}

Error Responses

400 Bad Request - Invalid pagination parameters
{
  "error": "Invalid page or per_page parameter"
}
GET /following/companies/{id}/activities

Get activities and updates for a specific followed company

Parameters

Parameter Type Required Description
id string Yes Company ID (path parameter)
page integer No Page number for pagination
per_page integer No Number of activities per page (1-50)

Example Request

curl
curl -X GET "https://fundup.ai/api/v1/following/companies/comp_123/activities?page=1&per_page=10" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"

Example Response

200 OK
{
  "data": {
    "activities": [
      {
        "amount": "5M",
        "currency": "USD",
        "date": "2025-09-18T00:00:00Z",
        "description": "Company raised $5M in Series A funding",
        "id": "act_123",
        "source": "TechCrunch",
        "stage": "Series A",
        "title": "Series A Funding Round",
        "type": "funding",
        "url": "https://techcrunch.com/example-funding"
      }
    ],
    "page": 1,
    "per_page": 10,
    "total_count": 1,
    "total_pages": 1
  },
  "success": true
}

Error Responses

404 Company not found or not being followed
{
  "error": "Company not found or not being followed"
}