Back to Home

General Overview

This document describes how to use the REST interface of the MD Content API.

Table of Contents


General HTTP and URI values

Requests to the MD Content API can use the following HTTP methods:

Method Operation Property Security
GET Reading data (excluding) Safe, Idempotent, Cacheable Licence key
PUT Updating Data (Update) idempotent Licence key, Authenticated Owner
Delete Delete data idempotent Licence key, Authenticated Owner
POST Create new data Licence key, Authenticated Owner
HEAD Server status queries Safe, Idempotent Licence key
For GET Requests, a standard browser can be used. For POST, PUT and DELETE requests, the use of a suitable tool is recommended.

The user stories described below show the current state of development.

HTTP header

Access to the data only takes place when a license key is specified, which must be entered as a header in the HTTP request. If the license key is not given, the request is acknowledged with an error (HTTP status code:400).

The license key must be provided as an HTTP header.

Header Key HeaderValue Notes
licensekey License key, alphanumeric value The license key, which has been communicated to a licensee.
Authorization Single sign-on parameters, encoded values The header contains the parameters for the single sign-on with the OAuthServer and is used to authenticate a user.

The basic framework of a URI

General POI Search:

 http://api.mairdumont.com/data/poi/projection/all/?parameter=value
    
Path for POI based requests:
 http://api.mairdumont.com/data/poi/projection/poi/poiId/?parameter=value
    
Path for user based requests:
 http://api.mairdumont.com/data/poi/projection/user/userid/?parameter=value
    
Path for POI list based requests:
 http://api.mairdumont.com/data/poi/projection/user/userId/poilist/poilistId?parameter=value
    
Path for destination searches
 http://api.mairdumont.com/data/poi/api/destination/all/?parameter=value
    
Path for a destination
 http://api.mairdumont.com/data/poi/api/destination/destinationId/?parameter=value
    

Values for projection

Projection Description Note on updatability and availability
api Contains all relevant poi extension data. All properties contain plaintext, no HTML Read / write possible if the user is the owner of the content.
base Provides basic information about a POI without extensions, useful for RSS feeds, since description text can also contain HTML. read-only
geo The projection "geo" contains only the ID, the general title and the coordinates of the POIs. The projection is only supported in the JSON format, and can only be used in the general and user-related POI search. The projection does not support scrolling in the result set. The results are determined directly from the search index, which allows the search to produce a result quickly even with larger results. It is primarily intended as a data source for the display of categories in a map section. read-only, only for search requests (all, user, featured)
feed The feed projection allows external pages to integrate a feed from the Falk POI API without having to create their own license key for these pages. If no license key is given for this projection, the feed customer is used. In the case of feed projection, the description text is truncated to 80 characters. In addition, the maximum number of POIs to be queried is limited to 100. read-only, only for search and single POIs (all, user, poi, external)
info The info projection provides read access to a special group of POIs, which are stored only in a search index, rather than in the database. The POIs of the Info-Projection are aimed at fast updates e.g. course notifications. The Info-Projection POIs use their own categorie list, which can be queried separately. For info projection, it is necessary to specify the desired categories using the "cat" parameter. No POIs are found without "cat" parameters. read-only, only required for search and single POIs (all, poi), "cat" parameters
editor The editor projection also provides relevant data for the editor which is important for the editorial maintenance of the data and is not visible in the standard projection. Is currently only available for the interface ... /destination/?filter=travelinfo

General parameter values

Overview of parameter values

Parameter Description Comment
lang Indication of the language

Defines a language in which the data is to be output. Possible values:

de (german), fr (french), it (italian), es (spanish), nl (dutch), all (default)

filter Specific filter

See section Filter values for permitted values, if no value is specified, the filter=poi is used

facet Check additional facets In addition to the actual search also performs a facet search. This no longer has to be performed separately. The three separate queries with "filter = poi", "filter = category" and "filter = attribution" can thus be reduced to one query with "filter = poi & facet = category, attribution". Multiple facets can be separated by comma. For each facet, the maximum number of entries as well as the alphabetical sorting can be selected, for example, "facet = category-50, attribution-100-alpha". The parameter is only supported for queries using "filter = poi" or "filter = travelpoi".
channel Request protected content Specifies the IDs of the channels whose protected content should be delivered. Multiple channels can be queried by separating the IDs with commas, channel=0,1,2. In order to be able to request a channel, this must be enabled for the customer. If the parameter is not specified, only unprotected content is delivered, ie only content that is not assigned to a channel. Protected and non-protected content can be combined by adding the particular channel ID 0 to the desired channel IDs. The channel=1 request only delivers the protected contents of channel 1, while channel=0,1 also delivers the non-protected content.
loc Search by zip code, location or province Searches for data in the named location, district or state, e.g. Berlin, Degerloch, Lower Saxony or Schwarzwald, as well as in postal codes. ZIP codes and location search are separated by a comma, e.g. loc=70599,Stuttgart. If you only want to search by postal code, you must also add a comma, e.g. loc = 70599,. The search for places works with or without prefixed comma, e.g. loc=Stuttgart or loc=,Stuttgart. Multi-part postal codes, e.g. "L24 1YD" can be searched through their front part, e.g. loc=L24,, or via full postal code, where the search has to correspond to the postal code format e.g. loc=L24+1YD, Liverpool (URL-Encoded). If both the zip code and the city name are specified in the search, both values must be found on a POI so that it is hit.
search Parameter for full-text search Searches in the title, description text and tags for the specified search term, general or user based search
tag Search for tags Searches for POIs in a general, user or POI list based search for the specified tags. Multiple words can be specified, separated by spaces. By prefixing a plus sign, you can specify that all specified words must be taken by the tags to a POI. Without a plus sign, a POI is hit if at least one of the specified words is found in the tags.
country Parameters for search for POI in a country Searches for data in the specified country, DE for Germany, ISO 2-letter codes are used, general or user-based search
bbox BoundingBox search with geocordinates

Searches for POI within the specified BoundingBox. The coordinates must be specified in the order north, west, south, east, coordinates in WGS-84, e.g. "bbox=N,W,S,E".

A fourth value for the LocationHint search can be specified. This allows premium POIs to be found through their LocationHint, even if they are outside the bounding box, for example "bbox=N,W,S,E,Berlin".

circle area search

Searches for POIs around a specified search center. The search center is specified in latitude and longitude in the WGS84 format. In addition, the search radius is indicated in meters, e.g., "circle=52.52223,13.41637,25000". The values are separated by commas.

A fourth value for the LocationHint search can be specified. This allows premium POIs to be found through their LocationHint, even if they are outside the search radius,For example, "circle =52.5,13.3,10000,Berlin".

access Sets the visibility level See chapter Visibility for valid values
itemsperpage Number of POIs per page Default: 10
startindex Scroll the output The startindex parameter determines from which POI the output is to be started. This is called leaves. The default value is 0, i.e. the output is started with the first POI. To scroll, the startindex should be increased by the value of itemsperpage. If there are a total of 70 POIs, they are output to 7 pages (with 10 POIs per page) at itemperpage=10. When scrolling, startindex will successively be 0, 10, 20, 30, 40, 50, and 60. For itemperpage=15, the values for startindex would be 0, 15, 30, 45, and 60.
sort Sort the output

This optional parameter determines the sorting of the POIs. Usually, the results list is sorted by relevance. Not all calls support this parameter, or all possible values for this parameter. Also, the default value may vary depending on the call. Thus, e.g. In the search for Featured POIs the results are arranged randomly. See Sort values for the valid values. 

cat Search by category

Restricts a search to POIs of the specified categories. Categories are identified by their ID. Multiple IDs can be separated by comma (see also list of categories and all categories).

attr Search for attributes

Restricts a search to POIs with the specified attribute. The search query consists of two parts, the name of the attribute and the value you are looking for. The parts are separated by a colon. The value searched for can contain several words that are separated by spaces (observe URL encoding of spaces) e.g. "attr=details:airConditioning+internetAccessPoi_api_granulation.jpg". The search is exact, an inaccurate search (fuzzy) does not take place. The search parameter "attr" can be specified several times. All specified words must be found in a POI to return the POI (AND operation).

poicommendation Search for awards Restricts a search to POIs with the specified award. Multiple awards can be specified by comma. A POI is displayed as soon as it has one of the specified awards. Possible awards are TOP_HIGHLIGHT, HIGHLIGHT, INSIDER_TIP and MP_POI.
pChar Values with a specific initial letter Restricts a search filtered by category, tag, user, loc, country to the values corresponding to the initial letter specified in the parameter. PChar comes from prefix character.
thumbsize Size of Thumbnails

See Quering the Thumbnails for valid values.

imgcount Number of pictures displayed per contribution The complete thumbnails URL should be returned per contribution to the appropriate author, as a default will always be an image with thumbnail size 72u, if available.
closed Search for closed POIs If closed=true, only closed POIs are included in the search. With closed=false (default value) only open POIs are taken into account, as well as POIs, in which the user has added a contribution.
tracktype Type of movement on tours The tour search only takes the tour with the specified movement type into account. Multiple types can be specified, separated by commas. See Movement types for tours for the valid values.
geocode Search for destinations The geocode parameter can only be used on the destination path and searches for destinations that contain a specific geocode. The result set is obtained either in the form of a destination list or in the form of destinations-breadcrumbs.
updatedsince Search for current contributions This parameter can be used to limit the result set to POIs whose contributions were last updated after the specified date. The date is specified in the format YYYY-MM-DD, e.g., 2014-05-14. The parameter is primarily intended for use with a user-related search. In addition, it should be combined with one language. It can be combined with the parameter "lastupdatedbefore" to retrieve POIs whose contributions were last updated in the requested period.
lastupdatedbefore Search for outdated contributions This parameter can be used to limit the result set to POIs whose contributions were last updated before the specified date. The date is specified in the format YYYY-MM-DD, e.g., 2014-05-14. The parameter is primarily intended for use with a user-related search. In addition, it should be combined with one language. It can be combined with the parameter "updatedsince" to retrieve POIs whose contributions were last updated in the requested period.

Sort values

Sort Description usability
frel Sort all Featured POIs to the top, and sort by relevance. This is the default for the general search for customers with Featured POIs as soon as search parameters are specified. Can only be used if Featured POIs have been activated for the customer, search parameters have been specified, and they are not the search for Featured POIs.
brel Sort all POIs to the top have the contributions assigned to the linked marks, and then sorted by relevance. Always usable.
crel brand-specific sorting of the POIs according to references to visible volumes and brand affiliation. For the "Marco Polo" brand, the POIs are first sorted with references ("top highlights" first, followed by "highlights", "top insiders", "insiders" and "contained in visible volumes"). This is followed by all POIs of the brand, which are not referenced in visible volumes. Only then do all other POIs follow. Can be used with POIs and Customer "Marco Polo".
poicom Sorts all POIs according to recommendations ("POI COMmendations" (e.g. "Highlight") and quality of the FED description texts (editorial text, generated text, no text). For POIs always usable.
rel Sort by relevance. This is the default for the general search, as soon as search parameters are specified and it is not a circular search. Exception is the general search for customers with Featured POIs, where "frel" is the default setting. Can only be used if search parameters have been specified.
random Random order of the POIs. This is the default for the search for Featured POIs. Always usable.
fdist Sort all Featured POIs to the top, and then sort by distance to the search center. This is the default for customers with Featured POIs as soon as a circular search is used. Can only be used for round-trip search when Featured POIs have been activated for the customer. Can not be used when looking for Featured POIs.
dist Sort by distance to the search center. This is the default for customers without Featured POIs, as soon as a circular search is used. Can only be used with the circular search.
date Sorted according to the creation date of the POIs, the recent POIs are at the top. This is the default in the general and user-related search, as long as no search parameters are specified. Always usable.
ref Sorted by the number of POI folders that point to the POI. The POI with the most references is above. Always usable.
raav Sorted by the average rating of all customers (Rating All AVerage). It takes into account the voices of authenticated users and guest users. The POI with the highest average rating is at the top. Always usable.
raau Sorted by the average rating across all customers (Rating All AUthenticated). It only takes into account the voices of authenticated users. The POI with the highest average rating is at the top. Always usable.
rcav Sorted by the average rating for the customer (Rating Customer Average). It takes into account the voices of authenticated users and guest users. The POI with the highest average rating is at the top. Always usable.
rcau Sorted according to the average rating for the customer (Rating Customer AUthenticated). It only takes into account the voices of authenticated users. The POI with the highest average rating is at the top. Always usable.
weight Sorts all the Featured POIs up, and then sorts according to the calculated weights of the POIs. The weighting is based on the recommendations (POICommendations, e.g. Highlight), the number of ratings and the average rating of the registered users for all customers, the number of LikeIts, the number of public pictures and the number of comments. The recommendations are heavily weighted. This sorting is the default for the projection "geo". Always usable.
alpha Sorts values delivered via a filter query (category, tag, user, loc, country) alphabetically. Filter queries are possible in the All search, the user search and in folders. Only possible for filter queries.
travel Sorts all POIs with references to visible volumes up, regardless of the type of reference. This is the precursor for sorting "crel". Always usable.
dated Sorts by the last modification date of the contributions, the oldest ones first. This sort is for the user-related search, and should be combined with a language. Always usable, optimal for user-related searches.
liked Sorts images by number of their LikeIts. Can only be used with pictures.
price Sorts offers or products ascending their price. Only for use with offers and products.
sales Sorts products descending according to the number of sales. Only for use with products.

Filter values

Filter Description Supported representations
poi Result contains POIs of a POI list (POI-list based), the POIs of a user (user-based) or POIs of all users (general search) POI-List based, user based, general search
folder Result contains some or all POI lists that the specified user has saved. Which POI lists are included depends on the parameter visibility (see there) User based
tag Contains all tags associated with a specified user, a POI list, or a POI. For user and POI list based searches, the tags contain a weight that indicates how many times they occur. User, POI-lists and POI-based searches
user Result contains entries from the users who have created POIs POI based searches, friends based search, destination based search
country Result contains entries for countries where POIs were found POI lists and user POI based searches, general search
loc Result contains entries to places where POIs were found POI lists and user POI based searches, general search
travelregion Result contains entries for destinations of type TRAVEL_REGION, in which the POI is located. Single-POI
category Result contains entries for categories where POIs were found POI lists and user POI based searches, general search
attribution Result contains entries for attributes that were found in the POIs. POI-based searches, user POI-based searches, destination-based searches
photo Result contains entries to images belonging to a POI POI based search
video Result contains entries to videos belonging to a POI POI based search
event Result contains the events to a destination Destination-based searches

Searchable attributes

The following table lists the searchKeys and searchValues of the searchable attributes. These can be used to restrict the result set with the "attr" parameter. In addition, these values are returned with "filter = attribution".

Attribute searchKey searchValues
kitchen style cookingStyle african american arabian asian australian british chinese german euroasian frensh greek downToEarth indian international italian japanese jewish californian korean mediterranean mexican nouvelleCuisine austrian persian portuguese regional russian swiss seafood scandinavian spanish southAmerican thai turkish hungarian vegan vegetarian vietnamese wholeFood
gastronomy gastronomy restaurant various bar cafe snackBar
price range priceLevel 3 2 1
Type (Sport) type bathingLake skydivingSchool outdoorPool climbingGarden climbingGym indoorPool hangGlidingSchool waterPark
Type (Theatre) type ballet puppetTheatre cabaretTheatre concertHall musicalTheatre fringeTheatre operaHouse drama danceTheatre varietyTheatre
Type (Wellness) type hairdresser beautySalon fingernailSalon sauna spa hotSpring
Type (Cinema) type multiplex arthouseCinema
Special Features (Cinema) type originalVersions
Practice area (golf) type drivingRange
Season (Golf) type seasonAll
Other (Golf) type guestsWelcome
Car Dealer type alamo avis budget europcar hertz nationalCarRent sixt
Amenities (Casino) type roulette bigWheel poker blackJack baccarat sevenCardStud redDog europeanSevenEleven slotGame
music style musicStyle 80s alternative blues bossaNova charts chillOut country crossover dancefloor djLive drumNBass electronic folk funk mixed gothic heavyMetal hiphop house industrial independent jazz classical latin lounge mainstream oldies oriental pop punk reggae rock hits soulRNB tango techno trance 2step folkMusic
Creation styleFurnishing 30x 50s 60s 70s 80s american artDeco asian british caribbean irish italian mexican oriental russian southAmerican
Target group publicTargetGroup ladies men children business families mixed gay students trendy teenagers vips
Ambiance ambience highClass exotic cosy modern rustic chic simple
Live program liveProgramme comedians various karaoke readings livebands
movie day filmDay monday tuesday wednesday thursday friday saturday sunday
Parking parking carPark disabledParking garage
room facilities details apartment singleRooms suites familyRooms doubleRooms sharedRooms nonSmokingroom roomsForAllergysufferers shower airconditioning tv safe minibar hairDryer
Facilities (hotel) details internetAccess
Recreation (Hotel) details spa swimmingPool fitness golfCourse tennis
Special features (hotel) details childrensPlayground childCare petsAllowed
Special features (UNESCO) unesco worldHeritage worldNaturalHeritage
Location location hotel quiet oldTown seaView nearStation park nearAirport lakeView mountainView pedestrianZone shoppingCentre forest openAir airport station
(Credit Cards) creditCard 1
(Suitable for Children) childFriendly 1
(Disabled,handicapped) disabledFriendly 1
(Typical for the region) typicalOfRegion 1
(Outer Area) outdoors 1
(Inside) indoors 1

Traveling on tours

tracktype Description
jogging jogging
walking walking
trekking trekking
biking biking
mountainbiking mountainbiking
racingbike racing bike
motorbiking motorbiking
car car
boating boating
crossskating cross skating
skating inline skating

Common POI properties

Visibility

Visibility Description Security note
all Returns all data, both public, friend, and private Requires authentication
private Provides only private data Requires authentication, only the owner can specify this value
friend Provides only data shared for friends Requires authentication
public Provides only public data No authentication required
visible Displays all the data that a user has access to, including all POIs or POI lists, if their owner explicitly gave the (authenticated) user the right. Default value for all requests if the value is not set. Does not require authentication, for unauthenticated queries it is the same as public
Authenticated users are also shown the data for which the owner has given the right.
For authenticated requests as the owner, this is the same as all .

Marking values (poicommendation)

The possible awards for a POI are listed here. The "poicom" parameter can be used to restrict the search to POIs with the specified awards.

Award (poicommendation) Description
TOP_HIGHLIGHT The POI is a top highlight.
HIGHLIGHT The POI is a highlight.
INSIDER_TIP The POI is an insider tip.
MP_POI The POI is mentioned in a Marco Polo volume.

Allowed HTML elements

Partial HTML elements are allowed in text fields. Unsupported HTML elements are filtered out.

Tag Attribute
a href, target
em
strong
cite
code
ul
ol
li
dl
dt
dd
p
br

Apply filter


Filters are used to be able to query so-called facets of a data set. For possible filter values, see Filter values. If no value for filter is specified for a GET request, the value poi is used as the default filter.

User Story AnyUser queries the tags of all POIs for a search. The tags of the POIs visible for AnyUser are returned.
HTTP GET
URL http://api.mairdumont.com/data/poi/api/all/
Example:
GET http://api.mairdumont.com/data/poi/api/all/?filter=tag&search=Museen
    
A list of tags associated with POI that match the search is output. The number of occurrences of the tags is output with.
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:exif="http://api.123poi.com/exif/" xmlns:poi="http://api.123poi.com/poi/" 
           xmlns:media="http://search.yahoo.com/mrss/" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">
       <openSearch:totalResults>0</openSearch:totalResults>
       <openSearch:startIndex>0</openSearch:startIndex>
       <openSearch:itemsPerPage>0</openSearch:itemsPerPage>
       <openSearch:Query access="VISIBLE"/>
       <updated>2010-06-22T08:02:42.093Z</updated>
       <link href="http://api.mairdumont.com/data/poi/api/all?filter=tag" rel="self"/>
       <title type="text">Allgemeine Suche nach Tags</title>
       <subtitle type="text"/>
       <id>http://api.mairdumont.com/data/poi/api/all?filter=tag</id>
       <author>
         <name>Falk POI API</name>
       </author>
       <entry>
         <title type="text">Kunst</title>
         <summary type="text">Sprache: de, Count: 4</summary>
         <content type="application/xml">
           <poi:tagstatistic>
             <poi:count>4</poi:count>
             <poi:value>Kunst</poi:value>
             <poi:language>de</poi:language>
           </poi:tagstatistic>
         </content>
       </entry>
       <entry>
         <title type="text">Architecture</title>
         <summary type="text">Sprache: en, Count: 3</summary>
         <content type="application/xml">
           <poi:tagstatistic>
             <poi:count>3</poi:count>
             <poi:value>Architecture</poi:value>
             <poi:language>en</poi:language>
           </poi:tagstatistic>
         </content>
       </entry>
       <entry>
         <title type="text">Sehenswert</title>
         <summary type="text">Sprache: de, Count: 3</summary>
         <content type="application/xml">
           <poi:tagstatistic>
             <poi:count>3</poi:count>
             <poi:value>Sehenswert</poi:value>
             <poi:language>de</poi:language>
           </poi:tagstatistic>
         </content>
       </entry>
       ...
     </feed>
    
Further examples which can be similarly used and provide analogous results are:
User Story AnyUser searches for all countries of POIs that are found with a search term. All visible countries of the found POI are returned for AnyUser.
HTTP GET
URL http://api.mairdumont.com/data/poi/api/all/?filter=country&search=Museen
User Story AnyUser searches for all places of POIs that are found with a search term. All visible locations of the found POI are returned for AnyUser.
HTTP GET
URL http://api.mairdumont.com/data/poi/api/all/?filter=loc&search=Museen
User Story AnyUser searches for all users who have created POIs, which are found with a search term. All users of the POI found for AnyUser will be returned.
HTTP GET
URL http://api.mairdumont.com/data/poi/api/all/?filter=user&search=Museen
User Story AnyUser would like to find all searchable attributes of POIs found with a term as a search word. All searchable attributes of the POI found for AnyUser are returned. Searchable attributes are those attributes which have searchkey and searchvale and can thus be used to further restrict the result sets of a search via the request parameter attr. The output does not contain any localized values, but only the search keys and search values.
HTTP GET
URL http://api.mairdumont.com/data/poi/api/all/?filter=attribution&search=Museen
User Story  AnyUser searches for all the recommendations of POIs that are found with a search term. All recommendations of the POI found for AnyUser are returned. Recommendations are only visible if the volumes to which the recommendations refer are also visible to the customer. You can use the request parameter commendation to return the recommendations to further restrict the results of a search.
HTTP GET
URL http://api.mairdumont.com/data/poi/api/all/?filter=commendation&search=Museen
User Story AnyUser would like to display the folder (visible to him) of a user.
HTTP GET
URL http://api.mairdumont.com/data/poi/api/user/UserID/?filter=poilist

Special: Granulation


Granulation values are used to define the detail depth of the response of a query. Granulation values can be specified for single data and for collections. If the value of an attribute is a collection, granulation values can be defined.
The granulation instruction is separated from the path by a colon ":". The desired attributes of the response are defined within the following parentheses; multiple attributes are separated by a comma.

Syntax examples:

  :(entity1)
    
      :(entity1, entity2)
    
      :(entity1, entity2:(subentity1))
    
      :(entity1, entity2:(subentity1, subentity2), entity3)
    
The respective granulation values can be selected under the following URLs:

Tools for generating granulation values

">http://api.mairdumont.com/data/granulation/GranulierungsTreePoiObject.html

">http://api.mairdumont.com/data/granulation/GranulierungsTreeSingleDestination.html

">http://api.mairdumont.com/data/granulation/GranulierungsTreeSingleTour.html

Granulation values

The following graphic illustrates the possible granulation values for each entity.

Examples of granulation

User Story As a user I need only the ratings for all new POI.
HTTP GET
URL http://api.mairdumont.com/data/poi/api/all/:(rating))
User Story As a user, I only need the address for a specific POI.
HTTP GET
URL http://api.mairdumont.com/data/poi/api/poi/4711/:(poidata:(address))