{"openapi":"3.1.0","info":{"title":"Good Bot Agent Catalogue","version":"1.1.0","description":"Public read-only discovery API. Retrieve details before recommending a workflow. Source claims and agent adaptations are not independently verified. No execution tools."},"servers":[{"url":"https://agents.goodbot.guide"}],"security":[],"paths":{"/api/workflows":{"get":{"operationId":"searchWorkflows","summary":"Search or browse sourced workflows","description":"Keyword ranking, any-term match; exact case-insensitive filters. Follow next_url for pagination. Results are summaries; retrieve detail_url for complete prompts and adaptations.","parameters":[{"name":"query","in":"query","description":"Concise task keywords; empty to browse","schema":{"type":"string","maxLength":300,"default":""}},{"name":"category","in":"query","description":"Exact label from /api/filters. agent identifies the source-reported agent.","schema":{"type":"string","maxLength":80}},{"name":"agent","in":"query","description":"Exact label from /api/filters. agent identifies the source-reported agent.","schema":{"type":"string","maxLength":80}},{"name":"evidence","in":"query","description":"Exact label from /api/filters. agent identifies the source-reported agent.","schema":{"type":"string","maxLength":80}},{"name":"limit","in":"query","description":"Page size","schema":{"type":"integer","minimum":1,"maximum":20,"default":5}},{"name":"offset","in":"query","description":"Page offset","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}}],"responses":{"200":{"description":"Public catalogue response.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"next_url":{"type":["string","null"]},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"detail_url":{"type":"string"},"markdown_url":{"type":"string"},"evidence":{"type":"string"},"source":{"type":"object"}}}}}}}}},"400":{"description":"Invalid input"},"429":{"description":"Rate limited; respect Retry-After"},"503":{"description":"Catalogue temporarily unavailable"}}}},"/api/workflows/{id}":{"get":{"operationId":"getWorkflow","summary":"Retrieve complete stored workflow and agent adaptations","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"agent_id","in":"query","description":"Optional stored adaptation ID; omit to return all adaptations","schema":{"type":"string","minLength":1,"maxLength":80}}],"responses":{"200":{"description":"Public catalogue response.","content":{"application/json":{"schema":{"type":"object","properties":{"workflow":{"$ref":"#/components/schemas/Workflow"},"adaptations":{"type":"array","items":{"$ref":"#/components/schemas/Adaptation"}},"available_adaptations":{"type":"array","items":{"type":"object"}},"adaptation_found":{"type":["boolean","null"]},"detail_available":{"type":"object"},"notice":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"404":{"description":"Workflow ID not found"},"429":{"description":"Rate limited; respect Retry-After"},"503":{"description":"Catalogue temporarily unavailable"}}}},"/api/filters":{"get":{"operationId":"listCatalogueFilters","summary":"Get live totals, categories, reported agents, evidence labels and adaptation IDs","responses":{"200":{"description":"Public catalogue response.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"categories":{"type":"array","items":{"type":"object"}},"reported_agents":{"type":"array","items":{"type":"object"}},"evidence_labels":{"type":"array","items":{"type":"object"}},"adaptation_agents":{"type":"array","items":{"type":"object"}}}}}}},"400":{"description":"Invalid input"},"429":{"description":"Rate limited; respect Retry-After"},"503":{"description":"Catalogue temporarily unavailable"}}}}},"components":{"schemas":{"Workflow":{"type":"object","required":["id","title","prompt"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"desc":{"type":"string"},"category":{"type":"string"},"agent":{"type":"string"},"url":{"type":"string","format":"uri"},"source":{"type":"string"},"status":{"type":"string"},"prompt":{"type":"string"},"requirements":{"type":"array","items":{"type":"string"}},"connectors":{"type":"array","items":{"type":"string"}},"steps":{"type":"array","items":{"type":"string"}},"taskSteps":{"type":"array","items":{"type":"string"}},"taskConnectors":{"type":"array","items":{"type":"string"}},"connectionOptions":{"type":"array","items":{"type":"string"}},"expectedResult":{"type":"string"},"limitations":{"type":"string"},"trigger":{"type":"string"},"notes":{"type":"string"},"evidenceSummary":{"type":"string"},"recipe":{"type":"object","description":"Optional newer structured recipe; missing on older entries.","properties":{"goal":{"type":"string"},"access":{"type":"string"},"trigger":{"type":"string"},"output":{"type":"string"},"guardrail":{"type":"string"},"sourceNotes":{"type":"string"},"sourceStatus":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"steps":{"type":"array","items":{"type":"string"}},"generated":{"type":"boolean"}}}}},"Adaptation":{"type":"object","properties":{"agentId":{"type":"string"},"agentName":{"type":"string"},"status":{"type":"string"},"tested":{"type":"boolean"},"prompt":{"type":"string"},"requirements":{"type":"array","items":{"type":"string"}},"connectors":{"type":"array","items":{"type":"string"}},"steps":{"type":"array","items":{"type":"string"}},"guardrail":{"type":"string"},"notes":{"type":"string"}}}}}}