Vexar API

Locations & Categories

Place your profile on the marketplace map and assign service categories. Authentication required. The number of locations is plan-limited (Free 1 … Business 15).

Locations

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

Geocode an address to coordinates (and auto-save to the profile).

Request body
{ "address": "Main St 1, Kyiv" }
Response
{ "success": true, "lat": 50.45, "lng": 30.52, "formatted_address": "…" }
GET /api/v1/my-profile/locations Auth

List locations and the plan maximum.

Response
{ "success": true, "locations": [ { "id": 1, "title": "Office", "address": "…", "latitude": 50.45, "longitude": 30.52 } ], "max": 5 }
POST /api/v1/my-profile/locations Auth

Add a location (requires latitude/longitude).

Request body
{ "title": "Office", "address": "…", "latitude": 50.45, "longitude": 30.52 }
Response
{ "success": true, "id": 2, "message": "Location added" }
DELETE /api/v1/my-profile/locations/{id} Auth

Delete a location.

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

Legacy: set the single main coordinate on the profile.

Request body
{ "latitude": 50.45, "longitude": 30.52 }
Response
{ "success": true, "message": "Location updated" }

Service categories

GET /api/v1/my-profile/service-categories Auth

List the categories assigned to your profile.

Response
{ "success": true, "categories": [ { "id": 5, "name": "Beauty" } ] }
PUT /api/v1/my-profile/service-categories Auth

Replace the assigned categories (array of category ids).

Request body
{ "category_ids": [5, 9] }
Response
{ "success": true, "message": "Categories updated" }