List Search
Note: This documentation covers List Search specific features. For common concepts like response format, pagination, and general query parameters, see the Getting Started Guide.
Overview
The Lists search endpoint provides a search interface for querying lists (collections of pinpoints).
It supports the following types of filtering:
- Text search: Full-text search on list names, descriptions, and addresses
- Collection filtering: Filter by livemaps, pinpoints (lists containing a specific pinpoint), portals, or users
- Tag filtering: Filter by tags with support for AND/OR logic
- Attribute filtering: Filter by list type, itinerary status, contributive status, and liked by users
Endpoint: GET /v3.0/lists/search
Response Format
Success Response
Status Code: 200 OK
Response Structure:
{
"count": 1234,
"next": "https://api.getwemap.com/v3.0/lists/search?limit=20&offset=20&query=list+name",
"previous": null,
"results": [
{
"author": {
"name": "Author name",
"photo_url": "https://api.getwemap.com/images/users/author-profile-photo.jpg"
},
"created": "2023-12-04T13:06:07.695504Z",
"description": "List description",
"external_data": null,
"id": 456,
"image_url": "https://api.getwemap.com/images/pps-lispoints/245b6e39eb408c48a6544eab.94668809.jpg",
"is_contributive": false,
"itinerary": false,
"name": "List name",
"pinpoints_order": [],
"status": 3,
"tags": ["some-tag", "another-tag"],
"type": 0,
"updated": "2023-12-31T08:52:37.330542Z",
"user": 4567
},
// ... more lists
]
}
Note: For general response format details (count, next, previous, results fields), see the Getting Started Guide.
Error Responses
400 Bad Request
Returned when:
- No search criteria are provided (at least one criterion is required, except
sort_by_name) - Invalid tag format
Permissions
The endpoint respects list visibility permissions:
- Public lists: Visible to everyone
- Shared lists: Visible if the
livemapparameter is provided and if lists belong to that livemap - Private lists: Only visible to the list owner (authenticated users can see their own lists)
The permissions are automatically applied based on the authenticated user and on the livemap parameter if provided.
Query Parameters
Text Search
query (string, optional)
Full-text search on the list's name, description, and address.
Searched Fields:
- List name
- List description
- List address
Example:
GET /v3.0/lists/search?query=restaurants
Filtering by Collection
These parameters allow you to filter lists by the collections or objects they are linked to: livemaps, pinpoints, portals, users. All of them are specified by their ID.
livemap (integer, optional)
Filter lists belonging to a specific livemap.
Example:
GET /v3.0/lists/search?livemap=456
pinpoint (integer, optional)
Filter lists that include a specific pinpoint in their collection. Since lists are collections of pinpoints, this returns all lists that contain the pinpoint with the specified ID.
Example:
GET /v3.0/lists/search?pinpoint=789
portal (integer, optional)
Filter lists for a specific portal (searches all lists within livemaps belonging to that portal).
Example:
GET /v3.0/lists/search?portal=10
user (integer, optional)
Filter lists created by a specific user.
Example:
GET /v3.0/lists/search?user=42
liked_by (integer, optional)
Filter lists liked by a specific user, identified by its ID.
Example:
GET /v3.0/lists/search?liked_by=42
Attribute Filtering
type (integer, optional)
Filter lists by type. Values:
0: General lists1: Featured lists
Example:
GET /v3.0/lists/search?type=1
itinerary (boolean, optional)
Filter lists that are itineraries. If true, returns only itinerary lists. If false, returns only non-itinerary lists.
Example:
GET /v3.0/lists/search?itinerary=true
is_contributive (boolean, optional)
Filter lists that are contributive. If true, returns only contributive lists. If false, returns only non-contributive lists.
Example:
GET /v3.0/lists/search?is_contributive=true
Tag Filtering
tags (comma-separated string, optional)
Filter lists that have the specified tags.
Use commas (,) to separate tag groups, which creates AND logic between groups. Within a tag group, use the pipe character (|) to create OR logic between tags.
Format:
- Simple tags:
tag1,tag2,tag3 - Tag groups with OR:
tag1|tag2,tag3(means: (tag1 OR tag2) AND tag3)
Example:
GET /v3.0/lists/search?tags=restaurant,food
GET /v3.0/lists/search?tags=restaurant|bar,food
Sorting
You can sort the results by relevance score (default sorting), by name, or by score and name combined.
Relevance sorting (default sorting)
Results are ranked by relevance, which considers:
- Recency: More recent lists (especially within the last 28 days) are ranked higher
- Text match quality: Better matches to your search query are ranked higher
sort_by_name (string, optional)
Sort results by list name. Values:
asc: Ascending orderdesc: Descending order
Example:
GET /v3.0/lists/search?sort_by_name=asc
sort_by_score_and_name (string, optional)
Sort results by score and then by name. Values:
asc: Ascending orderdesc: Descending order
Example:
GET /v3.0/lists/search?sort_by_score_and_name=desc
Pagination
For pagination parameters (limit and offset), see the Getting Started Guide.