Vexar API

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

GET /api/v1/my-profile Auth

Get your profile (or null if not created yet).

Response
{ "success": true, "profile": { "id": 1, "username": "jane", "display_name": "Jane", "is_published": true, … } }
POST /api/v1/my-profile Auth

Create the profile (first call) or update it. Creating requires username and an optional template_id.

Request body
{ "username": "jane", "template_id": "default" }
Response
{ "success": true, "profile": { … }, "created": true }
PUT /api/v1/my-profile Auth

Update profile fields. Send any subset. JSON fields (social_links, color_scheme, sections_order, ai_suggested_questions) accept objects/arrays.

Request body
{
  "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
}
Response
{ "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+).

POST /api/v1/my-profile/avatar Auth

Upload the avatar image.

Response
{ "success": true, "url": "https://cdn…" }
POST /api/v1/my-profile/cover Auth

Upload the cover image.

Response
{ "success": true, "url": "https://cdn…" }
POST /api/v1/my-profile/cover-video Auth

Upload a cover video (Pro+). Compressed to 720p server-side.

Response
{ "success": true, "url": "https://cdn…" }
DELETE /api/v1/my-profile/cover-video Auth

Remove the cover video.

Response
{ "success": true }

Publishing, SEO & username

POST /api/v1/my-profile/publish Auth

Publish the profile (make it public).

Response
{ "success": true }
POST /api/v1/my-profile/unpublish Auth

Unpublish the profile.

Response
{ "success": true }
PUT /api/v1/my-profile/seo Auth

Update SEO meta title/description.

Request body
{ "meta_title": "…", "meta_description": "…" }
Response
{ "success": true, "profile": { … } }
POST /api/v1/my-profile/check-username Auth

Validate and check availability of a username.

Request body
{ "username": "jane" }
Response
{ "success": true, "available": true }
PUT /api/v1/my-profile/username Auth

Change the username. Allowed only once, within 30 days of registration.

Request body
{ "username": "jane2" }
Response
{ "success": true, "username": "jane2" }

Templates & AI

POST /api/v1/my-profile/template Auth

Apply a template (premium templates require Pro+).

Request body
{ "template_id": "hair-salon" }
Response
{ "success": true, "profile": { … } }
POST /api/v1/my-profile/ai-generate Auth

Generate text with AI. type: tagline | bio | meta_tags | faq | service_description.

Request body
{ "type": "bio", "business_type": "barber", "current_bio": "" }
Response
{ "success": true, "content": "…", "usage": { … } }
GET /api/v1/my-profile/ai-usage Auth

AI generation usage/quota.

Response
{ "success": true, "usage": { … } }