Platform Reference
The GrantFounders API provides programmatic access to the funding decision infrastructure: fit assessment, eligibility analysis, readiness evaluation, and structured drafting support. All requests are authenticated via the x-access-key header.
Access keys are available from your account dashboard after activating a Professional or Agency plan. Keys follow the format gf_ and are scoped to your organization.
curl -X POST https://api.grantfounders.com/v1/fit/score \
-H "x-access-key: gf_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"projectDescription": "Solar energy infrastructure for rural school districts",
"opportunityDescription": "DOE Office of Electricity — Grid Modernization Initiative"
}'{
"fitScore": 87,
"confidence": "high",
"scopeAlignment": "strong",
"budgetFit": "within_range",
"eligibilityRisk": "low",
"readiness": "ready_to_draft"
}Every request to the GrantFounders API must include a valid access key in the x-access-key request header. Keys are organization-scoped and can be rotated from the account dashboard.
x-access-key: gf_your_key_here
Decision infrastructure capabilities: fit assessment, eligibility analysis, readiness evaluation, and structured drafting support. All intelligence endpoints require an active Professional or Agency subscription.
/v1/fit/scoreCalculate semantic fit between a project and a grant opportunity. Returns a composite score with dimensional breakdown across scope, budget, eligibility, and readiness.
projectDescriptionstring (min 50 chars) — requiredopportunityDescriptionstring (min 50 chars) — requiredorgContextstring — optional, improves eligibility scoring/v1/proposals/generateGenerate a structured proposal section aligned to the target opportunity's scoring criteria. Returns agency-formatted content ready for editorial review.
sectionType"executive_summary" | "narrative" | "budget_justification" | "impact_statement" — requiredprojectData{ title: string, description: string } — requiredopportunityData{ title: string, agency: string } — requiredinstitutionalContextstring — optional, improves alignment to org history/v1/projects/analyzeAnalyze a project description and return recommended funding categories, target agencies, and strategic positioning notes.
descriptionstring (min 50 chars) — requiredorgTypestring — optional (e.g. "university", "small_business", "nonprofit")Search and retrieve federal grant opportunities from Grants.gov, SBIR.gov, and agency-specific sources.
/v1/opportunitiesList open grant opportunities with optional filters. Authentication required for full result sets; unauthenticated requests return a limited preview.
limitnumber (default: 50, max: 200)categorystring — funding category filteragencystring — agency code (e.g. "DOE", "NSF", "NIH")status"open" | "forecasted" | "closed"Provision, list, and revoke access keys for your organization. All key management operations require session authentication.
/v1/keysList all active access keys for your organization.
/v1/keysProvision a new access key. Returns the full key value once — store it securely.
/v1/keys/:keyIdRevoke an access key. Revocation is immediate and irreversible.
Monitor API consumption, request volume, and operational metrics for your organization.
/v1/usageRetrieve usage statistics for the current billing period. Requires session authentication.
{
"period": "2026-03",
"totalRequests": 142,
"byOperation": {
"fit_score": { "requests": 87 },
"proposal_generate": { "requests": 42 },
"project_analyze": { "requests": 13 }
},
"planLimit": "unlimited",
"nextResetDate": "2026-04-01"
}All errors return a JSON object with a machine-readable error field and an appropriate HTTP status code.
Missing, expired, or revoked access key
{ "error": "Invalid or missing x-access-key" }Input validation failure
{ "error": "projectDescription must be at least 50 characters" }Rate limit exceeded — implement exponential backoff
{ "error": "Rate limit exceeded. Retry after 60 seconds.", "retryAfter": 60 }Transient server error — safe to retry with backoff
{ "error": "Internal server error. Please retry." }| Plan | Requests / Minute | Requests / Hour |
|---|---|---|
| Starter | 20 | 200 |
| Professional | 100 | 1,000 |
| Agency | Unlimited | Unlimited (SLA-governed) |
All responses include rate limit state in the following headers:
X-RateLimit-Limit: 100 X-RateLimit-Remaining: 87 X-RateLimit-Reset: 1711234567
X-RateLimit-Remaining header to avoid hitting limitsFor technical integration questions, custom endpoint requirements, or enterprise API access, contact [email protected]. Agency plan subscribers receive dedicated technical onboarding.