c0mm0.com — the continuously verified register of European data

Register record·API·FR·MUNICIPALITY·Updated DailyVERIFIED · checked 21h ago
I

Air Quality Index - Angers Loire MétropoleIndice de qualité de l'air - Angers Loire Métropole

Indice de qualité de l'air - Angers Loire MétropoleAir Quality Index - Angers Loire Métropole

dataairplqualiteairangers

APIJoinable5/7Query nowOpen workbenchSubscribe🇫🇷France

This API provides the air quality index for the municipalities of Angers Loire Métropole, published by the metropolitan authority. The index is composed of five sub-indices, each representing a specific air pollutant: fine particles (PM10), fine particulate matter (PM2.5), ozone (O3), nitrogen dioxide (NO2), and sulphur dioxide (SO2). The overall index reflects the highest sub-index value among these pollutants. The data is useful for monitoring local air pollution levels and informing residents about air quality conditions across the metropolitan area.Indice de qualité de l'air pour les communes de Angers Loire Métropole Un indice est composé de 5 sous-indices, chacun étant représentatif d'un polluant de l'air : particules fines (PM10) particules de diamètre aérodynamique (PM25) ozone (O3) dioxyde d'azote (NO2) dioxyde de soufre (SO2) Le sous-...

environment
57
fair

Weighted across five axes. Tap a ring for what it measures.

Data schema (26 fields)

Filterable via the API (24)
iddatecode_insee_communecommune_nomindicevaleurcouleursous_indice_so2sous_indice_so2_valeursous_indice_so2_couleursous_indice_no2sous_indice_no2_valeursous_indice_no2_couleursous_indice_03sous_indice_o3_valeursous_indice_o3_couleursous_indice_pm10sous_indice_pm10_valeursous_indice_pm10_couleursous_indice_pm25sous_indice_pm25_valeursous_indice_pm25_couleurdate_creationdate_modif

Click a field to see example values.

FillFieldTypeDescription
100%idFilterable via the APIintUnique record identifier.Unique record identifier.
100%dateFilterable via the APIdateDate the air quality index applies to.Date the air quality index applies to.
100%code_insee_communeFilterable via the APIINSEE commune codeintINSEE code identifying the municipality.INSEE code identifying the municipality.
100%commune_nomFilterable via the APICommune nomtextName of the municipality.Name of the municipality.
100%indiceFilterable via the APItextOverall air quality index rating (e.g. good, degraded).Overall air quality index rating (e.g. good, degraded).
100%valeurFilterable via the APIintNumeric value of the overall air quality index.Numeric value of the overall air quality index.
100%couleurFilterable via the APItextHex color code representing the overall index level.Hex color code representing the overall index level.
100%sous_indice_so2Filterable via the APISous indice so2textSulphur dioxide (SO2) sub-index rating.Sulphur dioxide (SO2) sub-index rating.
100%sous_indice_so2_valeurFilterable via the APISous indice so2 valeurintNumeric value of the SO2 sub-index.Numeric value of the SO2 sub-index.
100%sous_indice_so2_couleurFilterable via the APISous indice so2 couleurtextHex color code representing the SO2 sub-index level.Hex color code representing the SO2 sub-index level.
100%sous_indice_no2Filterable via the APISous indice no2textNitrogen dioxide (NO2) sub-index rating.Nitrogen dioxide (NO2) sub-index rating.
100%sous_indice_no2_valeurFilterable via the APISous indice no2 valeurintNumeric value of the NO2 sub-index.Numeric value of the NO2 sub-index.
100%sous_indice_no2_couleurFilterable via the APISous indice no2 couleurtextHex color code representing the NO2 sub-index level.Hex color code representing the NO2 sub-index level.
99.9%sous_indice_03Filterable via the APISous indice 03textOzone (O3) sub-index rating.Ozone (O3) sub-index rating.
99.9%sous_indice_o3_valeurFilterable via the APISous indice o3 valeurintNumeric value of the ozone (O3) sub-index.Numeric value of the ozone (O3) sub-index.
99.9%sous_indice_o3_couleurFilterable via the APISous indice o3 couleurtextHex color code representing the O3 sub-index level.Hex color code representing the O3 sub-index level.
99.9%sous_indice_pm10Filterable via the APISous indice pm10textPM10 particulate matter sub-index rating.PM10 particulate matter sub-index rating.
99.9%sous_indice_pm10_valeurFilterable via the APISous indice pm10 valeurintNumeric value of the PM10 sub-index.Numeric value of the PM10 sub-index.
99.9%sous_indice_pm10_couleurFilterable via the APISous indice pm10 couleurtextHex color code representing the PM10 sub-index level.Hex color code representing the PM10 sub-index level.
99.9%sous_indice_pm25Filterable via the APISous indice pm25textPM2.5 particulate matter sub-index rating.PM2.5 particulate matter sub-index rating.
—sous_indice_pm25_valeurFilterable via the APISous indice pm25 valeurintNumeric value of the PM2.5 sub-index.Numeric value of the PM2.5 sub-index.
—sous_indice_pm25_couleurFilterable via the APISous indice pm25 couleurtextHex color code representing the PM2.5 sub-index level.Hex color code representing the PM2.5 sub-index level.
—date_creationFilterable via the APIDate creationdateDate the record was created.Date the record was created.
—date_modifFilterable via the APIDate modifdateDate the record was last modified.Date the record was last modified.
—geo_shapeShapegeo_shapeGeographic boundary shape of the municipality.Geographic boundary shape of the municipality.
—geo_point_2dCoordinatesgeo_point_2dGeographic coordinates (latitude and longitude) of the municipality.Geographic coordinates (latitude and longitude) of the municipality.

Schema captured from opendatasoft 2 days ago.

Query the data

Pick columns and a sort, then fetch a live preview straight from the source. Choose an API-filterable column (marked ▾) under “Where” to pick from its list of values.

=

Sample data (5 records)

These rows are ODbL-1.0: share-alike. Reusing them obliges you to license any derived database on the same terms.

Record 1id: 11492634 · date: 2026-07-27
{
  "id": 11492634,
  "date": "2026-07-27",
  "indice": "moyen",
  "valeur": 2,
  "couleur": "#50ccaa",
  "geo_shape": "[large value omitted]",
  "date_modif": "2026-07-28",
  "commune_nom": "Cantenay-Épinard",
  "geo_point_2d": {
    "lat": 47.538028990338454,
    "lon": -0.5666051046281048
  },
  "date_creation": "2026-07-26",
  "sous_indice_03": "moyen",
  "sous_indice_no2": "bon",
  "sous_indice_so2": "bon",
  "sous_indice_pm10": "bon",
  "sous_indice_pm25": "bon",
  "code_insee_commune": 49055,
  "sous_indice_o3_valeur": 2,
  "sous_indice_no2_valeur": 1,
  "sous_indice_o3_couleur": "#50ccaa",
  "sous_indice_so2_valeur": 1,
  "sous_indice_no2_couleur": "#50f0e6",
  "sous_indice_pm10_valeur": 1,
  "sous_indice_pm25_valeur": 1,
  "sous_indice_so2_couleur": "#50f0e6",
  "sous_indice_pm10_couleur": "#50f0e6",
  "sous_indice_pm25_couleur": "#50f0e6"
}
Record 2id: 9987205 · date: 2025-11-10
{
  "id": 9987205,
  "date": "2025-11-10",
  "indice": "moyen",
  "valeur": 2,
  "couleur": "#50ccaa",
  "geo_shape": "[large value omitted]",
  "date_modif": "2025-11-12",
  "commune_nom": "Avrillé",
  "geo_point_2d": {
    "lat": 47.50527821245373,
    "lon": -0.6005944719115841
  },
  "date_creation": "2025-11-08",
  "sous_indice_03": "moyen",
  "sous_indice_no2": "bon",
  "sous_indice_so2": "bon",
  "sous_indice_pm10": "bon",
  "sous_indice_pm25": "bon",
  "code_insee_commune": 49015,
  "sous_indice_o3_valeur": 2,
  "sous_indice_no2_valeur": 1,
  "sous_indice_o3_couleur": "#50ccaa",
  "sous_indice_so2_valeur": 1,
  "sous_indice_no2_couleur": "#50f0e6",
  "sous_indice_pm10_valeur": 1,
  "sous_indice_pm25_valeur": 1,
  "sous_indice_so2_couleur": "#50f0e6",
  "sous_indice_pm10_couleur": "#50f0e6",
  "sous_indice_pm25_couleur": "#50f0e6"
}
Record 3id: 11232712 · date: 2026-06-13
{
  "id": 11232712,
  "date": "2026-06-13",
  "indice": "moyen",
  "valeur": 2,
  "couleur": "#50ccaa",
  "geo_shape": "[large value omitted]",
  "date_modif": "2026-06-14",
  "commune_nom": "Longuenée-en-Anjou",
  "geo_point_2d": {
    "lat": 47.54803645025677,
    "lon": -0.6672986372145855
  },
  "date_creation": "2026-06-11",
  "sous_indice_03": "moyen",
  "sous_indice_no2": "bon",
  "sous_indice_so2": "bon",
  "sous_indice_pm10": "moyen",
  "sous_indice_pm25": "bon",
  "code_insee_commune": 49200,
  "sous_indice_o3_valeur": 2,
  "sous_indice_no2_valeur": 1,
  "sous_indice_o3_couleur": "#50ccaa",
  "sous_indice_so2_valeur": 1,
  "sous_indice_no2_couleur": "#50f0e6",
  "sous_indice_pm10_valeur": 2,
  "sous_indice_pm25_valeur": 1,
  "sous_indice_so2_couleur": "#50f0e6",
  "sous_indice_pm10_couleur": "#50ccaa",
  "sous_indice_pm25_couleur": "#50f0e6"
}
Record 4id: 10109896 · date: 2025-12-02
{
  "id": 10109896,
  "date": "2025-12-02",
  "indice": "moyen",
  "valeur": 2,
  "couleur": "#50ccaa",
  "geo_shape": "[large value omitted]",
  "date_modif": "2025-12-03",
  "commune_nom": "Loire-Authion",
  "geo_point_2d": {
    "lat": 47.45969656148824,
    "lon": -0.37188820905016007
  },
  "date_creation": "2025-11-30",
  "sous_indice_03": "moyen",
  "sous_indice_no2": "bon",
  "sous_indice_so2": "bon",
  "sous_indice_pm10": "bon",
  "sous_indice_pm25": "bon",
  "code_insee_commune": 49307,
  "sous_indice_o3_valeur": 2,
  "sous_indice_no2_valeur": 1,
  "sous_indice_o3_couleur": "#50ccaa",
  "sous_indice_so2_valeur": 1,
  "sous_indice_no2_couleur": "#50f0e6",
  "sous_indice_pm10_valeur": 1,
  "sous_indice_pm25_valeur": 1,
  "sous_indice_so2_couleur": "#50f0e6",
  "sous_indice_pm10_couleur": "#50f0e6",
  "sous_indice_pm25_couleur": "#50f0e6"
}
Record 5id: 11979281 · date: 2026-10-21
{
  "id": 11979281,
  "date": "2026-10-21",
  "indice": "moyen",
  "valeur": 2,
  "couleur": "#50ccaa",
  "geo_shape": "[large value omitted]",
  "date_modif": "2026-10-20",
  "commune_nom": "Verrières-en-Anjou",
  "geo_point_2d": {
    "lat": 47.51489365968112,
    "lon": -0.47230587862030704
  },
  "date_creation": "2026-10-19",
  "sous_indice_03": "moyen",
  "sous_indice_no2": "bon",
  "sous_indice_so2": "bon",
  "sous_indice_pm10": "bon",
  "sous_indice_pm25": "bon",
  "code_insee_commune": 49323,
  "sous_indice_o3_valeur": 2,
  "sous_indice_no2_valeur": 1,
  "sous_indice_o3_couleur": "#50ccaa",
  "sous_indice_so2_valeur": 1,
  "sous_indice_no2_couleur": "#50f0e6",
  "sous_indice_pm10_valeur": 1,
  "sous_indice_pm25_valeur": 1,
  "sous_indice_so2_couleur": "#50f0e6",
  "sous_indice_pm10_couleur": "#50f0e6",
  "sous_indice_pm25_couleur": "#50f0e6"
}

Live sample captured at profiling time — values may have changed upstream.

Verification Status

Using the API

Configuration

Base URL
https://data.angers.fr/api/explore/v2.1/catalog/datasets/dataairplqualiteairangers

License

  • ✓ Redistributable
  • ✓ Attribution required

Query examples

curl -s 'https://data.angers.fr/api/explore/v2.1/catalog/datasets/dataairplqualiteairangers/records?limit=20' -H 'Accept: application/json'

First 20 records of the dataset as JSON.

Uses the Opendatasoft Explore v2.1 syntax — supports select, where, group_by and order_by.

Full API documentation ↗

Rate limits

5 000 req/day
per ipmeasured
observed 2 days ago

Dataset

Volume & freshness

Records
28k
28246
Update cadence
Daily
declared upstream
Last upstream update
3 days ago
2026-10-20
Temporal coverage
2024 → ongoing

License

No license declared upstream.

○ Documentation○ Data dictionary○ Versioning

Source: opendatasoft

Machine-readable & source

Indice de qualité de l'air - Angers Loire Métropole — live verification badge

Embed this badge in a README or wiki — it always shows the latest verification state and quality tier.