{"id":"4c8e9e4f-3965-468a-877f-53607a8360ba","type":"API","name":"Communes rurales et urbaines Île-de-France","slug":"communes-rurales-et-urbaines-ile-de-france","description":"La définition régionale du caractère rural vs urbain des communes a été actée en 2016.Une commune est réputée rurale si elle possède moins de 10000 habitants et se trouve hors de la métropole du Grand Paris.","free_access_class":"FREE_NO_AUTH","auth_type":"NONE","homepage_url":"https://data.iledefrance.fr/explore/dataset/com_rurales_urbaines_ile_de_france/","docs_url":"https://data.iledefrance.fr/explore/dataset/com_rurales_urbaines_ile_de_france/","repo_url":null,"status":"ACTIVE","verification_state":"STALE","tags":["government"],"logo_url":"https://data.iledefrance.fr/assets/favicon","primary_source_url":"https://data.iledefrance.fr/explore/dataset/com_rurales_urbaines_ile_de_france/","extraction_confidence":"0.00","created_at":"2026-07-25T05:50:19.040Z","updated_at":"2026-10-22T09:15:34.880Z","last_verified_at":"2026-10-19T06:45:46.635Z","deprecated_at":null,"ranking_score":58,"last_ranked_at":"2026-10-14T02:10:31.814Z","last_seen_at":null,"last_validated_at":null,"last_uptime_at":"2026-10-13T03:49:17.943Z","popularity_score":"0.0000","maintenance_score":"0.7000","institution_id":null,"institution_type":null,"country_code":"FR","official_confidence":0,"proof_summary":"Confidence: 0%","source_seed_url":null,"is_public_sector":true,"published_at":"2026-07-25T10:18:33.763Z","geographic_scope":"NATIONAL","name_en":"Rural and Urban Municipalities of Île-de-France","description_en":"This dataset provides the regional classification of municipalities in the Île-de-France region as rural or urban, based on a definition adopted in 2016. Under this definition, a municipality is considered rural if it has fewer than 10,000 inhabitants and lies outside the Grand Paris metropolitan area. The dataset is published via the Île-de-France regional open-data portal and can be used for spatial or demographic analysis distinguishing rural from urban municipalities across the region.","native_lang":"fr","access_level":"direct","formats":["CSV"],"capability_tier":"live","trust_score":32.25,"merged_into_entry_id":null,"identity_key":"API|https://data.iledefrance.fr/explore/dataset/com_rurales_urbaines_ile_de_france|communes rurales et urbaines île-de-france","upstream_ref":"data.iledefrance.fr:dataset:com_rurales_urbaines_ile_de_france","content_changed_at":"2026-10-08T21:10:21.593Z","institution":null,"title_qualifier":null,"access":{"level":"direct","primary":{"kind":"download","label":"Export CSV","method":"GET","url":"https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france/exports/csv","format":"CSV","source":"query_example","runnable":true,"direct":true},"actions":[{"kind":"download","label":"Export CSV","method":"GET","url":"https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france/exports/csv","format":"CSV","source":"query_example","runnable":true,"direct":true},{"kind":"query","label":"List records","method":"GET","url":"https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france/records?limit=20","source":"query_example","runnable":true,"direct":true},{"kind":"query","label":"Select & filter","method":"GET","url":"https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france/records?select=geo_point_2d%2Cgeo_shape%2Cobjectid&where=insee_com+is+not+null&limit=20","source":"query_example","runnable":true,"direct":true},{"kind":"query","label":"Run verified request","method":"GET","url":"https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france","source":"probe","runnable":true},{"kind":"landing","label":"Read the docs","method":"GET","url":"https://data.iledefrance.fr/explore/dataset/com_rurales_urbaines_ile_de_france/","source":"docs","runnable":false}],"formats":["CSV"]},"maturity":{"entry_id":"4c8e9e4f-3965-468a-877f-53607a8360ba","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":"discovered","level_index":1,"level_label":"Discovered","meaning":"Source and metadata recorded","counts_as_coverage":false,"blocked_by":"verified","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":false,"reached":false,"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":false,"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":false,"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":false,"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":0,"proven_threshold":80,"institution_id":null,"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.iledefrance.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-10-23T12:03:53.343Z"},"api_details":{"id":"3b9bf108-d1d0-4f08-a8f7-9e8ed49c73cd","entry_id":"4c8e9e4f-3965-468a-877f-53607a8360ba","base_url":"https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france","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.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france","created_at":"2026-07-25T05:50:19.208Z","updated_at":"2026-07-25T05:50:19.208Z"},"dataset_details":{"id":"218ad8ac-6c7a-4294-a967-aae722400145","entry_id":"4c8e9e4f-3965-468a-877f-53607a8360ba","upstream_issued":null,"upstream_modified":"2020-02-19T10:36:12.783Z","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.iledefrance.fr","created_at":"2026-07-25T05:55:57.865Z","updated_at":"2026-10-21T09:27:49.482Z","publisher":null,"publisher_url":null,"distributions":[],"license":null},"license":{"id":"lo-2.0","spdx_id":"etalab-2.0","name":"Licence Ouverte 2.0 (France / Etalab)","url":"https://www.etalab.gouv.fr/wp-content/uploads/2017/04/ETALAB-Licence-Ouverte-v2.0.pdf","is_open":true,"is_redistributable":true,"requires_attribution":true,"category":"national","notes":null,"created_at":"2026-06-12T16:29:19.729Z"},"reuse":{"license_id":"lo-2.0","license_name":"Licence Ouverte 2.0 (France / Etalab)","license_url":"https://www.etalab.gouv.fr/wp-content/uploads/2017/04/ETALAB-Licence-Ouverte-v2.0.pdf","commercial_use":{"status":"yes","value":true},"redistribution":{"status":"yes","value":true},"attribution_required":{"status":"yes","value":true},"share_alike":{"status":"no","value":false},"personal_data_warning":{"status":"yes","value":true},"cache_and_mirror":{"status":"yes","value":true},"undetermined":[],"basis":"licence_text","confidence":0.95,"confidence_tier":"high","source_text":"Texte de la licence - le reutilisateur est libre \"de la communiquer, la reproduire, la copier ; de l'adapter, la modifier, l'extraire et la transformer, notamment pour creer des Informations derivees ; de la diffuser, la redistribuer, la publier et la transmettre, de l'exploiter a titre commercial\". Seule obligation : \"mentionner la paternite de l'Information : sa source (a minima le nom du Concedant) et la date de la derniere mise a jour\". Le texte rappelle que le reutilisateur doit respecter \"le cadre legal relatif a la protection des donnees a caractere personnel\". Aucune clause de partage a l'identique n'est imposee.","source_url":"https://github.com/etalab/licence-ouverte/blob/master/LO.md","reviewed_at":null},"license_raw":"https://www.etalab.gouv.fr/wp-content/uploads/2017/04/ETALAB-Licence-Ouverte-v2.0.pdf","latest_check":{"id":"c0e8ea0a-ac72-4c20-8502-6a79253cd873","entry_id":"4c8e9e4f-3965-468a-877f-53607a8360ba","status":"VERIFIED","last_checked_at":"2026-10-19T06:45:46.327Z","p50_latency_ms":1528,"p95_latency_ms":null,"last_error":null,"consecutive_failures":0,"created_at":"2026-07-25T06:54:41.232Z","updated_at":"2026-10-19T06:45:46.327Z","consecutive_successes":20,"probe_url":"https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france","probe_method":"GET","probe_http_status":200,"probe_content_type":"application/json; charset=utf-8","probe_succeeded_at":"2026-10-19T06:45:46.327Z"},"data_profile":{"id":"6672a7da-85eb-4ed3-88a4-b45a3c8da751","entry_id":"4c8e9e4f-3965-468a-877f-53607a8360ba","profile_source":"opendatasoft","profile_kind":"dataset","dataset_id":"com_rurales_urbaines_ile_de_france","fields":[{"name":"geo_point_2d","type":"geo_point_2d","label":"Geo Point","filterable":false,"description":null,"description_en":"Geographic centroid coordinates (latitude, longitude) of the commune."},{"name":"geo_shape","type":"geo_shape","label":null,"filterable":false,"description":null,"description_en":"Geometric boundary shape of the commune as GeoJSON."},{"name":"objectid","type":"int","label":null,"filterable":true,"description":null,"description_en":"Internal unique record identifier."},{"name":"insee_com","type":"text","label":"code insee","filterable":true,"description":null,"description_en":"INSEE code identifying the commune."},{"name":"nom_com","type":"text","label":"commune","filterable":true,"description":null,"description_en":"Name of the commune."},{"name":"superficie","type":"double","label":null,"filterable":true,"description":null,"description_en":"Surface area of the commune."},{"name":"population","type":"int","label":null,"filterable":true,"description":null,"description_en":"Number of inhabitants of the commune."},{"name":"code_dept","type":"text","label":"Département","filterable":true,"description":null,"description_en":"Numeric code of the department."},{"name":"nom_dept","type":"text","label":"Nom département","filterable":true,"description":null,"description_en":"Name of the department."},{"name":"rural_urb","type":"text","label":"Statut rural / urbain","filterable":true,"description":null,"description_en":"Rural or urban status of the commune."}],"field_count":10,"sample_records":[{"nom_com":"FLINS-SUR-SEINE","nom_dept":"YVELINES","objectid":784,"code_dept":"78","geo_shape":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[1.864812548000659,48.98989219801627],[1.865084853347221,48.98993794071912],[1.875782845637537,48.99236155281222],[1.87578439741497,48.99222667242368],[1.877108641388172,48.98305628747852],[1.885878758053412,48.97931510364434],[1.886563902373963,48.97909304086442],[1.88697540802331,48.97882526857445],[1.88731957452175,48.97851190475058],[1.888491830456251,48.97716841262583],[1.889318930534439,48.97618323534573],[1.889527418969271,48.97582454200112],[1.885929232960337,48.97351861166116],[1.886000731996995,48.97311458450424],[1.886728867144007,48.96443933291026],[1.884625542853846,48.95246683720269],[1.884727445196067,48.94077551085435],[1.884798765932082,48.940505472662835],[1.878510670721685,48.941829989546044],[1.870471867711311,48.94674134960747],[1.869922434332226,48.94714357164318],[1.869920673312219,48.94728744919265],[1.868876694792609,48.949710310955794],[1.863290045498011,48.95629365925002],[1.861315689309535,48.96550653056005],[1.859611587661241,48.97581903270819],[1.855986603120821,48.984410723824965],[1.855709306074337,48.98490359853948],[1.855484054156846,48.98557683069312],[1.854988857996762,48.98746245042907],[1.854987627967317,48.9876423000789],[1.855124265601052,48.987642704759935],[1.857236331543832,48.98809990411412],[1.859633763515054,48.98869377498528],[1.864812548000659,48.98989219801627]]]},"properties":{}},"insee_com":"78238","rural_urb":"Rural","population":2353,"superficie":878,"geo_point_2d":{"lat":48.9681229241,"lon":1.87312189173}},{"nom_com":"NEUFMOUTIERS-EN-BRIE","nom_dept":"SEINE-ET-MARNE","objectid":771,"code_dept":"77","geo_shape":"[large value omitted]","insee_com":"77336","rural_urb":"Rural","population":946,"superficie":1622,"geo_point_2d":{"lat":48.7739536977,"lon":2.82594909189}},{"nom_com":"NERVILLE-LA-FORET","nom_dept":"VAL-D'OISE","objectid":1297,"code_dept":"95","geo_shape":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.283750467063095,49.078256977432126],[2.283681274195284,49.07821250569764],[2.279178653443534,49.07728191972067],[2.274299293494058,49.07668068433438],[2.274026077962505,49.076545057513286],[2.273820994411083,49.07672455255814],[2.257875608868583,49.083688357829956],[2.257868878888122,49.08750708137267],[2.25841171235201,49.09119160986638],[2.25087245191071,49.09078250719402],[2.250940405008084,49.09100682236413],[2.260381407139743,49.10072672875437],[2.26044922799741,49.10077210357746],[2.261064622168334,49.10063741695343],[2.276199448912914,49.10127525184391],[2.289953201122156,49.10119180478921],[2.293662552109752,49.10060852148991],[2.29735843467193,49.09818358253793],[2.300508058507595,49.09481483380727],[2.301398098050183,49.09369246730733],[2.302562827267591,49.092604955736114],[2.303011892721802,49.09219844336265],[2.303042097283626,49.09188661086108],[2.300638230838591,49.090645300982445],[2.297296686775993,49.089908287603876],[2.295587054494451,49.08927876148532],[2.291743577266689,49.08761431136295],[2.28627701678084,49.081951407968724],[2.284160005925786,49.07893109791033],[2.283750467063095,49.078256977432126]]]},"properties":{}},"insee_com":"95445","rural_urb":"Rural","population":680,"superficie":668,"geo_point_2d":{"lat":49.090819441,"lon":2.27645652548}},{"nom_com":"CHENNEVIERES-LES-LOUVRES","nom_dept":"VAL-D'OISE","objectid":964,"code_dept":"95","geo_shape":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.526069174412766,49.03005350751541],[2.526350891346329,49.032299899826505],[2.52724862044195,49.03508373004224],[2.527802013924408,49.03679076603224],[2.528285125967614,49.03795800943577],[2.528421630366674,49.03813748337074],[2.528699317612794,49.039035959820716],[2.528698501296869,49.03912587505524],[2.528840269691273,49.04038349022188],[2.529122233484011,49.042772823898716],[2.529896033366348,49.04492849228014],[2.530719422271751,49.04569151807676],[2.535379202863351,49.04896375318286],[2.540009395898704,49.05085545135401],[2.548124837633834,49.053164753016375],[2.549217936068552,49.053163464477144],[2.550037811534867,49.0531170836133],[2.550445875221424,49.0524415354313],[2.553185196247136,49.0506372257224],[2.560816702856342,49.047795205774335],[2.562932507093704,49.04702783380482],[2.56842150255657,49.04625460742696],[2.570169318053928,49.04233147004119],[2.569548817915316,49.0411198515801],[2.569480805317905,49.04107464881585],[2.567705553058446,49.04139287645515],[2.565642912410667,49.04189077400004],[2.56331649439924,49.04122144116936],[2.563248479531538,49.041177134033305],[2.558392022258586,49.03742866927894],[2.554066603610266,49.03530409790337],[2.550080616164475,49.033503445728805],[2.547279977045682,49.034902846238964],[2.543456850149914,49.03451790817799],[2.533950632891581,49.03255712922397],[2.528051896262365,49.030365243314144],[2.526069174412766,49.03005350751541]]]},"properties":{}},"insee_com":"95154","rural_urb":"Rural","population":329,"superficie":460,"geo_point_2d":{"lat":49.0421020896,"lon":2.54574562123}},{"nom_com":"LE PLESSIS-PLACY","nom_dept":"SEINE-ET-MARNE","objectid":246,"code_dept":"77","geo_shape":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.974609393826359,49.07483430846685],[2.974744909350505,49.07478848100928],[2.987996419090324,49.07237185247302],[2.98813327441749,49.07237186606349],[2.988193633998478,49.07174247415345],[2.988240541291328,49.070079068289026],[2.98993580056389,49.064588150400766],[2.9945529876125,49.06095948762591],[3.005072888719964,49.05491630301711],[3.005750044525286,49.05446309845969],[3.003259991181334,49.0521406716856],[3.005575699781139,49.04889282606941],[3.004855831591807,49.04531419479611],[3.002494760347251,49.04157733897036],[2.995387079862501,49.0362694846477],[2.987145090030312,49.03406861200898],[2.986733481926897,49.03398044831717],[2.984332306050912,49.033229349522536],[2.983979775998884,49.032287868017924],[2.983843026051503,49.03228874887135],[2.980340036476241,49.03087022774653],[2.980066561526125,49.03082612306446],[2.97336166474483,49.031311276754394],[2.971246081208942,49.03150231310863],[2.971815315129092,49.03335115010817],[2.97232274248731,49.03577453749839],[2.97582651798186,49.04161989062979],[2.979435681159084,49.04585382866095],[2.983134039168395,49.0510470555637],[2.983443656399045,49.053920803775625],[2.981881038574539,49.05473880951372],[2.979771179439448,49.055423628575376],[2.978121068882168,49.055836950297646],[2.96714445306206,49.05833049839906],[2.965100048047174,49.058835245156224],[2.965529926679897,49.06049610048943],[2.966681696566635,49.06520706108086],[2.965196322655587,49.07236831180065],[2.965224545522918,49.07518082479877],[2.970631889147771,49.0753638933505],[2.974609393826359,49.07483430846685]]]},"properties":{}},"insee_com":"77367","rural_urb":"Rural","population":276,"superficie":824,"geo_point_2d":{"lat":49.0535067997,"lon":2.98478003077}}],"record_count":"1287","data_size_bytes":null,"dataset_count":null,"query_examples":[{"url":"https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france/records?limit=20","curl":"curl -s 'https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france/records?limit=20' -H 'Accept: application/json'","label":"List records","method":"GET","description":"First 20 records of the dataset as JSON."},{"url":"https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france/records?select=geo_point_2d%2Cgeo_shape%2Cobjectid&where=insee_com+is+not+null&limit=20","curl":"curl -s 'https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france/records?select=geo_point_2d%2Cgeo_shape%2Cobjectid&where=insee_com+is+not+null&limit=20' -H 'Accept: application/json'","label":"Select & filter","method":"GET","description":"Project specific fields (geo_point_2d, geo_shape, objectid) and filter with ODSQL where clauses."},{"url":"https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france/exports/csv","curl":"curl -sL 'https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets/com_rurales_urbaines_ile_de_france/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-10-21T09:27:48.323Z","run_id":"f7989e67-88dd-4830-a593-1be7ad08e3d2","created_at":"2026-07-25T05:55:57.373Z","updated_at":"2026-10-21T09:27:48.323Z","license_raw":"https://www.etalab.gouv.fr/wp-content/uploads/2017/04/ETALAB-Licence-Ouverte-v2.0.pdf","license_id":"lo-2.0","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":["population"],"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":"fa1b3bcf-998e-4adc-9a83-857d25603732","entry_id":"4c8e9e4f-3965-468a-877f-53607a8360ba","limit_type":"requests_per_day","value":"10000","unit":"requests","period":"day","scope":"per-ip","source_id":null,"claim_type":"measured","confidence":"0.90","observed_at":"2026-10-21T09:27:49.735Z"}],"source_access":{"status":"accessed_despite_disallow","host":"data.iledefrance.fr","requested_path_prefix":"/api/explore/v2.1/","robots_url":"https://data.iledefrance.fr/robots.txt","user_agent_group":"*","robots_rule":"Disallow: /api/","robots_read_at":"2026-08-25T11:29:14.157Z","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":"eaca78bf56e777ffff225f6cb367ee6362fca5dff6d223d4afcea9fa34aeda63","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":31,"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[] (10 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-10-23T12:04:55.078Z","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."}}