Quick Start Guide
Get your first incentive results in under 5 minutes
This guide walks you through creating an account, getting your API key, and retrieving matched incentive programs for your first project. Examples in curl, JavaScript, and Python.
Create an account and get your API key
Sign up for an IncentEdge Pro or Enterprise account. After signup, navigate to Settings > API Keys and generate a new Bearer token. Copy it — you'll use it in every request.
1. Go to incentedge.com/signup
2. Complete registration
3. Navigate to Settings > API Keys
4. Click "Generate New Key"
5. Copy your Bearer tokenKeep your API key secret. Never commit it to version control. Use environment variables.
Make your first API call
POST to /v1/programs/match with your project details. The endpoint returns a ranked list of matching programs with estimated values.
curl -X POST https://api.incentedge.com/v1/programs/match \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"projectType": "solar",
"state": "NY",
"capacity": 5000
}'const response = await fetch('https://api.incentedge.com/v1/programs/match', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
projectType: 'solar',
state: 'NY',
capacity: 5000,
}),
});
const data = await response.json();
console.log(data);import requests
response = requests.post(
'https://api.incentedge.com/v1/programs/match',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
json={
'projectType': 'solar',
'state': 'NY',
'capacity': 5000,
}
)
data = response.json()
print(data)Parse the response
The response is a JSON object with a programs array and a totalValue. Each program has a name, estimatedValue, creditRate, eligibilityScore, and application URL.
const { programs, totalValue, programCount } = data;
console.log(`Found ${programCount} programs`);
console.log(`Total estimated value: ${totalValue}`);
// Iterate over programs
programs.forEach(program => {
console.log(`${program.name}: ${program.estimatedValue}`);
console.log(` Eligibility score: ${program.eligibilityScore}`);
console.log(` Apply: ${program.applicationUrl}`);
});programs = data['programs']
total_value = data['totalValue']
print(f"Found {len(programs)} programs")
print(f"Total estimated value: {total_value}")
for program in programs:
print(f"{program['name']}: {program['estimatedValue']}")
print(f" Eligibility score: {program['eligibilityScore']}")Filter by program type
Use the type query parameter to narrow results. Combine with technology and state filters for precise matching.
# Federal programs only
curl "https://api.incentedge.com/v1/programs/federal?technology=solar" \
-H "Authorization: Bearer YOUR_API_KEY"
# State programs for New York
curl "https://api.incentedge.com/v1/programs/state/NY?technology=solar" \
-H "Authorization: Bearer YOUR_API_KEY"
# Full program list with filters
curl "https://api.incentedge.com/v1/programs?type=state&state=NY&technology=wind" \
-H "Authorization: Bearer YOUR_API_KEY"// Federal programs for solar
const federal = await fetch(
'https://api.incentedge.com/v1/programs/federal?technology=solar',
{ headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
).then(r => r.json());
// NY state programs
const nyPrograms = await fetch(
'https://api.incentedge.com/v1/programs/state/NY',
{ headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
).then(r => r.json());
console.log(`Federal: ${federal.total} programs`);
console.log(`NY State: ${nyPrograms.total} programs`);Build a real use case
Integrate the match endpoint into a project finance model that automatically populates incentive values. Here's a complete example that fetches and summarizes incentives for any project.
async function getProjectIncentives(project) {
const API_KEY = process.env.INCENTEDGE_API_KEY;
const response = await fetch(
'https://api.incentedge.com/v1/programs/match',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
projectType: project.type,
state: project.state,
capacity: project.capacityKW,
includeBonus: true,
}),
}
);
if (!response.ok) {
throw new Error(`API error: ${response.status}`);
}
const { programs, totalValue } = await response.json();
return {
programCount: programs.length,
totalEstimatedValue: totalValue,
topProgram: programs[0],
allPrograms: programs,
};
}
// Example usage
const result = await getProjectIncentives({
type: 'solar',
state: 'CA',
capacityKW: 10000,
});
console.log(`Project qualifies for ${result.programCount} programs`);
console.log(`Total value: ${result.totalEstimatedValue}`);import os
import requests
def get_project_incentives(project_type, state, capacity_kw):
api_key = os.environ['INCENTEDGE_API_KEY']
response = requests.post(
'https://api.incentedge.com/v1/programs/match',
headers={
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json',
},
json={
'projectType': project_type,
'state': state,
'capacity': capacity_kw,
'includeBonus': True,
}
)
response.raise_for_status()
data = response.json()
return {
'program_count': len(data['programs']),
'total_value': data['totalValue'],
'programs': data['programs'],
}
# Example usage
result = get_project_incentives('solar', 'CA', 10000)
print(f"Found {result['program_count']} programs")
print(f"Total value: {result['total_value']}")Get your API key now
Pro plan includes full API access with 5,000 requests/min. 14-day free trial.
Start Free Trial