Back to WattGap
API Documentation

WattGap Rebate Data API

Machine-readable rebate intelligence for every US ZIP code.

The WattGap API provides structured rebate program data by ZIP code. Built for AI agents, chatbots, home improvement platforms, and applications that need source-attributed catalog records. Production catalog rows are not independently verified by WattGap and do not prove household eligibility. No API key required during public beta.

Endpoint

GEThttps://wattgap.com/api/rebates

Parameters

ParameterTypeRequiredDescription
zipstringYes5-digit US ZIP code
amistringNoAMI bracket: under_80_ami, under_150_ami
projectstringNoFilter by project type: heat_pump, water_heater, etc.

Example request

GET https://wattgap.com/api/rebates?zip=10001&ami=under_80_ami

Example response

Rewiring America catalog records preserve the source amount structure. A catalog amount does not prove household eligibility, does not prove that programs stack, and is not independently verified by WattGap. For that reason, the production catalog aggregate is withheld.

{
  "zip": "10001",
  "state": "NY",
  "data_source": "Rewiring America API",
  "total_available_usd": null,
  "total_available_usd_status": "withheld_non_additive_catalog_variants",
  "total_available_usd_reason": "The source catalog does not prove household eligibility, stacking compatibility, or additivity across incentive records.",
  "program_count": 1,
  "distinct_program_count": 1,
  "incentive_variant_count": 1,
  "programs": [
    {
      "id": "ra:08215dc11d0e79f26bba18e6e8f0af335201f761f564c180e5d0268e2838a536:0",
      "source_record_ref": "ra:08215dc11d0e79f26bba18e6e8f0af335201f761f564c180e5d0268e2838a536:0",
      "source_record_index": 0,
      "program_group_key": "ra-program:utility|example%20utility|heat%20pump%20rebate|https%3A%2F%2Fhomes.rewiringamerica.org%2Fcalculator",
      "name": "Example Utility -- Heat Pump Rebate",
      "authority": "Example Utility",
      "authority_type": "utility",
      "program_url": "https://homes.rewiringamerica.org/calculator",
      "amount_type": "percent",
      "source_amount_type": "percent",
      "amount_basis": "representative_estimate",
      "amount_usd": null,
      "representative_amount_usd": 2400,
      "maximum_amount_usd": 4000,
      "amount_rate": 0.3,
      "amount_unit": null,
      "payment_type": "rebate",
      "equipment": ["heat_pump"],
      "eligibility": {
        "ami_requirement": null,
        "owner_status": "homeowner",
        "geographic_restriction": null
      },
      "notes": "Thirty percent of eligible cost",
      "active": true,
      "start_date": null,
      "end_date": null,
      "last_verified_at": null,
      "confidence_tier": "unverified_passthrough",
      "confidence_note": "This record appears in the Rewiring America catalog. WattGap has not independently verified its current terms, availability, or household eligibility.",
      "source": "Rewiring America",
      "upstream_incentive_id": "ra-example-heat-pump-rebate",
      "is_urgent": false
    }
  ],
  "meta": {
    "currency": "USD",
    "catalog_retrieved_at": "2026-07-28T12:00:00.000Z",
    "response_generated_at": "2026-07-28T12:00:00.123Z",
    "data_source_url": "https://api.rewiringamerica.org",
    "ra_items_dropped": 0
  }
}

How to read the response

id, source_record_ref, source_record_index
id and source_record_ref are the same response-scoped reference. They are not a durable upstream program ID. source_record_index is the record's original position in the upstream response before WattGap filters rows.
upstream_incentive_id
The id Rewiring America carries on that source row, or null when the row has none. It is published so you can correlate a record with the upstream catalog and with WattGap support logs. It is not a primary key and not durable: the upstream catalog reuses and retires these values, and two returned rows can share one. Key your records on source_record_ref, never on this field.
program_count, distinct_program_count, incentive_variant_count
program_count and distinct_program_count count normalized program groups. incentive_variant_count counts returned source rows. Source variants remain separate and are not assumed to stack.
amount_usd, representative_amount_usd, maximum_amount_usd, amount_rate
amount_usd is the source catalog dollar amount only for a flat dollar record. representative_amount_usd is a representative estimate, and maximum_amount_usd is a cap. amount_rate is a fraction or per-unit rate that still requires household inputs. A null amount means the source did not supply a usable value for that field, not zero dollars.
amount_type, source_amount_type, amount_basis, amount_unit
source_amount_type retains the upstream type, while amount_type is WattGap's normalized type. amount_basis says which usable value determined the representation. amount_unit is a validated official unit and is null when there is no usable per-unit rate.
eligibility.ami_requirement, eligibility.owner_status
ami_requirement is always null on catalog records. The source catalog publishes no per-program AMI rule, so a program's AMI condition is genuinely unknown here rather than unrestricted. The upstream household AMI flags describe the household in the request, not a program's requirement, and the ami query parameter only scopes the upstream catalog lookup. For a household AMI determination with provenance, use /api/calculate-incentives. owner_status is reported only when the source row carries one.
catalog_retrieved_at, response_generated_at, last_verified_at
catalog_retrieved_at records the successful upstream retrieval. response_generated_at records when this response was created. Neither timestamp is a verification date. Unverified catalog rows therefore have last_verified_at: null.
Rate limit

Public API: 60 requests per minute per IP. No API key required during beta.

Use cases

AI Assistant Integration

Give your Perplexity plugin, ChatGPT action, or custom AI agent access to source-attributed rebate catalog records by ZIP code, with amount and verification limits encoded in the response.

Home Improvement Platforms

Use source-reported program structures as an input to your own household-specific eligibility flow. Catalog rows alone are not an approved net-cost calculation.

Contractor CRMs

Surface catalog programs and their caveats in your workflow while keeping rates, representative estimates, and source dollar amounts distinct.

Utility Portals

Help customers discover administering sources beyond the utility. The catalog does not assert that separate programs stack for a household.

Coming Soon

API Keys and Higher Rate Limits

Apply for early access to authenticated API access with higher rate limits and webhook support. Webhooks will push rebate program updates to your endpoint as programs are added or changed.

Apply for early access

Or email us directly: [email protected]