Skip to content

API

The hosted API lives at api.getdesign.app. Design endpoints require a WorkOS bearer token and your own provider keys.

GET https://api.getdesign.app/v1/design?url=<absolute-url>
Authorization: Bearer <WorkOS access token>
x-daytona-api-key: <key>
x-openai-api-key: <key>
Accept: text/markdown
Terminal window
curl "https://api.getdesign.app/v1/design?url=https://stripe.com" \
-H "Authorization: Bearer $WORKOS_ACCESS_TOKEN" \
-H "x-daytona-api-key: $DAYTONA_API_KEY" \
-H "x-openai-api-key: $OPENAI_API_KEY" \
-H "Accept: text/markdown" \
-o stripe.design.md
NameTypeRequiredDescription
urlstringyesAbsolute URL to extract from. Must be publicly reachable.
formatstringnojson for a structured result; otherwise Markdown.
siteNamestringnoOverride the detected site name. Same as x-getdesign-site-name.

format=json selects JSON. The Accept header does not.

HeaderRequiredDescription
AuthorizationyesBearer <WorkOS access token>
x-daytona-api-keyvisual runsDaytona key for this request
x-openai-api-keyyesOpenAI key for this request
x-getdesign-modenotext_only skips screenshots. OpenAI is still required; Daytona is optional
x-getdesign-site-namenoOverride the detected site name
  • 200 OK with Content-Type: text/markdown; charset=utf-8 and the full design.md body. Visual Markdown embeds screenshots as data URLs so a single downloaded file keeps its evidence. Viewers that block data URLs, including GitHub, should use JSON and save the companion files.
  • 200 OK with Content-Type: application/json when format=json. Includes markdown, doc, tokens, images, capture metadata, and run mode. Decode each image at its relative path.
  • 400 Bad Request if url is missing or invalid.
  • 401 Unauthorized if the WorkOS bearer token is missing or invalid.
  • 409 with code: credentials_missing if Daytona and/or OpenAI request-scoped keys are absent.
  • 409 with code: capture_failed if visual capture cannot finish. Retry with x-getdesign-mode: text_only if you accept degraded output.
  • 500 with error: internal if the run fails unexpectedly.

GET /v1/design/stream?url=<absolute-url> accepts the same authentication and provider headers. It returns text/event-stream, with progress events followed by a result or error event. The result includes the full Markdown and images. Progress events do not include image bytes. It does not stream Markdown chunks.

GET /?url=<absolute-url> remains a Markdown compatibility route with the same authentication and provider requirements. GET /health is unauthenticated.

  • Send Authorization: Bearer <WorkOS access token>. There is no getdesign API key in v1.
  • Visual runs need x-daytona-api-key and x-openai-api-key. Text-only still needs the OpenAI key. Daytona is optional in that mode.
  • Send provider keys in headers over HTTPS, never in URLs. API credentials are request-scoped, not saved to your dashboard Account.
  • V1 has no getdesign run billing. You pay Daytona and OpenAI directly; run duration and provider costs vary by site.
  • Respect the target site’s terms when using the output.