The Search API powers two distinct discovery modes on the Maleku System platform: a global ILIKE-based search across all content types and a dedicated full-text property search powered by PostgreSQL’s ranked search. Both endpoints are rate-limited to 30 requests per minute per IP. All search endpoints are public — no authentication required.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.
GET /api/v1/search/
Global search across properties, tours, destinations, and blog posts in parallel. Uses ILIKE pattern matching on names and titles and returns categorised results in a single response.Search query string. Minimum 1 character, maximum 200 characters. The value is sanitised and escaped before use.
Maximum number of items to return per category (properties, tours, destinations, blog). Range: 1–50.
SearchResponse
GET /api/v1/search/properties
Full-text search over properties only, using PostgreSQL’stsvector ranked search with optional filters. Returns results ordered by relevance rank.
Search query. Minimum 1 character, maximum 200 characters.
Filter by property type (e.g.
hotel, cabin, villa, hostel).Filter by property category (e.g.
beachfront, mountain, jungle).Filter by Costa Rica region (e.g.
Guanacaste, Puntarenas, San José).Minimum base price (USD).
Maximum base price (USD).
Number of results. Range: 1–100.
TextSearchResponse
GET /api/v1/search/map
Returns properties and tours with coordinates for the interactive map view. Properties must have non-nulllatitude and longitude to appear. Tours are always included (coordinates may be null if not set on the tour record). Supports pagination with up to 200 items per page.
Filter map markers by property type.
Filter properties by category or tours by
TourCategory enum value (adventure, beach, wildlife, culture, nature).Filter properties by region. Does not apply to tours.
Minimum price filter — applied to
base_price for properties and price for tours.Maximum price filter.
Page number. Minimum: 1.
Items per page. Range: 1–200. Values above 200 are clamped to 200.
MapDataResponse
GET /api/v1/search/map/count
Returns aggregate counts for map markers grouped by region and tour category. Useful for rendering summary overlays and filter badges without fetching all markers. Response —MapCountsResponse
MapPropertyItem Schema
UUID of the property.
Display name.
URL-friendly identifier used for the public property page.
Type of accommodation (e.g.
hotel, villa, cabin, hostel).Property category (e.g.
beachfront, mountain, eco).Costa Rica region (e.g.
Guanacaste, Puntarenas).City or town.
Street address of the property.
WGS-84 latitude. Only properties with non-null coordinates are included.
WGS-84 longitude.
Primary image URL.
Up to 4 additional image URLs. Default:
[].Weekday nightly rate in USD. Default:
0.Weekend nightly rate in USD. Default:
0.Average review rating (0–5).
Total number of approved reviews.
Minimum guest count. Default:
1.Maximum guest count. Default:
10.Up to 8 amenity tags returned for map popups (e.g.
["wifi", "pool", "kitchen"]).MapTourItem Schema
UUID of the tour.
Tour display name.
URL-friendly identifier.
Tour category enum value:
adventure, beach, wildlife, culture, or nature.Difficulty level:
easy, moderate, or hard.Human-readable location string (e.g.
La Fortuna, Manuel Antonio).WGS-84 latitude. May be
null if not set on the tour record.WGS-84 longitude.
Primary image URL.
Up to 4 additional image URLs. Default:
[].Tour price per person in USD. Default:
0.Duration in decimal hours (e.g.
4.5 = 4 hours 30 minutes). Default: 0.Average review rating (0–5).
Total number of approved reviews.
Maximum number of participants per booking. Default:
20.