Run the design extractors against a URL. Returns immediately with a taskId; poll GET /v1/tasks/ for the result.
For an overview of what each extractor returns, see Design extraction.Documentation Index
Fetch the complete documentation index at: https://docs.stablebrowse.com/llms.txt
Use this file to discover all available pages before exploring further.
http:// or https:// URL."images", "fonts", "colors", "icons", "tokens", "logo". Omit (or pass an empty array) to run all six. Unknown names are silently dropped; if the resulting list is empty the request returns 400.202 AcceptedGET /v1/tasks/{taskId} until status === "completed"."pending" on submission.client.design.run(...) call. Most integrators should use this — it returns the completed task with design.results populated and never needs you to think about the task lifecycle.
task.design carries the full result shape (response schema).
client.tasks.get(taskId) is the same call you’d use for an agent task — design tasks ride the same task record and the design field is populated automatically.
202 Accepteddesign.results object contains one key per requested extractor. Top-level shape per extractor:
| Extractor | Result key | Top-level fields |
|---|---|---|
images | images.images[] | src, type, naturalWidth, naturalHeight, alt, svgSource?, downloadUrl?, originalSrc?, s3Key? |
fonts | fonts.fonts[] | family, usage, count, weights[], source, faceUrl?, downloadUrl?, originalFaceUrl?, s3Key? |
colors | colors.colors[], colors.contrastIssues[] | colors: hex, rgb, count, role (one of primary, background, text, error, success, warning, neutral — see Color roles). issues: fg, bg, ratio, passesAA, passesAAA |
icons | icons.icons[] | hash, source?, size, style, count, signedUrl?, downloadUrl?, s3Key? |
tokens | tokens.tokens | dtcg, spacing[], radii[], shadows[], gradients[], motionDurationsMs[], cssVariables[] |
logo | logo.logo | found, src?, type?, width?, height?, svgSource?, alt?, downloadUrl?, originalSrc?, s3Key? |
| Code | Meaning |
|---|---|
400 | url missing or not http(s); endUserId missing or > 256 chars; invalid extractors (no valid names); invalid JSON body |
401 | Missing Authorization header |
403 | Revoked API key |
429 | Monthly task quota exceeded; see response body for the limit |
500 | Worker enqueue failed (transient; safe to retry) |