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
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.
# 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
GET https://api.woosmap.com/indoor/venues/gdn_doc/pois/614309?key=YOUR_API_KEY
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:
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 returnedNOT_FOUND: No feature found with the specified identifierINVALID_REQUEST: Missing or invalid parametersREQUEST_DENIED: Invalid API key or unauthorized accessOVER_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
// 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);
}
);