March 30, 2026 · GreenCalc Team · 10 min read

How to Integrate MaPrimeRenov’ Calculations in Your App

A developer’s guide to calculating France’s flagship renovation subsidy programmatically — income categories, climate zones, stacking rules, and three worked examples at different income levels.

MaPrimeRenov’ is France’s primary renovation subsidy, distributing over €3 billion per year to homeowners improving their properties’ energy efficiency. If you are building a fintech app, an energy advisor platform, or a contractor quoting tool that serves the French market, you need to calculate MaPrimeRenov’ amounts accurately.

The problem: the rules involve 4 income categories, 3 climate zones, 11+ work types, and ceiling amounts that interact in non-obvious ways. This tutorial shows you how to use the GreenCalc API to handle all of it with a single POST request.

Understanding MaPrimeRenov’ income categories

MaPrimeRenov’ assigns every household to one of four color-coded income categories based on their revenu fiscal de reference (RFR — the reference fiscal income from the tax notice) and their household size. Thresholds are higher in Ile-de-France (Paris region) due to the higher cost of living.

CategoryColor1 person (IDF)1 person (Other)2 persons (IDF)2 persons (Other)
Very ModestBleu≤ €23,541≤ €17,009≤ €34,551≤ €24,875
ModestJaune≤ €28,657≤ €21,805≤ €42,058≤ €31,889
IntermediateViolet≤ €40,018≤ €30,549≤ €58,827≤ €44,907
HigherRose> €40,018> €30,549> €58,827> €44,907

You do not need to implement this lookup table yourself. The GreenCalc API determines the category from three inputs: annual_income, household_size, and postal_code (which tells us if the household is in Ile-de-France and which climate zone applies).

Climate zones and their impact

France is divided into three climate zones that affect CEE certificate amounts (not MaPrimeRenov’ itself, but CEE is always stacked on top):

The zone-to-CEE multiplier can make a significant difference. For roof insulation, a household in H1 might receive €14/m² in CEE versus €8/m² in H3. Over 80m² of roof, that is a €480 difference from CEE alone.

Example 1: Very modest income household (Bleu)

A family of 4 in Lille (59000, zone H1) with €20,000 annual income wants to install a heat pump and insulate their roof. This is the maximum-subsidy scenario:

curl -X POST https://greencalc.io/api/v1/eligibility/simulate \
  -H "X-Api-Key: gc_sandbox_000000000000000000000000000000000" \
  -H "Content-Type: application/json" \
  -d '{
    "country_code": "FR",
    "household": {
      "annual_income": 20000,
      "household_size": 4,
      "is_owner": true
    },
    "property": {
      "type": "HOUSE",
      "energy_rating": "F",
      "postal_code": "59000",
      "surface_m2": 100
    },
    "planned_works": [
      {"work_type": "HEAT_PUMP_AIR_WATER", "estimated_cost_eur": 14000},
      {"work_type": "ROOF_INSULATION", "estimated_cost_eur": 8000, "surface_m2": 80}
    ]
  }'

Expected response breakdown (sandbox, illustrative amounts):

{
  "eligible_subsidies": [
    {"scheme_name": "MaPrimeRenov",
     "type": "GRANT",
     "amount_eur": 11000.0,
     "details": "Bleu category: €11,000 heat pump + €75/m² roof (capped)"},
    {"scheme_name": "CEE",
     "type": "GRANT",
     "amount_eur": 5120.0,
     "details": "Zone H1: €4,000 heat pump + €14/m² × 80m² roof"},
    {"scheme_name": "Eco-PTZ",
     "type": "LOAN",
     "amount_eur": 30000.0,
     "details": "0% interest, 2 work types = €30,000 max"},
    {"scheme_name": "TVA 5.5%",
     "type": "VAT_REDUCTION",
     "amount_eur": 3190.0}
  ],
  "summary": {
    "total_estimated_cost_eur": 22000.0,
    "total_grants_eur": 16120.0,
    "total_loans_eur": 30000.0,
    "total_tax_savings_eur": 3190.0,
    "estimated_out_of_pocket_eur": 2690.0
  }
}

A very modest household pays only €2,690 out of €22,000 thanks to stacking MaPrimeRenov + CEE + reduced VAT. The remaining amount can be covered by the zero-interest Eco-PTZ loan.

Example 2: Intermediate income household (Violet)

A couple in Bordeaux (33000, zone H2) with €45,000 income wants just a heat pump replacement. Violet category gets lower MaPrimeRenov amounts:

curl -X POST https://greencalc.io/api/v1/eligibility/simulate \
  -H "X-Api-Key: gc_sandbox_000000000000000000000000000000000" \
  -H "Content-Type: application/json" \
  -d '{
    "country_code": "FR",
    "household": {
      "annual_income": 45000,
      "household_size": 2,
      "is_owner": true
    },
    "property": {
      "type": "HOUSE",
      "energy_rating": "D",
      "postal_code": "33000",
      "surface_m2": 90
    },
    "planned_works": [
      {"work_type": "HEAT_PUMP_AIR_WATER", "estimated_cost_eur": 16000}
    ]
  }'

At the Violet level, MaPrimeRenov’ for a heat pump drops to around €3,000 (versus €11,000 for Bleu). CEE remains the same regardless of income. The Eco-PTZ ceiling for a single work type is €15,000 instead of €30,000. Total grants will be roughly €6,500 — still meaningful on a €16,000 project.

Example 3: High income household (Rose)

A household in Nice (06000, zone H3) with €65,000 income doing a comprehensive renovation. Rose category gets zero MaPrimeRenov for individual works — but there is a workaround:

curl -X POST https://greencalc.io/api/v1/eligibility/simulate \
  -H "X-Api-Key: gc_sandbox_000000000000000000000000000000000" \
  -H "Content-Type: application/json" \
  -d '{
    "country_code": "FR",
    "household": {
      "annual_income": 65000,
      "household_size": 2,
      "is_owner": true
    },
    "property": {
      "type": "HOUSE",
      "energy_rating": "G",
      "postal_code": "06000",
      "surface_m2": 120
    },
    "planned_works": [
      {"work_type": "WALL_INSULATION_EXTERIOR", "estimated_cost_eur": 18000, "surface_m2": 100},
      {"work_type": "HEAT_PUMP_AIR_WATER", "estimated_cost_eur": 14000},
      {"work_type": "WINDOWS_DOUBLE_GLAZING", "estimated_cost_eur": 8000},
      {"work_type": "ROOF_INSULATION", "estimated_cost_eur": 7000, "surface_m2": 60}
    ]
  }'

The workaround is Parcours Accompagne (the guided global renovation pathway). When Rose households submit 2+ work types that achieve a 2-class improvement on the DPE energy certificate, they qualify for a flat subsidy (10% of costs, capped at €5,000 for Rose). Plus, CEE certificates still apply to everyone, and Eco-PTZ goes up to €50,000 for a global renovation. Even at the highest income level, a €47,000 project could yield €5,000+ in grants and a €50,000 interest-free loan.

Handling the API response in your code

The response always contains an eligible_subsidies array and a summary object. Here is how to parse it in JavaScript:

const response = await fetch('https://greencalc.io/api/v1/eligibility/simulate', {
  method: 'POST',
  headers: {
    'X-Api-Key': apiKey,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(simulationRequest)
});

const data = await response.json();

// Show the headline number
const { total_grants_eur, total_loans_eur, estimated_out_of_pocket_eur } = data.summary;
console.log(`Grants: €${total_grants_eur}, Loans: €${total_loans_eur}`);
console.log(`Out of pocket: €${estimated_out_of_pocket_eur}`);

// Break down by scheme
data.eligible_subsidies.forEach(s => {
  console.log(`${s.scheme_name}: €${s.amount_eur} (${s.type})`);
});

Key integration tips

Rate limits: The sandbox allows 100 requests per minute. For production use, request a live API key with higher limits and guaranteed SLA.

Stacking rules: what combines with what

The beauty of the French system is that most subsidies stack. The GreenCalc API calculates all of them automatically, but here is the logic:

SchemeStacks with MaPrimeRenov?Stacks with CEE?Stacks with Eco-PTZ?
MaPrimeRenovYesYes
CEEYesYes
Eco-PTZYesYes
TVA 5.5%YesYesYes

The only restriction: total subsidies cannot exceed 100% of the work cost (90% for Bleu/Jaune, 75% for Violet, 60% for Rose under Parcours Accompagne). The API enforces these caps automatically.

For more on how GreenCalc compares across all five countries, see our EU Renovation Subsidies Guide 2026. For information about building a full calculator UI on top of this API, check the renovation cost calculator tutorial.

Frequently Asked Questions

How are MaPrimeRenov income categories determined?

MaPrimeRenov uses 4 income categories (Bleu, Jaune, Violet, Rose) based on household fiscal income and household size. Thresholds differ between Ile-de-France and other regions. The GreenCalc API determines the category automatically from the annual_income, household_size, and postal_code fields.

What climate zones does MaPrimeRenov use?

France is divided into 3 climate zones: H1 (northern and eastern France, coldest), H2 (western France, moderate), and H3 (Mediterranean coast, mildest). Zone H1 qualifies for higher CEE certificate amounts. The GreenCalc API maps postal codes to climate zones automatically.

Can I test MaPrimeRenov calculations without an API key?

Yes. The GreenCalc sandbox requires no signup. Use the fixed API key gc_sandbox_000000000000000000000000000000000 to test all endpoints. Sandbox responses use illustrative amounts based on real subsidy structures.

Does the API handle MaPrimeRenov Parcours Accompagne?

Yes. When you submit 2+ planned works that together would achieve a significant energy class improvement, the API evaluates eligibility for Parcours Accompagne (global renovation pathway) in addition to individual measure grants, and returns whichever option yields the highest benefit.

GreenCalc is built by AZMORIS Group. MaPrimeRenov data sourced from ANAH official publications. Always verify with maprimerenov.gouv.fr before filing applications.