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.
| Category | Color | 1 person (IDF) | 1 person (Other) | 2 persons (IDF) | 2 persons (Other) |
|---|---|---|---|---|---|
| Very Modest | Bleu | ≤ €23,541 | ≤ €17,009 | ≤ €34,551 | ≤ €24,875 |
| Modest | Jaune | ≤ €28,657 | ≤ €21,805 | ≤ €42,058 | ≤ €31,889 |
| Intermediate | Violet | ≤ €40,018 | ≤ €30,549 | ≤ €58,827 | ≤ €44,907 |
| Higher | Rose | > €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):
- H1 — Northern and eastern France (Lille, Paris, Strasbourg, Lyon). Coldest zone, highest CEE values.
- H2 — Western France (Nantes, Bordeaux, Toulouse). Moderate climate, medium CEE values.
- H3 — Mediterranean coast (Marseille, Nice, Montpellier). Mildest climate, lowest CEE values.
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
- Always send the postal code — it determines both the income category thresholds (IDF vs. other) and the climate zone (for CEE). Without it, the API cannot calculate accurately.
- Income is annual, pre-tax — this corresponds to the revenu fiscal de reference (line 25 of the French tax notice avis d’imposition). If your user does not know their exact RFR, use a reasonable approximation of gross annual income.
- Surface area matters for insulation — MaPrimeRenov’ pays per m² for insulation works (roof, walls, floor). Include the
surface_m2field for these work types. For equipment (heat pumps, boilers), it is not needed. - Energy rating affects Parcours Accompagne — properties rated F or G (“passoires thermiques”) get bonus amounts under the global renovation pathway. Include
energy_ratingwhen available. - Monitor changes with the changelog — MaPrimeRenov’ rates change at least twice per year. Subscribe to
GET /api/v1/eligibility/changelogor set up a webhook to be notified of updates.
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:
| Scheme | Stacks with MaPrimeRenov? | Stacks with CEE? | Stacks with Eco-PTZ? |
|---|---|---|---|
| MaPrimeRenov | — | Yes | Yes |
| CEE | Yes | — | Yes |
| Eco-PTZ | Yes | Yes | — |
| TVA 5.5% | Yes | Yes | Yes |
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.