Get Feature Details

The Get Feature Details endpoint retrieves comprehensive information about a specific Point of Interest (POI) within your indoor venue, including its precise location, properties, floor level, and metadata.

Most integrations should use a client library. The Map JS API and mobile SDKs handle authentication, map binding, and error handling automatically. Call the REST API directly only when building a backend service or a platform where the JS library is unavailable.

What is the Get Feature Details Endpoint?

Retrieves complete information about a specific POI, including precise coordinates, floor level, building location, and metadata, using its unique identifier.

When to Use This Endpoint

This endpoint is the step after Autocomplete or Search: once you have a POI identifier, Details retrieves the full GeoJSON feature with precise coordinates, floor level, and all metadata. Use it to populate a detail panel, resolve a deep link to a specific indoor location, set a navigation destination, or sync POI data with an external system.

API Endpoint

http
        GET https://api.woosmap.com/indoor/venues/{venueId}/pois/{featureId}

    

Authentication

Authenticate using either a key (public API key for client-side requests) or private_key (for server-side requests). Public keys require domain/IP restrictions, while private keys should be kept secret and never exposed in client code.

Shell
        # Client-side
?key=YOUR_PUBLIC_KEY

# Server-side
?private_key=YOUR_PRIVATE_KEY

    

For complete authentication details and security best practices, see API Keys Documentation.

Request Parameters Overview

Path Parameters

Parameter Type Description
venueId string The unique identifier for the indoor venue
featureId string The unique identifier for the POI. Accepts pk, id, or ref: prefixed values

Required Query Parameters

Parameter Type Description
key or private_key string Your Woosmap API key

Key Optional Parameters

Parameter Type Description
language string Language code for localized results (e.g., “en”, “fr”)

Request Example

Shell
        GET https://api.woosmap.com/indoor/venues/gdn_doc/pois/614309?key=YOUR_API_KEY

    
javascript
        const response = await fetch(
  `https://api.woosmap.com/indoor/venues/${venueId}/pois/${featureId}?key=YOUR_API_KEY`
);
const feature = await response.json();

    

Using a reference identifier:

Shell
        GET https://api.woosmap.com/indoor/venues/gdn_doc/pois/ref:bakery001?key=YOUR_API_KEY

    

Response Format

The API returns a standard GeoJSON Feature object containing the POI’s geometry (coordinates) and properties (name, level, building, category, custom metadata, etc.).

Response Fields

Field Type Description
type string GeoJSON type, always “Feature”
id string Unique identifier of the feature
geometry.type string Geometry type (typically “Point” for POIs)
geometry.coordinates array [longitude, latitude] coordinates
properties.pk number Primary key identifier
properties.ref string Custom reference identifier (if assigned)
properties.name string Display name of the POI
properties.level integer Floor level where the feature is located
properties.building_id string Building identifier
properties.venue_id string Parent venue identifier
properties.category string Main category classification
properties.subcategory string Specific subcategory
properties.description string Detailed description text
properties.tags object Additional key-value metadata

Status Codes

  • OK: Request successful, feature returned
  • NOT_FOUND: No feature found with the specified identifier
  • INVALID_REQUEST: Missing or invalid parameters
  • REQUEST_DENIED: Invalid API key or unauthorized access
  • OVER_QUERY_LIMIT: Rate limit exceeded

Implementation Notes

Prefer ref identifiers over numeric pk or id values when you control the calling code — refs are stable across venue data updates, whereas internal IDs can change if a POI is recreated. Feature details change rarely, so caching responses for the duration of a session is safe and reduces latency for repeated lookups. Always read the level property from the response before calling indoorRenderer.setFloor(), since a deep link or external reference may point to a floor the map isn’t currently showing.

Usage with Map JS API

javascript
        // Using Indoor Service to get feature details and highlight on map
const indoorService = new window.woosmap.map.IndoorService();
const indoorRenderer = new woosmap.map.IndoorRenderer({
  venue: "gdn_doc",
  centerMap: true
});
indoorRenderer.setMap(map);

indoorService.feature(
  "gdn_doc",   // venueId
  614309,      // featureId (integer)
  (feature) => {
    // Switch to the correct floor, then highlight the POI
    indoorRenderer.setFloor(feature.properties.level);
    indoorRenderer.highlightFeature(feature.id.toString(), false);
  }
);

    
Was this helpful?