{"id":"d3f14f05-4e84-4753-bcd0-4d8fb7f86bbc","type":"API","name":"API Anotéa","slug":"api-anotea","description":"L’API Anotéa, produite et mise à disposition par le service ANOTEA, restitue les retours, quantitatifs et qualitatifs, d’individus ayant suivi une formation déterminée. L'API a pour objectif : * de permettre aux organismes de prendre en compte les avis des stagiaires ; * de favoriser la transpar…","free_access_class":"FREE_NO_AUTH","auth_type":"NONE","homepage_url":"https://www.data.gouv.fr/dataservices/api-anotea","docs_url":"https://francetravail.io/produits-partages/catalogue/anotea?tabgroup-api=documentation&doc-section=api-doc-section-caracteristiques","repo_url":null,"status":"ACTIVE","verification_state":"STALE","tags":["education"],"logo_url":"https://udata-avatars.s3.rbx.io.cloud.ovh.net/f7/1ee271e92c4eedbdc15a62ee437a69-100.jpg","primary_source_url":"https://www.data.gouv.fr/dataservices/api-anotea","extraction_confidence":"0.40","created_at":"2026-06-07T22:08:38.588Z","updated_at":"2026-08-22T09:46:16.260Z","last_verified_at":"2026-08-19T08:36:43.517Z","deprecated_at":null,"ranking_score":53,"last_ranked_at":"2026-08-08T23:23:53.307Z","last_seen_at":null,"last_validated_at":null,"last_uptime_at":"2026-08-20T10:08:12.133Z","search_vector":"'a':133B,154B,196B,225B 'access':109B 'accessible':231B 'account':89B,211B 'aim':80B 'aims':202B 'and':177B,188B,212B,221B,234B 'anotea':16B,124A,125A,129B,138B,174B,181B 'anotéa':2A,3A,7B,52B,59B 'api':1A,4A,6B,31B,53B,106B,123A,126A,128B,153B,175B,228B 'at':237B 'authent':111B 'authentication':233B 'aux':37B,159B 'avi':44B 'avis':166B 'ayant':25B,147B 'by':179B 'choos':102B 'choosing':224B 'complet':73B 'completed':195B 'compt':42B 'compte':164B 'cours':78B,104B 'course':200B,226B 'cover':113B 'covers':235B 'd':23B,145B 'de':35B,39B,47B,157B,161B,169B 'des':45B,167B 'determinee':151B 'disposit':12B 'disposition':134B 'déterminé':29B 'educ':120B,122C 'education':242B 'en':41B,163B 'et':9B,21B,131B,143B 'favoris':48B 'favoriser':170B 'feedback':68B,190B 'for':219B 'format':28B 'formation':150B 'franc':62B,114B 'france':184B,236B 'freeli':108B 'freely':230B 'from':191B 'given':75B,197B 'have':194B 'individu':70B 'individuals':192B 'individus':24B,146B 'into':210B 'is':229B 'it':201B 'jobseek':98B 'jobseekers':220B 'l':5B,30B,127B,152B 'la':49B,171B 'le':14B,136B 'les':18B,43B,140B,165B 'let':82B,204B 'level':117B,239B 'mise':10B,132B 'nation':116B 'national':238B 'objectif':34B,156B 'of':216B 'organ':84B 'organism':38B 'organismes':160B 'organizations':206B 'other':222B 'par':13B,135B 'permettr':36B 'permettre':158B 'pour':33B,155B 'prendr':40B 'prendre':162B 'produc':54B 'produced':176B 'produit':8B 'produite':130B 'promot':92B 'promote':214B 'provid':64B 'provides':186B 'publish':56B 'published':178B 'qualit':67B 'qualitatif':22B 'qualitatifs':144B 'qualitative':189B 'qualiti':96B 'quality':218B 'quantit':65B 'quantitatif':20B 'quantitatifs':142B 'quantitative':187B 'restitu':17B 'restitue':139B 'retour':19B 'retours':141B 'review':87B 'reviews':209B 'sector':121B,243B 'servic':15B,60B 'service':137B,182B 'stagiair':46B 'stagiaires':168B 'suivi':26B,148B 'support':118B 'supporting':240B 'take':85B,207B 'the':173B,180B,227B,241B 'to':203B,213B 'train':77B,83B,95B 'traine':86B 'trainee':208B 'training':199B,205B,217B 'transpar':50B,93B,172B 'transparency':215B 'travail':63B,185B 'under':183B 'une':27B,149B 'user':101B 'users':223B 'vocat':76B 'vocational':198B 'who':193B 'without':110B,232B 'à':11B","popularity_score":"0.0000","maintenance_score":"0.7000","institution_id":"adce7b79-3cfa-4b9a-99e7-b76756da43e7","institution_type":"AGENCY","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:38.588Z","geographic_scope":"NATIONAL","name_en":"Anotéa API","description_en":"The Anotéa API, produced and published by the Anotéa service under France Travail, provides quantitative and qualitative feedback from individuals who have completed a given vocational training course. It aims to let training organizations take trainee reviews into account and to promote transparency of training quality for jobseekers and other users choosing a course. The API is freely accessible without authentication and covers France at national level, supporting the education sector.","native_lang":"fr","access_level":"documented","formats":[],"capability_tier":"reference","trust_score":51.75,"access":{"level":"documented","primary":{"kind":"query","label":"Run verified request","method":"GET","url":"https://francetravail.io/produits-partages/catalogue/anotea","source":"probe","runnable":true},"actions":[{"kind":"query","label":"Run verified request","method":"GET","url":"https://francetravail.io/produits-partages/catalogue/anotea","source":"probe","runnable":true},{"kind":"landing","label":"Read the docs","method":"GET","url":"https://francetravail.io/produits-partages/catalogue/anotea?tabgroup-api=documentation&doc-section=api-doc-section-caracteristiques","source":"docs","runnable":false},{"kind":"landing","label":"Visit homepage","method":"GET","url":"https://www.data.gouv.fr/dataservices/api-anotea","source":"homepage","runnable":false}],"formats":[]},"maturity":{"entry_id":"d3f14f05-4e84-4753-bcd0-4d8fb7f86bbc","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":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":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":false,"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":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":"adce7b79-3cfa-4b9a-99e7-b76756da43e7","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-22T19:51:13.140Z"},"api_details":{"id":"a6b25dc7-0e4e-46c5-b430-d16dd305d770","entry_id":"d3f14f05-4e84-4753-bcd0-4d8fb7f86bbc","base_url":"https://francetravail.io/produits-partages/catalogue/anotea","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://francetravail.io/produits-partages/catalogue/anotea","created_at":"2026-06-07T22:08:38.606Z","updated_at":"2026-07-20T11:11:14.643Z"},"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":"fae0224a-fd3a-44ad-9822-6878a58747de","entry_id":"d3f14f05-4e84-4753-bcd0-4d8fb7f86bbc","status":"VERIFIED","last_checked_at":"2026-08-19T08:36:43.202Z","p50_latency_ms":1279,"p95_latency_ms":null,"last_error":null,"consecutive_failures":0,"created_at":"2026-06-08T12:43:17.047Z","updated_at":"2026-08-19T08:36:43.202Z","consecutive_successes":50,"probe_url":"https://francetravail.io/produits-partages/catalogue/anotea","probe_method":"GET","probe_http_status":200,"probe_content_type":"text/html","probe_succeeded_at":"2026-08-19T08:36:43.202Z"},"data_profile":{"id":"82a77039-0d75-465d-a7a0-5efeb245afb6","entry_id":"d3f14f05-4e84-4753-bcd0-4d8fb7f86bbc","profile_source":"none","profile_kind":"dataset","dataset_id":null,"fields":null,"field_count":null,"sample_records":null,"record_count":null,"data_size_bytes":null,"dataset_count":null,"query_examples":null,"status":"unsupported","error_message":"No introspectable source detected (primary URL sniffed: not machine-readable data)","profiled_at":"2026-07-20T12:59:49.378Z","run_id":"3e61b742-ab4c-40ec-995e-24bbcbb03c77","created_at":"2026-07-20T12:59:49.378Z","updated_at":"2026-07-20T12:59:49.378Z","license_raw":null,"license_id":null,"consecutive_failure_count":0,"last_error_at":null,"last_error_message":null,"previewable":false},"datasets":[],"limits":[],"manifest":{"answer_sha256":"87a9ef93351f3dcfc394166d7f9bb55396e286801ac8472ffe49fe2b411e6023","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":10,"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: maturity.rungs[] (7 rows).","live":true,"live_basis":"This body was produced by executing the request.","created_at":"2026-08-22T19:51:13.298Z","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."}}