New endpoints, smarter extraction, MCP server updates and fixes. Everything we ship for the API, in the order we shipped it.
Asking a dark-themed site for a section could return a white one: theme values scoped to a root attribute like [data-theme="dark"] were read without regard for which theme was active, so the losing theme overwrote the winning one. Extraction now follows the theme the page actually declares, and a new theme=light|dark parameter lets you pick. Every response reports which theme you got.
Code endpointWhen a page built a value from custom properties the extraction could not see, the missing pieces collapsed to nothing and shipped an unparseable declaration - a transform reading calc( - - calc(calc( - ) / 2) * 2), which browsers drop silently. Those declarations are now dropped the way a browser drops them, so the rest of the component still renders.
Code endpointWhen a section's background, border, radius and shadow live on an unlabelled wrapper above it - the usual pattern for a card in a grid - extraction returned the contents with no shell, leaving you to invent those four values. It now climbs to the element that carries them, and echoes back the selector it actually used.
Code endpointToken counts are tallied across the whole stylesheet, so a site shipping both light and dark returns the union of the two with neither labelled - which is how a "most-used background" can be a colour no one ever sees. Responses now include colorSchemes, so you know when that is happening.
Design tokens endpointEvery /v1/code response lists the page sections you can extract - but headers and footers were missing from that list, so asking for one meant hand-writing a selector and paying for each guess. They are now included, labelled "Header / navigation" and "Footer", without changing which section gets auto-detected when you omit a selector.
Code endpointThe name parameter was part of the cache key, so calling the same URL and selector with a different component name re-ran the whole extraction at full price. It now reuses the cached result and renames on the way out - a rename costs 0 credits. A failed selector on a rendered call also stopped claiming that JavaScript was not executed.
Code endpointEvery free key now gets 300 credits a month instead of 100 - existing keys included, nothing to do. Real usage showed 100 credits runs out mid-evaluation (it is barely four rendered code calls); 300 covers a proper trial: twenty brand extractions, twelve full section-to-code calls, or a thirty-page asset sweep. Still no card, still every endpoint.
Get a free keyAny rendered call can now take screenshot=true (1440x900 viewport) or screenshot=full (the entire page): the same browser that renders the page captures the shot, and the response gains a screenshot field with a public image URL that stays live for 7 days. No extra credits beyond the render surcharge - useful for verifying an extraction at a glance or showing a human what the agent extracted.
API docsBuilding with the API? Read the docs or grab a free key - 300 credits a month, no card.