Venue Maps API Developer's Guide

Metadata API

The Metadata API provides initial information about how to access static indoor content including: global venue indices, complete venue models and bitmap/JSON tiles. The response to metadata call varies depending on credentials present on request. Currently, either application (app_id and app_code) and/or identity credentials (HERE Account bearer token) are supported. Any combination of supported credentials may resolve to zero or more namespaces. In addition to relevant end-points and path prefixes, the metadata service provides also required authorization signature which is supposed to be used when retrieving content from any of the listed namespaces.

A namespace can be compared with a folder of venues on the server. Depending on your license, you will have access to one or more namepaces with different content. If you are a customer who uses the private venues feature of the Venues API, your private venues will be separated from other content with a different namespace name and different access credentials.

Table 1. Basic elements of request to Metadata API
Element Value/Example Description
Base

http://dynamicvenues.venue.maps.api.here.com

http://dynamicvenues.venue.maps.cit.api.here.com

Production environment

Customer Integration Testing environment

Service venues
Feature metadata
Version v1
Application Id app_id={YOUR_APP_ID} Substitute with your unique Application Id
Application Code app_code={YOUR_APP_CODE} Substitute with your unique Application Code
HERE Account Token Authorization: Bearer h1.XV7JOXnRQ6X8zBFWBrtnDA... Optional request header field containing HERE Account token. Note that app_id and app_code is always required, even if HERE Account token is used

Example Request:

http://dynamicvenues.venue.maps.cit.api.here.com/venues/metadata/v1
  ?app_id={YOUR_APP_ID}
  &app_code={YOUR_APP_CODE}

Example Response:

{
  "status": {
    "code": "200",
    "message": "OK"
  },
  "authorization": [{
    "authType": "HERE_CREDENTIALS",
    "identity": {
      "keys": ["some key",
      "*"]
    },
    "namespaces": {
      "ONEAPP": {
        "description": "PUBLIC VENUES",
        "prefix": "",
        "signature": {
          "SignedQueryString": "?Policy\u003deyJTdGF0ZW1lbnQiOiBbeyJSZXNv...",
          "Expires": "2017-10-28T10:12:40Z",
          "SignatureTokens": {
            "app_id": "some app_id",
            "app_code": "some app_code",
            "Signature": "AYLeCgu85klArjwRY~PaiWFsPUiVkLucbooa91...",
            "Policy": "eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6I...",
            "KeyPairId": "APK..."
          }
        },
        "type": "ONEAPP",
        "id": "ONEAPP",
        "endpoint": "static-1.venue.maps.api.here.com",
        "lifecycleSpec": {
          "from": "HOUR:-1",
          "to": "DAY:+1"
        }
      },
      "CUSTOM": {
        "description": "MY COMPANY VENUES",
        "prefix": "CUST-xxx",
        "signature": {
          "SignedQueryString": "?Policy\u003deyJTdGF0ZW1lbXhXMGRKeXci2hUahzUHBqfHd...",
          "Expires": "2017-10-28T10:12:40Z",
          "SignatureTokens": {
            "app_id": "some app_id",
            "app_code": "some app_code",
            "Signature": "IJ0p9VVa6W-9Lwumm1W8lnfSQ6Y28G...",
            "Policy": "eyJTdGF0ZW1lbnQiOiBbeyJSZXNv...",
            "KeyPairId": "APKAJYHWIIHIUVYKYWZA"
          }
        },
        "type": "SDK_CUSTOM",
        "id": "CUSTOM",
        "endpoint": "private-static-1.venue.maps.api.here.com",
        "lifecycleSpec": {
          "from": "HOUR:-1",
          "to": "DAY:+1"
        }
      }
    }
  }
  ]
}
Table 2. Response attributes
Field Description
$.authorization Collection of authorization metadata for each identified authorization mechanism
$.authorization[*].namespaces[?(authType==HERE_CREDENTIALS)] When authType is HERE_CREDENTIALS: Fields ONEAPP and SDK refer to public namespaces available for all apps. Field CUSTOM refers to namespace mapped to provided app_id via EUM feature.
$.authorization[*].namespaces[?(authType==HERE_ACCOUNT)] When authType is HERE_ACCOUNT: Fields IDENTITY, IDENTITY_1, … IDENTITY_N represent custom namespaces mapped to a provided HA identity via EUM feature.
$.authorization[*].namespaces[*].prefix URL prefix to be used to retrieve static content.
$.authorization[*].namespaces[*].signature.SignedQueryString Signed query string to be appended to static content URL.
$.authorization[*].namespaces[*].endpoint Server end-point
$.authorization[*].namespaces[*].signature.Expires Expiration time of provided signature component. Information represented by authorization object is valid until date and time represented in its Expires field.