AgentStorybook API

v1 · Create storybooks programmatically from your CRM, a spreadsheet, or any tool.

Authentication

Generate an API key in your dashboard under Account → API Access. Send it on every request as a bearer token:

Authorization: Bearer asb_live_xxxxxxxxxxxx

Keep keys secret — anyone with a key can create storybooks on your account. Rate limit: 60 requests/minute.

Create a storybook

POST https://agentstorybook.ai/api/v1/storybooks

Leave the cover to us. By default, when no clientPhotoUrl is supplied we feature the agent — illustrated from the headshot & sign saved in the account — standing proudly by the home (their own billboard). Provide a clientPhotoUrl to star the client instead, or set coverStar explicitly (agent, client, or home). Add a housePhotoUrl for the home (sellers fall back to Street View), or supply a finished coverImageUrl to skip generation entirely. Cover generation can take 30–60 seconds.

Fields

FieldRequiredNotes
typeyes"seller" or "buyer"
addressyesFull street address. Used for the auto cover.
clientsnoFull display name, used as-is. e.g. "John & Sarah Smith"
client1, client2noTwo owner names from your CRM. We format smartly: shared surname → "John & Sarah Smith"; different → "John Smith & Sarah Jones". Ignored if clients is set.
agentnoAgent name shown on the storybook
brandnoBrokerage / brand name. Printed on the SOLD sign only when you have not uploaded a yard-sign photo in Account.
datesnoObject. Seller: listing, list, prePhoto, photo, contract, closing. Buyer: consultation, seeHomes, contract, closing. ISO dates (2026-07-01).
clientPhotoUrlnoPublic image URL of the client(s). We illustrate their likeness on the cover. Omit to feature the agent by default (or set coverStar).
coverStarnoWho the cover features: agent (from the account headshot + sign), client (requires clientPhotoUrl), or home. Defaults to client when a client photo is given, otherwise agent (falling back to home if no headshot is on file).
housePhotoUrlnoPublic image URL of the home. Sellers fall back to Street View if omitted.
coverImageUrlnoSupply your own cover image instead of auto-generating.
waitForCovernoDefault true (waits ~30–60s and returns when the cover is ready). Set false to return immediately with coverStatus:"generating" — recommended for Zapier and other timeout-sensitive callers.
idempotencyKeynoReuse the same value to avoid duplicates on retries.

Example

curl -X POST https://agentstorybook.ai/api/v1/storybooks \
  -H "Authorization: Bearer asb_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "seller",
    "address": "123 Main St, Dallas, TX 75201",
    "clients": "John & Sarah Smith",
    "agent": "Thomas Eaves",
    "dates": { "listing": "2026-07-01", "closing": "2026-08-15" },
    "idempotencyKey": "crm-deal-48213"
  }'

Response 201 Created

{
  "slug": "123-main-st",
  "type": "seller",
  "clientUrl": "https://agentstorybook.ai/stories/123-main-st?token=...",
  "publicUrl": "https://agentstorybook.ai/stories/123-main-st",
  "coverGenerated": true,
  "coverStatus": "ready",
  "status": "ready"
}

Other endpoints

GET /api/v1/storybooks — list your storybooks.
GET /api/v1/storybooks?slug=123-main-st — fetch one.
DELETE /api/v1/storybooks?slug=123-main-st — delete one.
GET /api/v1/me — verify a key; returns your plan.

Errors

Errors return a JSON body: { "error": "code", "message": "..." }. Common codes: 401 unauthorized, 400 invalid, 402/403 limit_reached, 404 not_found, 429 rate_limited.

Questions? Reply to your AgentStorybook welcome email.