My Page (AI Business Card)
Your AI business card is a public page at vexar.chat/@username with an AI assistant, services, gallery and booking. These endpoints manage your own profile and require authentication.
Profile
/api/v1/my-profile AuthGet your profile (or null if not created yet).
{ "success": true, "profile": { "id": 1, "username": "jane", "display_name": "Jane", "is_published": true, … } }/api/v1/my-profile AuthCreate the profile (first call) or update it. Creating requires username and an optional template_id.
{ "username": "jane", "template_id": "default" }{ "success": true, "profile": { … }, "created": true }/api/v1/my-profile AuthUpdate profile fields. Send any subset. JSON fields (social_links, color_scheme, sections_order, ai_suggested_questions) accept objects/arrays.
{
"display_name": "Jane Doe",
"tagline": "Hair stylist",
"bio": "…",
"phone": "+1…",
"email": "[email protected]",
"address": "…",
"language": "en",
"currency": "usd",
"timezone": "Europe/Kyiv",
"ai_enabled": true,
"ai_greeting": "Hi! How can I help?",
"ai_persona": "Friendly assistant",
"social_links": { "instagram": "https://…" },
"show_on_map": true
}{ "success": true, "profile": { … } }Images & cover video
Send the file as multipart/form-data. Image field name is image (max 5MB); cover video field is video (max 100MB, Pro+).
/api/v1/my-profile/avatar AuthUpload the avatar image.
{ "success": true, "url": "https://cdn…" }/api/v1/my-profile/logo AuthUpload the logo image.
{ "success": true, "url": "https://cdn…" }/api/v1/my-profile/cover AuthUpload the cover image.
{ "success": true, "url": "https://cdn…" }/api/v1/my-profile/cover-video AuthUpload a cover video (Pro+). Compressed to 720p server-side.
{ "success": true, "url": "https://cdn…" }/api/v1/my-profile/cover-video AuthRemove the cover video.
{ "success": true }Publishing, SEO & username
/api/v1/my-profile/publish AuthPublish the profile (make it public).
{ "success": true }/api/v1/my-profile/unpublish AuthUnpublish the profile.
{ "success": true }/api/v1/my-profile/seo AuthUpdate SEO meta title/description.
{ "meta_title": "…", "meta_description": "…" }{ "success": true, "profile": { … } }/api/v1/my-profile/check-username AuthValidate and check availability of a username.
{ "username": "jane" }{ "success": true, "available": true }/api/v1/my-profile/username AuthChange the username. Allowed only once, within 30 days of registration.
{ "username": "jane2" }{ "success": true, "username": "jane2" }Templates & AI
/api/v1/my-profile/template AuthApply a template (premium templates require Pro+).
{ "template_id": "hair-salon" }{ "success": true, "profile": { … } }/api/v1/my-profile/ai-generate AuthGenerate text with AI. type: tagline | bio | meta_tags | faq | service_description.
{ "type": "bio", "business_type": "barber", "current_bio": "" }{ "success": true, "content": "…", "usage": { … } }/api/v1/my-profile/ai-usage AuthAI generation usage/quota.
{ "success": true, "usage": { … } }/api/v1/my-profile/link-clicks AuthLink click stats. Optional period in days (7–365, default 30).
{ "success": true, "totals": [ { "link_type": "instagram", "clicks": 42 } ], "daily": [ … ] }