Fundup AI

Fundup AI API

v1.2.7

Rate Limits & Security

API use is subject to our Terms of Use, including permitted data uses (e.g. sales input, internal reports, LLM training) and restrictions (e.g. no scraping, resale, or public raw display).

Rate Limits

All API keys belonging to the same account share these budgets. Use GET /api/v1/stats for real-time usage: the response includes a rate_limits object with every limit (per_minute, daily, monthly, daily_company_detail, monthly_pagination, monthly_export, and test_key_monthly when using a test key). Each entry has limit, used, remaining, and reset_unix (when the window resets), so you can see exactly which limit you are close to or have hit.

3,000 requests per month
300 requests per day
20 requests per minute

Good to know

  • Test API keys share a 300 requests/month sub-limit within the 3,000 total.
  • Up to 100 unique companies per day via detail endpoints — repeat views are free.
  • 200 page turns per month on list endpoints; max 500 records per query set.
  • 3,000 records/month export budget across all endpoints combined.

Real-time usage: GET /api/v1/stats

The rate_limits object in the response lists every limit with current used, remaining, and reset_unix (Unix timestamp when the window resets). Keys: per_minute, daily, monthly, daily_company_detail, monthly_pagination, monthly_export; test_key_monthly is present only for test keys.

{
  "rate_limits": {
    "per_minute": { "limit": 20, "used": 3, "remaining": 17, "reset_unix": 1739876543 },
    "daily": { "limit": 300, "used": 45, "remaining": 255, "reset_unix": 1739923200 },
    "monthly": { "limit": 3000, "used": 1200, "remaining": 1800, "reset_unix": 1740787200 },
    "daily_company_detail": { "limit": 100, "used": 10, "remaining": 90, "reset_unix": 1739923200 },
    "monthly_pagination": { "limit": 200, "used": 50, "remaining": 150, "reset_unix": 1740787200 },
    "monthly_export": { "limit": 3000, "used": 800, "remaining": 2200, "reset_unix": 1740787200 },
    "test_key_monthly": null
  }
}

Rate Limit Headers

Every API response includes headers listing all critical limits. On 429 responses, additional headers indicate which limit was hit and when it resets.

On Every Response (200 and 429)

All critical limits are listed so you can display them in your UI and avoid hitting them:

X-RateLimit-Per-Minute-Limit 20
X-RateLimit-Daily-Limit 300
X-RateLimit-Monthly-Limit 3,000
X-RateLimit-Monthly-Pagination-Limit 200 page turns/month
X-RateLimit-Daily-Company-Detail-Limit 100 unique companies/day
X-RateLimit-Test-Key-Monthly-Limit 300 (test keys only)

On 429 Only – Limit That Was Hit

When a limit is exceeded, these headers identify the limit and when it resets:

X-RateLimit-Limit-Type Which limit was hit: per_minute, daily, monthly, test_key_monthly, monthly_pagination, daily_company_detail, monthly_export
X-RateLimit-Limit Numeric limit for that window
X-RateLimit-Remaining 0 (exceeded)
X-RateLimit-Used Current usage for that window
X-RateLimit-Reset Unix timestamp when the limit resets
Retry-After Seconds until retry (when applicable, e.g. 60 for per-minute)

When a Limit is Exceeded

The API returns HTTP 429 with a JSON body that always includes limit_type, limit, and used so you know exactly which limit was hit:

429 Response (daily limit example)

Response
{
  "error": "Daily API request limit reached (300/300 today). Resets at midnight UTC.",
  "limit_type": "daily",
  "limit": 300,
  "used": 300,
  "retry_after": 4521,
  "detail": "daily_limit_exceeded"
}

limit_type values: per_minute, daily, monthly, test_key_monthly, monthly_pagination, daily_company_detail, monthly_export. When present, retry_after is seconds until you can retry (e.g. 60 for per-minute; seconds until midnight UTC for daily).

Filter Values and Data Formats

Understanding the correct format for filter values helps avoid errors and improves API efficiency:

Countries

Use 2-letter ISO country codes:

  • US - United States
  • GB - United Kingdom
  • DE - Germany
  • FR - France
  • CA - Canada

Get the full list via /api/v1/filters

Funding Amounts

Flexible format with suffixes:

  • 1M = $1,000,000
  • 500K = $500,000
  • 2.5B = $2,500,000,000
  • 1000000 = $1,000,000

Suffixes: K (thousands), M (millions), B (billions)

Industries & Stages

Use exact values from the filters endpoint:

  • Industries: "AI", "Fintech", "Healthcare", "SaaS"
  • Stages: "Seed", "Series A", "Series B", "Series C+", "Debt", "undisclosed", "Bootstrapped"

Case-sensitive, use /api/v1/filters for current values

Getting Filter Values

Always fetch current filter values:

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

This ensures you're using valid, up-to-date values

Best Practices

Caching

  • Cache responses when possible
  • Use ETags for conditional requests
  • Implement local caching for frequently accessed data
  • Set appropriate cache headers in your application

Request Optimization

  • Use pagination to limit response size
  • Request only the data you need
  • Combine multiple filters in single requests
  • Use the search endpoint for complex queries

Error Handling

  • Always check response status codes
  • Implement exponential backoff for 429 errors
  • Monitor rate limit headers
  • Handle network errors gracefully

Monitoring

  • Track your API usage regularly
  • Monitor rate limit headers
  • Set up alerts for high usage
  • Use the /stats endpoint to check usage

Security

API Key Security

Keep your API keys secure and never expose them in client-side code or public repositories.

Security Guidelines

  • Never commit API keys to version control - Use environment variables or secure configuration management
  • Use HTTPS only - All API requests must use HTTPS encryption
  • Rotate keys regularly - Delete old keys and create new ones periodically
  • Monitor usage - Regularly check your API usage for unusual activity
  • Use different keys for different environments - Separate production and development keys

HTTPS Requirement

All API requests must be made over HTTPS. HTTP requests will be rejected for security reasons.

Base URL

https://fundup.ai/api/v1

Always use HTTPS when making API requests to ensure your data is encrypted in transit.

Need Help?

If you have questions about rate limits, security, or need assistance with your API integration, please contact our support team.