{"openapi":"3.1.0","info":{"title":"Brownsmith Dynamics Plugins Catalog API","version":"1.0.0","description":"Public read-only catalog and article metadata. GET and HEAD only; no API key is required. Install and execute tools separately through their documented packages/extensions. This API has no uploads, write actions or separate sandbox. No fixed rate quota is promised.","contact":{"name":"Brownsmith Dynamics","email":"contact@brownsmithdynamics.com","url":"https://brownsmithdynamics.com"}},"servers":[{"url":"https://plugins.brownsmithdynamics.com"}],"externalDocs":{"description":"Developer documentation and real read-only examples","url":"https://plugins.brownsmithdynamics.com/developers/"},"paths":{"/api":{"get":{"operationId":"getPublicCatalog","summary":"Get public catalog","description":"Retrieve published publisher identity, all tools, article metadata and discovery links.","security":[],"responses":{"200":{"description":"Published catalog reference data, without file processing or execution.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Catalog"}}}},"400":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1":{"get":{"operationId":"getVersionedCatalog","summary":"Get versioned catalog","description":"Retrieve the version-one public catalog. This is the versioned alias of /api.","security":[],"responses":{"200":{"description":"Published catalog reference data, without file processing or execution.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Catalog"}}}},"400":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/tools":{"get":{"operationId":"listTools","summary":"List catalog tools","description":"List the tools currently described in the catalog, optionally filtered by distribution type. This does not query npm/store availability or execute a tool.","security":[],"parameters":[{"name":"type","in":"query","required":false,"description":"Exact distribution category to return.","schema":{"type":"string","enum":["npm-package","browser-extension","editor-extension"]}}],"responses":{"200":{"description":"Published catalog reference data, without file processing or execution.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Tool"}}}}},"400":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/tools/{slug}":{"get":{"operationId":"getTool","summary":"Get a catalog tool","description":"Retrieve one exact catalog tool with source, package/store, guide and article links where published. Unknown slugs return a structured 404.","security":[],"parameters":[{"name":"slug","in":"path","required":true,"description":"Exact stable slug from the published tools list.","schema":{"type":"string","enum":["page-qr","prompt-composer","jsx-copy-editor","ppdf","csv-schema-mapper","business-hours","consent-record-kit","invoice-rules","sitemap-diff"]}}],"responses":{"200":{"description":"Published catalog reference data, without file processing or execution.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tool"}}}},"400":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/articles":{"get":{"operationId":"listArticles","summary":"List article metadata","description":"Retrieve the published article metadata and editorial dates. Optionally filter by exact catalog tool slug; this endpoint does not return or generate article content.","security":[],"parameters":[{"name":"tool","in":"query","required":false,"description":"Exact catalog tool slug whose articles should be returned.","schema":{"type":"string","enum":["page-qr","prompt-composer","jsx-copy-editor","ppdf","csv-schema-mapper","business-hours","consent-record-kit","invoice-rules","sitemap-diff"]}}],"responses":{"200":{"description":"Published catalog reference data, without file processing or execution.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Article"}}}}},"400":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/health":{"get":{"operationId":"getHealth","summary":"Get service health","description":"Check that the catalog HTTP Worker is responding. This does not verify external package or store services.","security":[],"responses":{"200":{"description":"Published catalog reference data, without file processing or execution.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Structured HTTP problem with a stable code and resolution hint.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"schemas":{"Problem":{"type":"object","required":["type","title","status","detail","instance","code","resolution"],"properties":{"type":{"type":"string","format":"uri","description":"Documentation for the problem type."},"title":{"type":"string","description":"Short error summary."},"status":{"type":"integer","minimum":400,"maximum":599},"detail":{"type":"string","description":"Explanation of this failure."},"instance":{"type":"string","format":"uri-reference","description":"API family where the failure occurred. Submitted values are not echoed."},"code":{"type":"string","description":"Stable machine-readable error code."},"resolution":{"type":"string","description":"Action the caller can take."}},"additionalProperties":false},"Publisher":{"type":"object","properties":{"@type":{"type":"string","description":"Published @type information."},"@id":{"type":"string","description":"Published @id information."},"name":{"type":"string","description":"Published name information."},"legalName":{"type":"string","description":"Published legal name information."},"url":{"type":"string","description":"Published url information."},"description":{"type":"string","description":"Published description information."},"email":{"type":"string","description":"Published email information."},"contactPoint":{"type":"object","properties":{"@type":{"type":"string","description":"Published @type information."},"contactType":{"type":"string","description":"Published contact type information."},"email":{"type":"string","description":"Published email information."},"url":{"type":"string","description":"Published url information."},"availableLanguage":{"type":"array","items":{"type":"string"},"description":"Published available language information."}},"required":["@type","contactType","email","url","availableLanguage"],"additionalProperties":false,"description":"Published contact point information."},"address":{"type":"object","properties":{"@type":{"type":"string","description":"Published @type information."},"streetAddress":{"type":"string","description":"Published street address information."},"addressLocality":{"type":"string","description":"Published address locality information."},"addressRegion":{"type":"string","description":"Published address region information."},"postalCode":{"type":"string","description":"Published postal code information."},"addressCountry":{"type":"string","description":"Published address country information."}},"required":["@type","streetAddress","addressLocality","addressRegion","postalCode","addressCountry"],"additionalProperties":false,"description":"Published address information."}},"required":["@type","@id","name","legalName","url","description","email","contactPoint","address"],"additionalProperties":false},"Tool":{"type":"object","properties":{"slug":{"type":"string","description":"Published slug information."},"name":{"type":"string","description":"Published name information."},"description":{"type":"string","description":"Published description information."},"type":{"type":"string","description":"Published type information."},"sourceUrl":{"type":"string","description":"Published source url information.","format":"uri"},"npmUrl":{"anyOf":[{"type":"null"},{"type":"string"}],"description":"Published npm url information.","format":"uri"},"installUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Published install url information.","format":"uri"},"guideUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Published guide url information.","format":"uri"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Published version information."},"articleUrl":{"type":"string","description":"Published article url information.","format":"uri"}},"required":["slug","name","description","type","sourceUrl","npmUrl","installUrl","guideUrl","version","articleUrl"],"additionalProperties":false},"Article":{"type":"object","properties":{"slug":{"type":"string","description":"Published slug information."},"title":{"type":"string","description":"Published title information."},"description":{"type":"string","description":"Published description information."},"tool":{"type":"string","description":"Published tool information."},"date":{"type":"string","description":"Published date information.","format":"date"},"url":{"type":"string","description":"Published url information."}},"required":["slug","title","description","tool","date","url"],"additionalProperties":false},"Catalog":{"type":"object","properties":{"publisher":{"type":"object","properties":{"@type":{"type":"string","description":"Published @type information."},"@id":{"type":"string","description":"Published @id information."},"name":{"type":"string","description":"Published name information."},"legalName":{"type":"string","description":"Published legal name information."},"url":{"type":"string","description":"Published url information."},"description":{"type":"string","description":"Published description information."},"email":{"type":"string","description":"Published email information."},"contactPoint":{"type":"object","properties":{"@type":{"type":"string","description":"Published @type information."},"contactType":{"type":"string","description":"Published contact type information."},"email":{"type":"string","description":"Published email information."},"url":{"type":"string","description":"Published url information."},"availableLanguage":{"type":"array","items":{"type":"string"},"description":"Published available language information."}},"required":["@type","contactType","email","url","availableLanguage"],"additionalProperties":false,"description":"Published contact point information."},"address":{"type":"object","properties":{"@type":{"type":"string","description":"Published @type information."},"streetAddress":{"type":"string","description":"Published street address information."},"addressLocality":{"type":"string","description":"Published address locality information."},"addressRegion":{"type":"string","description":"Published address region information."},"postalCode":{"type":"string","description":"Published postal code information."},"addressCountry":{"type":"string","description":"Published address country information."}},"required":["@type","streetAddress","addressLocality","addressRegion","postalCode","addressCountry"],"additionalProperties":false,"description":"Published address information."}},"required":["@type","@id","name","legalName","url","description","email","contactPoint","address"],"additionalProperties":false,"description":"Published publisher information."},"tools":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"Published slug information."},"name":{"type":"string","description":"Published name information."},"description":{"type":"string","description":"Published description information."},"type":{"type":"string","description":"Published type information."},"sourceUrl":{"type":"string","description":"Published source url information."},"npmUrl":{"anyOf":[{"type":"null"},{"type":"string"}],"description":"Published npm url information."},"installUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Published install url information."},"guideUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Published guide url information."},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Published version information."},"articleUrl":{"type":"string","description":"Published article url information."}},"required":["slug","name","description","type","sourceUrl","npmUrl","installUrl","guideUrl","version","articleUrl"],"additionalProperties":false},"description":"Published tools information."},"articles":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"Published slug information."},"title":{"type":"string","description":"Published title information."},"description":{"type":"string","description":"Published description information."},"tool":{"type":"string","description":"Published tool information."},"date":{"type":"string","description":"Published date information."},"url":{"type":"string","description":"Published url information."}},"required":["slug","title","description","tool","date","url"],"additionalProperties":false},"description":"Published articles information."},"links":{"type":"object","properties":{"docs":{"type":"string","description":"Published docs information."},"openapi":{"type":"string","description":"Published openapi information."},"instructions":{"type":"string","description":"Published instructions information."},"catalog":{"type":"string","description":"Published catalog information."},"tools":{"type":"string","description":"Published tools information."},"articles":{"type":"string","description":"Published articles information."},"about":{"type":"string","description":"Published about information."},"contact":{"type":"string","description":"Published contact information."},"privacy":{"type":"string","description":"Published privacy information."}},"required":["docs","openapi","instructions","catalog","tools","articles","about","contact","privacy"],"additionalProperties":false,"description":"Published links information."}},"required":["publisher","tools","articles","links"],"additionalProperties":false},"Health":{"type":"object","properties":{"status":{"type":"string","const":"ok"}},"required":["status"],"additionalProperties":false}}}}