{"openapi":"3.1.0","info":{"title":"Sqrap agent API","version":"1.0.0","summary":"Real websites, their pages and sections, with screenshots and design data, for design inspiration.","description":"Read-only access to Sqrap's public library of real, well-designed websites. Every record names the real site it shows (`domain`, `sourceUrl`): show and link it. Create an API key in your Sqrap account (`/#/keys`) and send it as `Authorization: Bearer <key>`. Each key has a daily quota that resets at midnight UTC; over it, calls answer 429 with `Retry-After`. The same data and key work over MCP at https://jethro-one.vercel.app/mcp; setup for coding agents is at https://jethro-one.vercel.app/agents.","termsOfService":"https://jethro-one.vercel.app/terms"},"servers":[{"url":"https://jethro-one.vercel.app/api/v1"}],"security":[{"bearer":[]}],"paths":{"/sites":{"get":{"operationId":"listSites","summary":"Sites with at least one screen matching every filter","description":"Newest first, or best match first with `q`. Each site has a desktop and a mobile cover screen: its home page, or its first page of the chosen `pattern`.","parameters":[{"$ref":"#/components/parameters/q"},{"$ref":"#/components/parameters/platform"},{"$ref":"#/components/parameters/pattern"},{"$ref":"#/components/parameters/section"},{"$ref":"#/components/parameters/industry"},{"$ref":"#/components/parameters/color"},{"$ref":"#/components/parameters/theme"},{"$ref":"#/components/parameters/style"},{"$ref":"#/components/parameters/country"},{"$ref":"#/components/parameters/cursor"},{"$ref":"#/components/parameters/limit"}],"responses":{"200":{"description":"A page of sites","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SiteSummary"}},"total":{"type":"integer","description":"How many items match the filters"},"next":{"type":["string","null"],"description":"Cursor of the next page; null on the last one"}},"required":["items","total","next"]}},"required":["data"]}}}},"400":{"$ref":"#/components/responses/E400"},"401":{"$ref":"#/components/responses/E401"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}}},"/sites/{ref}":{"get":{"operationId":"getSite","summary":"One site by id or domain","description":"The site's pages, and its screens each with their sections in page order (top to bottom).","parameters":[{"name":"ref","in":"path","required":true,"description":"A site id, or a domain such as `stripe.com` (a URL works too)","schema":{"type":"string"}}],"responses":{"200":{"description":"The site","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Site"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/E401"},"404":{"$ref":"#/components/responses/E404"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}}},"/screens":{"get":{"operationId":"listScreens","summary":"Page screenshots matching every filter","description":"Newest first, or best match first with `q`.","parameters":[{"$ref":"#/components/parameters/q"},{"$ref":"#/components/parameters/platform"},{"$ref":"#/components/parameters/pattern"},{"$ref":"#/components/parameters/section"},{"$ref":"#/components/parameters/industry"},{"$ref":"#/components/parameters/color"},{"$ref":"#/components/parameters/theme"},{"$ref":"#/components/parameters/style"},{"$ref":"#/components/parameters/country"},{"$ref":"#/components/parameters/cursor"},{"$ref":"#/components/parameters/limit"}],"responses":{"200":{"description":"A page of screens","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Screen"}},"total":{"type":"integer","description":"How many items match the filters"},"next":{"type":["string","null"],"description":"Cursor of the next page; null on the last one"}},"required":["items","total","next"]}},"required":["data"]}}}},"400":{"$ref":"#/components/responses/E400"},"401":{"$ref":"#/components/responses/E401"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}}},"/sections":{"get":{"operationId":"listSections","summary":"Page sections (hero, pricing table, footer…) matching every filter","description":"Newest first, or best match first with `q`. `section` (or `type`) picks the section type.","parameters":[{"$ref":"#/components/parameters/q"},{"$ref":"#/components/parameters/platform"},{"$ref":"#/components/parameters/pattern"},{"$ref":"#/components/parameters/section"},{"$ref":"#/components/parameters/industry"},{"$ref":"#/components/parameters/color"},{"$ref":"#/components/parameters/theme"},{"$ref":"#/components/parameters/style"},{"$ref":"#/components/parameters/country"},{"$ref":"#/components/parameters/cursor"},{"$ref":"#/components/parameters/limit"},{"name":"type","in":"query","description":"Same as `section`","schema":{"type":"string","enum":["Navigation","Hero","Logo cloud","Features","Testimonials","Pricing table","FAQ","CTA","Stats","Team","Gallery","Newsletter","Footer","Feed list","Comments","Other"]}}],"responses":{"200":{"description":"A page of sections","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Section"}},"total":{"type":"integer","description":"How many items match the filters"},"next":{"type":["string","null"],"description":"Cursor of the next page; null on the last one"}},"required":["items","total","next"]}},"required":["data"]}}}},"400":{"$ref":"#/components/responses/E400"},"401":{"$ref":"#/components/responses/E401"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}}},"/similar":{"get":{"operationId":"findSimilar","summary":"More like a Sqrap section or screen","description":"Sections or screens of other public sites that look like the given section or screen, most similar first (image embeddings). The query item's own site is left out. One page only.","parameters":[{"name":"id","in":"query","required":true,"description":"A section or screen id (`id` of a search result)","schema":{"type":"string"}},{"name":"kind","in":"query","description":"Return sections or whole-page screens. Default: the kind of `id`; for an image, sections","schema":{"type":"string","enum":["sections","screens"]}},{"name":"type","in":"query","description":"Only sections of this type (with `kind=screens`: pages that have one); `section` is accepted too","schema":{"type":"string","enum":["Navigation","Hero","Logo cloud","Features","Testimonials","Pricing table","FAQ","CTA","Stats","Team","Gallery","Newsletter","Footer","Feed list","Comments","Other"]}},{"name":"platform","in":"query","schema":{"type":"string","enum":["desktop","mobile"]}},{"name":"limit","in":"query","description":"Items (default 12)","schema":{"type":"integer","minimum":1,"maximum":48}}],"responses":{"200":{"description":"The most similar items","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Similar"}},"required":["data"]}}}},"400":{"$ref":"#/components/responses/E400"},"401":{"$ref":"#/components/responses/E401"},"404":{"$ref":"#/components/responses/E404"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}},"post":{"operationId":"findSimilarToImage","summary":"More like an uploaded screenshot","description":"Sections or screens of public sites that look like the screenshot in the body, most similar first. The image is at most 2 MB, used for this search only and never stored, and counts as 5 calls against the daily quota.","parameters":[{"name":"kind","in":"query","description":"Return sections or whole-page screens. Default: the kind of `id`; for an image, sections","schema":{"type":"string","enum":["sections","screens"]}},{"name":"type","in":"query","description":"Only sections of this type (with `kind=screens`: pages that have one); `section` is accepted too","schema":{"type":"string","enum":["Navigation","Hero","Logo cloud","Features","Testimonials","Pricing table","FAQ","CTA","Stats","Team","Gallery","Newsletter","Footer","Feed list","Comments","Other"]}},{"name":"platform","in":"query","schema":{"type":"string","enum":["desktop","mobile"]}},{"name":"limit","in":"query","description":"Items (default 12)","schema":{"type":"integer","minimum":1,"maximum":48}}],"requestBody":{"required":true,"content":{"image/*":{"schema":{"type":"string","format":"binary"}},"multipart/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary","description":"The screenshot"}},"required":["image"]}}}},"responses":{"200":{"description":"The most similar items","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Similar"}},"required":["data"]}}}},"400":{"$ref":"#/components/responses/E400"},"401":{"$ref":"#/components/responses/E401"},"413":{"$ref":"#/components/responses/E413"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}}},"/brief":{"get":{"operationId":"designBrief","summary":"References for a page you are about to build","description":"5 to 8 public sites with a screen matching the goal's filters, most similar to `reference` first when given, else the best-judged first. When too few match, filters are dropped (style, then theme, industry, pattern) and `relaxed` says which. Aggregated facts from Sqrap's library, not a critique or a recommendation: each reference's captured palette and theme, the order of section types on the page (top to bottom), its styles, and the scores Sqrap's design judge gave its home page's first screens.","parameters":[{"$ref":"#/components/parameters/pattern"},{"$ref":"#/components/parameters/industry"},{"$ref":"#/components/parameters/theme"},{"$ref":"#/components/parameters/style"},{"$ref":"#/components/parameters/platform"},{"name":"reference","in":"query","description":"A site domain (e.g. `linear.app`) or a site, section or screen id: rank by visual similarity to its home page","schema":{"type":"string","maxLength":300}},{"name":"limit","in":"query","description":"References (default 6)","schema":{"type":"integer","minimum":5,"maximum":8}}],"responses":{"200":{"description":"The brief","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Brief"}},"required":["data"]}}}},"400":{"$ref":"#/components/responses/E400"},"401":{"$ref":"#/components/responses/E401"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}}},"/filters":{"get":{"operationId":"listFilters","summary":"Every filter value with how many public items carry it","responses":{"200":{"description":"The filter values","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Filters"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/E401"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"A Sqrap API key (`sqrap_…`)"}},"parameters":{"q":{"name":"q","in":"query","description":"Full-text search over site names, domains, taglines, page titles, patterns and section types","schema":{"type":"string","maxLength":100}},"platform":{"name":"platform","in":"query","schema":{"type":"string","enum":["desktop","mobile"]}},"pattern":{"name":"pattern","in":"query","description":"Page pattern. Feed lists member posts; Post is a member thread, distinct from editorial Blog/Article. Profile, Submit and Leaderboard cover users, posting and rankings.","schema":{"type":"string","enum":["Home","Pricing","Sign up","Log in","About","Product","Features","Blog","Article","Contact","Careers","Product detail","Cart","Checkout","Docs","Changelog","Feed","Post","Profile","Submit","Leaderboard","404","Other"]}},"section":{"name":"section","in":"query","description":"Only items with a section of this type (`type` is accepted too). Feed list includes voting/ranking controls; Comments covers replies.","schema":{"type":"string","enum":["Navigation","Hero","Logo cloud","Features","Testimonials","Pricing table","FAQ","CTA","Stats","Team","Gallery","Newsletter","Footer","Feed list","Comments","Other"]}},"industry":{"name":"industry","in":"query","description":"Community & Social covers forums, link aggregators, launch communities and social apps.","schema":{"type":"string","enum":["SaaS","AI","Developer tools","Finance","Crypto","Health","Education","E-commerce","Fashion","Food & Drink","Travel","Real estate","Architecture & Interior","Agency & Portfolio","Media & Publishing","Music","Entertainment","Automotive","Nonprofit","Productivity","Community & Social","Other"]}},"color":{"name":"color","in":"query","description":"Color bucket of the screen's dominant color","schema":{"type":"string","enum":["red","orange","yellow","green","teal","blue","purple","pink","brown","black","white","gray"]}},"theme":{"name":"theme","in":"query","description":"Whether the screen's background reads light or dark","schema":{"type":"string","enum":["light","dark"]}},"style":{"name":"style","in":"query","description":"Visual style of the site (a site has one or two)","schema":{"type":"string","enum":["minimal","editorial","brutalist","playful","corporate","luxury","technical","illustrative","bold-type","retro","organic","futuristic"]}},"country":{"name":"country","in":"query","description":"ISO 3166-1 alpha-2 country of the site","schema":{"type":"string","pattern":"^[A-Z]{2}$"}},"cursor":{"name":"cursor","in":"query","description":"The `next` value of the previous page","schema":{"type":"string"}},"limit":{"name":"limit","in":"query","description":"Items per page","schema":{"type":"integer","minimum":1,"maximum":100}}},"headers":{"RateLimitLimit":{"description":"Calls this key may make per UTC day","schema":{"type":"integer"}},"RateLimitRemaining":{"description":"Calls left today","schema":{"type":"integer"}}},"responses":{"E400":{"description":"A filter value is not one of the allowed values","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E401":{"description":"Missing, unknown or revoked API key","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E404":{"description":"No public site (or section or screen) with that id or domain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E413":{"description":"The image is over 2 MB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E429":{"description":"The key's daily quota is used up","headers":{"Retry-After":{"description":"Seconds until the quota resets (midnight UTC)","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E503":{"description":"Keys cannot be checked (or similarity search is unavailable) right now; try again later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"unauthorized, rate_limited, not_found, bad_request, too_large, server_error, unavailable"},"message":{"type":"string","description":"What went wrong"}},"required":["code","message"]}},"required":["error"]},"HomePageJudge":{"type":["object","null"],"properties":{"scope":{"type":"string","description":"Always the home page's first screens: these scores are not a critique of any other page"},"scores":{"type":"object","properties":{"typography":{"type":["integer","null"],"minimum":1,"maximum":10},"layout":{"type":["integer","null"],"minimum":1,"maximum":10},"color":{"type":["integer","null"],"minimum":1,"maximum":10},"imagery":{"type":["integer","null"],"minimum":1,"maximum":10},"originality":{"type":["integer","null"],"minimum":1,"maximum":10},"polish":{"type":["integer","null"],"minimum":1,"maximum":10}},"required":["typography","layout","color","imagery","originality","polish"]},"reasons":{"type":"array","items":{"type":"string"},"maxItems":3,"description":"Why the judge rated the site as it did"}},"required":["scope","scores","reasons"],"description":"Sqrap's design judge's scores (1 to 10) for the site's home page, desktop and mobile first screens only. Null when not judged."},"SiteBase":{"type":"object","properties":{"id":{"type":"string","description":"Site id"},"name":{"type":"string","description":"Site name"},"domain":{"type":"string","description":"Domain of the real website the record was captured from. Always show it with the image."},"sourceUrl":{"type":"string","description":"URL of the real page the record was captured from","format":"uri"},"tagline":{"type":["string","null"],"description":"Short tagline in Sqrap's words"},"description":{"type":["string","null"],"description":"One-line description in Sqrap's words"},"industry":{"type":["string","null"],"description":"Industry","enum":["SaaS","AI","Developer tools","Finance","Crypto","Health","Education","E-commerce","Fashion","Food & Drink","Travel","Real estate","Architecture & Interior","Agency & Portfolio","Media & Publishing","Music","Entertainment","Automotive","Nonprofit","Productivity","Community & Social","Other",null]},"country":{"type":["string","null"],"description":"ISO 3166-1 alpha-2"},"style":{"type":"array","items":{"type":"string","enum":["minimal","editorial","brutalist","playful","corporate","luxury","technical","illustrative","bold-type","retro","organic","futuristic"]},"description":"Visual styles, the most fitting first (one or two); empty when not tagged yet"},"capturedAt":{"type":["string","null"],"description":"When the site was captured (ISO 8601)"},"homePageJudge":{"$ref":"#/components/schemas/HomePageJudge"}},"required":["id","name","domain","sourceUrl","tagline","description","industry","country","style","capturedAt","homePageJudge"]},"SiteSummary":{"allOf":[{"$ref":"#/components/schemas/SiteBase"},{"type":"object","properties":{"cover":{"type":"object","properties":{"desktop":{"anyOf":[{"$ref":"#/components/schemas/Screen"},{"type":"null"}]},"mobile":{"anyOf":[{"$ref":"#/components/schemas/Screen"},{"type":"null"}]}},"required":["desktop","mobile"]}},"required":["cover"]}]},"Site":{"allOf":[{"$ref":"#/components/schemas/SiteBase"},{"type":"object","properties":{"pages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Page id"},"path":{"type":["string","null"],"description":"Path"},"sourceUrl":{"type":"string","description":"Page URL","format":"uri"},"pattern":{"type":["string","null"],"description":"Page pattern","enum":["Home","Pricing","Sign up","Log in","About","Product","Features","Blog","Article","Contact","Careers","Product detail","Cart","Checkout","Docs","Changelog","Feed","Post","Profile","Submit","Leaderboard","404","Other",null]},"title":{"type":["string","null"],"description":"Page title"},"capturedAt":{"type":["string","null"],"description":"ISO 8601"}},"required":["id","path","sourceUrl","pattern","title","capturedAt"]}},"screens":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Screen"},{"type":"object","properties":{"sections":{"type":"array","items":{"$ref":"#/components/schemas/Section"},"description":"Top to bottom"}},"required":["sections"]}]}}},"required":["pages","screens"]}]},"Screen":{"type":"object","properties":{"id":{"type":"string","description":"Screen id"},"siteId":{"type":"string","description":"Site id"},"siteName":{"type":"string","description":"Site name"},"domain":{"type":"string","description":"Domain of the real website the record was captured from. Always show it with the image."},"sourceUrl":{"type":"string","description":"URL of the real page the record was captured from","format":"uri"},"platform":{"type":"string","description":"Platform","enum":["desktop","mobile"]},"pattern":{"type":["string","null"],"description":"Page pattern","enum":["Home","Pricing","Sign up","Log in","About","Product","Features","Blog","Article","Contact","Careers","Product detail","Cart","Checkout","Docs","Changelog","Feed","Post","Profile","Submit","Leaderboard","404","Other",null]},"path":{"type":["string","null"],"description":"Page path"},"title":{"type":["string","null"],"description":"Page title"},"width":{"type":["integer","null"],"description":"CSS width the page was captured at"},"height":{"type":["integer","null"],"description":"Full page height in CSS pixels"},"theme":{"type":["string","null"],"description":"Light or dark background","enum":["light","dark",null]},"color":{"type":["string","null"],"description":"Color bucket of the dominant color","enum":["red","orange","yellow","green","teal","blue","purple","pink","brown","black","white","gray",null]},"dominant":{"type":["string","null"],"description":"Dominant (background) color, hex"},"palette":{"type":"array","items":{"type":"string"},"description":"Up to 5 distinct colors in the top of the page, most common first, hex"},"topOfPageOnly":{"type":"boolean","const":true,"description":"Present only when the images show just the top of the page"},"images":{"type":"object","properties":{"agent":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Absolute image URL (WebP)","format":"uri"},"width":{"type":"integer","description":"Pixels"},"height":{"type":"integer","description":"Pixels"}},"required":["url","width","height"]},"description":"Agent-sized WebP tiles, at most 1024 px wide (585 on mobile) and 1536 px tall, top first. Empty when not built yet."},"sm":{"type":["string","null"],"description":"Small thumbnail URL","format":"uri"}},"required":["agent","sm"]}},"required":["id","siteId","siteName","domain","sourceUrl","platform","palette","images"]},"Section":{"type":"object","properties":{"id":{"type":"string","description":"Section id"},"siteId":{"type":"string","description":"Site id"},"siteName":{"type":"string","description":"Site name"},"domain":{"type":"string","description":"Domain of the real website the record was captured from. Always show it with the image."},"sourceUrl":{"type":"string","description":"URL of the real page the record was captured from","format":"uri"},"screenId":{"type":"string","description":"Screen the section belongs to"},"type":{"type":["string","null"],"description":"Section type","enum":["Navigation","Hero","Logo cloud","Features","Testimonials","Pricing table","FAQ","CTA","Stats","Team","Gallery","Newsletter","Footer","Feed list","Comments","Other",null]},"platform":{"type":"string","description":"Platform","enum":["desktop","mobile"]},"pattern":{"type":["string","null"],"description":"Page pattern","enum":["Home","Pricing","Sign up","Log in","About","Product","Features","Blog","Article","Contact","Careers","Product detail","Cart","Checkout","Docs","Changelog","Feed","Post","Profile","Submit","Leaderboard","404","Other",null]},"path":{"type":["string","null"],"description":"Page path"},"position":{"type":["integer","null"],"description":"0-based place on its page, top to bottom"},"y":{"type":["number","null"],"description":"Top edge on the page, CSS pixels"},"height":{"type":["number","null"],"description":"Height, CSS pixels"},"width":{"type":"integer","description":"CSS width of the page"},"topOfPageOnly":{"type":"boolean","const":true,"description":"Present only when the images show just the top of the page"},"images":{"type":"object","properties":{"agent":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Absolute image URL (WebP)","format":"uri"},"width":{"type":"integer","description":"Pixels"},"height":{"type":"integer","description":"Pixels"}},"required":["url","width","height"]},"description":"Agent-sized WebP tiles, at most 1024 px wide (585 on mobile) and 1536 px tall, top first. Empty when not built yet."},"sm":{"type":["string","null"],"description":"Small thumbnail URL","format":"uri"}},"required":["agent","sm"]}},"required":["id","siteId","siteName","domain","sourceUrl","screenId","platform","position","images"]},"Similar":{"type":"object","properties":{"kind":{"type":"string","description":"What the items are","enum":["sections","screens"]},"items":{"type":"array","description":"Most similar first. Sections or screens, as `kind` says, each with `similarity`","items":{"allOf":[{"anyOf":[{"$ref":"#/components/schemas/Section"},{"$ref":"#/components/schemas/Screen"}]},{"type":"object","properties":{"similarity":{"type":"number","description":"Cosine similarity of the images, 1 is identical"}},"required":["similarity"]}]}},"total":{"type":"integer","description":"How many items came back"},"next":{"type":"null","description":"Always null: there is one page"}},"required":["kind","items","total","next"]},"Brief":{"type":"object","properties":{"about":{"type":"string","description":"What the facts are, and that they are not a critique"},"goal":{"type":"object","description":"The filters and reference asked for","additionalProperties":{"type":"string"}},"rankedBy":{"type":"string","description":"How the references are ordered"},"note":{"type":"string","description":"Present when the reference has no image embedding yet"},"relaxed":{"type":"array","items":{"type":"string"},"description":"Filters dropped because too few sites matched; absent when none was"},"summary":{"type":"object","properties":{"references":{"type":"integer","description":"How many references there are"},"themes":{"type":"object","additionalProperties":{"type":"integer"},"description":"References per theme"},"styles":{"type":"object","additionalProperties":{"type":"integer"},"description":"References per style"},"commonSectionOrder":{"type":"array","items":{"type":"string"},"description":"Section types at least half the pages have, in their usual order"}},"required":["references","themes","styles","commonSectionOrder"]},"references":{"type":"array","items":{"type":"object","properties":{"site":{"type":"string","description":"Site name"},"domain":{"type":"string","description":"Domain of the real website the record was captured from. Always show it with the image."},"sourceUrl":{"type":"string","description":"URL of the real page the record was captured from","format":"uri"},"siteId":{"type":"string","description":"Site id"},"industry":{"type":["string","null"],"description":"Industry"},"country":{"type":["string","null"],"description":"ISO 3166-1 alpha-2"},"style":{"type":"array","items":{"type":"string","enum":["minimal","editorial","brutalist","playful","corporate","luxury","technical","illustrative","bold-type","retro","organic","futuristic"]},"description":"Visual styles, the most fitting first (one or two); empty when not tagged yet"},"page":{"type":["object","null"],"properties":{"screenId":{"type":"string","description":"Screen id"},"pattern":{"type":["string","null"],"description":"Page pattern"},"path":{"type":["string","null"],"description":"Page path"},"platform":{"type":"string","description":"Platform"},"theme":{"type":["string","null"],"description":"Light or dark"},"color":{"type":["string","null"],"description":"Color bucket"},"palette":{"type":"array","items":{"type":"string"},"description":"Hex colors, most common first"},"sectionOrder":{"type":"array","items":{"type":"string"},"description":"Section types top to bottom"},"image":{"type":["string","null"],"description":"Agent tile (or small thumbnail) URL","format":"uri"}},"required":["screenId","pattern","path","platform","theme","color","palette","sectionOrder","image"],"description":"The page that stands for the site: a screen matching the goal (desktop and the home page first), else its first page with the pattern, else its home page"},"homePageJudge":{"type":["object","null"],"properties":{"scope":{"type":"string","description":"Home page, first screens only"},"quality":{"type":["number","null"],"description":"Overall, 1 to 10"},"scores":{"type":"object","properties":{"typography":{"type":["integer","null"],"minimum":1,"maximum":10},"layout":{"type":["integer","null"],"minimum":1,"maximum":10},"color":{"type":["integer","null"],"minimum":1,"maximum":10},"imagery":{"type":["integer","null"],"minimum":1,"maximum":10},"originality":{"type":["integer","null"],"minimum":1,"maximum":10},"polish":{"type":["integer","null"],"minimum":1,"maximum":10}},"required":["typography","layout","color","imagery","originality","polish"]}},"required":["scope","quality","scores"]},"similarity":{"type":["number","null"],"description":"With a reference: cosine similarity of the home pages; null without an embedding"},"relaxed":{"type":"array","items":{"type":"string"},"description":"Goal filters this reference does not meet"}},"required":["site","domain","sourceUrl","siteId","style","page","homePageJudge"]}}},"required":["about","goal","rankedBy","summary","references"]},"Filters":{"type":"object","description":"Each list is [{ value, label, count }] (colors add `swatch`, countries `region`); pass `value` as the filter.","properties":{"totals":{"type":"object","properties":{"sites":{"type":"integer","description":"Public sites"},"screens":{"type":"integer","description":"Public screens"},"sections":{"type":"integer","description":"Public sections"}},"required":["sites","screens","sections"]},"platforms":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}},"required":["value","label","count"]}},"patterns":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}},"required":["value","label","count"]}},"sections":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}},"required":["value","label","count"]}},"industries":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}},"required":["value","label","count"]}},"colors":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}},"required":["value","label","count"]}},"themes":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}},"required":["value","label","count"]}},"styles":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}},"required":["value","label","count"]}},"countries":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer"}},"required":["value","label","count"]}}}}}}}