{"id":"68aa3074-0d89-41f8-9cdf-151c578dd112","type":"API","name":"Hub d'Indicateurs Territoriaux de Transition Ecologique","slug":"hub-dindicateurs-territoriaux-de-transition-ecologique","description":"L’API permet d’accéder à des indicateurs clés de la transition écologique, disponibles à différentes échelles géographiques. Ces indicateurs territoriaux constituent des outils essentiels d’analyse et de suivi. Ils permettent d’évaluer les dynamiques locales, de mesurer l’impact des politiques pub…","free_access_class":"FREE_NO_AUTH","auth_type":"NONE","homepage_url":"https://www.data.gouv.fr/dataservices/hub-dindicateurs-territoriaux-de-transition-ecologique","docs_url":"https://www.data.gouv.fr/dataservices/hub-dindicateurs-territoriaux-de-transition-ecologique","repo_url":null,"status":"ACTIVE","verification_state":"VERIFIED","tags":["environment","geospatial"],"logo_url":"https://www.google.com/s2/favicons?sz=64&domain=data.gouv.fr","primary_source_url":"https://www.data.gouv.fr/dataservices/hub-dindicateurs-territoriaux-de-transition-ecologique","extraction_confidence":"0.40","created_at":"2026-06-07T22:08:45.601Z","updated_at":"2026-08-16T01:09:25.910Z","last_verified_at":"2026-08-15T21:28:25.166Z","deprecated_at":null,"ranking_score":60,"last_ranked_at":"2026-08-08T23:26:47.529Z","last_seen_at":null,"last_validated_at":null,"last_uptime_at":"2026-08-04T21:03:46.314Z","search_vector":"'a':157B,166B 'acceder':156B 'access':62B,112B,199B 'accessible':249B 'accéder':19B 'across':123B,134B,260B,271B 'administr':124B 'administrative':261B 'allow':89B 'allowing':226B 'analys':41B 'analyse':178B 'analysi':86B 'analysis':223B 'and':224B,231B,242B,252B,263B 'api':16B,60B,109B,153B,197B,246B 'as':219B 'at':207B 'authent':114B 'authentication':251B 'avail':69B 'available':206B 'ces':33B,170B 'cles':160B 'clés':23B 'comparison':122B,259B 'constitu':36B 'constituent':173B 'd':2A,18B,40B,47B,139A,155B,177B,184B 'de':5A,24B,43B,52B,142A,161B,180B,189B 'des':21B,37B,56B,158B,174B,193B 'design':117B 'designed':254B 'diagnost':121B 'diagnostics':258B 'differentes':167B 'différent':30B 'dispon':28B 'disponibles':165B 'dynam':93B 'dynamics':230B 'dynamiqu':50B 'dynamiques':187B 'echelles':168B 'ecolog':13A,67B,131B 'ecological':150A,204B,268B 'ecologiqu':7A 'ecologique':144A,164B 'effort':133B 'efforts':270B 'energi':106B 'energy':243B 'environ':136C 'environment':104B 'environmental':241B 'essenti':83B 'essential':220B 'essentiel':39B 'essentiels':176B 'et':42B,179B 'evalu':90B 'evaluation':227B 'evaluer':185B 'follow':128B,265B 'follow-up':127B,264B 'for':149A,222B 'franc':135B 'france':272B 'freeli':111B 'freely':248B 'french':76B,213B 'from':211B 'geograph':72B 'geographic':209B 'geographiques':169B 'geospati':137C 'govern':77B 'government':214B 'géographiqu':32B 'hub':1A,8A,138A,145A 'il':45B 'ils':182B 'impact':55B,98B,192B,235B 'indic':11A,65B,80B 'indicateur':3A,22B,34B 'indicateurs':140A,159B,171B 'indicators':148A,202B,217B 'is':247B,253B 'key':64B,201B 'l':15B,54B,152B,191B 'la':25B,162B 'les':49B,186B 'level':125B 'levels':262B 'local':51B,92B,229B 'locales':188B 'measur':95B 'measurement':232B 'mesur':53B 'mesurer':190B 'monitor':88B 'monitoring':225B 'of':146A,203B,228B,233B,236B,267B 'outil':38B 'outils':175B 'permet':17B,154B 'permett':46B 'permettent':183B 'polici':101B 'policies':238B 'politiqu':57B 'politiques':194B 'provid':61B 'provides':198B 'pub':58B,195B 'public':100B,237B 'relat':102B 'related':239B 'scale':73B 'scales':210B 'serv':81B 'serve':218B 'suivi':44B,181B 'support':119B,256B 'territori':10A,79B,120B 'territorial':147A,216B,257B 'territoriaux':4A,35B,141A,172B 'the':212B,234B,245B 'these':215B 'this':196B 'to':200B,240B,255B 'tool':84B 'tools':221B 'transit':6A,14A,26B,68B,107B,132B 'transition':143A,151A,163B,205B,244B,269B 'up':266B 'various':71B,208B 'without':113B,250B 'à':20B,29B 'échell':31B 'écologiqu':27B 'évaluer':48B","popularity_score":"0.0000","maintenance_score":"0.7000","institution_id":"5b86827e-a848-4295-b242-91ac4e71dc2b","institution_type":"GOVERNMENT","country_code":"FR","official_confidence":40,"proof_summary":"official domain (data.gouv.fr) (catalog: api_gouv_fr)","source_seed_url":null,"is_public_sector":true,"published_at":"2026-06-07T22:08:45.601Z","geographic_scope":"NATIONAL","name_en":"Hub of Territorial Indicators for Ecological Transition","description_en":"This API provides access to key indicators of ecological transition, available at various geographic scales, from the French Government. These territorial indicators serve as essential tools for analysis and monitoring, allowing evaluation of local dynamics and measurement of the impact of public policies related to environmental and energy transition. The API is freely accessible without authentication and is designed to support territorial diagnostics, comparison across administrative levels, and follow-up of ecological transition efforts across France.","native_lang":"fr","access_level":"documented","formats":[],"capability_tier":"sample","trust_score":73.25,"access":{"level":"documented","primary":{"kind":"query","label":"Run verified request","method":"GET","url":"https://api.indicateurs.ecologie.gouv.fr","source":"probe","runnable":true},"actions":[{"kind":"query","label":"Run verified request","method":"GET","url":"https://api.indicateurs.ecologie.gouv.fr","source":"probe","runnable":true},{"kind":"spec","label":"OpenAPI spec","method":"GET","url":"https://swagger-storage.s3.fr-par.scw.cloud/swagger.yaml","source":"openapi","runnable":false},{"kind":"landing","label":"Read the docs","method":"GET","url":"https://www.data.gouv.fr/dataservices/hub-dindicateurs-territoriaux-de-transition-ecologique","source":"docs","runnable":false}],"formats":[]},"maturity":{"entry_id":"68aa3074-0d89-41f8-9cdf-151c578dd112","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":"profiled","level_index":3,"level_label":"Profiled","meaning":"Schema, dimensions and licence understood","counts_as_coverage":false,"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":false,"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":false,"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":40,"proven_threshold":80,"institution_id":"5b86827e-a848-4295-b242-91ac4e71dc2b","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":"www.data.gouv.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-08-16T13:55:59.204Z"},"api_details":{"id":"d72c7251-26d5-4cb4-ba7f-7e6c68c5dd03","entry_id":"68aa3074-0d89-41f8-9cdf-151c578dd112","base_url":"https://api.indicateurs.ecologie.gouv.fr","openapi_url":"https://swagger-storage.s3.fr-par.scw.cloud/swagger.yaml","graphql_url":null,"api_version":null,"spec_format":"openapi","endpoints_count":null,"endpoints":[],"rate_limit_info":null,"free_tier_limits":null,"ping_url":"https://api.indicateurs.ecologie.gouv.fr","created_at":"2026-06-07T22:08:45.621Z","updated_at":"2026-06-07T22:08:45.621Z"},"dataset_details":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":"df87ce56-00ae-4e4d-bc7d-ccfc3b681213","entry_id":"68aa3074-0d89-41f8-9cdf-151c578dd112","status":"VERIFIED","last_checked_at":"2026-08-15T21:28:24.716Z","p50_latency_ms":1984,"p95_latency_ms":null,"last_error":null,"consecutive_failures":0,"created_at":"2026-06-08T12:43:11.383Z","updated_at":"2026-08-15T21:28:24.716Z","consecutive_successes":12,"probe_url":"https://api.indicateurs.ecologie.gouv.fr","probe_method":"GET","probe_http_status":200,"probe_content_type":"text/html; charset=utf-8","probe_succeeded_at":"2026-08-15T21:28:24.716Z"},"data_profile":{"id":"df67f527-96ae-4ee9-8b08-bccd8876ed37","entry_id":"68aa3074-0d89-41f8-9cdf-151c578dd112","profile_source":"openapi","profile_kind":"dataset","dataset_id":null,"fields":[{"name":"measures","type":"array<string>","label":"query","description":"An array of the names of the indicators to query.","description_en":"Names of the indicators to include in the query."},{"name":"filters","type":"array<object>","label":"query","description":"The filters to do a more specific query. Learn about [filters format](https://cube.dev/docs/product/apis-integrations/rest-api/query-format#filters-format).","description_en":"Conditions used to filter the query results."},{"name":"timezone","type":"string","label":"query","description":"A [time zone](https://cube.dev/docs/product/apis-integrations/queries#time-zone) for your query. You can set the desired time zone in the [TZ Database Name](https://en.wikipedia.org/wiki/Tz_database) format.","description_en":"Time zone applied to the query, in TZ Database format."},{"name":"dimensions","type":"array<string>","label":"query","description":"The dimensions over which to group the data.","description_en":"Fields used to group the returned data."},{"name":"timeDimensions","type":"array<object>","label":"query","description":"A convenient way to specify a time dimension with a filter. It is an array of objects in [timeDimension format](https://cube.dev/docs/product/apis-integrations/rest-api/query-format#time-dimensions-format).","description_en":"Time-based dimension with an associated date filter."},{"name":"segments","type":"array<string>","label":"query","description":"An array of segments. A segment is a named filter, created in the data model.","description_en":"Named pre-defined filters to apply to the query."},{"name":"limit","type":"integer","label":"query","description":"A [row limit](https://cube.dev/docs/product/apis-integrations/queries#row-limit) for your query.","description_en":"Maximum number of rows to return."},{"name":"total","type":"boolean","label":"query","description":"If set to `true`, Cube will run a [total query](https://cube.dev/docs/product/apis-integrations/queries#total-query) and return the total number of rows as if no row limit or offset are set in the query.","description_en":"If true, returns the total row count ignoring limit and offset."},{"name":"offset","type":"integer","label":"query","description":"The number of initial rows to be skipped for your query.","description_en":"Number of initial rows to skip in the result."},{"name":"order","type":"object","label":"query","description":"An object, where the keys are measures or dimensions to order by and their corresponding values are either `asc` or `desc`. The order of the fields to order on is based on the order of the keys in the object. If not provided, [default ordering](https://cube.dev/docs/product/apis-integrations/queries","description_en":"Sort order for specified measures or dimensions."},{"name":"renewQuery","type":"boolean","label":"query","description":"If `renewQuery` is set to `true`, Cube will renew all [refreshKey](https://cube.dev/docs/reference/data-model/pre-aggregations#refresh_key) for queries and query results in the foreground. However, if the [refreshKey](https://cube.dev/docs/reference/data-model/pre-aggregations#refresh_key) (or [refr","description_en":"If true, forces refresh of cached query results."},{"name":"ungrouped","type":"boolean","label":"query","description":"If set to `true`, Cube will run an [ungrouped query](https://cube.dev/docs/product/apis-integrations/queries#ungrouped-query).","description_en":"If true, returns raw ungrouped query results."},{"name":"health","type":"string","label":"health","description":null,"description_en":"Health status of the API service."}],"field_count":13,"sample_records":null,"record_count":null,"data_size_bytes":null,"dataset_count":null,"query_examples":[{"url":"https://swagger-storage.s3.fr-par.scw.cloud/swagger.yaml","curl":"curl -s 'https://swagger-storage.s3.fr-par.scw.cloud/swagger.yaml' -H 'Accept: application/json'","label":"OpenAPI spec","method":"GET","description":"Machine-readable API description (use it to generate clients)."}],"status":"partial","error_message":null,"profiled_at":"2026-07-22T00:05:28.495Z","run_id":"2d74b00b-ce16-4461-806e-33f6deb6ecbc","created_at":"2026-06-12T19:01:48.779Z","updated_at":"2026-07-22T00:05:28.495Z","license_raw":null,"license_id":null,"consecutive_failure_count":0,"last_error_at":null,"last_error_message":null,"previewable":false},"datasets":[],"limits":[]}