{"openapi":"3.1.1","info":{"title":"Errata API","version":"2026-08-26","description":"Source-backed STM32 hardware facts, provenance, and immutable release metadata over REST. Send Errata-Version: 2026-08-26 to pin the contract.","license":{"name":"MIT","identifier":"MIT"}},"servers":[{"url":"https://erratalabs.dev","description":"Production"},{"url":"http://127.0.0.1:3100","description":"Local development"}],"security":[{},{"BearerAuth":[]}],"paths":{"/ping":{"get":{"summary":"Check hosted API connectivity","operationId":"check_hosted_api_connectivity","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."}],"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ping"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/openapi.json":{"get":{"summary":"Read the OpenAPI contract","operationId":"read_the_openapi_contract","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."}],"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiDocument"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/livez":{"get":{"summary":"Service liveness","operationId":"service_liveness","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."}],"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/readyz":{"get":{"summary":"Release-aware service readiness","operationId":"release_aware_service_readiness","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."}],"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/health":{"get":{"summary":"Release-aware service health","operationId":"release_aware_service_health","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."}],"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/healthz":{"get":{"summary":"Release-aware service health alias","operationId":"release_aware_service_health_alias","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."}],"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/v1/error-codes/{code}":{"get":{"summary":"Read stable error-code guidance","operationId":"read_stable_error_code_guidance","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."},{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnyObject"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/v1/parts/resolve":{"get":{"summary":"Resolve a part number without silently choosing ambiguity","operationId":"resolve_a_part_number_without_silently_choosing_ambiguity","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."},{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":128}},{"name":"query","in":"query","required":false,"schema":{"type":"string","minLength":3,"maxLength":1000}},{"name":"corpus_release","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-f0-9]{16}$"}},{"name":"candidate_limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":10}}],"security":[{},{"BearerAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnyObject"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/v1/catalog/search":{"get":{"summary":"Search the exact publisher selector catalog","operationId":"search_the_exact_publisher_selector_catalog","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."},{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":128}},{"name":"candidate_limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":10}}],"security":[{},{"BearerAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnyObject"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/v1/catalog/part":{"get":{"summary":"Read catalog and document coverage for one part","operationId":"read_catalog_and_document_coverage_for_one_part","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."},{"name":"part","in":"query","required":true,"schema":{"type":"string","minLength":4,"maxLength":128}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnyObject"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/v1/context":{"get":{"summary":"Retrieve bounded evidence-backed engineering context","operationId":"retrieve_bounded_evidence_backed_engineering_context","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."},{"name":"part","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":128}},{"name":"topic","in":"query","required":true,"schema":{"type":"string","enum":["registers","pins","electrical","errata"]}},{"name":"query","in":"query","required":false,"schema":{"type":"string","minLength":3,"maxLength":2000}},{"name":"fact_names","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated exact fact names. Exact names and prefixes are ORed together."}},{"name":"fact_name_prefixes","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated fact-name prefixes for deterministic retrieval."}},{"name":"peripheral","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"silicon_revision","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":32}},{"name":"revision","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":32,"deprecated":true}},{"name":"package","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"corpus_release","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-f0-9]{16}$"}},{"name":"max_tokens","in":"query","required":false,"schema":{"type":"integer","minimum":256,"maximum":16000,"default":4000}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":512}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnyObject"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/v1/release":{"get":{"summary":"Read the immutable corpus and API release identity","operationId":"read_the_immutable_corpus_and_api_release_identity","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseResponse"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/v1/coverage":{"get":{"summary":"Read topic coverage for a resolved part","operationId":"read_topic_coverage_for_a_resolved_part","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."},{"name":"part","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":128}},{"name":"corpus_release","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-f0-9]{16}$"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnyObject"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/v1/sources":{"get":{"summary":"Read publisher provenance and archived-artifact metadata","operationId":"read_publisher_provenance_and_archived_artifact_metadata","parameters":[{"name":"Errata-Version","in":"header","required":false,"schema":{"type":"string","const":"2026-08-26"},"description":"Pins the dated REST API contract."},{"name":"part","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":128}},{"name":"corpus_release","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-f0-9]{16}$"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnyObject"}}}},"400":{"$ref":"#/components/responses/Problem"},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"429":{"$ref":"#/components/responses/Problem"},"500":{"$ref":"#/components/responses/Problem"}}}},"/mcp":{"post":{"summary":"Call the stateless Streamable HTTP MCP server","operationId":"call_mcp","security":[{},{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcRequest"}}}},"responses":{"200":{"description":"JSON-RPC or SSE MCP response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnyObject"}}}},"400":{"description":"JSON-RPC parse or request error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcError"}}}},"401":{"$ref":"#/components/responses/Problem"},"403":{"$ref":"#/components/responses/Problem"},"413":{"description":"Bounded JSON-RPC request-size error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcError"}}}},"429":{"$ref":"#/components/responses/Problem"}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Errata API credential"}},"responses":{"Problem":{"description":"Stable RFC 9457-style error response","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"schemas":{"AnyObject":{"type":"object","additionalProperties":true},"OpenApiDocument":{"type":"object","required":["openapi","info","paths"],"additionalProperties":true},"Ping":{"type":"object","required":["status","message"],"additionalProperties":false,"properties":{"status":{"const":"ok"},"message":{"const":"pong"}}},"Health":{"type":"object","required":["status"],"additionalProperties":true,"properties":{"status":{"type":"string"},"service":{"type":"string"},"version":{"type":"string"}}},"ReleaseResponse":{"type":"object","required":["release","api"],"additionalProperties":false,"properties":{"release":{"type":"object","additionalProperties":true},"api":{"$ref":"#/components/schemas/ApiIdentity"}}},"ApiIdentity":{"type":"object","required":["version","openapi_sha256"],"additionalProperties":false,"properties":{"version":{"const":"2026-08-26"},"openapi_sha256":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"}}},"Problem":{"type":"object","additionalProperties":false,"required":["type","title","status","detail","code","param","requestId","docUrl","error","message","request_id"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string","pattern":"^[A-Z0-9_]+$"},"param":{"type":["string","null"]},"requestId":{"type":"string"},"docUrl":{"type":"string","format":"uri"},"error":{"type":"string","description":"Backward-compatible alias of code."},"message":{"type":"string","description":"Backward-compatible alias of detail."},"request_id":{"type":"string","description":"Backward-compatible alias of requestId."}}},"JsonRpcRequest":{"type":"object","required":["jsonrpc","method"],"additionalProperties":true,"properties":{"jsonrpc":{"const":"2.0"},"id":{},"method":{"type":"string"},"params":{}}},"JsonRpcError":{"type":"object","required":["jsonrpc","error","id"],"additionalProperties":false,"properties":{"jsonrpc":{"const":"2.0"},"error":{"type":"object","additionalProperties":true},"id":{}}}}}}