{"openapi":"3.1.0","info":{"title":"Commodity Directory API","version":"1.0.0","description":"A continuously verified directory of official public-sector APIs and datasets. Every entry carries proof-based officialness scoring, live availability checks, and per-field provenance. The catalog is harvestable in DCAT-AP 3.0.1 and as an Open Knowledge Format (OKF v0.1) bundle.","contact":{"name":"Commodity","url":"https://c0mm0.com"},"license":{"name":"CC0-1.0","identifier":"CC0-1.0"},"x-data-license":"CC0-1.0"},"servers":[{"url":"https://c0mm0.com","description":"Production"}],"tags":[{"name":"Entries","description":"Browse, search, and inspect catalog entries."},{"name":"Catalog","description":"DCAT-AP and JSON-LD machine-readable exports."},{"name":"Quality","description":"Per-entry quality, verification, and uptime data."},{"name":"Feeds","description":"RSS/Atom feeds and change streams."},{"name":"Submissions","description":"Submit new sources for review."}],"paths":{"/api/v1/entries":{"get":{"tags":["Entries"],"summary":"List entries with filters and pagination","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"type","in":"query","schema":{"type":"string","enum":["API","DATASET","MCP_SERVER"]}},{"name":"is_public_sector","in":"query","schema":{"type":"boolean"}},{"name":"country_code","in":"query","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"institution_type","in":"query","schema":{"type":"string"}},{"name":"tags","in":"query","schema":{"type":"string","description":"Comma-separated"}},{"name":"verification_state","in":"query","schema":{"type":"string","enum":["VERIFIED","STALE","FAILING","UNVERIFIED"]}},{"name":"search","in":"query","schema":{"type":"string"}},{"name":"sort_by","in":"query","schema":{"type":"string","enum":["name","created_at","last_verified_at","p50_latency_ms","ranking_score"]}},{"name":"sort_order","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"A page of entries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntriesPage"}}}}}}},"/api/v1/entries/{idOrSlug}":{"get":{"tags":["Entries"],"summary":"Get one entry by id (uuid) or slug","parameters":[{"name":"idOrSlug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The entry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Entry"}}}},"404":{"description":"Not found"}}}},"/api/v1/entries/search":{"get":{"tags":["Entries"],"summary":"Full-text search with ranking","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Ranked search results"}}}},"/api/v1/catalog/dcat.ttl":{"get":{"tags":["Catalog"],"summary":"DCAT-AP 3.0.1 catalog as Turtle","description":"The full catalog as RDF Turtle, harvestable by data.europa.eu and national portals.","responses":{"200":{"description":"Turtle document","content":{"text/turtle":{"schema":{"type":"string"}}}}}}},"/api/v1/catalog/dcat.jsonld":{"get":{"tags":["Catalog"],"summary":"DCAT-AP 3.0.1 catalog as JSON-LD","responses":{"200":{"description":"JSON-LD document","content":{"application/ld+json":{"schema":{"type":"object"}}}}}}},"/api/v1/catalog/summary":{"get":{"tags":["Catalog"],"summary":"Catalog summary (counts + format links)","responses":{"200":{"description":"Summary object"}}}},"/api/v1/okf/index.md":{"get":{"tags":["Catalog"],"summary":"Open Knowledge Format (OKF v0.1) bundle root index","description":"The catalog as a conformant OKF v0.1 knowledge bundle: markdown concepts with YAML frontmatter, continuously re-verified. Browse per-concept files under /api/v1/okf/{section}/{id}.md.","responses":{"200":{"description":"Markdown index","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/api/v1/okf/bundle.tar.gz":{"get":{"tags":["Catalog"],"summary":"OKF v0.1 bundle as a gzipped tarball","description":"The full materialized OKF bundle, rebuilt only when a source changes or the format evolves.","responses":{"200":{"description":"gzipped tar archive","content":{"application/gzip":{"schema":{"type":"string","format":"binary"}}}},"503":{"description":"Bundle not built yet"}}}},"/api/v1/okf/summary":{"get":{"tags":["Catalog"],"summary":"OKF surface summary (version, counts, endpoint links)","responses":{"200":{"description":"Summary object"}}}},"/api/v1/feeds/rss":{"get":{"tags":["Feeds"],"summary":"RSS feed of new entries","responses":{"200":{"description":"RSS XML"}}}},"/api/v1/feeds/atom":{"get":{"tags":["Feeds"],"summary":"Atom feed of new entries","responses":{"200":{"description":"Atom XML"}}}},"/health":{"get":{"summary":"Health check","responses":{"200":{"description":"OK"}}}}},"components":{"schemas":{"Entry":{"type":"object","required":["id","slug","name","type","status"],"properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["API","DATASET","MCP_SERVER"]},"description":{"type":"string","nullable":true},"homepage_url":{"type":"string","format":"uri","nullable":true},"docs_url":{"type":"string","format":"uri","nullable":true},"tags":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["ACTIVE","PENDING_REVIEW","DEPRECATED","REMOVED"]},"verification_state":{"type":"string","enum":["VERIFIED","STALE","FAILING","UNVERIFIED"]},"last_verified_at":{"type":"string","format":"date-time","nullable":true},"ranking_score":{"type":"number","nullable":true},"is_public_sector":{"type":"boolean"},"country_code":{"type":"string","nullable":true,"minLength":2,"maxLength":2},"institution_id":{"type":"string","format":"uuid","nullable":true},"institution_type":{"type":"string","nullable":true},"official_confidence":{"type":"number","minimum":0,"maximum":100,"nullable":true},"proof_summary":{"type":"string","nullable":true}}},"EntriesPage":{"type":"object","required":["items","total","page","limit","total_pages"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Entry"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"},"total_pages":{"type":"integer"}}}}},"x-mcp-hint":"This API is also accessible via MCP. See /llms.txt and /.well-known/mcp.json for agent connection details."}