post
/api/v2/poi/analyticsPython SDK method:
client.poi.analytics(params).run()Start POI analytics job
Creates a job to generate a POI analytics analysis. POI provides detailed analytics for points of interest including visit frequency, dwell time distributions, vehicle type breakdowns, and time-of-day patterns. Set generateTimeSeries to true to produce time-series breakdowns.
Altitude Help Center — POI Location Specific Insights APIRequest Body
POI analysis parameters.
application/json: object
| Name | Type | Input Shape | Values | Description | Value Required |
|---|---|---|---|---|---|
aggregationUnits | array<string> | - | hour, dayofweek, week, month, daytype, daytypehour, hourofday, day | Time-series dimensions to generate when generateTimeSeries is true. Valid values: hour, dayofweek, week, month. An empty array produces no time-series buckets. | N |
dateFrom | string | - | - | First date of the analysis range, formatted as yyyy-mm-dd. | Y |
dateTo | string | - | - | Last date of the analysis range (inclusive), formatted as yyyy-mm-dd. | Y |
fleetSizeBins | array<integer> | - | - | Upper bounds (inclusive) of fleet size histogram bins. Example: [5, 10, 20] creates bins [1,5], [6,10], [11,20], [21,+inf]. | N |
generateTimeSeries | boolean | - | - | When true, a time-series breakdown child analysis is generated for each aggregation unit. | Y |
isMetric | boolean | - | false | POI Analytics currently supports imperial units only. Set this to false. | Y |
locationIds | array<string> | - | - | List of location ids returned from the locations endpoint | Y |
naicsLevel2 | array<integer> | - | - | NAICS Level-2 industry codes to include. An empty array includes all licensed industries. | N |
radius | number | - | - | Capture radius around each POI in miles. POI Analytics currently supports imperial units only. | Y |
vehicleClassIds | array<string> | - | - | Vehicle class filter IDs from GET /api/v2/filters/vehicle-classes. IDs must use the scheme_vehicleClassIndex_categoryIndex format and share one scheme; IDs that do not name a known vehicle class are rejected. An empty array includes all vehicle classes. | N |
vehicleClassSchemeId | integer | - | 1, 2, 3, 4, 5 | Vehicle classification scheme, from 1 through 5. Defaults to 2 (FHWA/GVWR) when omitted. | N |
vehicleClasses | array<object> | vehicleType: string (values: Truck, Passenger, MPV, Bus, Limo, Other, n/a); weightClass: string (values: *, Class 1, Class 2, Class 3, Class 4, Class 5, Class 6, Class 7, Class 8, Class A, Class B, Class C, Class D, Class E, Class F, Class G, Class H) | - | Vehicle class filters. Use an empty array to include all vehicle classes. | N |
vocations | array<integer> | - | 1, 2, 3, 4, 5 | Vocation IDs from GET /api/v2/filters/vocations. An empty array includes all vocations. | N |
Examples
POI analytics from discovered locations
Use the numeric id returned by the preceding POI Locations request.
{
"aggregationUnits": [
"month",
"dayofweek"
],
"dateFrom": "2026-01-01",
"dateTo": "2026-01-31",
"generateTimeSeries": false,
"isMetric": false,
"locationIds": [
"-1003048895383462315"
],
"naicsLevel2": [
445,
447
],
"radius": 25
}Success Responses
202 response: object
Job accepted and queued for processing. Poll the location header URL to check status.
| Name | Type | Description |
|---|---|---|
error | object | Details about why the job failed (RFC 7807 format), or null if it succeeded. |
id | string | Unique job identifier. |
links | object | Navigation URLs for polling and result retrieval. |
status | string | Current job lifecycle state: PENDING, QUEUED, RUNNING, DONE, FAILED, CANCELED, or NOT_FOUND. |
Response Errors
| HTTP Status Code | Reason |
|---|---|
| 400 | The request body or parameters are invalid. |
| 401 | Authentication is required or the provided credentials are invalid. |
| 403 | The authenticated user lacks permission to perform this operation. |
| 409 | The operation conflicts with the current state of the resource. |
| 422 | The request is syntactically valid but semantically cannot be processed. |
| 429 | The request rate limit has been exceeded. |
| 500 | An unexpected server error occurred. |