Points of Interest Details
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
https://{baseURL}/search/{versionNumber}/poiDetails.{ext}?key={Your_API_Key}&id={id}&sourceName={sourceName}
curl command format
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 parameters | Description |
---|---|
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 parameters | Description |
---|---|
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 headers | Description |
---|---|
Accept-Encoding | Should 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-ID | Specifies an identifier for the request.
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":1010 },11 "priceRange":{12 "label":"Moderate",13 "value":2,14 "minValue":1,15 "maxValue":416 },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":070 },71 "endTime":{72 "hour":16,73 "minute":074 }75 }76 ]77 },78 {79 "dayOfWeek":2,80 "timeRanges":[81 {82 "startTime":{83 "hour":12,84 "minute":085 },86 "endTime":{87 "hour":14,88 "minute":089 }90 }91 ]92 },93 {94 "dayOfWeek":3,95 "timeRanges":[96 {97 "startTime":{98 "hour":"12",99 "minute":0100 },101 "endTime":{102 "hour":"14",103 "minute":0104 }105 }106 ]107 },108 {109 "dayOfWeek":4,110 "timeRange":[111 {112 "startTime":{113 "hour":12,114 "minute":0115 },116 "endTime":{117 "hour":14,118 "minute":0119 }120 }121 ]122 },123 {124 "dayOfWeek":5,125 "timeRange":[126 {127 "startTime":{128 "hour":12,129 "minute":0130 },131 "endTime":{132 "hour":14,133 "minute":0134 }135 },136 {137 "startTime":{138 "hour":17,139 "minute":0140 },141 "endTime":{142 "hour":19,143 "minute":0144 }145 },146 {147 "startTime":{148 "hour":21,149 "minute":0150 },151 "endTime":{152 "hour":2,153 "minute":0154 }155 }156 ]157 },158 {159 "dayOfWeek":6,160 "timeRanges":[161 {162 "startTime":{163 "hour":18,164 "minute":0165 },166 "endTime":{167 "hour":3,168 "minute":0169 }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 | |
---|---|
Field | Description |
id string | The ID of the returned entity. |
result object | An object that contains the result of the request.result object |
result object | |
Field | Description |
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 | |
Field | Description |
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 | |
Field | Description |
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 | |
Field | Description |
name string | Name of the social media. |
url string | Link to the social media. |
photo object | |
Field | Description |
id string | Id of the photo. To be used in the Points of Interest Photos endpoint. |
review object | |
Field | Description |
text string | Content of the review. |
date string | Date of the review, YYYY-MM-DD format ISO_8601 |
hours object | |
Field | Description |
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 | |
Field | Description |
startTime object | Start of the time range.startTime object |
endTime object | End of the time range.endTime object |
startTime, endTime objects | |
Field | Description |
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
Code | Meaning & possible causes |
---|---|
200 | OK: 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
Code 200 response body - XML
|
400 | Bad request: one or more parameters were incorrectly specified or are out of range. |
403 | Forbidden: Possible causes include:
|
404 | Not Found: The requested resource could not be found, but it may be available again in the future. |
405 | Method Not Allowed. |
429 | Too Many Requests: The API Key is over QPS (Queries per second). |
5xx | Server Error: The service was unable to process your request. Contact support to resolve the issue. |
Response headers
Header | Description |
---|---|
Access-Control-Allow-Origin | Ensures 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-Encoding | The service applies gzip compression to the responses if it is requested by the client with the Accept-Encoding header. Value: gzip |
Cache-Control | The Cache-Control general-header field is used to specify directives that must be obeyed by all caching mechanisms along the request/response chain.
no-cache |
Content-Type | Indicates the format of the response as chosen by the client. Format: type/subtype; charset=utf-8 Value: type/subtype:
|
Tracking-ID | An identifier for the request.
identifier for the request. |
Error response
The error response content type depends on the ext
parameter.
1{2 "message":"Missing parameter 'parameterName'",3 "detailedError":{4 "code":"MissingParameter",5 "message":"Missing required parameter 'parameterName'.",6 },7 "httpStatusCode":"400"8}
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 fields | Description |
---|---|
message string | A human-readable description of the error. |
detailedError object | Detailed information about the error.detailedError object |
detailedError object | |
Field | Description |
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. |