Skip to main content

Add Content

Populate your Chat-in-Bio instance with links, products, events, FAQ entries, and portfolio items so the AI agent has something to work with.

All content is managed through the Admin API. Set your admin key:

export ADMIN_KEY="your-admin-api-key-here"
export API="http://localhost:8000/api/admin"

Links appear on your bio page as a link tree:

curl -X POST $API/links \
-H "Authorization: Bearer $ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "My Blog", "url": "https://blog.example.com", "sort_order": 0}'

curl -X POST $API/links \
-H "Authorization: Bearer $ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "YouTube Channel", "url": "https://youtube.com/@you", "sort_order": 1}'

Add products

Products can link to external stores (Gumroad, Leanpub) or any URL:

curl -X POST $API/products \
-H "Authorization: Bearer $ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Python for Data Science",
"description": "A comprehensive video course covering pandas, numpy, and scikit-learn.",
"price_cents": 4999,
"currency": "USD",
"product_type": "course",
"external_url": "https://gumroad.com/l/your-course"
}'

Add events

Events support RSVP collection. Times are ISO 8601:

curl -X POST $API/events \
-H "Authorization: Bearer $ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Live Coding Session",
"description": "Building a REST API from scratch with Litestar.",
"start_time": "2026-04-15T18:00:00+00:00",
"end_time": "2026-04-15T19:30:00+00:00",
"timezone": "UTC",
"max_attendees": 100
}'

Add FAQ entries

FAQ entries become the knowledge base for the faq tool:

curl -X POST $API/faq \
-H "Authorization: Bearer $ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{"question": "What tech stack do you use?", "answer": "Python, Litestar, PydanticAI, Lit, and SQLite.", "category": "general"}'

curl -X POST $API/faq \
-H "Authorization: Bearer $ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{"question": "Do you offer consulting?", "answer": "Yes! Use the booking feature to schedule a 30-minute call.", "category": "services"}'

Add portfolio items

Showcase your work with images and links:

curl -X POST $API/portfolio \
-H "Authorization: Bearer $ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Chat-in-Bio",
"description": "Open-source link-in-bio with AI chatbot.",
"link_url": "https://github.com/chtbio/a2ui",
"category": "open-source",
"sort_order": 0
}'

Add booking slots

Define your recurring availability for consultations:

# Monday 9:00-9:30 AM
curl -X POST $API/bookings/slots \
-H "Authorization: Bearer $ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{"day_of_week": 1, "start_time": "09:00:00", "end_time": "09:30:00", "duration_minutes": 30}'

# Wednesday 14:00-14:30
curl -X POST $API/bookings/slots \
-H "Authorization: Bearer $ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{"day_of_week": 3, "start_time": "14:00:00", "end_time": "14:30:00", "duration_minutes": 30}'

Verify everything

Check what the public bio endpoint returns:

curl http://localhost:8000/api/bio | python -m json.tool

You should see your owner profile, links, bot greeting, and quick actions.

Next steps

  • First Chat — test the full chat experience with your content