API Documentation

The GoodVote API provides programmatic access to campaign finance data across all tracked lobby topics. All endpoints return JSON and support pagination. The live API is available at https://goodvote-api-1043399584507.us-central1.run.app/docs.

Base URL

https://goodvote-api-1043399584507.us-central1.run.app

All endpoints are publicly accessible. No API key is required for the free tier (1,000 requests/day, per IP). For higher rate limits, see Pricing.

Authentication & Rate Limits

Sending your API key

Pass your key in the x-api-key request header, or as the ?api_key= query parameter. Requests without a key are rate-limited on the free tier, bucketed per client IP.

Daily limits by tier

  • free — 1,000 requests/day
  • starter — 25,000 requests/day
  • pro — 500,000 requests/day
  • enterprise — 5,000,000 requests/day

Response headers on every /api/* response

  • X-RateLimit-Limit — your tier's daily quota
  • X-RateLimit-Remaining — requests left today (UTC)
  • X-RateLimit-Tier — resolved tier name

429 response shape (limit exceeded)

HTTP/1.1 429 Too Many Requests
Content-Type: application/json
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0
X-RateLimit-Tier: free

{
  "success": false,
  "error": "rate_limit",
  "tier": "free",
  "limit": 1000,
  "used_today": 1000
}

Debug your current usage

curl -H "x-api-key: $KEY" \
  https://goodvote.app/api/_admin/rate-limit/status

How to get a paid-tier key

Visit /admin to provision a key tied to your account, or email api@goodvote.app for enterprise plans.

Endpoints

Code Examples

# List all topics
curl "https://goodvote-api-1043399584507.us-central1.run.app/v1/topics"

# Get top members receiving defense lobby funds
curl "https://goodvote-api-1043399584507.us-central1.run.app/v1/topics/defense/members?limit=10"

# Look up a specific member's exposure across all topics
curl "https://goodvote-api-1043399584507.us-central1.run.app/v1/members/S000148/exposure"

Pricing

Free
$0
1,000 requests/day, public data only
Starter
$49/mo
25K requests/day, all endpoints
Pro
$149/mo
500K requests/day, bulk export
Enterprise
$499/mo
5M requests/day, SLA, dedicated support

Ready to start?

The free tier includes 1,000 requests per day with no API key required. Try it now from your terminal.

Try the Live API