{"openapi":"3.1.0","info":{"title":"gradientdeck API","version":"1.0.0","description":"Complete mirrored public design library. Snapshot freshness is explicit in meta; index refresh every six hours, full source revalidation daily. Source: https://ui.gradientdeck.com. Fair-use limit:60 requests/minute/client; upstream limits also apply. Reads use a complete mirrored snapshot; actual age and retrieval time are returned. Browser sessions are never shared.\n\nThe complete public GradientDeck UI reference library: original compact and extended Markdown, metadata, palettes, typefaces, component/design rules, Agent Prompt Guide and Quick Start instructions. No WHOX account or API key is required. These are design references for your own interfaces; original designs belong to the referenced sites. Source attribution and SHA-256 hashes are preserved. Media links are returned but media/font files and usage licenses are not bundled.\n\nWorkflow: GET /v1/filters, search /v1/search?q=fintech&theme=dark, then fetch /v1/design?slug=hifi&variant=both or /v1/instructions?slug=hifi. Search metadata by default; content=true also searches both full Markdown documents. Pagination uses nextOffset until null; no rows are silently truncated. /v1/export returns up to 20 designs per JSON page and may return fewer to stay within the 2MiB bound; always follow nextOffset.\n\nDirect files: /designs/{slug}/design.md and /designs/{slug}/design-extended.md. Full metadata: /library.json. All source Markdown and metadata in one downloadable ZIP: /archive.zip. See /v1/stats for current counts, completeness, retrieval time and snapshot ID.\n\nReads are served immediately from a complete validated local snapshot. The source index is checked every six hours. New/changed entries are fetched then; all Markdown is revalidated at least daily when the source is reachable. A failed refresh retains the previous complete snapshot, and every response exposes its actual mirroredAt/ageMs. No browser, login, private sessions or source writes are involved. The 2MiB JSON response limit remains; the static ZIP download has its own 128MiB cap. Fair use is 60 requests/minute/IP. api.json declares this native snapshot adapter; use openapi.json as the portable HTTP client schema."},"servers":[{"url":"https://gradientdeck.api.whox.ai"}],"security":[],"paths":{"/v1/search":{"get":{"summary":"Search and filter every design in the complete source library; returns metadata and original Markdown URLs.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["total","offset","limit","returned","nextOffset","results"],"properties":{"total":{"type":"integer","minimum":0},"offset":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":0},"returned":{"type":"integer","minimum":0},"nextOffset":{"type":["integer","null"],"minimum":0},"results":{"type":"array","items":{"type":"object","required":["slug","name","nickname","industry","theme","host","colors","fonts","sourceUrl","documents","apiUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"industry":{"type":"string"},"theme":{"enum":["light","dark","mixed"]},"host":{"type":"string"},"cover_asset":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"},"width":{"type":["integer","null"],"minimum":0},"height":{"type":["integer","null"],"minimum":0}},"additionalProperties":true},"video":{"type":["string","null"]},"icon":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"dark":{"type":"boolean"}},"additionalProperties":true},"tone":{"type":"object","properties":{"bg":{"type":"string"},"ink":{"type":"string"}}},"colors":{"type":"array","items":{"type":"object","required":["id","name","hex"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"hex":{"type":"string"}},"additionalProperties":true}},"fonts":{"type":"array","items":{"type":"string"}},"sourceUrl":{"type":"string","format":"uri"},"documents":{"type":"object","properties":{"compact":{"type":"string","format":"uri"},"extended":{"type":"string","format":"uri"}}},"apiUrl":{"type":"string","format":"uri"},"content":{"type":"object","properties":{"compact":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"extended":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":true}}},"additionalProperties":false},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_search","parameters":[{"name":"q","in":"query","required":false,"description":"Case-insensitive AND search across site metadata; set content=true to also search both complete Markdown files.","schema":{"type":"string","description":"Case-insensitive AND search across site metadata; set content=true to also search both complete Markdown files."}},{"name":"theme","in":"query","required":false,"description":"Exact theme.","schema":{"type":"string","description":"Exact theme.","enum":["light","dark","mixed"]}},{"name":"industry","in":"query","required":false,"description":"Exact industry code from filters.","schema":{"type":"string","description":"Exact industry code from filters."}},{"name":"font","in":"query","required":false,"description":"Case-insensitive font-name substring.","schema":{"type":"string","description":"Case-insensitive font-name substring."}},{"name":"color","in":"query","required":false,"description":"Exact palette hex color. URL-encode # as %23.","schema":{"type":"string","description":"Exact palette hex color. URL-encode # as %23.","pattern":"^#[0-9a-fA-F]{6}$"}},{"name":"content","in":"query","required":false,"description":"Include full Markdown in q search; default false.","schema":{"type":"boolean","description":"Include full Markdown in q search; default false.","default":false}},{"name":"sort","in":"query","required":false,"description":"Newest follows source library order; name sorts by title.","schema":{"type":"string","description":"Newest follows source library order; name sorts by title.","default":"newest","enum":["newest","name","name-desc"]}},{"name":"offset","in":"query","required":false,"description":"Zero-based offset.","schema":{"type":"integer","description":"Zero-based offset.","default":0,"minimum":0,"maximum":1000000}},{"name":"limit","in":"query","required":false,"description":"Results per page.","schema":{"type":"integer","description":"Results per page.","default":25,"minimum":1,"maximum":100}}]},"post":{"summary":"Search and filter every design in the complete source library; returns metadata and original Markdown URLs.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["total","offset","limit","returned","nextOffset","results"],"properties":{"total":{"type":"integer","minimum":0},"offset":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":0},"returned":{"type":"integer","minimum":0},"nextOffset":{"type":["integer","null"],"minimum":0},"results":{"type":"array","items":{"type":"object","required":["slug","name","nickname","industry","theme","host","colors","fonts","sourceUrl","documents","apiUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"industry":{"type":"string"},"theme":{"enum":["light","dark","mixed"]},"host":{"type":"string"},"cover_asset":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"},"width":{"type":["integer","null"],"minimum":0},"height":{"type":["integer","null"],"minimum":0}},"additionalProperties":true},"video":{"type":["string","null"]},"icon":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"dark":{"type":"boolean"}},"additionalProperties":true},"tone":{"type":"object","properties":{"bg":{"type":"string"},"ink":{"type":"string"}}},"colors":{"type":"array","items":{"type":"object","required":["id","name","hex"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"hex":{"type":"string"}},"additionalProperties":true}},"fonts":{"type":"array","items":{"type":"string"}},"sourceUrl":{"type":"string","format":"uri"},"documents":{"type":"object","properties":{"compact":{"type":"string","format":"uri"},"extended":{"type":"string","format":"uri"}}},"apiUrl":{"type":"string","format":"uri"},"content":{"type":"object","properties":{"compact":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"extended":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":true}}},"additionalProperties":false},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_search_json","description":"JSON invocation of the same read-only source operation; this does not perform an upstream write.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","description":"Case-insensitive AND search across site metadata; set content=true to also search both complete Markdown files."},"theme":{"type":"string","description":"Exact theme.","enum":["light","dark","mixed"]},"industry":{"type":"string","description":"Exact industry code from filters."},"font":{"type":"string","description":"Case-insensitive font-name substring."},"color":{"type":"string","description":"Exact palette hex color. URL-encode # as %23.","pattern":"^#[0-9a-fA-F]{6}$"},"content":{"type":"boolean","description":"Include full Markdown in q search; default false.","default":false},"sort":{"type":"string","description":"Newest follows source library order; name sorts by title.","default":"newest","enum":["newest","name","name-desc"]},"offset":{"type":"integer","description":"Zero-based offset.","default":0,"minimum":0,"maximum":1000000},"limit":{"type":"integer","description":"Results per page.","default":25,"minimum":1,"maximum":100}},"required":[],"additionalProperties":false}}}}}},"/v1/design":{"get":{"summary":"Get all metadata and full, unmodified compact/extended design Markdown, sections and provenance.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["slug","name","nickname","industry","theme","host","colors","fonts","sourceUrl","documents","apiUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"industry":{"type":"string"},"theme":{"enum":["light","dark","mixed"]},"host":{"type":"string"},"cover_asset":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"},"width":{"type":["integer","null"],"minimum":0},"height":{"type":["integer","null"],"minimum":0}},"additionalProperties":true},"video":{"type":["string","null"]},"icon":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"dark":{"type":"boolean"}},"additionalProperties":true},"tone":{"type":"object","properties":{"bg":{"type":"string"},"ink":{"type":"string"}}},"colors":{"type":"array","items":{"type":"object","required":["id","name","hex"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"hex":{"type":"string"}},"additionalProperties":true}},"fonts":{"type":"array","items":{"type":"string"}},"sourceUrl":{"type":"string","format":"uri"},"documents":{"type":"object","properties":{"compact":{"type":"string","format":"uri"},"extended":{"type":"string","format":"uri"}}},"apiUrl":{"type":"string","format":"uri"},"content":{"type":"object","properties":{"compact":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"extended":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":true},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_design","parameters":[{"name":"slug","in":"query","required":true,"description":"Exact slug returned by search; never a URL or filesystem path.","schema":{"type":"string","description":"Exact slug returned by search; never a URL or filesystem path.","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},{"name":"variant","in":"query","required":false,"description":"Which original source Markdown to return.","schema":{"type":"string","description":"Which original source Markdown to return.","default":"both","enum":["compact","extended","both"]}}]},"post":{"summary":"Get all metadata and full, unmodified compact/extended design Markdown, sections and provenance.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["slug","name","nickname","industry","theme","host","colors","fonts","sourceUrl","documents","apiUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"industry":{"type":"string"},"theme":{"enum":["light","dark","mixed"]},"host":{"type":"string"},"cover_asset":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"},"width":{"type":["integer","null"],"minimum":0},"height":{"type":["integer","null"],"minimum":0}},"additionalProperties":true},"video":{"type":["string","null"]},"icon":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"dark":{"type":"boolean"}},"additionalProperties":true},"tone":{"type":"object","properties":{"bg":{"type":"string"},"ink":{"type":"string"}}},"colors":{"type":"array","items":{"type":"object","required":["id","name","hex"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"hex":{"type":"string"}},"additionalProperties":true}},"fonts":{"type":"array","items":{"type":"string"}},"sourceUrl":{"type":"string","format":"uri"},"documents":{"type":"object","properties":{"compact":{"type":"string","format":"uri"},"extended":{"type":"string","format":"uri"}}},"apiUrl":{"type":"string","format":"uri"},"content":{"type":"object","properties":{"compact":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"extended":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":true},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_design_json","description":"JSON invocation of the same read-only source operation; this does not perform an upstream write.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string","description":"Exact slug returned by search; never a URL or filesystem path.","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"variant":{"type":"string","description":"Which original source Markdown to return.","default":"both","enum":["compact","extended","both"]}},"required":["slug"],"additionalProperties":false}}}}}},"/v1/instructions":{"get":{"summary":"Get complete design instructions with extracted Agent Prompt Guide, Quick Start, rules and all original sections.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["slug","name","variant","sourceUrl","sha256","fetchedAt","agentPromptGuide","quickStart","rules","sections","markdown"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"variant":{"enum":["compact","extended"]},"sourceUrl":{"type":"string","format":"uri"},"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"sha256":{"type":"string"},"fetchedAt":{"type":"string","format":"date-time"},"agentPromptGuide":{"type":["string","null"]},"quickStart":{"type":["string","null"]},"rules":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"markdown":{"type":"string"}},"additionalProperties":false},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_instructions","parameters":[{"name":"slug","in":"query","required":true,"description":"Exact slug returned by search; never a URL or filesystem path.","schema":{"type":"string","description":"Exact slug returned by search; never a URL or filesystem path.","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},{"name":"variant","in":"query","required":false,"description":"Which original source Markdown to return.","schema":{"type":"string","description":"Which original source Markdown to return.","default":"extended","enum":["compact","extended"]}}]},"post":{"summary":"Get complete design instructions with extracted Agent Prompt Guide, Quick Start, rules and all original sections.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["slug","name","variant","sourceUrl","sha256","fetchedAt","agentPromptGuide","quickStart","rules","sections","markdown"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"variant":{"enum":["compact","extended"]},"sourceUrl":{"type":"string","format":"uri"},"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"sha256":{"type":"string"},"fetchedAt":{"type":"string","format":"date-time"},"agentPromptGuide":{"type":["string","null"]},"quickStart":{"type":["string","null"]},"rules":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"markdown":{"type":"string"}},"additionalProperties":false},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_instructions_json","description":"JSON invocation of the same read-only source operation; this does not perform an upstream write.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string","description":"Exact slug returned by search; never a URL or filesystem path.","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"variant":{"type":"string","description":"Which original source Markdown to return.","default":"extended","enum":["compact","extended"]}},"required":["slug"],"additionalProperties":false}}}}}},"/v1/filters":{"get":{"summary":"Get every source theme, industry, font and palette color with exact design counts.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["themes","industries","fonts","colors","sorts","sourceOrder"],"properties":{"themes":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"industries":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"fonts":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"colors":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"sorts":{"type":"array","items":{"type":"string"}},"sourceOrder":{"type":"string"}},"additionalProperties":false},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_filters","parameters":[]},"post":{"summary":"Get every source theme, industry, font and palette color with exact design counts.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["themes","industries","fonts","colors","sorts","sourceOrder"],"properties":{"themes":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"industries":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"fonts":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"colors":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"sorts":{"type":"array","items":{"type":"string"}},"sourceOrder":{"type":"string"}},"additionalProperties":false},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_filters_json","description":"JSON invocation of the same read-only source operation; this does not perform an upstream write.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}}}}}},"/v1/stats":{"get":{"summary":"Get source/design/document counts, snapshot completeness, retrieval time, totals and full-download links.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["source","fetchedAt","sourceDesigns","documents","complete","id","librarySha256","totalBytes","themes","industries","compactDocuments","extendedDocuments","archiveUrl","libraryUrl"],"properties":{"source":{"type":"string","format":"uri"},"fetchedAt":{"type":"string","format":"date-time"},"sourceDesigns":{"type":"integer","minimum":0},"documents":{"type":"integer","minimum":0},"complete":{"const":true},"id":{"type":"string"},"librarySha256":{"type":"string"},"totalBytes":{"type":"integer","minimum":0},"themes":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"industries":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"compactDocuments":{"type":"integer","minimum":0},"extendedDocuments":{"type":"integer","minimum":0},"archiveUrl":{"type":"string","format":"uri"},"libraryUrl":{"type":"string","format":"uri"}},"additionalProperties":false},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_stats","parameters":[]},"post":{"summary":"Get source/design/document counts, snapshot completeness, retrieval time, totals and full-download links.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["source","fetchedAt","sourceDesigns","documents","complete","id","librarySha256","totalBytes","themes","industries","compactDocuments","extendedDocuments","archiveUrl","libraryUrl"],"properties":{"source":{"type":"string","format":"uri"},"fetchedAt":{"type":"string","format":"date-time"},"sourceDesigns":{"type":"integer","minimum":0},"documents":{"type":"integer","minimum":0},"complete":{"const":true},"id":{"type":"string"},"librarySha256":{"type":"string"},"totalBytes":{"type":"integer","minimum":0},"themes":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"industries":{"type":"array","items":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false}},"compactDocuments":{"type":"integer","minimum":0},"extendedDocuments":{"type":"integer","minimum":0},"archiveUrl":{"type":"string","format":"uri"},"libraryUrl":{"type":"string","format":"uri"}},"additionalProperties":false},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_stats_json","description":"JSON invocation of the same read-only source operation; this does not perform an upstream write.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}}}}}},"/v1/export":{"get":{"summary":"Export all matching designs and complete Markdown in bounded pages. Follow nextOffset, or download archive.zip for the full library.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["total","offset","limit","returned","nextOffset","results"],"properties":{"total":{"type":"integer","minimum":0},"offset":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":0},"returned":{"type":"integer","minimum":0},"nextOffset":{"type":["integer","null"],"minimum":0},"results":{"type":"array","items":{"type":"object","required":["slug","name","nickname","industry","theme","host","colors","fonts","sourceUrl","documents","apiUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"industry":{"type":"string"},"theme":{"enum":["light","dark","mixed"]},"host":{"type":"string"},"cover_asset":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"},"width":{"type":["integer","null"],"minimum":0},"height":{"type":["integer","null"],"minimum":0}},"additionalProperties":true},"video":{"type":["string","null"]},"icon":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"dark":{"type":"boolean"}},"additionalProperties":true},"tone":{"type":"object","properties":{"bg":{"type":"string"},"ink":{"type":"string"}}},"colors":{"type":"array","items":{"type":"object","required":["id","name","hex"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"hex":{"type":"string"}},"additionalProperties":true}},"fonts":{"type":"array","items":{"type":"string"}},"sourceUrl":{"type":"string","format":"uri"},"documents":{"type":"object","properties":{"compact":{"type":"string","format":"uri"},"extended":{"type":"string","format":"uri"}}},"apiUrl":{"type":"string","format":"uri"},"content":{"type":"object","properties":{"compact":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"extended":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":true}}},"additionalProperties":false},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_export","parameters":[{"name":"q","in":"query","required":false,"description":"Case-insensitive AND search across site metadata; set content=true to also search both complete Markdown files.","schema":{"type":"string","description":"Case-insensitive AND search across site metadata; set content=true to also search both complete Markdown files."}},{"name":"theme","in":"query","required":false,"description":"Exact theme.","schema":{"type":"string","description":"Exact theme.","enum":["light","dark","mixed"]}},{"name":"industry","in":"query","required":false,"description":"Exact industry code from filters.","schema":{"type":"string","description":"Exact industry code from filters."}},{"name":"font","in":"query","required":false,"description":"Case-insensitive font-name substring.","schema":{"type":"string","description":"Case-insensitive font-name substring."}},{"name":"color","in":"query","required":false,"description":"Exact palette hex color. URL-encode # as %23.","schema":{"type":"string","description":"Exact palette hex color. URL-encode # as %23.","pattern":"^#[0-9a-fA-F]{6}$"}},{"name":"content","in":"query","required":false,"description":"Include full Markdown in q search; default false.","schema":{"type":"boolean","description":"Include full Markdown in q search; default false.","default":false}},{"name":"sort","in":"query","required":false,"description":"Newest follows source library order; name sorts by title.","schema":{"type":"string","description":"Newest follows source library order; name sorts by title.","default":"newest","enum":["newest","name","name-desc"]}},{"name":"offset","in":"query","required":false,"description":"Zero-based offset.","schema":{"type":"integer","description":"Zero-based offset.","default":0,"minimum":0,"maximum":1000000}},{"name":"limit","in":"query","required":false,"description":"Requested designs per page; response byte bounds can reduce the returned count.","schema":{"type":"integer","description":"Requested designs per page; response byte bounds can reduce the returned count.","default":10,"minimum":1,"maximum":20}},{"name":"variant","in":"query","required":false,"description":"Which original source Markdown to return.","schema":{"type":"string","description":"Which original source Markdown to return.","default":"both","enum":["compact","extended","both"]}}]},"post":{"summary":"Export all matching designs and complete Markdown in bounded pages. Follow nextOffset, or download archive.zip for the full library.","security":[],"responses":{"200":{"description":"Successful public source response. Cache freshness is explicit in meta.","content":{"application/json":{"schema":{"type":"object","required":["ok","service","operation","data","meta"],"properties":{"ok":{"const":true},"service":{"type":"string"},"operation":{"type":"string"},"data":{"type":"object","required":["total","offset","limit","returned","nextOffset","results"],"properties":{"total":{"type":"integer","minimum":0},"offset":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":0},"returned":{"type":"integer","minimum":0},"nextOffset":{"type":["integer","null"],"minimum":0},"results":{"type":"array","items":{"type":"object","required":["slug","name","nickname","industry","theme","host","colors","fonts","sourceUrl","documents","apiUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"industry":{"type":"string"},"theme":{"enum":["light","dark","mixed"]},"host":{"type":"string"},"cover_asset":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"},"width":{"type":["integer","null"],"minimum":0},"height":{"type":["integer","null"],"minimum":0}},"additionalProperties":true},"video":{"type":["string","null"]},"icon":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"dark":{"type":"boolean"}},"additionalProperties":true},"tone":{"type":"object","properties":{"bg":{"type":"string"},"ink":{"type":"string"}}},"colors":{"type":"array","items":{"type":"object","required":["id","name","hex"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"hex":{"type":"string"}},"additionalProperties":true}},"fonts":{"type":"array","items":{"type":"string"}},"sourceUrl":{"type":"string","format":"uri"},"documents":{"type":"object","properties":{"compact":{"type":"string","format":"uri"},"extended":{"type":"string","format":"uri"}}},"apiUrl":{"type":"string","format":"uri"},"content":{"type":"object","properties":{"compact":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"extended":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":true}}},"additionalProperties":false},"meta":{"type":"object","required":["tier","source","durationMs","cached"],"properties":{"tier":{"const":1},"source":{"type":"string","format":"uri"},"durationMs":{"type":"number"},"cached":{"type":"boolean"},"ageMs":{"type":"number"},"definitionVersion":{"type":"string"},"snapshot":{"type":"string"},"mirroredAt":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"sourceWarnings":{"type":"array","description":"Source records that do not establish a requested capacity minimum; not verified matches.","items":{"type":"object"}}}}},"additionalProperties":false}}}},"400":{"description":"Invalid or missing arguments","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"404":{"description":"Unknown API or operation","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"405":{"description":"Unsupported HTTP method","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"414":{"description":"URL exceeds request limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"415":{"description":"POST requires application/json","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"429":{"description":"Client or upstream rate limit","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"500":{"description":"Unexpected service error","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"502":{"description":"Source failed or changed","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"503":{"description":"Service is busy","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}},"504":{"description":"Source request timed out","content":{"application/json":{"schema":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"retryAfterMs":{"type":"number"}}}},"additionalProperties":false}}}}},"tags":["gradientdeck"],"operationId":"gradientdeck_export_json","description":"JSON invocation of the same read-only source operation; this does not perform an upstream write.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","description":"Case-insensitive AND search across site metadata; set content=true to also search both complete Markdown files."},"theme":{"type":"string","description":"Exact theme.","enum":["light","dark","mixed"]},"industry":{"type":"string","description":"Exact industry code from filters."},"font":{"type":"string","description":"Case-insensitive font-name substring."},"color":{"type":"string","description":"Exact palette hex color. URL-encode # as %23.","pattern":"^#[0-9a-fA-F]{6}$"},"content":{"type":"boolean","description":"Include full Markdown in q search; default false.","default":false},"sort":{"type":"string","description":"Newest follows source library order; name sorts by title.","default":"newest","enum":["newest","name","name-desc"]},"offset":{"type":"integer","description":"Zero-based offset.","default":0,"minimum":0,"maximum":1000000},"limit":{"type":"integer","description":"Requested designs per page; response byte bounds can reduce the returned count.","default":10,"minimum":1,"maximum":20},"variant":{"type":"string","description":"Which original source Markdown to return.","default":"both","enum":["compact","extended","both"]}},"required":[],"additionalProperties":false}}}}}},"/archive.zip":{"get":{"summary":"Download all compact/extended Markdown and metadata from the current complete snapshot.","operationId":"gradientdeck_archive","security":[],"responses":{"200":{"description":"Complete library ZIP, capped at 128MiB; ETag identifies its source snapshot.","content":{"application/zip":{"schema":{"type":"string","format":"binary"}}}}}}},"/library.json":{"get":{"summary":"Get every source design’s full metadata and API document links.","operationId":"gradientdeck_library","security":[],"responses":{"200":{"description":"Complete unpaginated metadata index.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["slug","name","nickname","industry","theme","host","colors","fonts","sourceUrl","documents","apiUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"nickname":{"type":"string"},"industry":{"type":"string"},"theme":{"enum":["light","dark","mixed"]},"host":{"type":"string"},"cover_asset":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"alt":{"type":"string"},"width":{"type":["integer","null"],"minimum":0},"height":{"type":["integer","null"],"minimum":0}},"additionalProperties":true},"video":{"type":["string","null"]},"icon":{"type":["object","null"],"properties":{"url":{"type":"string","format":"uri"},"dark":{"type":"boolean"}},"additionalProperties":true},"tone":{"type":"object","properties":{"bg":{"type":"string"},"ink":{"type":"string"}}},"colors":{"type":"array","items":{"type":"object","required":["id","name","hex"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"hex":{"type":"string"}},"additionalProperties":true}},"fonts":{"type":"array","items":{"type":"string"}},"sourceUrl":{"type":"string","format":"uri"},"documents":{"type":"object","properties":{"compact":{"type":"string","format":"uri"},"extended":{"type":"string","format":"uri"}}},"apiUrl":{"type":"string","format":"uri"},"content":{"type":"object","properties":{"compact":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"extended":{"type":"object","required":["variant","markdown","sections","url","sha256","bytes","fetchedAt"],"properties":{"retrievalUrl":{"type":"string","format":"uri"},"retrievalMethod":{"enum":["direct-markdown","public-page-export"]},"variant":{"enum":["compact","extended"]},"markdown":{"type":"string"},"sections":{"type":"array","items":{"type":"object","required":["id","heading","markdown"],"properties":{"id":{"type":"string"},"heading":{"type":"string"},"markdown":{"type":"string"}},"additionalProperties":false}},"url":{"type":"string","format":"uri"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":0},"fetchedAt":{"type":"string","format":"date-time"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":true}}}}}}}},"/designs/{slug}/{filename}":{"get":{"summary":"Download one original, unmodified Markdown file.","operationId":"gradientdeck_markdown","security":[],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},{"name":"filename","in":"path","required":true,"schema":{"enum":["design.md","design-extended.md"]}}],"responses":{"200":{"description":"Original Markdown. ETag is its SHA-256 hash.","content":{"text/markdown":{"schema":{"type":"string"}}}}}}}}}