{"name":"publica.la website API","description":"The open JSON endpoints of publica.la, the website: anonymous, read-only answers about the website itself \u2014 what publica.la is, its plans, its blog and its changelog. It is not the API of a publica.la store: every store answers its own REST API on its own domain, documented at https:\/\/docs.publica.la\/api-overview\/","version":"v1","base_url":"https:\/\/publica.la\/api\/v1","documentation":"https:\/\/publica.la\/en\/ai-agents","openapi":"https:\/\/publica.la\/openapi.json","openapi_yaml":"https:\/\/publica.la\/openapi.yaml","api_catalog":"https:\/\/publica.la\/.well-known\/api-catalog","llms_txt":"https:\/\/publica.la\/llms.txt","platform_api_docs":"https:\/\/docs.publica.la\/api-overview\/","platform_api_llms_txt":"https:\/\/docs.publica.la\/llms.txt","sandbox":{"description":"There is no sandbox: the anonymous endpoints below are read-only, so a real call needs no credentials and changes nothing."},"status_page":"https:\/\/status.publica.la\/","contact":{"general":"hello@publica.la","support":"support@publica.la","security":"security@publica.la"},"mcp":{"url":"https:\/\/publica.la\/mcp","manifest":"https:\/\/publica.la\/.well-known\/mcp.json","server_card":"https:\/\/publica.la\/.well-known\/mcp\/server-card.json","transport":"streamable-http","authentication":"none","note":"This is the only publica.la MCP server, and it answers about this website. The documentation of a store's API at docs.publica.la does not run one; read it as Markdown from https:\/\/docs.publica.la\/llms.txt."},"a2a":{"url":"https:\/\/publica.la\/api\/a2a","agent_card":"https:\/\/publica.la\/.well-known\/agent-card.json","protocol_version":"0.3.0","transport":"JSONRPC","authentication":"none","skills":["site-guide"],"description":"An Agent2Agent endpoint with one method, `message\/send`, and one skill, `site-guide`: it answers with the publica.la entry point that answers the question it was sent. Deterministic and anonymous \u2014 no streaming, and no tasks are kept, which is why every capability on the card is false."},"agent_documents":{"index":"https:\/\/publica.la\/index.md","agents":"https:\/\/publica.la\/agents.md","guide":"https:\/\/publica.la\/guide.md","auth":"https:\/\/publica.la\/auth.md","api":"https:\/\/publica.la\/api.md","pricing":"https:\/\/publica.la\/pricing.md","skill":"https:\/\/publica.la\/skills\/publicala\/SKILL.md"},"authentication":{"required":false,"description":"No credential is needed for anything listed here: the endpoints below, the MCP server and the A2A endpoint. Send no Authorization header.","platform_api":"A store's own API authenticates with that store's own credentials, on the store's own domain. See https:\/\/docs.publica.la\/api-overview\/"},"rate_limits":{"policy":"300 requests per minute per caller","requests_per_minute":300,"window_seconds":60,"pace_to":"Pace to 100 requests a minute per IP: the edge in front of this site can refuse one IP past that, across every path. An edge refusal is an HTML page, so check the Content-Type before decoding a 429.","headers":["RateLimit-Policy","RateLimit","RateLimit-Limit","RateLimit-Remaining","RateLimit-Reset","Retry-After"]},"errors":{"format":"JSON, RFC 9457 members alongside message","docs":"https:\/\/publica.la\/en\/ai-agents#errors"},"endpoints":[{"method":"GET","methods":["GET"],"path":"\/api\/v1\/site\/posts","name":"site.posts.index","auth":"none","description":"Search published blog posts and product updates. No credential."},{"method":"GET","methods":["GET"],"path":"\/api\/v1\/site\/posts\/{slug}","name":"site.posts.show","auth":"none","description":"Fetch one published post by slug, body included. No credential."},{"method":"GET","methods":["GET"],"path":"\/api\/v1\/site\/changelog","name":"site.changelog","auth":"none","description":"List published changelog entries, newest month first. No credential."},{"method":"GET","methods":["GET"],"path":"\/api\/v1\/site\/pricing","name":"site.pricing","auth":"none","description":"The three publica.la plans and the Bookshop plan, with prices and features. No credential."},{"method":"GET","methods":["GET"],"path":"\/api\/v1\/site\/overview","name":"site.overview","auth":"none","description":"What publica.la is, when to use it, what it is not for, and every machine-readable entry point. Start here. No credential."}],"anonymous_endpoints":[{"method":"GET","methods":["GET"],"path":"\/api\/v1\/site\/posts","name":"site.posts.index","auth":"none","description":"Search published blog posts and product updates. No credential."},{"method":"GET","methods":["GET"],"path":"\/api\/v1\/site\/posts\/{slug}","name":"site.posts.show","auth":"none","description":"Fetch one published post by slug, body included. No credential."},{"method":"GET","methods":["GET"],"path":"\/api\/v1\/site\/changelog","name":"site.changelog","auth":"none","description":"List published changelog entries, newest month first. No credential."},{"method":"GET","methods":["GET"],"path":"\/api\/v1\/site\/pricing","name":"site.pricing","auth":"none","description":"The three publica.la plans and the Bookshop plan, with prices and features. No credential."},{"method":"GET","methods":["GET"],"path":"\/api\/v1\/site\/overview","name":"site.overview","auth":"none","description":"What publica.la is, when to use it, what it is not for, and every machine-readable entry point. Start here. No credential."}],"versions":{"v1":"https:\/\/publica.la\/api\/v1"}}