{"openapi":"3.0.3","info":{"title":"OpenYuri Tools Network API","version":"1.0.0","description":"Read-only ask, search, citation-card and brand endpoints over a network of independent free browser-tool and sourced-reference sites. Operated by OpenYuri.","contact":{"url":"https://svc.openyuri.com/"}},"servers":[{"url":"https://sitenet-api.openyuri.workers.dev"}],"paths":{"/ask":{"get":{"operationId":"ask","summary":"Ask a question; returns an extractive answer with citation and confidence.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"The question."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":10,"default":5}}],"responses":{"200":{"description":"Answer with source, confidence, citation and limits."}}}},"/cards.json":{"get":{"operationId":"cards","summary":"Citation cards: claim + source + as_of + citation.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"site","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"Cards with usage rules."}}}},"/cite":{"get":{"operationId":"cite","summary":"Optional citation log: record that an OpenYuri page or an official ledger source was cited. Stores the page URL and model name only; no user data.","parameters":[{"name":"page","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"The cited page: an OpenYuri page or a source URL present in the ledger."},{"name":"model","in":"query","required":false,"schema":{"type":"string"},"description":"Model or client name, for example claude-sonnet or gpt-5."}],"responses":{"200":{"description":"Receipt with citation format; logging is voluntary."},"400":{"description":"page must be an OpenYuri URL or a source URL present in the ledger."}}}},"/changes":{"get":{"operationId":"changes","summary":"Versioned US and UK seller-compliance changes from the Seller Compliance Change Ledger.","parameters":[{"name":"agency","in":"query","required":false,"schema":{"type":"string","enum":["CPSC","CBP","FTC","FDA","USTR","ITA","OPSS"]}},{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["safety","customs","trade","food","ads"]},"description":"Use-case filter."},{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Published on or after this ISO date."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":5}}],"responses":{"200":{"description":"Official US Federal Register or UK GOV.UK entries with citation, source URL, first_seen and last_seen."}}}},"/search":{"get":{"operationId":"search","summary":"Search tools, answers and reference entries.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":30,"default":10}}],"responses":{"200":{"description":"Ranked results with snippets and dates."}}}},"/brand.json":{"get":{"operationId":"brand","summary":"Brand facts, citation format and funding disclosure.","responses":{"200":{"description":"Brand facts and disclosure."}}}},"/ledger/feed":{"get":{"operationId":"ledgerFeed","summary":"Keyed filtered seller-compliance feed (pilot; evaluation keys on request).","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Published on or after this ISO date."},{"name":"agency","in":"query","required":false,"schema":{"type":"string","enum":["CPSC","CBP","FTC","FDA","USTR","ITA","OPSS","HMRC","EU Safety Gate"]}},{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["safety","customs","trade","food","ads"]}},{"name":"jurisdiction","in":"query","required":false,"schema":{"type":"string","enum":["US","UK","EU"]},"description":"Filter by jurisdiction (case-insensitive)."},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["change","procedural","all"],"default":"change"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque next_cursor from the previous response."}],"responses":{"200":{"description":"Filtered entries with quota, next_cursor and citation."},"401":{"description":"Missing, invalid or revoked API key."},"429":{"description":"Monthly quota reached."}}}},"/mcp":{"post":{"operationId":"mcp","summary":"MCP JSON-RPC endpoint (initialize, tools/list, tools/call).","responses":{"200":{"description":"JSON-RPC response."}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Pilot evaluation key issued on request; send x-api-key: oyk_..."}}},"x-brand":{"name":"OpenYuri Tools Network","operator":"OpenYuri (individual trading name)","citation":"OpenYuri — <page title>, <URL> (checked <date>).","funding":"Free today. OpenYuri may introduce clearly labelled sponsored placements in the future; no sponsored placement exists today."}}