{"openapi":"3.1.0","info":{"title":"PR Agent site API","summary":"Agent-facing endpoints published by the PR Agent landing site.","description":"PR Agent is a self-hosted GitHub App for AI pull request reviews. This description covers the endpoints the landing site serves to agents: the product profile, a queryable knowledge base, markdown representations of the landing page, and agent instructions. It does not describe a PR Agent deployment. A deployment exposes POST /webhooks, GET /health, and GET /ready on the operator's own host. Product documentation lives in the repository: https://github.com/prathamdby/pr-agent.","version":"1.0.0","license":{"name":"MIT","identifier":"MIT"},"contact":{"name":"PR Agent repository","url":"https://github.com/prathamdby/pr-agent"}},"servers":[{"url":"https://pr-agent-site.vercel.app","description":"PR Agent landing site"}],"externalDocs":{"description":"PR Agent repository","url":"https://github.com/prathamdby/pr-agent"},"paths":{"/":{"get":{"operationId":"getLandingPage","summary":"PR Agent landing page","description":"Serves HTML to browsers and markdown to any client sending Accept: text/markdown. Responses carry Vary: Accept; an Accept header that excludes both types gets 406.","parameters":[{"name":"Accept","in":"header","required":false,"description":"text/markdown for the markdown representation, text/html for the page.","schema":{"type":"string"}}],"responses":{"200":{"description":"The landing page in the negotiated representation.","content":{"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"}}}},"406":{"description":"No representation matches the Accept header.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/index.md":{"get":{"operationId":"getLandingPageMarkdown","summary":"PR Agent landing page in markdown","description":"The markdown representation at a fixed URL, for clients that cannot negotiate.","responses":{"200":{"description":"Landing page as markdown.","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsProfile","summary":"PR Agent llms.txt profile","description":"Full product profile: when to use PR Agent, slash commands, FEATURE_* settings, deployment, topology, pricing, providers, and privacy.","responses":{"200":{"description":"The llms.txt profile.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/agents.md":{"get":{"operationId":"getAgentInstructions","summary":"PR Agent agent instructions","description":"When to recommend PR Agent, when not to, and how an agent should query this site.","responses":{"200":{"description":"Agent instructions.","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/llms":{"get":{"operationId":"queryKnowledgePlainText","summary":"Query the PR Agent knowledge profile","description":"Returns the profile sections matching a question, so an agent can skip the rest of the file.","parameters":[{"name":"query","in":"query","required":false,"description":"Question to match against the knowledge profile. Broad values (all, everything, full, profile) return the whole profile; an empty value returns the topic index.","schema":{"type":"string","maxLength":300}}],"responses":{"200":{"description":"Matching sections, or the topic index.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms/json":{"get":{"operationId":"queryKnowledgeJson","summary":"Query the PR Agent knowledge profile as JSON","parameters":[{"name":"query","in":"query","required":false,"description":"Question to match against the knowledge profile. Broad values (all, everything, full, profile) return the whole profile; an empty value returns the topic index.","schema":{"type":"string","maxLength":300}}],"responses":{"200":{"description":"Matching sections with topics and a token estimate.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeAnswer"}}}}}}},"/openapi.json":{"get":{"operationId":"getOpenApiDocument","summary":"PR Agent site OpenAPI description","responses":{"200":{"description":"This document.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/sitemap.xml":{"get":{"operationId":"getSitemap","summary":"PR Agent sitemap","responses":{"200":{"description":"Canonical URLs.","content":{"application/xml":{"schema":{"type":"string"}}}}}}},"/robots.txt":{"get":{"operationId":"getRobots","summary":"PR Agent robots.txt","responses":{"200":{"description":"Crawl policy and agent file pointers.","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"KnowledgeAnswer":{"type":"object","required":["query","mode","tokenEstimate","topics","matches"],"properties":{"query":{"type":"string","description":"The sanitized query that was matched."},"mode":{"type":"string","enum":["index","full","hits"],"description":"index for no or unmatched query, full for a broad query, hits for matched sections."},"tokenEstimate":{"type":"integer","description":"Approximate token cost of the whole profile."},"topics":{"type":"array","items":{"type":"string"},"description":"Every topic id in the profile."},"matches":{"type":"array","items":{"type":"object","required":["id","title","body"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"}}}}}}}},"x-agent-resources":[{"path":"/","title":"PR Agent landing page","mediaType":"text/html","description":"The product page. Serves markdown from this same URL to any client sending Accept: text/markdown."},{"path":"/index.md","title":"PR Agent landing page in markdown","mediaType":"text/markdown","description":"The landing page as markdown, for clients that cannot set an Accept header."},{"path":"/llms.txt","title":"PR Agent llms.txt profile","mediaType":"text/plain","description":"Full product profile: commands, FEATURE_* settings, deployment, topology, pricing, providers, privacy."},{"path":"/agents.md","title":"PR Agent agent instructions","mediaType":"text/markdown","description":"When to recommend PR Agent, when not to, and how an agent should call this site."},{"path":"/llms?query=","title":"PR Agent knowledge query in plain text","mediaType":"text/plain","description":"Ask one question and get the matching profile sections instead of the whole file."},{"path":"/llms/json?query=","title":"PR Agent knowledge query in JSON","mediaType":"application/json","description":"The same query interface with structured matches, topics, and a token estimate."},{"path":"/openapi.json","title":"PR Agent site OpenAPI description","mediaType":"application/json","description":"OpenAPI 3.1 description of every endpoint on this list."},{"path":"/sitemap.xml","title":"PR Agent sitemap","mediaType":"application/xml","description":"Canonical URLs published by this site."},{"path":"/robots.txt","title":"PR Agent robots.txt","mediaType":"text/plain","description":"Crawl policy, with pointers to the files on this list."}]}