Free Access to Radar Data
Use our API to integrate speed cameras from France and other countries into your projects. Licensed under CC BY-SA 4.0.
Select a Country
+50,000
Speed cameras listed
20+
Countries covered
100% free
under CC BY-SA 4.0 license
CC BY-SA 4.0 License
As you may know, Lufop.net and all its content are shared under the CC BY-SA 4.0 license. This means you can:
- Share — copy and redistribute the material in any medium or format
- Adapt — remix, transform, and build upon the material for any purpose, even commercially
This license is suitable for free cultural works. The licensor cannot revoke these freedoms as long as you follow the license terms.
Please include a backlink to lufop.net if you build an app or website using this data.
Use Our Radar API
Example API call to retrieve radars:
XML Format :
https://api.lufop.net/api?key=<key>&format=xml&nbr=2
<markers> <marker ID="201239" name="Radar de Chantier FR" lat="48.769664" lng="-0.706603" type="154" commune="Tinchebray-Bocage" voie="D924" flash="D" emplacement="R" azimut="150" update="2023-02-11 09:22:01"/> <marker ID="227341" name="Radar Fixe FR 80" lat="49.0860177" lng="7.3727462" type="13" commune="Hottviller" voie="D620" flash="D" emplacement="L" azimut="110" update="2023-02-11 09:21:07"/> </markers>
JSON Format:
https://api.lufop.net/api?key=<key>&format=json&nbr=2
[
{
"ID":"172755",
"name":"FR Radar Fixe FR 70",
"lat":47.7235,
"lng":-0.00997,
"type":"18",
"commune":"Clermont-Créans",
"voie":"D323",
"flash":"B",
"emplacement":"R",
"azimut":"210",
"update":"2023-02-11 10:24:54",
"vitesse":"80"
},
{
"ID":"163273",
"name":"FR Radar Fixe FR 90",
"lat":47.8134,
"lng":0.06263,
"type":"33",
"commune":"Cérans-Foulletourte",
"voie":"D323",
"flash":"B",
"emplacement":"R",
"azimut":"12",
"update":"2023-02-11 09:53:43",
"vitesse":"30"
}
]
✅ Compact LLM Format (schema + data)
This format is optimized for AI and LLM models: it drastically reduces the JSON size by eliminating field name repetition. LLMs process structured arrays more efficiently than verbose objects, which enhances contextual understanding, reduces token costs, and speeds up analysis.
https://api.lufop.net/api?key=<key>&format=jsonc&nbr=2
{
"s":["ID","name","lat","lng","type","commune","voie","flash","emplacement","azimut","pays","nom_pays","update","typeradar","dept","vitesse"],
"d":[
["204120","Radar de Chantier FR",43.211265,3.029909,"154","Narbonne","Route de Perpignan","D","R",220,"FR","FRANCE","2025-10-20 15:14:54","","11 - Aude","80"],
["169714","Radar Fixe FR 80",43.1273,3.06027,"13","Narbonne","D32","D","R",308,"FR","FRANCE","2025-01-02 16:05:30","tourelle","11 - Aude","80"],["169713","Radar Fixe FR 80",43.1425,3.05099,"13","Narbonne","D32","D","R",165,"FR","FRANCE","2024-06-25 12:51:38","tourelle","11 - Aude","80"]
]
}
Benefits for LLMs: - 60% to 80% reduction in token usage - ideal tabular structure for automated analysis - faster parsing - improved model response accuracy (less lexical noise)
API Parameters
- format: xml (default), json
- pays: fr | it | ch | br | es... (default: fr)
- nbr: number of results (default: 10, max: 10000)
- since: update date (e.g., since=2022-01-01)
- q: GPS coordinates (e.g., q=44.866488,2.268774)
- m: radius un km around the GPS point (e.g., m=100)
- c: City (e.g., c=narbonne)
Options (API v1.2 - 2023-02-10):
- Flash:
- F: Front
- B: Back
- D: Both directions (Front and Back)
- Position of the camera:
- L: Left side of the road
- R: Right side of the road
- C: Center of the road or between two lanes
Distance calculation:
The m parameter (margin) defines an approximate geographic search area around the GPS point.
It is not an exact distance expressed in kilometers.
The search is performed using a latitude/longitude bounding box, not a spherical distance calculation.
In practice, m is an internal unit corresponding to approximately 1/10 of a real kilometer
(for example, m=10 ≈ 1 km).
Azimuth:
Radar orientation expressed in degrees (0–360), corresponding to the direction the radar is facing
(flash direction), and not the direction of traffic flow.
This value is provided for informational purposes and may be approximate depending on the data sources.
API Usage Examples
https://api.lufop.net/api?key=<your_key>&format=json&nbr=100&pays=fr
https://api.lufop.net/api?key=<your_key>&since=2024-01-01
https://api.lufop.net/api?key=<your_key>&q=45.75,4.85&m=100
https://api.lufop.net/api?key=<your_key>&format=xml&nbr=50&pays=it
https://api.lufop.net/api?key=<your_key>&format=xml&c=narbonne
Replace <your_key> with your personal API key.
Add a Speed Camera via API
This API allows you to submit fixed, mobile, construction-zone or red-light speed cameras directly to the Lufop database. All submissions are automatically enriched using OpenStreetMap data (country, city, street) and placed in a moderation queue before publication.
📡 Endpoint
POST https://api.lufop.net/api_in.php?key=<your_api_key>
🔐 An API key is mandatory for every request. The request will fail if the key is missing, invalid or disabled.
📝 Request Body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
| lat | float | Yes | Latitude of the camera |
| lng | float | Yes | Longitude of the camera |
| type | string | Yes |
Camera type:
fixed |
mobile |
construction |
redlightAutomatically mapped to Lufop internal categories. |
| speed | int|null | Optional | Speed limit (for fixed cameras only) |
| user | string | Yes | Anonymous client-side generated UUID |
| comment | string | Optional | User-provided additional information |
📤 Example Request
POST https://api.lufop.net/api_in.php?key=123456ABCDEF
{
"lat": 45.123456,
"lng": 5.987654,
"type": "fixed",
"speed": 80,
"user": "8f2c8a25-3b77-4924-a23b-1b2be742ee34",
"comment": "Camera facing Grenoble direction"
}
📥 Success Response
{
"status": "success",
"message": "Camera submitted and pending validation."
}
❌ Error Responses
{
"status": "error",
"message": "Invalid API key"
}
{
"status": "error",
"message": "Missing required fields: lat, lng"
}
{
"status": "error",
"message": "No radar type found for country=France speed=90 type=mobile"
}
ℹ️ Important Notes
- An API key is required and must be active.
- Every submitted camera is manually reviewed before publication.
- The UUID identifies the contributor while preserving anonymity.
- OSM reverse-geocoding automatically enriches the data (country, city, street).
- Submission quotas depend on your API subscription plan.
- Common errors: invalid type, invalid coordinates, invalid API key.