Points of Interest Details

Service version: 2
Last edit: 2022.04.04
This API will be discontinued as of 24th of June 2022.

Purpose

The Points of Interest (POI) Details endpoint provides additional information about the POIs including: rating, price range, social media links (Facebook, Instagram, Twitter), photo IDs, popular hours, and user reviews.


Request data

HTTPS methods: GET HEAD

For ease of viewing and identification:

  • Constants and parameters enclosed in curly brackets { } must be replaced with their values.
  • Please see the following Request parameters section with the required and optional parameters tables for their values. The generic request format is as follows.

URL format

GET
Request URL
https://{baseURL}/search/{versionNumber}/poiDetails.{ext}?key={Your_API_Key}&id={id}&sourceName={sourceName}

curl command format

GET
Request curl command
curl 'https://{baseURL}/search/{versionNumber}/poiDetails.{ext}?key={Your_API_Key}&id={id}&sourceName={sourceName}'

Request parameters

The following table describes the parameters that can be used in a request.

  • Required parameters must be used or the call will fail.
  • Parameters and values are case-sensitive.
Required parametersDescription
baseURL
string
The base URL for calling the API.
Value: api.tomtom.com
versionNumber
string
The service version.
Value: The current value is 2.
ext
string
The response format of the API request. The valid response format is JSON or XML.
Value: json or xml
key
string
An API Key valid for the requested service.
Value: Your valid API Key.
id
string
POI id, previously retrieved from the poiDetails section at the bottom of the Search response.
Value: Example: Rm91cnNxdWFyZTo1NTExYWY3MTQ5OGUwZjc4OWNkODRhZjI=
Optional parametersDescription
sourceName
string
Name of an external data provider. This parameter is required only for MultiNet-R customers. Customers using the Search API should not include this parameter in the request.
Value: Example: Foursquare.

Request headers

The following table describes HTTP request headers.

Optional headersDescription
Accept-EncodingShould contain a list of encodings acceptable by the client. Used to demand a compressed response.
If specified, the Content-Encoding response header is returned.
Value: gzip
Tracking-IDSpecifies an identifier for the request.
  • It can be used to trace a call.
  • The value must match the regular expression '^[a-zA-Z0-9-]{1,100}$'.
  • An example of the format that matches this regular expression is UUID (e.g., 9ac68072-c7a4-11e8-a8d5-f2801f1b9fd1). For details check RFC 4122.
  • If specified, it is replicated in the Tracking-ID response header.
  • It is only meant to be used for support and does not involve tracking of you or your users in any form.
Value: An identifier for the request.

Response data

Response body

If the <ext> parameter value is set to json, the response will be a JSON object with the following structure:

Response body with the request URL parameter value set to 'json'
1{
2 "id":"Rm91cnNxdWFyZTo1NTExYWY3MTQ5OGUwZjc4OWNkODRhZjI=",
3 "result":{
4 "description":"Award winning restaurant founded by the De Visscher family.",
5 "rating":{
6 "totalRatings":214,
7 "value":8.84,
8 "minValue":0,
9 "maxValue":10
10 },
11 "priceRange":{
12 "label":"Moderate",
13 "value":2,
14 "minValue":1,
15 "maxValue":4
16 },
17 "socialMedia":[
18 {
19 "name":"facebook",
20 "url":"https://facebook.com/profile.php?id=564078493731401"
21 }
22 ],
23 "photos":[
24 {
25 "id":"23bc3b0b-d33d-3c07-8612-e660ea7c0864"
26 },
27 {
28 "id":"df424a18-8710-3f85-952f-5528ed9b3e46"
29 },
30 {
31 "id":"9a27ffba-c7b6-3d15-9334-417a3281a6c0"
32 },
33 {
34 "id":"6b49c97b-da5c-3dc3-b802-aa83e14337e7"
35 },
36 {
37 "id":"1dd59289-87f2-30e0-bd32-e4f08775889f"
38 }
39 ],
40 "reviews":[
41 {
42 "text":"Finger foods bölümündeki kalamar ve ahtapot çok lezzetli, günün balığı olarak da ızgara çupra seçtik o da lezzetli, bu menü 2 kişi için ideal. Beyaz şarap olarak chardonnay seçtik italyan, o da iyiydi",
43 "date":"2020-02-23"
44 },
45 {
46 "text":"fresh oysters, square lobster soup",
47 "date":"2020-01-08"
48 },
49 {
50 "text":"My favorite in Amsterdam!",
51 "date":"2020-01-01"
52 },
53 {
54 "text":"Oysters are delicious, catch of the day dish was very good! Soup is tasty, but could be better. Be careful with the price.",
55 "date":"2016-05-31"
56 },
57 {
58 "text":"Прекрасный ресторан с морепродуктами! Если соберетесь туда вечером - забронируйте заранее столик у них на сайте.",
59 "date":"2015-03-29"
60 }
61 ],
62 "popularHours":[
63 {
64 "dayOfWeek":1,
65 "timeRanges":[
66 {
67 "startTime":{
68 "hour":12,
69 "minute":0
70 },
71 "endTime":{
72 "hour":16,
73 "minute":0
74 }
75 }
76 ]
77 },
78 {
79 "dayOfWeek":2,
80 "timeRanges":[
81 {
82 "startTime":{
83 "hour":12,
84 "minute":0
85 },
86 "endTime":{
87 "hour":14,
88 "minute":0
89 }
90 }
91 ]
92 },
93 {
94 "dayOfWeek":3,
95 "timeRanges":[
96 {
97 "startTime":{
98 "hour":"12",
99 "minute":0
100 },
101 "endTime":{
102 "hour":"14",
103 "minute":0
104 }
105 }
106 ]
107 },
108 {
109 "dayOfWeek":4,
110 "timeRange":[
111 {
112 "startTime":{
113 "hour":12,
114 "minute":0
115 },
116 "endTime":{
117 "hour":14,
118 "minute":0
119 }
120 }
121 ]
122 },
123 {
124 "dayOfWeek":5,
125 "timeRange":[
126 {
127 "startTime":{
128 "hour":12,
129 "minute":0
130 },
131 "endTime":{
132 "hour":14,
133 "minute":0
134 }
135 },
136 {
137 "startTime":{
138 "hour":17,
139 "minute":0
140 },
141 "endTime":{
142 "hour":19,
143 "minute":0
144 }
145 },
146 {
147 "startTime":{
148 "hour":21,
149 "minute":0
150 },
151 "endTime":{
152 "hour":2,
153 "minute":0
154 }
155 }
156 ]
157 },
158 {
159 "dayOfWeek":6,
160 "timeRanges":[
161 {
162 "startTime":{
163 "hour":18,
164 "minute":0
165 },
166 "endTime":{
167 "hour":3,
168 "minute":0
169 }
170 }
171 ]
172 }
173 ]
174 }
175}

If the <ext> parameter value is set to xml, the response will be an XML format with the following structure:

Response body with the request URL parameter value set to 'xml'
1<?xml version="1.0" encoding="UTF-8"?>
2<response>
3 <id>Rm91cnNxdWFyZTo1NTExYWY3MTQ5OGUwZjc4OWNkODRhZjI=</id>
4 <result>
5 <description>Award winning restaurant founded by the De Visscher family.</description>
6 <rating>
7 <totalRatings>214</totalRatings>
8 <value>8.84</value>
9 <minValue>0</minValue>
10 <maxValue>10</maxValue>
11 </rating>
12 <priceRange>
13 <label>Moderate</label>
14 <value>2</value>
15 <minValue>1</minValue>
16 <maxValue>4</maxValue>
17 </priceRange>
18 <socialMedia>
19 <media>
20 <name>facebook</name>
21 <url>https://facebook.com/profile.php?id=564078493731401</url>
22 </media>
23 </socialMedia>
24 <photos>
25 <photo>
26 <id>23bc3b0b-d33d-3c07-8612-e660ea7c0864</id>
27 </photo>
28 <photo>
29 <id>df424a18-8710-3f85-952f-5528ed9b3e46</id>
30 </photo>
31 <photo>
32 <id>9a27ffba-c7b6-3d15-9334-417a3281a6c0</id>
33 </photo>
34 <photo>
35 <id>6b49c97b-da5c-3dc3-b802-aa83e14337e7</id>
36 </photo>
37 <photo>
38 <id>1dd59289-87f2-30e0-bd32-e4f08775889f</id>
39 </photo>
40 </photos>
41 <reviews>
42 <review>
43 <text>Finger foods bölümündeki kalamar ve ahtapot çok lezzetli, günün balığı olarak da ızgara çupra seçtik o da lezzetli, bu menü 2 kişi için ideal. Beyaz şarap olarak chardonnay seçtik italyan, o da iyiydi</text>
44 <date>2020-02-23</date>
45 </review>
46 <review>
47 <text>fresh oysters, square lobster soup</text>
48 <date>2020-01-08</date>
49 </review>
50 <review>
51 <text>My favorite in Amsterdam!</text>
52 <date>2020-01-01</date>
53 </review>
54 <review>
55 <text>Oysters are delicious, catch of the day dish was very good! Soup is tasty, but could be better. Be careful with the price.</text>
56 <date>2016-05-31</date>
57 </review>
58 <review>
59 <text>Прекрасный ресторан с морепродуктами! Если соберетесь туда вечером - забронируйте заранее столик у них на сайте.</text>
60 <date>2015-03-29</date>
61 </review>
62 </reviews>
63 <popularHours>
64 <hours>
65 <dayOfWeek>1</dayOfWeek>
66 <timeRanges>
67 <timeRange>
68 <startTime>
69 <hour>12</hour>
70 <minute>0</minute>
71 </startTime>
72 <endTime>
73 <hour>16</hour>
74 <minute>0</minute>
75 </endTime>
76 </timeRange>
77 </timeRanges>
78 </hours>
79 <hours>
80 <dayOfWeek>2</dayOfWeek>
81 <timeRanges>
82 <timeRange>
83 <startTime>
84 <hour>12</hour>
85 <minute>0</minute>
86 </startTime>
87 <endTime>
88 <hour>14</hour>
89 <minute>0</minute>
90 </endTime>
91 </timeRange>
92 </timeRanges>
93 </hours>
94 <hours>
95 <dayOfWeek>3</dayOfWeek>
96 <timeRanges>
97 <timeRange>
98 <startTime>
99 <hour>12</hour>
100 <minute>0</minute>
101 </startTime>
102 <endTime>
103 <hour>14</hour>
104 <minute>0</minute>
105 </endTime>
106 </timeRange>
107 </timeRanges>
108 </hours>
109 <hours>
110 <dayOfWeek>4</dayOfWeek>
111 <timeRanges>
112 <timeRange>
113 <startTime>
114 <hour>12</hour>
115 <minute>0</minute>
116 </startTime>
117 <endTime>
118 <hour>14</hour>
119 <minute>0</minute>
120 </endTime>
121 </timeRange>
122 </timeRanges>
123 </hours>
124 <hours>
125 <dayOfWeek>5</dayOfWeek>
126 <timeRanges>
127 <timeRange>
128 <startTime>
129 <hour>12</hour>
130 <minute>0</minute>
131 </startTime>
132 <endTime>
133 <hour>14</hour>
134 <minute>0</minute>
135 </endTime>
136 </timeRange>
137 <timeRange>
138 <startTime>
139 <hour>17</hour>
140 <minute>0</minute>
141 </startTime>
142 <endTime>
143 <hour>19</hour>
144 <minute>0</minute>
145 </endTime>
146 </timeRange>
147 <timeRange>
148 <startTime>
149 <hour>21</hour>
150 <minute>0</minute>
151 </startTime>
152 <endTime>
153 <hour>2</hour>
154 <minute>0</minute>
155 </endTime>
156 </timeRange>
157 </timeRanges>
158 </hours>
159 <hours>
160 <dayOfWeek>6</dayOfWeek>
161 <timeRanges>
162 <timeRange>
163 <startTime>
164 <hour>18</hour>
165 <minute>0</minute>
166 </startTime>
167 <endTime>
168 <hour>3</hour>
169 <minute>0</minute>
170 </endTime>
171 </timeRange>
172 </timeRanges>
173 </hours>
174 </popularHours>
175 </result>
176</response>

Usage of Points of Interest Details

With respect to the Points of Interest Details endpoint, the following applies:

  • You shall attribute all results delivered by the Extended Search API Points of Interest Details endpoint and Points of Interest Photos endpoint as being ‘powered by Foursquare’.
  • You shall not use any results delivered by the Extended Search API Points of Interest Details endpoint and Points of Interest Photos endpoint to create, improve, or edit a venue or point of interest database.
  • You shall not cache any results delivered by the Extended Search API Points of Interest Details endpoint and Points of Interest Photos endpoint for more than 30 days.
  • See the Terms and Conditions for more details.

Response fields

The following table describes all of the fields that can appear in a response. Fields are listed by the response section they belong to and in the order that they appear in the response.

Primary fields
FieldDescription
id
string
The ID of the returned entity.
result
object
An object that contains the result of the request.
result object
result object
FieldDescription
description
string
Description of the POI.
rating
object
An object that contains rating information.
rating object
priceRange
object
An object that contains price range information.
priceRange object
socialMedia
array
Social media links of the POI.
array of media objects
photos
array
Photo ids of the POI.
array of photo objects
reviews
array
User reviews about the POI.
array of review objects
popularHours
array
List of popular hours of the week when people typically visit a POI. The time is represented by the local time of the POI (timezone is available in the Search API response.
array of hours objects
rating object
FieldDescription
totalRatings
integer
Total number of ratings.
value
double
Rating value, between min and max values inclusive.
minValue
double
Min value of the rating.
maxValue
double
Max value of the rating.
priceRange object
FieldDescription
value
integer
Price range value, between min and max values inclusive.
label
string
Label which describes the price range, for example: Cheap, Moderate, Expensive, Very Expensive. Values might differ per data provider.
minValue
integer
Min value of the price range.
maxValue
integer
Max value of the price range.
media object
FieldDescription
name
string
Name of the social media.
url
string
Link to the social media.
photo object
FieldDescription
id
string
Id of the photo. To be used in the Points of Interest Photos endpoint.
review object
FieldDescription
text
string
Content of the review.
date
string
Date of the review, YYYY-MM-DD format ISO_8601
hours object
FieldDescription
dayOfWeek
integer
A number from 1 to 7, corresponding to the days of the week, starting from Monday, ISO_8601 format. For example, 4 means Thursday.
timeRanges
array
List of the popular hours time ranges.
array of timeRange objects
timeRange object
FieldDescription
startTime
object
Start of the time range.
startTime object
endTime
object
End of the time range.
endTime object
startTime, endTime objects
FieldDescription
hour
integer
Hours are in the 24 hour format in the local time of the POI.
0..23
minute
integer
Minutes are in the local time of the POI.
0..59

Response codes

CodeMeaning & possible causes
200OK: If the given POI was found, the body of the response will contain the data. Otherwise, the response will contain an empty result object/empty <result></result> result element in the response body. For example:
Code 200 response body - JSON
1{
2 "id": "Rm91cnNxdWFyZTo0YTI3MDNjOGY5NjRhNTIwNjY4NTFmZTM=",
3 "result": {}
4}
Code 200 response body - XML
1<response>
2 <id>Rm91cnNxdWFyZTo0YTI3MDNjOGY5NjRhNTIwNjY4NTFmZTM=</id>
3 <result></result>
4</response>
400Bad request: one or more parameters were incorrectly specified or are out of range.
403Forbidden: Possible causes include:
  • Service requires SSL
  • Not authorized
  • Rate or volume limit exceeded
  • Unknown referer
404Not Found: The requested resource could not be found, but it may be available again in the future.
405Method Not Allowed.
429Too Many Requests: The API Key is over QPS (Queries per second).
5xxServer Error: The service was unable to process your request. Contact support to resolve the issue.

Response headers

HeaderDescription
Access-Control-Allow-OriginEnsures that clients implementing the CORS security model are able to access the response from this service.
Value: * This asterisk signifies access to the TomTom API using the Access-Control-Allow-Origin (ACAO) header in its response, indicating which origin sites are allowed.
Content-EncodingThe service applies gzip compression to the responses if it is requested by the client with the Accept-Encoding header.
Value: gzip
Cache-ControlThe Cache-Control general-header field is used to specify directives that must be obeyed by all caching mechanisms along the request/response chain.
  • Supported by HTTP/1.1 clients.
  • May not be supported by HTTP/1.0 clients.
Value: no-cache
Content-TypeIndicates the format of the response as chosen by the client. Format: type/subtype; charset=utf-8
Value: type/subtype:
  • application/json
  • application/xml
Tracking-IDAn identifier for the request.
  • If the Tracking-ID header was specified, it is replicated in the response.
  • Otherwise, it is generated automatically by the service.
  • It is only meant to be used for support and does not involve tracking of you or your users in any form.
Value: An identifier for the request.

Error response

The error response content type depends on the ext parameter.

Response body with the request URL <ext> parameter value set to "json"
1{
2 "message":"Missing parameter 'parameterName'",
3 "detailedError":{
4 "code":"MissingParameter",
5 "message":"Missing required parameter 'parameterName'.",
6 },
7 "httpStatusCode":"400"
8}
Response body with the request URL <ext> parameter value set to "xml"
1<ErrorEvResponse>
2 <message>Missing parameter 'parameterName'</message>
3 <detailedError>
4 <code>MissingParameter</code>
5 <message>Missing required parameter 'parameterName'.</message>
6 </detailedError>
7</ErrorEvResponse>

Error response fields

Primary fieldsDescription
message
string
A human-readable description of the error.
detailedError
object
Detailed information about the error.
detailedError object
detailedError object
FieldDescription
code
string
One of a server-defined set of error codes.
message
string
A human-readable description of the error code.
It is intended as an aid to developers and is not suitable for exposure to end users.