API Reference

Base URL: https://api.incentedge.com/v1

All endpoints accept and return JSON. Authenticate with a Bearer token in the Authorization header. 429 status indicates rate limit exceeded.

GET/programs

Returns a paginated list of all incentive programs. Supports filtering by state, type, technology, and keyword.

Query Parameters

NameTypeRequiredDescription
statestringoptionalTwo-letter state code (e.g. NY, CA)
typestringoptionalProgram type: federal | state | local | utility
technologystringoptionalTechnology category: solar | wind | storage | hydrogen
qstringoptionalKeyword search across name and description
limitintegeroptionalResults per page (default: 20, max: 100)
offsetintegeroptionalPagination offset (default: 0)

Response (200 OK)

{
  "programs": [
    {
      "id": "prog_abc123",
      "name": "NY-SUN Megawatt Block Program",
      "type": "state",
      "state": "NY",
      "technology": ["solar"],
      "estimatedValue": "$0.20/W",
      "deadline": "2025-12-31",
      "url": "https://nysun.com/..."
    }
  ],
  "total": 1847,
  "limit": 20,
  "offset": 0
}
POST/programs/match

Returns a ranked list of incentive programs matching the project parameters. This is the primary endpoint for project-level incentive analysis.

Request Body

{
  "projectType": "solar",       // Required: technology type
  "state": "NY",                // Required: two-letter state code
  "capacity": 5000,             // Optional: capacity in kW
  "projectSize": "commercial",  // Optional: residential | commercial | utility
  "includeBonus": true          // Optional: include IRA bonus adders
}

Response (200 OK)

{
  "programs": [
    {
      "id": "prog_itc_fed",
      "name": "Investment Tax Credit (ITC)",
      "jurisdiction": "Federal",
      "estimatedValue": "$450,000",
      "creditRate": "30%",
      "bonusAdders": ["energy_community", "domestic_content"],
      "eligibilityScore": 0.95
    }
  ],
  "totalValue": "$890,000",
  "programCount": 12
}
GET/programs/{id}

Returns full details for a specific program including eligibility requirements, application process, deadlines, and related programs.

Query Parameters

NameTypeRequiredDescription
idstringrequiredProgram ID from the list or match endpoints

Response (200 OK)

{
  "id": "prog_itc_fed",
  "name": "Investment Tax Credit (ITC)",
  "type": "federal",
  "creditCode": "Sec. 48",
  "baseRate": 0.30,
  "bonusAdders": {
    "energyCommunity": 0.10,
    "domesticContent": 0.10,
    "lowIncome": 0.20
  },
  "eligibilityRequirements": [...],
  "applicationUrl": "https://irs.gov/...",
  "deadline": null,
  "updatedAt": "2025-11-01T00:00:00Z"
}
POST/calculate

Calculates the estimated dollar value of a specific incentive program for a given project. Accounts for bonus adders, prevailing wage, and project-specific factors.

Request Body

{
  "programId": "prog_itc_fed",
  "projectCost": 1500000,
  "state": "NY",
  "capacity": 5000,
  "qualifiesForBonus": {
    "energyCommunity": true,
    "domesticContent": false,
    "lowIncome": false
  }
}

Response (200 OK)

{
  "programId": "prog_itc_fed",
  "baseCredit": 450000,
  "bonusCredit": 150000,
  "totalCredit": 600000,
  "effectiveRate": 0.40,
  "breakdown": {
    "base": 0.30,
    "energyCommunityBonus": 0.10
  }
}
GET/programs/federal

Returns all federal incentive programs. Subset of /programs filtered to federal jurisdiction. Supports same query parameters.

Query Parameters

NameTypeRequiredDescription
technologystringoptionalFilter by technology category
limitintegeroptionalResults per page (default: 20, max: 100)

Response (200 OK)

{
  "programs": [...],
  "total": 47,
  "limit": 20,
  "offset": 0
}
GET/programs/state/{state}

Returns all incentive programs for a specific state. Includes state, utility, and local programs for that state.

Query Parameters

NameTypeRequiredDescription
statestringrequiredTwo-letter state code (e.g. NY, CA, TX)
technologystringoptionalFilter by technology category

Response (200 OK)

{
  "state": "NY",
  "stateName": "New York",
  "programs": [...],
  "total": 234,
  "limit": 20,
  "offset": 0
}

Error Codes

StatusMeaning
200Success
400Bad request — check request body or query parameters
401Unauthorized — API key missing or invalid
403Forbidden — endpoint not available on your plan
404Not found — program ID does not exist
429Rate limit exceeded — slow down requests
500Server error — retry with exponential backoff

Ready to build?

Get your API key in minutes. Full access on Pro plan with 14-day free trial.