Based on Us

Based on Us Connector API

A small, public API for starting a Based on Us comic on someone’s behalf — for AI assistants and other agentic platforms.

Overview

Based on Us turns a person’s photos and story into a personalized comic book, delivered as a private share link and a printable high-res PDF. The Connector API lets an AI assistant start a comic on someone’s behalf: it reads the catalog, creates a draft from what the person described, and returns a link where the person adds photos, sees a free preview with their real faces, and pays.

How the handoff works

  1. Call GET /catalog to read the current occasions, styles, tones and length tiers.
  2. Call POST /comics with the story and choices the person gave you.
  3. Give the person the returned continue_url.
  4. They open it on basedonus.com, add photos (up to 4 characters, up to 3 photos each), see the free preview, and buy.
  5. Optionally poll GET /comics/{comic_id} for the stage.

This is a handoff, not an end-to-end integration, for three reasons. Photos go directly from the person’s browser to Based on Us and never pass through the assistant. The API cannot trigger image generation or take payment — those stay gated behind the person’s own browser session once they open continue_url. And that URL carries a token that stays valid until the person starts adding photos — at that point the draft locks to whichever browser (or account) they used — so treat it as private to the person it was made for the whole time: don’t log it, cache it, or show it to anyone else.

Before the person opens continue_url, the draft’s content isn’t readable through any public endpoint — polling GET /comics/{comic_id} only ever returns the stage and price, never story text, photos, or anything else private. Once they open it, the draft follows the same rules as any comic started directly on basedonus.com: readable and editable only from the browser (or account) it’s bound to. Treat comic_id as private to the conversation it came from either way.

Endpoints

GET /catalog

Occasions, the visible art styles, tones, and length tiers with prices and limits. No request body or parameters. Validate every id from a draft against this before calling POST /comics — an unknown or hidden style is rejected.

curl https://api.basedonus.com/connector/v1/catalog
{
  "occasions": [
    {
      "id": "birthday",
      "label": "Birthday",
      "description": "Make their day legendary"
    },
    {
      "id": "couple",
      "label": "Couple / Anniversary",
      "description": "Your love story, illustrated"
    }
  ],
  "styles": [
    {
      "id": "superhero-comic",
      "label": "Superhero Comic"
    },
    {
      "id": "cute-storybook",
      "label": "Cute Storybook"
    }
  ],
  "tones": [
    {
      "id": "sweet",
      "label": "Sweet"
    },
    {
      "id": "funny",
      "label": "Funny"
    }
  ],
  "lengths": [
    {
      "id": "12",
      "label": "Short",
      "panels": 12,
      "price_cents": 1499,
      "currency": "usd",
      "recommended": false
    },
    {
      "id": "18",
      "label": "Standard",
      "panels": 18,
      "price_cents": 1999,
      "currency": "usd",
      "recommended": true
    },
    {
      "id": "24",
      "label": "Premium",
      "panels": 24,
      "price_cents": 2999,
      "currency": "usd",
      "recommended": false
    }
  ],
  "limits": {
    "max_characters": 4,
    "max_photos_per_character": 3
  }
}

POST /comics

Creates a draft comic from the person’s story and choices.

FieldTypeRequiredNotes
occasionstringYesA catalog occasion id.
stylestringYesA catalog style id.
tonestringNoA catalog tone id.
length"12" | "18" | "24"NoDefault "18".
story.aboutstringYesUp to 2000 characters.
story.inside_jokesstringNoUp to 1000 characters.
story.important_memorystringNoUp to 1000 characters.
story.things_to_includestringNoUp to 1000 characters.
story.things_to_avoidstringNoUp to 1000 characters.
story.ending_preferencestringNoUp to 500 characters.
charactersarrayNoUp to 4 entries.
characters[].namestringYes1–80 characters.
characters[].rolestringNoUp to 80 characters, e.g. "girlfriend", "our dog".
characters[].traitsstringNoUp to 500 characters.
characters[].visual_notesstringNoUp to 500 characters.
gift_tostringNoUp to 80 characters.
gift_fromstringNoUp to 80 characters.
gift_messagestringNoUp to 500 characters.
sourcestringNoIdentifies the calling platform, e.g. "muse". Default "connector".
curl -X POST https://api.basedonus.com/connector/v1/comics \
  -H "Content-Type: application/json" \
  -d '{
  "occasion": "couple",
  "style": "superhero-comic",
  "tone": "romantic",
  "length": "18",
  "story": {
    "about": "We met at a coffee shop in Brooklyn five years ago and have been inseparable since.",
    "inside_jokes": "She still calls him \"Toast Boy\" after he set off the fire alarm making breakfast.",
    "important_memory": "The rainy hike where he proposed under a broken umbrella.",
    "things_to_include": "Their golden retriever, Biscuit.",
    "things_to_avoid": "Nothing about her ex.",
    "ending_preference": "A wedding-day flash-forward."
  },
  "characters": [
    {
      "name": "Maya",
      "role": "bride",
      "traits": "sarcastic, loyal",
      "visual_notes": "curly red hair, glasses"
    },
    {
      "name": "Diego",
      "role": "groom",
      "traits": "clumsy, devoted",
      "visual_notes": "tall, beard"
    }
  ],
  "gift_to": "Maya & Diego",
  "gift_from": "Their college roommates",
  "gift_message": "Five years down, forever to go.",
  "source": "muse"
}'

Response:

FieldTypeRequiredNotes
comic_idstringNo
stagestringNoSee Stage values below.
continue_urlstringNoSee How the handoff works.
next_stepsarray of stringsNoShort human-readable instructions.
lengthstringNo
price_centsintegerNo
currencystringNoe.g. "usd".
{
  "comic_id": "b7e2b6b0-2f3e-4f2a-9c34-2a6e0b1e9f21",
  "stage": "draft",
  "continue_url": "https://basedonus.com/create?resume=b7e2b6b0-2f3e-4f2a-9c34-2a6e0b1e9f21&claim=8kQnZ2f...",
  "next_steps": [
    "Open the link to add a few clear photos of each character.",
    "See a free preview panel drawn from those photos before paying anything.",
    "Pay once to unlock the full comic, a printable PDF, and a private link to share."
  ],
  "length": "18",
  "price_cents": 1999,
  "currency": "usd"
}

GET /comics/{comic_id}

The draft’s current stage, length tier and price, and its continue_url. This never returns story text, photos, or the finished comic — poll it to know when a draft has moved on, not to read what’s in it.

curl https://api.basedonus.com/connector/v1/comics/b7e2b6b0-2f3e-4f2a-9c34-2a6e0b1e9f21
FieldTypeRequiredNotes
comic_idstringNo
stagestringNoSee Stage values below.
lengthstring | nullNoNull if the draft hasn't chosen a length tier yet.
price_centsintegerNo
currencystringNoe.g. "usd".
continue_urlstringNoCarries no claim token, unlike POST /comics's.
{
  "comic_id": "b7e2b6b0-2f3e-4f2a-9c34-2a6e0b1e9f21",
  "stage": "preview_ready",
  "length": "18",
  "price_cents": 1999,
  "currency": "usd",
  "continue_url": "https://basedonus.com/create?resume=b7e2b6b0-2f3e-4f2a-9c34-2a6e0b1e9f21"
}

Stage values

FieldTypeRequiredNotes
draftNoCreated by POST /comics. Occasion, style, story and cast are saved; no photos yet.
preview_readyNoThe person added photos, and a free preview drawn from their real faces is ready to view.
generatingNoPayment completed on basedonus.com; the full comic is being drawn.
readyNoThe finished comic and printable PDF are ready.
failedNoGeneration failed; contact support@basedonus.com.

Catalog facts

Pulled straight from the same catalog the wizard itself uses.

Occasions

idlabel
birthdayBirthday
coupleCouple / Anniversary
familyFamily
friendsFriends
petPet
superheroSuperhero Adventure
roastFunny Roast
customCustom

Styles

idlabel
superhero-comicSuperhero Comic
cute-storybookCute Storybook
funny-cartoonFunny Cartoon
manga-adventureManga Adventure
chibi-kawaiiChibi Kawaii
pixel-questPixel Quest
fantasy-adventureFantasy Adventure
watercolorWatercolor
pop-art-romancePop Art Romance
sci-fi-comicSci-Fi Comic
art-nouveau-goldArt Nouveau Gold
ligne-claireEuro Adventure
streaming-sitcomStreaming Sitcom
impressionistImpressionist
classic-sundayClassic Sunday Comic

Tones

idlabel
sweetSweet
funnyFunny
epicEpic
romanticRomantic
chaoticChaotic
emotionalEmotional
kid-friendlyKid-friendly

Pricing & limits

FieldTypeRequiredNotes
1212 panelsNo$14.99, one-time.
1818 panelsNo$19.99, one-time.
2424 panelsNo$29.99, one-time.

Privacy

Uploaded photos auto-delete and are never sold or used to train models. See Privacy Policy, Terms of Service and Acceptable Use Policy.

Support

support@basedonus.com