Introduction
Title: Touripedia API
Version: 1.0.0
Description: This API provides access to Points of Interest (POIs). It offers search, filtering, and retrieval functionalities for POI details.
Server URL: /v1
Authentication
The API uses a unique authentication key to secure requests. You can provide this key in two ways.
Method 1: HTTP Header (Recommended)
Include the key in the X-API-Key header of your request.
X-API-Key: your_unique_api_key
Method 2: Query Parameter
Add the key as the api_key parameter in the URL of your request.
GET /v1/catalog?api_key=your_unique_api_key
List and Search POIs
GET/catalog
Retrieves a paginated list of all available Points of Interest, with numerous filtering and search options.
Query Parameters
| Name | Type | Description |
|---|---|---|
filters |
string | Advanced filter expression. See the dedicated section. |
search |
string | Full-text search term(s). Ex: château. |
lang |
string | Language(s) for multilingual fields. Ex: fr,en. See the dedicated section.
|
sort |
string | Sorting field. Ex: lastUpdate[desc]. See the dedicated
section.
|
page |
integer | Page number. Default: 1. See the Pagination
section.
|
page_size |
integer | Number of items per page. Default: 20, Max: 250. |
type, insee, etc. |
string | Specific filters. See the thesauruses for possible values. |
Response (200 OK)
The response is a structured JSON object with two main keys:
{
"objects": [ ... ],
"meta": { ... }
}
objects: An array containing the list of POI objects for the current page. The detailed structure of each object is available in the POI Schema section.meta: An object containing pagination metadata. See the Metadata Schema section for more details.
Pre-filtered Endpoints
These endpoints are shortcuts to /catalog with a pre-applied filter on the
POI
type. They accept all the same parameters as /catalog.
GET /placeOfInterest
: List of Places of Interest.
GET /entertainmentAndEvent : List of Entertainment and Events.
GET /tour : List of
tours.
GET /product : List
of products.
POI Details
GET/catalog/{uuid}
Retrieves detailed information for a specific Point of Interest using its UUID.
Path Parameters
| Name | Type | Description |
|---|---|---|
uuid |
string | Required. The unique identifier of the POI. |
Get a Thesaurus
GET/thesaurus/{code}
Retrieves controlled values (terms) for a given thesaurus, useful for building precise filters.
Path Parameters
| Name | Type | Description |
|---|---|---|
code |
string | Required. Thesaurus identifier. Possible values: Theme,
Amenity, PeopleAudience, LocomotionMode, DifficultyLevel,
Rating, PointOfInterestClass.
|
lang Parameter Syntax
This parameter specifies the language for translatable fields in the response.
- Syntax: A comma-separated list of language codes (ex:
fr,en). - Default Value: If the parameter is omitted, the response will include French
(
fr) and English (en). - Special Value `*`: Use
lang=*to receive all available languages for a field.
# Request POIs with fields in French and Spanish
GET /v1/catalog?lang=fr,es
filters Parameter Syntax
The filters parameter offers a powerful syntax for building complex queries by
combining multiple conditions.
Filter Operators
Operators are placed in brackets [] after the field name. They are case-insensitive.
| Operator | Description | Example |
|---|---|---|
[eq] |
Equals to (default) | type[eq]=PlaceOfInterest |
[ne] |
Not equal to | amenity[ne]=Wifi |
[gt] |
Greater than | hasReview.hasReviewValue[gt]=3 |
[gte] |
Greater than or equal to | offers.priceSpecification.minPrice[gte]=10.50 |
[lt] |
Less than | lastUpdate[lt]=2023-01-01 |
[lte] |
Less than or equal to | tourDistance[lte]=5000 |
[in] |
Included in a list (values separated by ,) |
isLocatedAt.address.hasAddressCity.isPartOfDepartment.insee[in]=35,22 |
[nin] |
Not included in a list | type[nin]=Hotel,Restaurant |
[between] |
Between two bounds (inclusive) | lastUpdate[between]=2023-01-01,2023-12-31 |
[text] |
Full-text search on a field | label[text]="château" |
[geo_distance] |
Geographic search by distance | isLocatedAt.geo[geo_distance]=... |
[geo_bounding] |
Geographic search by area | isLocatedAt.geo[geo_bounding]=... |
Combining Expressions
Use the logical operators AND and OR to combine filters. Parentheses
() are supported to manage priorities.
# Restaurants with Wifi OR Parking
type=Restaurant AND (isEquippedWith=Wifi OR isEquippedWith=CarPark)
Geospatial Operators Syntax
These operators allow searching for POIs based on their geographic location.
[geo_distance] Operator
Searches for POIs within a given radius around a central point.
- Format:
lat,lon,distanceunit - Supported Units:
m,km,mi,yd,ft,in,cm,mm. - Constraints: Latitude must be between -90 and 90, longitude between -180 and 180, and the distance must be positive.
# POIs within 10km of Rennes
filters=isLocatedAt.geo[geo_distance]=48.1173,-1.6778,10km
[geo_bounding] Operator
Searches for POIs within a rectangular box defined by its top-left and bottom-right corners.
- Format:
top_left_lat,top_left_lon,bottom_right_lat,bottom_right_lon - Constraints:
top_left_latmust be greater thanbottom_right_lat, andtop_left_lonmust be less thanbottom_right_lon.
# POIs in a neighborhood of Rennes
filters=isLocatedAt.geo[geo_bounding]=48.118,-1.675,48.115,-1.670
sort Parameter Syntax
The sort parameter allows sorting the results. You can sort by one or more fields,
including nested fields.
Sorting Operators
| Operator | Description | Example |
|---|---|---|
[asc] |
Ascending order (default) | sort=label[asc] or sort=label |
[desc] |
Descending order | sort=lastUpdate[desc] |
Sorting on multiple fields
Separate fields with a comma ,. Sorting is applied in the order of the list.
# Sort by department (ascending), then by last update date (descending)
sort=isLocatedAt.address.hasAddressCity.isPartOfDepartment.insee,lastUpdate[desc]
Pagination
To navigate large result sets, the API uses a pagination system.
Recommendation: For optimal performance and access to the entire result set, it is
strongly recommended to use the next and previous links
provided in the meta object of the response.
Warning: Direct use of the page parameter can be slow and is limited
to the first 10,000 results. Beyond this, using the next links is
mandatory.
POI (PointOfInterest) Schema
This is the complete hierarchical structure of a POI object. Click on the properties to expand their content.
Metadata Schema
The meta object accompanies each list response and contains pagination information.
{
"total": 15320,
"page": 1,
"page_size": 20,
"total_pages": 766,
"next": "/v1/catalog?page=2...",
"previous": null
}
| Property | Type | Description |
|---|---|---|
total |
integer | Total number of results for the query. |
page |
integer | Current page number. |
page_size |
integer | Number of items per page. |
total_pages |
integer | Total number of pages. |
next |
string | null | URL of the next page, or null if it's the last one. |
previous |
string | null | URL of the previous page, or null if it's the first one. |