ZZanoraDocs

Endpoints

Publish, list, fetch, edit and deprecate capabilities. Sellers write; anyone with a key can read what discovery would show.

POST/v1/capabilities

Scope capabilities:write (provider key). Publishes a capability. providerId comes from your key.

FieldTypeRequiredNotes
namestringyesshown in discovery
descriptionstringyessearched and ranked on
protocol"rest" | "mcp"yes
priceMinorstringyescents per call
categorystringyes
endpointstringone ofthe URL buyers call
addressobjectone of{kind:"url", url} or {kind:"package", command, args, version}. Give exactly one of endpoint or address
toolNamestringmcp onlyrequired for mcp, refused for rest
schemaobjectnoJSON Schema of the request body or tool arguments
tagsstring[]no
latencyP50Msnumbernoadvertised median latency
currency"USD"nodefault USD
versionstringnoyour version label

A package address must use an approved launcher (npx) and pin an exact version in both version and args (["-y","@acme/ocr-mcp@1.4.2"]).

JSON
// 200
{ "capability": { "id": "cap_…", "status": "active", "…": "…" }, "version": { "id": "…", "endpoint": "…", "address": { "…": "…" }, "hash": "…" } }
GET/v1/capabilities

Scope capabilities:read, provider keys only. Your own listings, including deprecated ones: { capabilities: [{ capability, version }] }. A workspace key gets 403. Buyers use discovery.

GET/v1/capabilities/:id

Scope capabilities:read. One capability, with provider and a discoverable flag. version (the address) is included only if discovery would show this capability (active, from a verified seller), or if you're its seller. Otherwise the capability is described but has no address to call.

POST/v1/capabilities/:id

Scope capabilities:write, owner only. Edits a live listing and keeps its id. The body is a patch: send only what changes.

FieldNotes
priceMinor, currencyeffective from the next price quote
name, description, category, tagsre-indexed for discovery
schemapublishes a new version
latencyP50Ms

There's no field for the address, protocol or tool name: those can't change. A capability that isn't active refuses edits. Returns { capability, changed: ["priceMinor", …], version? }.

POST/v1/capabilities/:id/deprecate

Scope capabilities:write, owner only. No body. Removes the capability from discovery. Existing ids still resolve.