{"id":"ba1b31aa-2a17-4278-9d6c-462a50aae91b","type":"API","name":"Ilots géographiques sur Rennes Métropole","slug":"ilots-geographiques-sur-rennes-metropole","description":"Cette couche contient les ilots géographiques constitués sur le territoire de Rennes Métropole. Ces ilots correspondent à un découpage du territoire selon les voiries et certains autres éléments topographiques de surface. Selon le territoire, la constitution, la mise à jour des données et la préc...","free_access_class":"FREE_NO_AUTH","auth_type":"NONE","homepage_url":"https://data.rennesmetropole.fr/explore/dataset/ilot_geographique/","docs_url":"https://data.rennesmetropole.fr/explore/dataset/ilot_geographique/","repo_url":null,"status":"ACTIVE","verification_state":"VERIFIED","tags":[],"logo_url":"https://s3-eu-west-1.amazonaws.com/aws-ec2-eu-1-opendatasoft-staticfileset/rennes-metropole/favicon","primary_source_url":"https://data.rennesmetropole.fr/explore/dataset/ilot_geographique/","extraction_confidence":"0.40","created_at":"2026-07-24T14:27:32.030Z","updated_at":"2026-09-07T06:42:49.702Z","last_verified_at":"2026-09-07T06:42:49.702Z","deprecated_at":null,"ranking_score":55,"last_ranked_at":"2026-08-28T22:40:08.676Z","last_seen_at":null,"last_validated_at":null,"last_uptime_at":"2026-09-05T00:42:23.791Z","search_vector":"'a':72B,94B 'autr':32B 'autres':82B 'certain':31B 'certains':81B 'ces':19B,69B 'cett':6B 'cette':56B 'constitues':62B 'constitut':41B 'constitution':91B 'constitué':12B 'contient':8B,58B 'correspond':21B 'correspondent':71B 'couch':7B 'couche':57B 'de':16B,35B,66B,85B 'decoupage':74B 'des':46B,96B 'donnees':97B 'donné':47B 'du':25B,75B 'découpag':24B 'elements':83B 'et':30B,48B,80B,98B 'geographiques':52A,61B 'géographiqu':2A,11B 'ilot':1A,10B,20B 'ilots':51A,60B,70B 'jour':45B,95B 'la':40B,42B,49B,90B,92B,99B 'le':14B,38B,64B,88B 'les':9B,28B,59B,78B 'metropole':55A,68B 'mise':43B,93B 'métropol':5A,18B 'prec':100B 'préc':50B 'renn':4A,17B 'rennes':54A,67B 'selon':27B,37B,77B,87B 'sur':3A,13B,53A,63B 'surfac':36B 'surface':86B 'territoir':15B,26B,39B 'territoire':65B,76B,89B 'topographiqu':34B 'topographiques':84B 'un':23B,73B 'voiri':29B 'voiries':79B 'à':22B,44B 'élément':33B","popularity_score":"0.0000","maintenance_score":"0.7000","institution_id":"2d13d215-786e-432c-9156-a3b3c92e5249","institution_type":"MUNICIPALITY","country_code":"FR","official_confidence":40,"proof_summary":"40% - Official domain (rennesmetropole.fr)","source_seed_url":null,"is_public_sector":true,"published_at":"2026-07-24T17:37:23.356Z","geographic_scope":"LOCAL","name_en":null,"description_en":null,"native_lang":null,"access_level":"direct","formats":["CSV"],"capability_tier":"live","trust_score":50.75,"merged_into_entry_id":null,"identity_key":"API|https://data.rennesmetropole.fr/explore/dataset/ilot_geographique|ilots géographiques sur rennes métropole","upstream_ref":"data.rennesmetropole.fr:dataset:ilot_geographique","access":{"level":"direct","primary":{"kind":"download","label":"Export CSV","method":"GET","url":"https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique/exports/csv","format":"CSV","source":"query_example","runnable":true,"direct":true},"actions":[{"kind":"download","label":"Export CSV","method":"GET","url":"https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique/exports/csv","format":"CSV","source":"query_example","runnable":true,"direct":true},{"kind":"query","label":"List records","method":"GET","url":"https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique/records?limit=20","source":"query_example","runnable":true,"direct":true},{"kind":"query","label":"Select & filter","method":"GET","url":"https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique/records?select=geo_point_2d%2Cgeo_shape%2Cgml_id&where=gml_id+is+not+null&limit=20","source":"query_example","runnable":true,"direct":true},{"kind":"query","label":"Run verified request","method":"GET","url":"https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique","source":"probe","runnable":true},{"kind":"landing","label":"Read the docs","method":"GET","url":"https://data.rennesmetropole.fr/explore/dataset/ilot_geographique/","source":"docs","runnable":false}],"formats":["CSV"]},"maturity":{"entry_id":"ba1b31aa-2a17-4278-9d6c-462a50aae91b","granularity":"entry","granularity_label":"One unit = one catalog entry. A PROXY for the SCOPE.md §4 ladder, which governs source families, not entries: a family with 400 entries moves this reading 400 times as much as a family with one. Never compare or combine with the source_family reading.","level":"joinable","level_index":5,"level_label":"Joinable","meaning":"Canonical identifiers and concepts mapped","counts_as_coverage":true,"blocked_by":null,"rungs":[{"level":"discovered","level_index":1,"label":"Discovered","meaning":"Source and metadata recorded","evidence":"membership of the named population the ladder is taken over","counts_as_coverage":false,"met":true,"reached":true,"criterion":"TRUE"},{"level":"verified","level_index":2,"label":"Verified","meaning":"Access tested successfully","evidence":"entries.verification_state = 'VERIFIED'","counts_as_coverage":false,"met":true,"reached":true,"criterion":"entries.verification_state = 'VERIFIED'"},{"level":"profiled","level_index":3,"label":"Profiled","meaning":"Schema, dimensions and licence understood","evidence":"a data profile with at least one field (entry_data_profiles.field_count > 0)","counts_as_coverage":false,"met":true,"reached":true,"criterion":"EXISTS (SELECT 1 FROM entry_data_profiles p WHERE p.entry_id = entries.id AND COALESCE(p.field_count, 0) > 0)"},{"level":"executable","level_index":4,"label":"Executable","meaning":"Queries run through Commodity","evidence":"entries.capability_tier = 'live' — today's proxy for \"queryable through us\"","counts_as_coverage":true,"met":true,"reached":true,"criterion":"entries.capability_tier = 'live'"},{"level":"joinable","level_index":5,"label":"Joinable","meaning":"Canonical identifiers and concepts mapped","evidence":"a field link to a canonical identifier whose sampled VALUES match its format","counts_as_coverage":true,"met":true,"reached":true,"criterion":"EXISTS (SELECT 1 FROM entry_field_links efl WHERE efl.entry_id = entries.id AND efl.identifier_id IS NOT NULL AND efl.value_status = 'match')"},{"level":"reproducible","level_index":6,"label":"Reproducible","meaning":"Snapshots and transformation evidence retained","evidence":"at least one retained evidence manifest (migration 078)","counts_as_coverage":true,"met":false,"reached":false,"criterion":"EXISTS (SELECT 1 FROM evidence_manifests em WHERE em.entry_id = entries.id)"},{"level":"guaranteed","level_index":7,"label":"Guaranteed","meaning":"Monitored against an operational reliability target","evidence":"an active reliability target with a named monitor (migration 096)","counts_as_coverage":true,"met":false,"reached":false,"criterion":"EXISTS (SELECT 1 FROM entry_reliability_targets rt WHERE rt.entry_id = entries.id AND rt.is_active = true)"}],"officialness":{"basis":"catalog_inherited","label":"Inherited from the upstream catalog: this item came from a trusted official government catalog, and that provenance — not per-item proof — is the warrant. Its own proof score is below 80 or it matched no registered institution (apps/worker/src/connectors/catalog/qualify-store.ts).","proof_confidence":40,"proven_threshold":80,"institution_id":"2d13d215-786e-432c-9156-a3b3c92e5249","definition":"CASE WHEN COALESCE(entries.is_public_sector, false) IS NOT TRUE THEN 'not_official' WHEN COALESCE(entries.official_confidence, 0) >= 80 AND entries.institution_id IS NOT NULL THEN 'per_item_proven' ELSE 'catalog_inherited' END"},"source_family":{"key":"data.rennesmetropole.fr","label":"One unit = one source family, approximated by the serving host of the entry's primary source URL (e.g. bdl.stat.gov.pl). A COMPUTED stand-in for the curated families of SCOPE.md §5, which no table holds yet. A family sits at the highest level any of its entries has reached, because a family is integrated to the depth of its deepest working integration. Never compare or combine with the entry reading."},"generated_at":"2026-09-07T21:03:18.019Z"},"api_details":{"id":"20c0279a-a793-419c-a58c-67d43610ff81","entry_id":"ba1b31aa-2a17-4278-9d6c-462a50aae91b","base_url":"https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique","openapi_url":null,"graphql_url":null,"api_version":null,"spec_format":null,"endpoints_count":null,"endpoints":[],"rate_limit_info":null,"free_tier_limits":null,"ping_url":"https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique","created_at":"2026-07-24T14:27:32.195Z","updated_at":"2026-07-24T14:27:32.195Z"},"dataset_details":{"id":"452697e0-0828-4048-bf26-d051dbb47924","entry_id":"ba1b31aa-2a17-4278-9d6c-462a50aae91b","upstream_issued":null,"upstream_modified":"2026-09-01T07:10:34.000Z","themes":[],"update_frequency":null,"temporal_start":null,"temporal_end":null,"spatial_coverage":null,"landing_page":null,"license_id":null,"license_raw":null,"has_documentation":false,"has_data_dictionary":false,"has_versioning":false,"source_portal":"opendatasoft","source_portal_url":"https://data.rennesmetropole.fr","created_at":"2026-07-24T14:38:03.241Z","updated_at":"2026-09-01T10:09:27.921Z","publisher":null,"publisher_url":null,"distributions":[],"license":null},"license":null,"reuse":{"license_id":null,"license_name":null,"license_url":null,"commercial_use":{"status":"unknown","value":null},"redistribution":{"status":"unknown","value":null},"attribution_required":{"status":"unknown","value":null},"share_alike":{"status":"unknown","value":null},"personal_data_warning":{"status":"unknown","value":null},"cache_and_mirror":{"status":"unknown","value":null},"undetermined":["commercial_use","redistribution","attribution_required","share_alike","personal_data_warning","cache_and_mirror"],"basis":"unverified","confidence":0.1,"confidence_tier":"low","source_text":null,"source_url":null,"reviewed_at":null},"license_raw":null,"latest_check":{"id":"5beb6a25-a658-4c31-81a2-611cd8301821","entry_id":"ba1b31aa-2a17-4278-9d6c-462a50aae91b","status":"VERIFIED","last_checked_at":"2026-09-07T06:42:49.394Z","p50_latency_ms":1477,"p95_latency_ms":null,"last_error":null,"consecutive_failures":0,"created_at":"2026-07-27T04:15:35.653Z","updated_at":"2026-09-07T06:42:49.394Z","consecutive_successes":12,"probe_url":"https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique","probe_method":"GET","probe_http_status":200,"probe_content_type":"application/json; charset=utf-8","probe_succeeded_at":"2026-09-07T06:42:49.394Z"},"data_profile":{"id":"cfa97a66-a7fb-4674-9040-fb7dce1a2672","entry_id":"ba1b31aa-2a17-4278-9d6c-462a50aae91b","profile_source":"opendatasoft","profile_kind":"dataset","dataset_id":"ilot_geographique","fields":[{"name":"geo_point_2d","type":"geo_point_2d","label":"Geo Point","filterable":false,"description":null,"description_en":"Geographic centroid coordinates of the block."},{"name":"geo_shape","type":"geo_shape","label":null,"filterable":false,"description":null,"description_en":"Polygon geometry outlining the boundaries of the geographic block."},{"name":"gml_id","type":"text","label":null,"filterable":true,"description":null,"description_en":"Unique GML identifier of the geographic block feature."},{"name":"objectid","type":"int","label":null,"filterable":true,"description":null,"description_en":"Internal record identifier."},{"name":"code_insee","type":"double","label":null,"filterable":true,"description":null,"description_en":"INSEE code of the commune containing the block."},{"name":"habitat","type":"int","label":null,"filterable":true,"description":null,"description_en":"Indicator flag related to housing/habitat status of the block."},{"name":"saisie_manuel","type":"int","label":null,"filterable":true,"description":null,"description_en":"Flag indicating whether the block was manually entered."},{"name":"date","type":"datetime","label":null,"filterable":true,"description":null,"description_en":"Date and time the record was last updated."}],"field_count":8,"sample_records":[{"date":"2026-08-31T05:00:22+00:00","gml_id":"v_ilot_topo.-1162","habitat":0,"objectid":-1162,"geo_shape":{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-1.740780861013415,48.04818869850885],[-1.740802336832636,48.04818628287989],[-1.740824105524591,48.04818589468574],[-1.740845741374449,48.04818754167907],[-1.740866826311394,48.04819119191785],[-1.74088673250587,48.04819671425468],[-1.740906772185092,48.04820471180098],[-1.740924713379402,48.048214536513136],[-1.740940298172079,48.04822602575259],[-1.740953733202663,48.04823947746399],[-1.74096020091168,48.04824816552722],[-1.740967752564799,48.048262446495976],[-1.740972102925685,48.04827675329526],[-1.740973441147418,48.048291326648176],[-1.740971741210881,48.04830588323192],[-1.740967036369443,48.048320141241426],[-1.740959419694987,48.04833381901513],[-1.740949036840897,48.04834665281565],[-1.740936089902201,48.048358394958456],[-1.740920834354814,48.04836881267666],[-1.74090338395143,48.04837779827386],[-1.740886325940515,48.04838434813204],[-1.740867813501928,48.04838950009186],[-1.740849219981407,48.04839290702162],[-1.740824277230636,48.048394988633376],[-1.740798882538812,48.048394389199046],[-1.740781551582808,48.04839236694707],[-1.740764652743779,48.04838897957275],[-1.740742064361483,48.04838209567255],[-1.740722017177448,48.04837328062959],[-1.740704613709325,48.04836274639435],[-1.740687370548193,48.04834819703869],[-1.740673666374169,48.048331324812665],[-1.74066786750844,48.04832078883956],[-1.740663645892277,48.04830901907774],[-1.740661562889836,48.0482972918739],[-1.740661749749013,48.048282287090295],[-1.740664959315072,48.04826784508611],[-1.740671135885814,48.04825384371431],[-1.740680158149446,48.04824055426653],[-1.740691851686783,48.04822823607884],[-1.740705986336655,48.04821712979207],[-1.740722289458692,48.048207451037094],[-1.740740444491321,48.0481993864393],[-1.74076009576965,48.04819309486169],[-1.740780861013415,48.04818869850885]]]]},"properties":{}},"code_insee":35047,"geo_point_2d":{"lat":48.04829044694814,"lon":-1.7408173724019693},"saisie_manuel":0},{"date":"2026-08-31T05:00:22+00:00","gml_id":"v_ilot_topo.-1163","habitat":0,"objectid":-1163,"geo_shape":{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-1.740349265596482,48.050466102057214],[-1.740363829727229,48.05046693332237],[-1.740380575527138,48.05046897477215],[-1.740395946926782,48.050471918932985],[-1.740416932336839,48.05047778792574],[-1.740437070976625,48.0504857347304],[-1.740455258576094,48.05049542654533],[-1.740471256644348,48.050506720654695],[-1.740484754924798,48.050519398275846],[-1.74049549048645,48.05053321154857],[-1.740503253578485,48.050547891673794],[-1.74050789374846,48.05056315406776],[-1.740509321451453,48.050578702711114],[-1.740507508575653,48.050594231478804],[-1.740502489810978,48.05060943904245],[-1.740494362453769,48.050624031131186],[-1.740483285441055,48.05063772318489],[-1.740469473649365,48.05065024851952],[-1.740453197244118,48.050661362949825],[-1.740434772593794,48.05067084976024],[-1.7404145574418,48.05067852567149],[-1.740392945443558,48.05068423989482],[-1.740370356882815,48.05068788280551],[-1.740347235731832,48.050689381739],[-1.740324024788625,48.05068870832501],[-1.740301179939219,48.050685875736185],[-1.740279146275113,48.05068093913315],[-1.740258351250046,48.050673994324974],[-1.740239200446693,48.050665177042646],[-1.740222704777939,48.05065505039886],[-1.740204124120601,48.05063937243337],[-1.740189550072505,48.05062143017658],[-1.740183331590502,48.05061013156905],[-1.74017882634551,48.050597571672874],[-1.740176600394796,48.050585036826135],[-1.7401767989139,48.05056905664207],[-1.740180223697859,48.05055365040767],[-1.740186812390042,48.050538714272946],[-1.740196438717039,48.05052453730527],[-1.740208912936789,48.05051139650327],[-1.740223993029756,48.05049954840479],[-1.740241386130453,48.05048922272019],[-1.740260753567932,48.05048062014185],[-1.740281717657005,48.050473908729685],[-1.740304935231647,48.05046899360573],[-1.740319050399618,48.050467174711336],[-1.740334494112824,48.050466161015024],[-1.740349265596482,48.050466102057214]]]]},"properties":{}},"code_insee":35047,"geo_point_2d":{"lat":48.050577729592554,"lon":-1.740342820490657},"saisie_manuel":0},{"date":"2026-08-31T05:00:22+00:00","gml_id":"v_ilot_topo.-1165","habitat":0,"objectid":-1165,"geo_shape":{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-1.736593164136264,48.05467708665654],[-1.736832139324757,48.05481198626397],[-1.737084194427608,48.054956107577304],[-1.737064547833727,48.054961452738304],[-1.736351770410365,48.05511871891361],[-1.7350955859043,48.05533642524275],[-1.734651226576741,48.05541018637965],[-1.735023389173714,48.05527621110512],[-1.735026371481279,48.05527509006648],[-1.735622016022694,48.055041544719785],[-1.735988443168055,48.05490977443172],[-1.73599897828317,48.05490536072329],[-1.736097737799839,48.05485761875382],[-1.736109935051443,48.05485058306126],[-1.736120161803499,48.05484225467733],[-1.736128117636882,48.0548328781212],[-1.736174407640841,48.05476546365874],[-1.736180691328995,48.05475304788765],[-1.736183003240833,48.054740028863996],[-1.736184679618297,48.05466080018627],[-1.736218921194377,48.05466179459432],[-1.736232018053082,48.05466156169884],[-1.73628884059084,48.05465788025522],[-1.73630176155498,48.05465642754131],[-1.736357266261141,48.054647480157506],[-1.736369761337014,48.05464483559704],[-1.736422868662859,48.05463079565615],[-1.736434690524231,48.0546270118925],[-1.736437285374424,48.054626026823115],[-1.736593164136264,48.05467708665654]]]]},"properties":{}},"code_insee":35047,"geo_point_2d":{"lat":48.05499764894894,"lon":-1.736126631111227},"saisie_manuel":0},{"date":"2026-08-31T05:00:22+00:00","gml_id":"v_ilot_topo.-1172","habitat":0,"objectid":-1172,"geo_shape":{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-1.735703335800968,48.02902624607706],[-1.735705546737961,48.02901629956293],[-1.735709799610604,48.029006657017206],[-1.735716011962877,48.028997504860875],[-1.735724063016981,48.02898902181417],[-1.735733794769125,48.02898137326437],[-1.735745018827716,48.02897470819019],[-1.735757519850151,48.028969154154],[-1.735771049079325,48.02896482153344],[-1.735785344615068,48.02896179457499],[-1.735800128745583,48.028960131594225],[-1.735815115742763,48.02895986501467],[-1.735830012934928,48.02896099988174],[-1.735844527171994,48.028963514046616],[-1.735858380113487,48.02896735933772],[-1.73587129877973,48.02897245960766],[-1.735883034144348,48.02897871717506],[-1.735893358404115,48.028986009422894],[-1.735902068190726,48.02899419452324],[-1.735908780321535,48.029002835466855],[-1.735914480417883,48.02901396968862],[-1.735917531062421,48.029025775521646],[-1.735917898794844,48.02903436885147],[-1.735916570193204,48.029043444342435],[-1.735913615497359,48.02905213148813],[-1.735908262122502,48.02906174474126],[-1.735901113359202,48.029070584100474],[-1.735892200159153,48.0290786691947],[-1.735881695398846,48.029085844475176],[-1.735869805901535,48.02909196858217],[-1.735856759810881,48.02909692315645],[-1.735842812203834,48.029100612517475],[-1.735828236702152,48.029102963018424],[-1.735813313918784,48.029103930371335],[-1.735798355410544,48.0291034956853],[-1.735783520438207,48.02910165085814],[-1.735769231248557,48.02909843551189],[-1.735755714342739,48.029093897974874],[-1.735743503797768,48.02908825285125],[-1.73573319681941,48.02908191534584],[-1.735721005397575,48.029071623112195],[-1.735711357856203,48.02905973924655],[-1.735707518044769,48.029052757367324],[-1.735704618278606,48.02904466832691],[-1.735703204825988,48.02903670468406],[-1.735703335800968,48.02902624607706]]]]},"properties":{}},"code_insee":35047,"geo_point_2d":{"lat":48.02903187131643,"lon":-1.7358104690540885},"saisie_manuel":0},{"date":"2026-08-31T05:00:22+00:00","gml_id":"v_ilot_topo.-4105","habitat":0,"objectid":-4105,"geo_shape":{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-1.687803514072581,48.146347433852526],[-1.687946699442397,48.14640098352567],[-1.688124103359921,48.146509600714786],[-1.687998714519019,48.14655275119468],[-1.68795151495471,48.146538870139715],[-1.68793972366,48.146536109660104],[-1.687927436727819,48.14653460114277],[-1.687232955473897,48.146486133779355],[-1.687187759744061,48.14648087300877],[-1.687225243310154,48.146284038400914],[-1.687367772563647,48.14629476650682],[-1.687650857008516,48.146316073028125],[-1.687803514072581,48.146347433852526]]]]},"properties":{}},"code_insee":35278,"geo_point_2d":{"lat":48.14642119230696,"lon":-1.6876014050534363},"saisie_manuel":0}],"record_count":"6086","data_size_bytes":null,"dataset_count":null,"query_examples":[{"url":"https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique/records?limit=20","curl":"curl -s 'https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique/records?limit=20' -H 'Accept: application/json'","label":"List records","method":"GET","description":"First 20 records of the dataset as JSON."},{"url":"https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique/records?select=geo_point_2d%2Cgeo_shape%2Cgml_id&where=gml_id+is+not+null&limit=20","curl":"curl -s 'https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique/records?select=geo_point_2d%2Cgeo_shape%2Cgml_id&where=gml_id+is+not+null&limit=20' -H 'Accept: application/json'","label":"Select & filter","method":"GET","description":"Project specific fields (geo_point_2d, geo_shape, gml_id) and filter with ODSQL where clauses."},{"url":"https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique/exports/csv","curl":"curl -sL 'https://data.rennesmetropole.fr/api/explore/v2.1/catalog/datasets/ilot_geographique/exports/csv' -o dataset.csv","label":"Export CSV","method":"GET","description":"Full dataset export as CSV (also available: json, parquet, xlsx)."}],"status":"ok","error_message":null,"profiled_at":"2026-09-01T10:09:27.115Z","run_id":"2762fad1-ce58-4a0a-9f4a-660b9c3c62d9","created_at":"2026-07-24T14:38:02.742Z","updated_at":"2026-09-01T10:09:27.115Z","license_raw":null,"license_id":null,"consecutive_failure_count":0,"last_error_at":null,"last_error_message":null,"previewable":true,"personal_data":{"status":"none","basis":"no_person_column_cited","grain":"none","allowed":true,"columns":{"direct_identifiers":[],"family_names":[],"given_names":[],"attributes":[],"unresolved_names":[],"measures":[],"entity_identifiers":[]},"publication":null,"publication_evidence":null,"notice":"personal data: no cited column names a natural person (the cited columns are all this reads)"}},"datasets":[],"limits":[{"id":"9a0be015-644e-44c6-a5e0-d5206428883d","entry_id":"ba1b31aa-2a17-4278-9d6c-462a50aae91b","limit_type":"requests_per_day","value":"7000","unit":"requests","period":"day","scope":"per-ip","source_id":null,"claim_type":"measured","confidence":"0.90","observed_at":"2026-09-01T10:09:28.078Z"}],"source_access":{"status":"accessed_despite_disallow","host":"data.rennesmetropole.fr","requested_path_prefix":"/api/explore/v2.1/","robots_url":"https://data.rennesmetropole.fr/robots.txt","user_agent_group":"*","robots_rule":"Disallow: /api/","robots_read_at":"2026-08-25T11:29:19.232Z","decision_ref":"owner decision 2026-08-22, recorded in docs/PROGRESS.md NEEDS-HUMAN: public-sector open-data portals whose purpose is machine access; the directive is an Opendatasoft vendor default reflecting no publisher intent. Concern raised and overruled; see the row.","note":"This answer is derived from a host whose robots.txt DISALLOWS the path Commodity requests, and Commodity requests it anyway under the decision named in `decision_ref`. The rule is quoted verbatim so you can read it yourself. Commodity does not send a user-agent it is not, so any `Allow` granted to a named crawler in that file is not claimed here."},"field_provenance_source_access":{"status":{"basis":"platform_computed","derived":true,"upstream_field":null,"transform":"THIS PLATFORM’S READING OF ITS OWN CONDUCT: that it requests a path this host forbids. No publisher asserts it and none was asked to","cells":{"rows":1,"delivered":1,"empty":0,"stringified":0,"truncated":0}},"host":{"basis":"platform_computed","derived":true,"upstream_field":null,"transform":"the host Commodity addressed, lowercased and stripped of scheme and port by this platform so that one host has one row and one reading","cells":{"rows":1,"delivered":1,"empty":0,"stringified":0,"truncated":0}},"requested_path_prefix":{"basis":"platform_computed","derived":true,"upstream_field":null,"transform":"THE PATH THE VERDICT IS ABOUT, derived from the base URLs this platform stores for the host — not `/`, and not an assumed `/api/`. A verdict about a path we do not call would describe someone else’s traffic","cells":{"rows":1,"delivered":1,"empty":0,"stringified":0,"truncated":0}},"robots_url":{"basis":"platform_computed","derived":true,"upstream_field":null,"transform":"where the file was fetched from — composed by this platform from the host, at the one location the protocol fixes, so it can be re-fetched and the reading disputed","cells":{"rows":1,"delivered":1,"empty":0,"stringified":0,"truncated":0}},"user_agent_group":{"basis":"stored_sample","derived":false,"upstream_field":"the `User-agent` line the deciding rule sits under","transform":"the group heading that made the rule OURS, verbatim from the stored file. Where it is `*` the directive addresses everyone; a group naming another crawler was not applied, because Commodity does not send a user-agent it is not","cells":{"rows":1,"delivered":1,"empty":0,"stringified":0,"truncated":0}},"robots_rule":{"basis":"stored_sample","derived":false,"upstream_field":"the directive line of the matching group","transform":"THE PUBLISHER’S OWN LINE, QUOTED AND UNCUT, as read from robots.txt at the moment below and stored — not fetched for this request, and not part of this response’s payload. It is here so the verdict beside it can be checked rather than taken from us","cells":{"rows":1,"delivered":1,"empty":0,"stringified":0,"truncated":0}},"robots_read_at":{"basis":"platform_computed","derived":true,"upstream_field":null,"transform":"OUR CLOCK when the file was read, never a `Date` header the origin sent. It bounds how stale this reading may be: a publisher can have changed the file since","cells":{"rows":1,"delivered":1,"empty":0,"stringified":0,"truncated":0}},"decision_ref":{"basis":"platform_computed","derived":true,"upstream_field":null,"transform":"WHO DECIDED TO CALL IT ANYWAY, AND WHEN. Recorded by this platform and required by the database before the exception may exist at all, so it can never be anonymous","cells":{"rows":1,"delivered":1,"empty":0,"stringified":0,"truncated":0}},"note":{"basis":"platform_computed","derived":true,"upstream_field":null,"transform":"this platform’s sentence explaining what the reader is holding. Written here, by us, and not a quotation of anybody","cells":{"rows":1,"delivered":1,"empty":0,"stringified":0,"truncated":0}}},"manifest":{"answer_sha256":"8a29bb411d530099c934dac4a0c1034583be5cc28ed447808a77af3d7266afbb","answer_sha256_rule":"sha256 (hex, UTF-8) of JSON.stringify(this body) after deleting the keys listed in manifest.stamped_keys from manifest, and deleting manifest itself if it is then empty. The hash was computed before the stamp existed, so no field of the stamp is inside it.","stamped_keys":["answer_sha256","answer_sha256_rule","stamped_keys","row_count","row_count_basis","live","live_basis","created_at","created_at_basis","durable_citation"],"row_count":29,"row_count_basis":"Objects that are elements of a JSON array anywhere in this body, excluding manifest. Not a claim about which collection is the answer. Largest single collection: data_profile.fields[] (8 rows).","live":false,"live_basis":"This body was replayed from the worker edge cache (x-edge-cache: hit); the bytes, and therefore answer_sha256, are those of the execution that filled the cache.","created_at":"2026-09-07T21:04:02.147Z","created_at_basis":"When this response body was assembled, deliberately OUTSIDE the hashed bytes so the same answer hashes identically on every request. Not the upstream read time — that is provenance[].retrieved_at. A zone-cached replay carries the assembly time, not your receipt time.","durable_citation":"This manifest is produced at response time and is NOT stored. A durable, replayable citation is persisted only on an explicit cite: GET /api/v1/entries/{id-or-slug}/evidence, or the MCP cite_query tool. Both are entry-scoped, because evidence_manifests is entry-shaped; a domain answer spanning several sources has no single entry and cannot be persisted through that path."}}