Vendors are the marketplace sellers on Maleku System — tour operators, property managers, vehicle rental companies, boat charter providers, and transportation services. Each vendor has a public profile page (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/IvanchoDev89/maleku-system/llms.txt
Use this file to discover all available pages before exploring further.
/slug/{slug}/landing) that aggregates all their active listings, reviews, and statistics. Vendor list responses are cached at the API layer to reduce database load.
Unverified vendors’ listings are not shown publicly. A vendor must be verified by a Super Admin before their properties, tours, and other listings appear in search results and on the public marketplace.
GET /api/v1/vendors/
List active vendors sorted by rating in descending order. Returns a flat array of public vendor summaries. Response is cached for 300 seconds.Number of vendors to return. Range: 1–100.
Number of vendors to skip (for manual pagination).
VendorPublicResponse[]
GET /api/v1/vendors/
Get full vendor details by UUID. Response is cached for 600 seconds. Includes business name, rating, verification status, review count, and commission rate. Response —VendorResponse
GET /api/v1/vendors/slug/
Get full vendor details by the vendor’s URL-friendlybusiness_slug. Behaves identically to the UUID endpoint — response cached for 600 seconds.
GET /api/v1/vendors/slug//landing
Get all data needed to render the public vendor landing page in a single request. Includes the top 5 listings per category (properties, tours, vehicles, boats, transportation), reviews, booking stats, and marketplace ranking. Supports optional authentication: if a valid Bearer token is provided, thecan_review flag is set to true when the authenticated user has completed bookings with this vendor that have not yet been reviewed.
Response — VendorLandingResponse
GET /api/v1/vendors/me/profile
Get the authenticated vendor’s own profile. Requiresvendor role.
Returns the full VendorResponse for the vendor account linked to the current user.
PUT /api/v1/vendors/me/profile
Update the authenticated vendor’s own profile. Requiresvendor role. Rate-limited to 10 requests per minute.
Only the following fields can be updated by the vendor themselves (mass assignment protection):
Public business name.
Business description shown on the vendor profile page.
Contact phone number.
Physical business address.
City.
Country (defaults to
Costa Rica).Business website URL.
URL for the business logo image.
Tax identification number for compliance.
GET /api/v1/vendors/me/analytics
Get the authenticated vendor’s analytics dashboard. Requiresvendor role. Returns booking counts by status, total revenue from completed bookings, and commission rate.
Response
PUT /api/v1/vendors//verify
Mark a vendor as verified. Requiressuper_admin role. Sets is_verified = true on the vendor record and invalidates the vendor cache. Rate-limited to 10 requests per minute.
PUT /api/v1/vendors//activate
Toggle a vendor’s active status. Requiressuper_admin role. Pass is_active=true or is_active=false as a query parameter.
VendorPublicResponse Schema
Vendor’s unique identifier.
Public-facing business name.
Category of business (e.g.
tour_operator, property_manager, vehicle_rental).Short business description.
URL for the vendor’s logo image.
Average rating across all listings (0–5).
Total number of approved reviews across all listings.