{"openapi":"3.1.1","info":{"title":"Fieldbook public read API","version":"1.0.0","description":"Anonymous catalog discovery and pricing. Member entries contain teaser fields only. MCP authentication and member source retrieval are documented separately at /docs/agents."},"servers":[{"url":"https://fieldbook.lizardi.mx"}],"security":[],"paths":{"/index/components.json":{"get":{"operationId":"listPublicComponents","summary":"List open components and member teasers","responses":{"200":{"description":"Versioned English catalog. Category is a stable identifier; thumbnail is an absolute URL or null. Open controls is a count; full control definitions are in the open bundle and markdown twin.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentIndex"}}}}}}},"/pricing.json":{"get":{"operationId":"getPublicPricing","summary":"Read plan prices and public checkout availability","responses":{"200":{"description":"Amounts use currency minor units. A listed price does not imply checkout is available. Cached for up to five minutes at the CDN.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pricing"}}}}}}},"/api/components/{slug}":{"get":{"operationId":"getOpenComponentBundle","summary":"Read the source bundle of an open component","description":"Select access=open from the catalog index. Anonymous member requests return an error, never a bundle. This public contract does not grant member access.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]*$"}}],"responses":{"200":{"description":"Open source, controls and installation commands. Public cache: 300 seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentBundle"}}}},"401":{"description":"Authentication required for a member component.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Membership does not permit retrieval.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown component.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Member authorization is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"ComponentIndex":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"type":"number","const":1},"count":{"type":"integer","minimum":0,"maximum":9007199254740991},"items":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string","enum":["buttons","inputs","forms","navigation","layout","cards","data-display","charts","feedback","overlays","typography","text-effects","backgrounds","animation","cursor","scroll","media","marketing","blocks","pages","icons","utilities","hooks","three-d"]},"tags":{"type":"array","items":{"type":"string"}},"frame":{"type":"string","enum":["inline","card","wide","full"]},"theme":{"default":"either","type":"string","enum":["dark","light","either"]},"plate":{"type":"number"},"access":{"type":"string","const":"open"},"frameworks":{"type":"array","items":{"type":"string","enum":["react","vue","svelte","astro","html"]}},"thumbnail":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"controls":{"type":"number"},"verified":{"type":"boolean"},"security":{"type":"string","enum":["clean","review","flagged"]},"slop":{"type":"number"},"url":{"type":"string","format":"uri"}},"required":["slug","title","description","category","tags","frame","theme","plate","access","frameworks","thumbnail","controls","verified","url"],"additionalProperties":false},{"type":"object","properties":{"plate":{"type":"number"},"slug":{"type":"string"},"title":{"type":"string"},"category":{"type":"string","enum":["buttons","inputs","forms","navigation","layout","cards","data-display","charts","feedback","overlays","typography","text-effects","backgrounds","animation","cursor","scroll","media","marketing","blocks","pages","icons","utilities","hooks","three-d"]},"url":{"type":"string","format":"uri"},"access":{"type":"string","const":"member"},"thumbnail":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["plate","slug","title","category","url","access","thumbnail"],"additionalProperties":false}]}}},"required":["version","count","items"],"additionalProperties":false},"Pricing":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"type":"number","const":1},"url":{"type":"string","format":"uri"},"checkoutAvailable":{"type":"boolean"},"perComponentPurchases":{"type":"boolean","const":false},"plans":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["free","pro"]},"name":{"type":"string"},"amountMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string"},"interval":{"type":"string","const":"month"},"monthlyCredits":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"metered":{"type":"boolean"},"checkoutAvailable":{"type":"boolean"}},"required":["id","name","amountMinor","currency","interval","monthlyCredits","metered","checkoutAvailable"],"additionalProperties":false}}},"required":["version","url","checkoutAvailable","perComponentPurchases","plans"],"additionalProperties":false},"ComponentBundle":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string"},"controls":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9]*$"},"label":{"type":"string"},"type":{"type":"string","const":"number"},"default":{"type":"number"},"min":{"type":"number"},"max":{"type":"number"},"step":{"default":1,"type":"number","exclusiveMinimum":0}},"required":["name","type","default","min","max","step"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9]*$"},"label":{"type":"string"},"type":{"type":"string","const":"boolean"},"default":{"type":"boolean"}},"required":["name","type","default"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9]*$"},"label":{"type":"string"},"type":{"type":"string","const":"color"},"default":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["name","type","default"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9]*$"},"label":{"type":"string"},"type":{"type":"string","const":"select"},"default":{"type":"string"},"options":{"minItems":2,"type":"array","items":{"type":"string"}}},"required":["name","type","default","options"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9]*$"},"label":{"type":"string"},"type":{"type":"string","const":"text"},"default":{"type":"string"},"maxLength":{"default":80,"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["name","type","default","maxLength"],"additionalProperties":false}]}},"files":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"html":{"type":"string"},"raw":{"type":"string"}},"required":["name","html","raw"],"additionalProperties":false}},"ports":{"type":"array","items":{"type":"object","properties":{"framework":{"type":"string","enum":["vue","svelte","astro","html"]},"label":{"type":"string"},"status":{"type":"string","enum":["pass","fail","untested","unsupported"]},"note":{"type":"string"},"file":{"type":"object","properties":{"name":{"type":"string"},"html":{"type":"string"},"raw":{"type":"string"}},"required":["name","html","raw"],"additionalProperties":false}},"required":["framework","label","status","file"],"additionalProperties":false}},"install":{"type":"array","items":{"type":"object","properties":{"framework":{"type":"string"},"label":{"type":"string"},"command":{"type":"string"}},"required":["framework","label","command"],"additionalProperties":false}},"registrySnippet":{"type":"string"}},"required":["slug","files","ports","install","registrySnippet"],"additionalProperties":false},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"detail":{"type":"string"},"docs":{"type":"string"},"upgrade":{"type":"string"}}}}}}