Bicycle Counts - Angers Loire MétropoleComptages vélo - Angers Loire Métropole
Comptages vélo - Angers Loire MétropoleBicycle Counts - Angers Loire Métropole
This API provides bicycle traffic counts collected by cameras across the Angers Loire Métropole area in western France, maintained by the local authority Angers Loire Métropole. Counts are recorded over 7-day periods on dedicated cycle paths, lanes, pavements, or roads, with results broken down at hourly intervals. Data fields include the counter number, the name of the road or path, and a description of the section being monitored. The dataset is useful for analysing cycling activity patterns and informing local cycling infrastructure planning.Trafic vélo par caméras, sur un axe réservé (coulée verte, piste ou bande cyclable), un trottoir ou une voirie, pendant 7 jours, avec résultats au pas horaire sur le territoire d'Angers Loire Métropole. NUM_CPTR : Numéro compteur VOIE : Nom de la voie TRONCON : description des tronçons sur lequel...
Trust score
How is this computed?Weighted across five axes. Tap a ring for what it measures.
Data schema (60 fields)
Click a field to see example values.
| Fill | Field | Type | Description |
|---|---|---|---|
| 100% | num_cptrNum cptr | int | — |
| 100% | voie | text | — |
| 100% | troncon | text | — |
| 100% | communeCommune | text | — |
| 100% | campagne | text | — |
| 100% | sens1 | text | — |
| 100% | sens2 | text | — |
| 100% | date_debutDate debut | text | — |
| 100% | date_finDate fin | text | — |
| 100% | s1_7_8hS1 7 8h | int | — |
| 100% | s1_s2_7_8hS1 s2 7 8h | int | — |
| 100% | s2_7_8hS2 7 8h | int | — |
| 100% | s1_s2_8_9hS1 s2 8 9h | int | — |
| 100% | s1_8_9hS1 8 9h | int | — |
| 100% | s2_8_9hS2 8 9h | int | — |
| 100% | s1_s2_9_10hS1 s2 9 10h | int | — |
| 100% | s1_9_10hS1 9 10h | int | — |
| 100% | s2_9_10hS2 9 10h | int | — |
| 100% | s1_s2_16_17hS1 s2 16 17h | int | — |
| 100% | s1_16_17hS1 16 17h | int | — |
| 100% | s2_16_17hS2 16 17h | int | — |
| 100% | s1_s2_17_18hS1 s2 17 18h | int | — |
| 100% | s1_17_18hS1 17 18h | int | — |
| 100% | s2_17_18hS2 17 18h | int | — |
| 100% | s1_s2_18_19hS1 s2 18 19h | int | — |
| 100% | s1_18_19hS1 18 19h | int | — |
| 100% | s2_18_19hS2 18 19h | int | — |
| 100% | s1_s2_19_20hS1 s2 19 20h | int | — |
| 100% | s1_19_20hS1 19 20h | int | — |
| 100% | s2_19_20hS2 19 20h | int | — |
| 100% | s1_s2_20_21hS1 s2 20 21h | int | — |
| 100% | s1_20_21hS1 20 21h | int | — |
| 100% | s2_20_21hS2 20 21h | int | — |
| 100% | s1_s2_21_22hS1 s2 21 22h | int | — |
| 100% | s1_21_22hS1 21 22h | int | — |
| 100% | s2_21_22hS2 21 22h | int | — |
| 100% | hpmmax_nbrHpmmax nbr | text | — |
| 100% | hpmmax_horHpmmax hor | text | — |
| 100% | hpmmoy | text | — |
| 100% | hpsmax_nbrHpsmax nbr | text | — |
| 100% | hpsmax_horHpsmax hor | text | — |
| 100% | hpsmoy | text | — |
| 100% | hpjmax_nbrHpjmax nbr | text | — |
| 100% | hpjmax_horHpjmax hor | text | — |
| 100% | hpjmoy | text | — |
| 100% | tmjo_s1Tmjo s1 | int | — |
| 100% | tmjo_s2Tmjo s2 | int | — |
| 100% | tmjo | int | — |
| 100% | tmjw_s1Tmjw s1 | int | — |
| 100% | tmjw_s2Tmjw s2 | int | — |
| — | tmjw | int | — |
| — | tmja_s1Tmja s1 | int | — |
| — | tmja_s2Tmja s2 | int | — |
| — | tmja | int | — |
| — | obs | text | — |
| — | annee | text | — |
| — | id_voie_ignId voie ign | text | — |
| — | source | text | — |
| — | geo_point_2dGeo Point | geo_point_2d | — |
| — | geo_shapeShape | geo_shape | — |
Schema captured from opendatasoft 7 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)
Record 1obs: — · tmja: 636
{
"obs": null,
"tmja": 636,
"tmjo": 656,
"tmjw": 585,
"voie": "Boulevard Decazeaux",
"annee": "2024",
"sens1": "vers boulevard georges clemenceau",
"sens2": "vers palce de la laiterie",
"hpjmoy": "44",
"hpmmoy": "44",
"hpsmoy": "44",
"source": "ANGERS LOIRE METROPOLE - DIRECTION TRANSPORTS DEPLACEMENTS",
"commune": "ANGERS",
"s1_7_8h": 21,
"s1_8_9h": 55,
"s2_7_8h": 11,
"s2_8_9h": 13,
"tmja_s1": 302,
"tmja_s2": 333,
"tmjo_s1": 315,
"tmjo_s2": 342,
"tmjw_s1": 272,
"tmjw_s2": 313,
"troncon": "Entre rue guittet et rue billard",
"campagne": "2024/10",
"date_fin": "20241012",
"num_cptr": 377,
"s1_9_10h": 21,
"s2_9_10h": 11,
"geo_shape": {
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-0.564546749,
47.47595625,
0
],
[
-0.5647197575,
47.4756922753,
0
]
]
},
"properties": {}
},
"s1_16_17h": 14,
"s1_17_18h": 20,
"s1_18_19h": 27,
"s1_19_20h": 24,
"s1_20_21h": 15,
"s1_21_22h": 9,
"s2_16_17h": 23,
"s2_17_18h": 37,
"s2_18_19h": 32,
"s2_19_20h": 29,
"s2_20_21h": 19,
"s2_21_22h": 16,
"date_debut": "20241006000001",
"hpjmax_hor": "S1S2_8_9H",
"hpjmax_nbr": "68",
"hpmmax_hor": "S1S2_8_9H",
"hpmmax_nbr": "68",
"hpsmax_hor": "S1S2_18_19H",
"hpsmax_nbr": "59",
"s1_s2_7_8h": 32,
"s1_s2_8_9h": 68,
"id_voie_ign": null,
"s1_s2_9_10h": 32,
"geo_point_2d": {
"lat": 47.47582426265,
"lon": -0.56463325325
},
"s1_s2_16_17h": 37,
"s1_s2_17_18h": 57,
"s1_s2_18_19h": 59,
"s1_s2_19_20h": 53,
"s1_s2_20_21h": 34,
"s1_s2_21_22h": 25
}Record 2obs: — · tmja: 135
{
"obs": null,
"tmja": 135,
"tmjo": 169,
"tmjw": 50,
"voie": "Rue Hélène Boucher",
"annee": "2024",
"sens1": "vers rue de la saillerie",
"sens2": "Vers autoroute A87 - Nord",
"hpjmoy": "9",
"hpmmoy": "13",
"hpsmoy": "7",
"source": "ANGERS LOIRE METROPOLE - DIRECTION TRANSPORTS DEPLACEMENTS",
"commune": "SAINT-BARTHELEMY-D'ANJOU",
"s1_7_8h": 4,
"s1_8_9h": 5,
"s2_7_8h": 7,
"s2_8_9h": 16,
"tmja_s1": 69,
"tmja_s2": 66,
"tmjo_s1": 87,
"tmjo_s2": 81,
"tmjw_s1": 24,
"tmjw_s2": 26,
"troncon": "Entre rue de la saillerie et autoroute A87 - Nord",
"campagne": "2024/10",
"date_fin": "20241013",
"num_cptr": 404,
"s1_9_10h": 1,
"s2_9_10h": 6,
"geo_shape": {
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-0.5035672231,
47.4894552992,
0
],
[
-0.5035553462,
47.4893295967,
0
]
]
},
"properties": {}
},
"s1_16_17h": 6,
"s1_17_18h": 10,
"s1_18_19h": 3,
"s1_19_20h": 1,
"s1_20_21h": 3,
"s1_21_22h": 7,
"s2_16_17h": 3,
"s2_17_18h": 6,
"s2_18_19h": 2,
"s2_19_20h": 1,
"s2_20_21h": 1,
"s2_21_22h": 1,
"date_debut": "20241007000001",
"hpjmax_hor": "S1S2_8_9H",
"hpjmax_nbr": "21",
"hpmmax_hor": "S1S2_8_9H",
"hpmmax_nbr": "21",
"hpsmax_hor": "S1S2_17_18H",
"hpsmax_nbr": "16",
"s1_s2_7_8h": 11,
"s1_s2_8_9h": 21,
"id_voie_ign": null,
"s1_s2_9_10h": 7,
"geo_point_2d": {
"lat": 47.48939244795,
"lon": -0.5035612846499999
},
"s1_s2_16_17h": 9,
"s1_s2_17_18h": 16,
"s1_s2_18_19h": 5,
"s1_s2_19_20h": 2,
"s1_s2_20_21h": 4,
"s1_s2_21_22h": 8
}Record 3obs: ok · tmja: 191
{
"obs": "ok",
"tmja": 191,
"tmjo": 191,
"tmjw": 192,
"voie": "Avenue Paul Prosper Guilhem",
"annee": "2025",
"sens1": "Vers Rue de la Chambre aux Deniers (Est)",
"sens2": "Vers Rue Charles Lacretelle (Ouest)",
"hpjmoy": "12",
"hpmmoy": "15",
"hpsmoy": "10",
"source": "ANGERS LOIRE METROPOLE - DIRECTION TRANSPORTS DEPLACEMENTS",
"commune": "BEAUCOUZE",
"s1_7_8h": 7,
"s1_8_9h": 8,
"s2_7_8h": 8,
"s2_8_9h": 13,
"tmja_s1": 103,
"tmja_s2": 88,
"tmjo_s1": 106,
"tmjo_s2": 85,
"tmjw_s1": 98,
"tmjw_s2": 94,
"troncon": "Entre Allée Henri Faris et Chemin de Molières",
"campagne": "2025/09",
"date_fin": "20251015",
"num_cptr": 308,
"s1_9_10h": 5,
"s2_9_10h": 5,
"geo_shape": {
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-0.6142658038,
47.4696053901,
0
],
[
-0.6142565543,
47.4697337601,
0
]
]
},
"properties": {}
},
"s1_16_17h": 9,
"s1_17_18h": 13,
"s1_18_19h": 12,
"s1_19_20h": 7,
"s1_20_21h": 0,
"s1_21_22h": 0,
"s2_16_17h": 5,
"s2_17_18h": 8,
"s2_18_19h": 6,
"s2_19_20h": 1,
"s2_20_21h": 0,
"s2_21_22h": 0,
"date_debut": "20251009000001",
"hpjmax_hor": "S1S2_8_9H",
"hpjmax_nbr": "21",
"hpmmax_hor": "S1S2_8_9H",
"hpmmax_nbr": "21",
"hpsmax_hor": "S1S2_17_18H",
"hpsmax_nbr": "21",
"s1_s2_7_8h": 15,
"s1_s2_8_9h": 21,
"id_voie_ign": null,
"s1_s2_9_10h": 10,
"geo_point_2d": {
"lat": 47.4696695751,
"lon": -0.61426117905
},
"s1_s2_16_17h": 14,
"s1_s2_17_18h": 21,
"s1_s2_18_19h": 18,
"s1_s2_19_20h": 8,
"s1_s2_20_21h": 0,
"s1_s2_21_22h": 0
}Record 4obs: ok · tmja: 623
{
"obs": "ok",
"tmja": 623,
"tmjo": 704,
"tmjw": 419,
"voie": "Rue de la Meignanne",
"annee": "2025",
"sens1": "Vers Rue de la Traquette (Nord-Ouest)",
"sens2": "Vers Boulevard Georges Clemenceau (Sud-Est)",
"hpjmoy": "49",
"hpmmoy": "57",
"hpsmoy": "46",
"source": "ANGERS LOIRE METROPOLE - DIRECTION TRANSPORTS DEPLACEMENTS",
"commune": "ANGERS",
"s1_7_8h": 7,
"s1_8_9h": 15,
"s2_7_8h": 28,
"s2_8_9h": 83,
"tmja_s1": 288,
"tmja_s2": 335,
"tmjo_s1": 329,
"tmjo_s2": 375,
"tmjw_s1": 186,
"tmjw_s2": 233,
"troncon": "Entre Boulevard Georges Clemenceau et Rue des Forces Françaises Int",
"campagne": "2025/09",
"date_fin": "20251015",
"num_cptr": 23,
"s1_9_10h": 10,
"s2_9_10h": 28,
"geo_shape": {
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-0.5671659063,
47.4768785367,
0
],
[
-0.5673950605,
47.4766774023,
0
]
]
},
"properties": {}
},
"s1_16_17h": 34,
"s1_17_18h": 58,
"s1_18_19h": 50,
"s1_19_20h": 19,
"s1_20_21h": 6,
"s1_21_22h": 5,
"s2_16_17h": 20,
"s2_17_18h": 27,
"s2_18_19h": 24,
"s2_19_20h": 17,
"s2_20_21h": 8,
"s2_21_22h": 5,
"date_debut": "20251009000001",
"hpjmax_hor": "S1S2_8_9H",
"hpjmax_nbr": "98",
"hpmmax_hor": "S1S2_8_9H",
"hpmmax_nbr": "98",
"hpsmax_hor": "S1S2_17_18H",
"hpsmax_nbr": "85",
"s1_s2_7_8h": 35,
"s1_s2_8_9h": 98,
"id_voie_ign": null,
"s1_s2_9_10h": 38,
"geo_point_2d": {
"lat": 47.4767779695,
"lon": -0.5672804834
},
"s1_s2_16_17h": 54,
"s1_s2_17_18h": 85,
"s1_s2_18_19h": 74,
"s1_s2_19_20h": 36,
"s1_s2_20_21h": 14,
"s1_s2_21_22h": 10
}Record 5obs: ok · tmja: 264
{
"obs": "ok",
"tmja": 264,
"tmjo": 302,
"tmjw": 169,
"voie": "Avenue Gallieni",
"annee": "2025",
"sens1": "Vers Rue de Bel Air (Ouest)",
"sens2": "Vers Avenue Jean Boutton (Est)",
"hpjmoy": "19",
"hpmmoy": "20",
"hpsmoy": "18",
"source": "ANGERS LOIRE METROPOLE - DIRECTION TRANSPORTS DEPLACEMENTS",
"commune": "LES PONTS-DE-CE",
"s1_7_8h": 14,
"s1_8_9h": 17,
"s2_7_8h": 5,
"s2_8_9h": 6,
"tmja_s1": 141,
"tmja_s2": 123,
"tmjo_s1": 161,
"tmjo_s2": 141,
"tmjw_s1": 91,
"tmjw_s2": 78,
"troncon": "Entre les deux giratoires dde l'A87, sur les passerelles",
"campagne": "2025/09",
"date_fin": "20251005",
"num_cptr": 415,
"s1_9_10h": 11,
"s2_9_10h": 8,
"geo_shape": {
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-0.5106381157,
47.4378408214,
0
],
[
-0.5105593564,
47.437663157,
0
]
]
},
"properties": {}
},
"s1_16_17h": 13,
"s1_17_18h": 12,
"s1_18_19h": 10,
"s1_19_20h": 10,
"s1_20_21h": 4,
"s1_21_22h": 1,
"s2_16_17h": 12,
"s2_17_18h": 20,
"s2_18_19h": 15,
"s2_19_20h": 7,
"s2_20_21h": 3,
"s2_21_22h": 1,
"date_debut": "20250929000001",
"hpjmax_hor": "S1S2_17_18H",
"hpjmax_nbr": "32",
"hpmmax_hor": "S1S2_8_9H",
"hpmmax_nbr": "23",
"hpsmax_hor": "S1S2_17_18H",
"hpsmax_nbr": "32",
"s1_s2_7_8h": 19,
"s1_s2_8_9h": 23,
"id_voie_ign": null,
"s1_s2_9_10h": 19,
"geo_point_2d": {
"lat": 47.4377519892,
"lon": -0.51059873605
},
"s1_s2_16_17h": 25,
"s1_s2_17_18h": 32,
"s1_s2_18_19h": 25,
"s1_s2_19_20h": 17,
"s1_s2_20_21h": 7,
"s1_s2_21_22h": 2
}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/compteurs_velo
License
- ✓ Redistributable
- ✓ Attribution required
Query examples
curl -s 'https://data.angers.fr/api/explore/v2.1/catalog/datasets/compteurs_velo/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.
Rate limits
Dataset
Volume & freshness
License
No license declared upstream.
Source: opendatasoft
Machine-readable & source
Embed this badge in a README or wiki — it always shows the latest verification state and quality tier.