{"id":"e3c6f3b8-3cd4-40d1-81bd-ca3c39803386","type":"API","name":"Erskine May API","slug":"erskine-may-api","description":"An API that allows querying of Erskine May data.","free_access_class":"FREE_NO_AUTH","auth_type":"NONE","homepage_url":"https://www.parliament.uk","docs_url":null,"repo_url":"https://erskinemay-api.parliament.uk/swagger/v1/swagger.json","status":"ACTIVE","verification_state":"VERIFIED","tags":["legislation"],"logo_url":"https://www.google.com/s2/favicons?sz=64&domain=parliament.uk","primary_source_url":"https://erskinemay-api.parliament.uk/swagger/v1/swagger.json","extraction_confidence":"0.70","created_at":"2026-01-01T19:42:22.647Z","updated_at":"2026-08-16T11:49:34.931Z","last_verified_at":"2026-08-16T11:49:34.931Z","deprecated_at":null,"ranking_score":64,"last_ranked_at":"2026-08-08T11:02:10.053Z","last_seen_at":null,"last_validated_at":null,"last_uptime_at":"2026-08-06T17:44:42.449Z","search_vector":"'a':143B 'access':17B,73B,88B,110B,181B 'accessible':166B 'allow':7B,35B 'allows':100B,128B 'an':97B 'and':121B,134B,149B,159B,172B,177B 'api':3A,5B,14B,71B,96A,98B,107B,164B 'as':142B 'authent':69B 'authentication':162B 'authorit':22B 'authoritative':115B 'by':124B 'common':64B 'commons':157B 'convent':57B 'conventions':150B 'data':12B,105B 'develop':83B 'developers':176B 'erskin':1A,10B,19B 'erskine':94A,103B,112B 'for':146B,175B 'free':65B,158B 'govern':58B 'governing':151B 'guid':52B 'guide':145B 'hous':62B 'house':155B 'in':153B 'intend':81B 'intended':174B 'is':140B,165B,173B 'it':127B 'legisl':93C 'materi':92B 'material':185B 'may':2A,11B,20B,95A,104B,113B 'no':161B 'of':102B,136B,156B 'on':117B 'parliament':33B,77B,126B,170B 'parliamentari':26B,90B 'parliamentary':119B,183B 'practic':27B 'practice':120B 'procedur':29B,91B 'procedural':184B 'procedure':122B 'proceed':59B 'proceedings':152B 'programmat':16B 'programmatic':109B 'provid':15B 'provides':108B 'publish':30B 'published':123B 'queri':8B,38B 'query':131B 'querying':101B 'refer':51B 'reference':144B 'requir':67B 'requiring':160B 'research':85B 'researchers':178B 'rule':55B 'rules':148B 'seek':86B 'seeking':179B 'structur':42B,87B 'structure':135B 'structured':180B 'text':40B,133B 'that':99B 'the':114B,132B,137B,147B,154B,163B,168B 'this':106B 'to':111B,130B,182B 'treatis':23B 'treatise':116B 'uk':25B,32B,76B,118B,125B,169B 'use':48B 'used':141B 'user':36B 'users':129B 'via':74B,167B 'websit':78B 'website':171B 'which':139B 'work':45B,138B","popularity_score":"0.0000","maintenance_score":"0.5000","institution_id":"80926881-de89-4d9e-a1c5-f2393d25dac7","institution_type":"GOVERNMENT","country_code":"GB","official_confidence":40,"proof_summary":"official domain (parliament.uk)","source_seed_url":null,"is_public_sector":true,"published_at":"2026-01-01T19:42:22.647Z","geographic_scope":"NATIONAL","name_en":null,"description_en":"This API provides programmatic access to Erskine May, the authoritative treatise on UK parliamentary practice and procedure, published by UK Parliament. It allows users to query the text and structure of the work, which is used as a reference guide for the rules and conventions governing proceedings in the House of Commons. Free and requiring no authentication, the API is accessible via the UK Parliament website and is intended for developers and researchers seeking structured access to parliamentary procedural material.","native_lang":"en","access_level":"direct","formats":[],"capability_tier":"sample","trust_score":71,"access":{"level":"direct","primary":{"kind":"query","label":"Returns a list of index terms by start letter.","method":"GET","url":"https://erskinemay-api.parliament.uk/api/IndexTerm/browse","source":"query_example","runnable":true,"direct":true},"actions":[{"kind":"query","label":"Returns a list of index terms by start letter.","method":"GET","url":"https://erskinemay-api.parliament.uk/api/IndexTerm/browse","source":"query_example","runnable":true,"direct":true},{"kind":"query","label":"Run verified request","method":"GET","url":"https://erskinemay-api.parliament.uk/api/Part","source":"probe","runnable":true},{"kind":"spec","label":"OpenAPI spec","method":"GET","url":"https://erskinemay-api.parliament.uk/swagger/v1/swagger.json","source":"openapi","runnable":false},{"kind":"query","label":"API base URL","method":"GET","url":"https://erskinemay-api.parliament.uk","source":"base_url","runnable":false},{"kind":"landing","label":"Visit homepage","method":"GET","url":"https://www.parliament.uk","source":"homepage","runnable":false}],"formats":[]},"maturity":{"entry_id":"e3c6f3b8-3cd4-40d1-81bd-ca3c39803386","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":"80926881-de89-4d9e-a1c5-f2393d25dac7","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":"erskinemay-api.parliament.uk","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:59:40.911Z"},"api_details":{"id":"d5d14977-dc82-4695-a674-3cc105999e24","entry_id":"e3c6f3b8-3cd4-40d1-81bd-ca3c39803386","base_url":"https://erskinemay-api.parliament.uk","openapi_url":"https://erskinemay-api.parliament.uk/swagger/v1/swagger.json","graphql_url":null,"api_version":"v1","spec_format":"openapi","endpoints_count":11,"endpoints":[{"path":"/api/Chapter/{chapterNumber}","method":"GET","description":"Returns a single chapter overview by chapter number."},{"path":"/api/IndexTerm/browse","method":"GET","description":"Returns a list of index terms by start letter."},{"path":"/api/IndexTerm/{indexTermId}","method":"GET","description":"Returns an index term by id."},{"path":"/api/Part","method":"GET","description":"Returns a list of all parts."},{"path":"/api/Part/{partNumber}","method":"GET","description":"Returns a part by part number."},{"path":"/api/Search/IndexTermSearchResults/{searchTerm}","method":"GET","description":"Returns a list of index terms which contain the search term."},{"path":"/api/Search/Paragraph/{reference}","method":"GET","description":"Returns a section overview by reference."},{"path":"/api/Search/ParagraphSearchResults/{searchTerm}","method":"GET","description":"Returns a list of paragraphs which contain the search term."},{"path":"/api/Search/SectionSearchResults/{searchTerm}","method":"GET","description":"Returns a list of sections which contain the search term."},{"path":"/api/Section/{sectionId}","method":"GET","description":"Returns a section by section id."},{"path":"/api/Section/{sectionId},{step}","method":"GET","description":"Returns a section overview by section id and step."}],"rate_limit_info":null,"free_tier_limits":null,"ping_url":null,"created_at":"2026-01-01T19:42:22.806Z","updated_at":"2026-01-01T19:42:22.806Z"},"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":"6bc96d6d-148e-41e3-8ff7-75e1917b2fc8","entry_id":"e3c6f3b8-3cd4-40d1-81bd-ca3c39803386","status":"VERIFIED","last_checked_at":"2026-08-16T11:49:34.623Z","p50_latency_ms":2029,"p95_latency_ms":null,"last_error":null,"consecutive_failures":0,"created_at":"2026-06-08T12:43:18.283Z","updated_at":"2026-08-16T11:49:34.623Z","consecutive_successes":20,"probe_url":"https://erskinemay-api.parliament.uk/api/Part","probe_method":"GET","probe_http_status":200,"probe_content_type":"application/json; charset=utf-8","probe_succeeded_at":"2026-08-16T11:49:34.623Z"},"data_profile":{"id":"1aa768b5-eb87-419a-81ca-009db70aa6fc","entry_id":"e3c6f3b8-3cd4-40d1-81bd-ca3c39803386","profile_source":"openapi","profile_kind":"dataset","dataset_id":null,"fields":[{"name":"chapterNumber","role":"parameter","type":"integer (int32)","label":null,"format":"int32","param_in":"path","required":true,"container":"/api/Chapter/{chapterNumber}","filterable":true,"description":"Chapter overview with the chapter number specified","description_en":"Chapter number used to retrieve its overview."},{"name":"startLetter","role":"parameter","type":"string","label":null,"param_in":"query","container":"/api/IndexTerm/browse","filterable":true,"description":"Index terms by start letter","description_en":"Filters index terms by their starting letter."},{"name":"skip","role":"parameter","type":"integer (int32)","label":null,"format":"int32","param_in":"query","container":"/api/IndexTerm/browse","filterable":true,"description":"The number of records to skip from the first, default is 0.","description_en":"Number of records to skip from the start, default 0."},{"name":"take","role":"parameter","type":"integer (int32)","label":null,"format":"int32","param_in":"query","container":"/api/IndexTerm/browse","filterable":true,"description":"The number of records to return, default is 20, maximum is 20.","description_en":"Number of records to return, default 20, maximum 20."},{"name":"indexTermId","role":"parameter","type":"integer (int32)","label":null,"format":"int32","param_in":"path","required":true,"container":"/api/IndexTerm/{indexTermId}","filterable":true,"description":"Index term by if","description_en":"Identifier used to look up a specific index term."},{"name":"partNumber","role":"parameter","type":"integer (int32)","label":null,"format":"int32","param_in":"path","required":true,"container":"/api/Part/{partNumber}","filterable":true,"description":"Part by part number","description_en":"Part number used to retrieve a specific part."},{"name":"searchTerm","role":"parameter","type":"string","label":null,"param_in":"path","required":true,"container":"/api/Search/IndexTermSearchResults/{searchTerm}","filterable":true,"description":"Index terms which contain search term.","description_en":"Text used to filter index terms containing this term."},{"name":"reference","role":"parameter","type":"string","label":null,"param_in":"path","required":true,"container":"/api/Search/Paragraph/{reference}","filterable":true,"description":"Section overview by reference.","description_en":"Reference code used to look up a section overview."},{"name":"sectionId","role":"parameter","type":"integer (int32)","label":null,"format":"int32","param_in":"path","required":true,"container":"/api/Section/{sectionId}","filterable":true,"description":"Section by id.","description_en":"Identifier used to retrieve a specific section."},{"name":"step","role":"parameter","type":"integer (int32)","label":null,"format":"int32","param_in":"path","required":true,"container":"/api/Section/{sectionId},{step}","filterable":true,"description":"Number of sections to step over from given section.","description_en":"Number of sections to move forward or back from a given section."},{"name":"number","type":"integer (int32)","label":"ErskineMayChapterOverview","format":"int32","description":null,"description_en":"Chapter number within the Erskine May text."},{"name":"title","type":"string","label":"ErskineMayChapterOverview","description":null,"description_en":"Title of the chapter."},{"name":"description","type":"string","label":"ErskineMayChapterOverview","description":null,"description_en":"Short description or overview of the chapter."},{"name":"sections","type":"array<object>","label":"ErskineMayChapterOverview","description":null,"description_en":"List of sections belonging to the chapter."},{"name":"content","type":"string","label":"ErskineMayFootnote","description":null,"description_en":"Text content of the footnote."},{"name":"id","type":"integer (int32)","label":"ErskineMayIndexTerm","format":"int32","description":null,"description_en":"Unique identifier of the index term."},{"name":"term","type":"string","label":"ErskineMayIndexTerm","description":null,"description_en":"The indexed term text."},{"name":"displayAs","type":"string","label":"ErskineMayIndexTerm","description":null,"description_en":"Text used to display the index term."},{"name":"seeLinks","type":"array<object>","label":"ErskineMayIndexTerm","description":null,"description_en":"List of cross-reference links from this index term."},{"name":"references","type":"array<object>","label":"ErskineMayIndexTerm","description":null,"description_en":"List of references associated with the index term."},{"name":"parentTerm","type":"object","label":"ErskineMayIndexTerm","description":null,"description_en":"The parent index term, if this term is nested."},{"name":"childTerms","type":"array<object>","label":"ErskineMayIndexTerm","description":null,"description_en":"List of child index terms nested under this term."},{"name":"seeValue","type":"string","label":"ErskineMayIndexTermSearchResult","description":null,"description_en":"Displayed value for a cross-reference search result."},{"name":"totalResults","type":"integer (int32)","label":"ErskineMayIndexTermSearchResultErskineMaySearch","format":"int32","description":null,"description_en":"Total number of matching search results."},{"name":"searchResults","type":"array<object>","label":"ErskineMayIndexTermSearchResultErskineMaySearch","description":null,"description_en":"List of index term search result items."},{"name":"searchTerms","type":"array<string>","label":"ErskineMayIndexTermSearchResultErskineMaySearch","description":null,"description_en":"List of search terms used or matched in the query."},{"name":"suggestedSearch","type":"string","label":"ErskineMayIndexTermSearchResultErskineMaySearch","description":null,"description_en":"Suggested alternative search term."},{"name":"seeType","type":"string","label":"ErskineMayIndexTermSeeLink","description":null,"description_en":"Type of cross-reference indicated by the see link."},{"name":"paragraphReference","type":"string","label":"ErskineMayParagraphSearchResult","description":null,"description_en":"Reference identifying the matched paragraph."},{"name":"searchResultText","type":"string","label":"ErskineMayParagraphSearchResult","description":null,"description_en":"Text excerpt from the matched paragraph."},{"name":"sectionTitle","type":"string","label":"ErskineMayParagraphSearchResult","description":null,"description_en":"Title of the section containing the match."},{"name":"sectionTitleChain","type":"string","label":"ErskineMayParagraphSearchResult","description":null,"description_en":"Hierarchical chain of section titles leading to this section."},{"name":"chapterTitle","type":"string","label":"ErskineMayParagraphSearchResult","description":null,"description_en":"Title of the chapter containing the match."},{"name":"chapters","type":"array<object>","label":"ErskineMayPart","description":null,"description_en":"List of chapters belonging to the part."},{"name":"titleChain","type":"string","label":"ErskineMaySectionDetail","description":null,"description_en":"Hierarchical chain of titles leading to this section."},{"name":"subSections","type":"array<object>","label":"ErskineMaySectionDetail","description":null,"description_en":"List of subsections nested under this section."},{"name":"parentSectionId","type":"integer (int32)","label":"ErskineMaySectionDetail","format":"int32","description":null,"description_en":"Identifier of the parent section, if any."},{"name":"parentSectionTitle","type":"string","label":"ErskineMaySectionDetail","description":null,"description_en":"Title of the parent section, if any."},{"name":"partTitle","type":"string","label":"ErskineMaySectionDetail","description":null,"description_en":"Title of the part containing this section."},{"name":"contentHtml","type":"string","label":"ErskineMaySectionDetail","description":null,"description_en":"HTML-formatted content of the section."},{"name":"isUpdated","type":"boolean","label":"ErskineMaySectionDetail","description":null,"description_en":"Indicates whether the section has been recently updated."},{"name":"updatedDate","type":"string (date-time)","label":"ErskineMaySectionDetail","format":"date-time","description":null,"description_en":"Date and time the section was last updated."},{"name":"footnotes","type":"array<object>","label":"ErskineMaySectionDetail","description":null,"description_en":"List of footnotes associated with the section."}],"field_count":43,"sample_records":null,"record_count":null,"data_size_bytes":null,"dataset_count":null,"query_examples":[{"url":"https://erskinemay-api.parliament.uk/swagger/v1/swagger.json","curl":"curl -s 'https://erskinemay-api.parliament.uk/swagger/v1/swagger.json' -H 'Accept: application/json'","label":"OpenAPI spec","method":"GET","description":"Machine-readable API description (use it to generate clients)."},{"url":"https://erskinemay-api.parliament.uk/api/IndexTerm/browse","curl":"curl -s 'https://erskinemay-api.parliament.uk/api/IndexTerm/browse' -H 'Accept: application/json'","label":"Returns a list of index terms by start letter.","method":"GET","description":"Returns a list of index terms by start letter."}],"status":"partial","error_message":null,"profiled_at":"2026-07-25T03:10:17.856Z","run_id":"da1ac52d-66ff-4265-a84c-d007018efba8","created_at":"2026-06-12T19:32:47.372Z","updated_at":"2026-07-25T03:10:17.856Z","license_raw":null,"license_id":null,"consecutive_failure_count":0,"last_error_at":null,"last_error_message":null,"previewable":false},"datasets":[],"limits":[]}