Skip to content

Pro API

AnimatedWebs, as JSON.

Included with Pro and Lifetime. Free keys get 403 pro_required with an upgrade link.

Authentication and limits

Auth

Send Authorization: Bearer aw_... with a key from your AnimatedWebs dashboard. Pro or Lifetime only.

Limits

60 requests a minute and 1,000 a day per account. Every answer carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset; a 429 adds Retry-After.

Base URL

https://animatedwebs.com/api/v1

JSON only. No CORS: call it from your server.

Endpoints

Reference

GET/templates

Search published templates (metadata only).

q
Words that must all match.
kind
Template kind.
category
Exact category.
access
free or pro.
tech
webgl, canvas, css, video or video-webgl.
page
From 1.
per
1 to 100, default 50.
GET /api/v1/templates?q=coffee&per=5
{ "total": 3, "page": 1, "per": 5, "pages": 1, "items": [ { "slug": "...", "title": "..." } ] }

GET/templates/{slug}

One template's metadata.

slug
Template slug.
GET /api/v1/templates/<slug>
{ "slug": "<slug>", "title": "...", "access": "pro", "url": "https://animatedwebs.com/templates/<slug>" }

GET/templates/{slug}/prompt

The full build prompt as Markdown. Pro includes every prompt and never spends credits.

slug
Template slug.
GET /api/v1/templates/<slug>/prompt
{ "slug": "<slug>", "title": "...", "markdown": "# ..." }

GET/components

Search the AnimatedWebs UI library.

q
Search words.
category
Exact category.
limit
1 to 50, default 20.
GET /api/v1/components?q=button&limit=3
{ "items": [ { "id": "...", "title": "...", "category": "..." } ] }

GET/components/{id}/source

Source files for one component.

id
Component id.
GET /api/v1/components/<id>/source
{ "id": "<id>", "exportName": "...", "files": [ { "path": "...", "code": "..." } ] }

POST/brand/concepts

Logo concepts from a brief, each with a ready SVG (text mode, Google Fonts).

Body: ConceptsRequest: { brief, strategy?, count?, directionId? }

POST /api/v1/brand/concepts
{"brief":{"name":"Harbor & Pine Coffee","industryId":"coffee-shop","description":"We roast coffee in Portland and deliver to offices.","styleWeights":{},"keywords":["wave","pine"],"markTypes":[],"seed":7},"count":6}
{ "concepts": [ { "id": "3f2a9c...", "label": "Monogram in a hexagon", "design": { ... }, "svg": "<svg ...>" } ] }

POST/brand/copy

Tone of voice, mission, story, dos and donts for a design. Falls back to our engine when AI is busy.

Body: CopyRequest: { brief, design, strategy? }

POST /api/v1/brand/copy
{"brief":{"name":"Harbor & Pine Coffee","industryId":"coffee-shop","description":"We roast coffee in Portland and deliver to offices.","styleWeights":{},"keywords":["wave","pine"],"markTypes":[],"seed":7},"design":"<a design from /brand/concepts>"}
{ "copy": { "toneOfVoice": "...", "mission": "...", "story": "...", "dos": [], "donts": [], "source": "ai" }, "aiCallsLeft": 99 }

Errors

Plain error codes

401 invalid_key
Missing or invalid API key.
403 pro_required
The key's account is not on Pro or Lifetime.
404 not_found
No template or component with that id.
400 invalid_request
The body or a parameter failed validation.
413 too_large
The request body is over 32 KB.
429 rate_limited
Too many requests; wait for Retry-After seconds.

Not on Pro yet? See animatedwebs.com/pricing. The OpenAPI document is at /openapi.json.