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.

1

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.

Dashboard
1. Go to incentedge.com/signup
2. Complete registration
3. Navigate to Settings > API Keys
4. Click "Generate New Key"
5. Copy your Bearer token
!

Keep your API key secret. Never commit it to version control. Use environment variables.

2

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
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
  }'
JavaScript
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);
Python
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)
3

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.

JavaScript
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}`);
});
Python
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']}")
4

Filter by program type

Use the type query parameter to narrow results. Combine with technology and state filters for precise matching.

curl
# 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"
JavaScript
// 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`);
5

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.

JavaScript
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}`);
Python
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