API Lufop

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:

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

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=101 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

1. Retrieve 100 speed cameras in France (JSON format)
https://api.lufop.net/api?key=<your_key>&format=json&nbr=100&pays=fr
2. Get speed cameras updated since January 1, 2024
https://api.lufop.net/api?key=<your_key>&since=2024-01-01
3. Radars within ~10 km of Lyon (GPS coordinates)
https://api.lufop.net/api?key=<your_key>&q=45.75,4.85&m=100
4. Get the 50 latest updates in Italy (XML format)
https://api.lufop.net/api?key=<your_key>&format=xml&nbr=50&pays=it
5. Get radars from the city of Narbonne (XML format)
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  |  redlight
Automatically 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

API Access Request Version française