API reference
Authentication
1 min read
The designdrop API uses bearer tokens. Generate one in Dashboard → API keys (Pro tier and above) and pass it in the Authorization header on every request.
Generating a token
- Sign in at app.designdrop.app.
- Open Dashboard → API keys.
- Click Create token, name it (e.g.
ci-extraction), pick a scope. - Copy the token immediately — it's shown once and never again.
Tokens look like dd_live_4f2c… (50 chars). Treat them like passwords: never commit, never log, never put in URLs.
Using the token
curl https://designdrop.app/api/jobs \
-X POST \
-H "Authorization: Bearer $DESIGNDROP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"type":"extract_design_system","input":{"url":"https://stripe.com"}}'The same token works with the CLI via DESIGNDROP_TOKEN:
export DESIGNDROP_TOKEN=dd_live_4f2c...
designdrop generate https://stripe.comScopes
Tokens are scoped at creation time. Pick the narrowest scope that does the job:
| Scope | Permissions |
|-------|-------------|
| read:library | List/search/read the public library. No auth needed for these endpoints anyway, but useful for self-hosted. |
| read:workspace | Read your workspace's saved designs and history. |
| write:workspace | Create / update designs, submit jobs, manage bookmarks. |
| admin:workspace | Everything in write:workspace plus billing + member management. |
Tokens carry a name + scope + creation date. You can revoke any token from the dashboard.
Rate limits
See Rate limits for the full breakdown. Briefly:
- Free: 3 generations per 30 days, no API access.
- Pro: unlimited UI generations, 100 API generations per month.
- Team: unlimited UI generations, 1,000 API generations per seat per month.
Limits apply per-token; the rate limiter response includes Retry-After and X-RateLimit-* headers.