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"
Add links
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