Analytics

Overview API

POST: Overview Data for Target Areas for Brochure View

Description

This task retreives overview Data for Target Areas for Brochure View

Table 1. Parameter Details

JSON body parameter

Description

Allowable values/formats

type

The type of data requested
  • deviceCount
  • deviceDwell
  • grossShopping
  • deviceCrossover
  • connectedDetected
  • dwellBreakdown

period

The period of interest, either specified as a date range, or one of the predefined names
  • yyyy-mm-dd
  • yyyy-mm-dd;yyyy-mm-dd
  • today
  • yesterday
  • this week
  • last week
  • last 2 weeks
  • this month
  • last month
  • last 3 months
  • this year
  • last year
  • forever

timeRange

The time window of interest on each day
  • HH:mm-HH:mm

areas

The list of areas of interest. If none are given, all are considered A comma-separated list of area ids, or heterarchy levels

durationCategories

Filter devices by dwell times for which device visits specified areas. If a device's dwell time falls outside of the range, it is filtered out and not considered a visit. Time (in minutes) in the form nn-mm where nn is the lower limit and mm the upper limit. The maximum upper limit is 1440 minutes; which is 24 hours, or a full day. Accepted Values:
  • 0-240

  • 0-480

  • 0-1440

  • 5-240

  • 5-480

  • 5-1440

  • 10-240

  • 10-480

  • 10-1440

  • 15-240

  • 15-480

  • 15-1440

  • 30-240

  • 30-480

  • 30-1440

  • 45-240

  • 45-480

  • 45-1440

  • 60-240

  • 60-480

  • 60-1440

includeStationary

Whether to include stationary devices (default=false)
  • true

  • false

entirePeriod

Whether to include device visits that occur any time during the entire period or only within a single day (default=false).

Applicable only to crossover; ignored for the other metrics.

  • true

  • false

connectionState

Whether to restrict to either connected or detected devices (default=all).

For Connected/Detected metric, this setting is ignored, and "all" is presumed

  • connected
  • detected
  • all

percentageOf

If set, does not report absolute numbers, but relative percentage. Ignored for Crossover report Heterarchy level

dwellLimits

The dwell time limits that specifies how dwellers should be grouped together. Values are comma seperated as key:value pairs. Key is the series name and value is the upper dwell time limit of the series.

For example, Light:5,Medium:20,Heavy:100 would mean that you consider devices that dwell for less than 5 minutes to be Light; from 5 minutes to 20 minutes to be Medium; and from 20 minutes to 100 to be Heavy. If you want to consider all dwells, pass in -1 as the value.

  • default
  • minute

  • Light:<limit>,Medium:<limit>,Heavy:<limit>

  • comma separated limit label:limit value

HTTP Method

POST

Resource URI

/api/analytics/v1/overview

Requires Basic Auth

N

Parameters

Table 2. Parameter Details

Name

Required

Default

Type

Location

Description

body

Y

JSON array

body

JSON array containing parameters

Content Type

application/json

Sample Input (JSON)

{
	"period": "today",
	"timeRange": "00:00-23:59",
	"areas": "52",
	"type": "deviceCount"
}

Sample Output (JSON)

{
  "startTime": "00:00",
  "previousEndDate": null,
  "startDate": "2017-03-16",
  "title": "Visitors",
  "executionTime": 32,
  "value": {
    "primary": {
      "title": "Total Visitors",
      "value": 0,
      "peakValue": 0,
      "breakdown": [
        {
          "title": "Repeat Visitors",
          "value": 0
        },
        {
          "title": "New Visitors",
          "value": 0
        }
      ]
    },
    "average": {
      "title": "Total Visitors",
      "value": 0,
      "peakValue": 0,
      "breakdown": [
        {
          "title": "Repeat Visitors",
          "value": 0
        },
        {
          "title": "New Visitors",
          "value": 0
        }
      ]
    },
    "previousTimeRange": {
      "title": "Total Visitors",
      "value": 0,
      "peakValue": 0,
      "breakdown": [
        {
          "title": "Repeat Visitors",
          "value": 0
        },
        {
          "title": "New Visitors",
          "value": 0
        }
      ]
    }
  },
  "areas": [
    {
      "id": 52,
      "name": "f0:25:72:3c:f8:10"
    }
  ],
  "previousStartDate": "2017-03-15",
  "endDate": null,
  "endTime": "23:59"
}

Path API

POST: Paths for a Given Period and Areas

Description

The only parameter (body) is a JSON array containing the parameters. The parameters are described below:

Table 3. Parameter Details

JSON parameter

Description

Allowable values/formats

period

The period of interest, either specified as a date range, or one of the predefined names
  • yyyy-mm-dd

  • yyyy-mm-dd;yyyy-mm-dd

  • today

  • yesterday

  • this week

  • last week

  • last 2 weeks

  • this month

  • last month

  • last 3 months

  • this year

  • last year

  • forever

timeRange

The time window of interest on each day.
  • HH:mm-HH:mm

targetArea

The ID of the target area for the paths. The ID of the target area for the paths.

allAreas

The list of areas of interest. A comma-separated list of area IDs
<areaId-1>,<areaId-2>,<areaId-3>

granularity

The desired geographical granularity. This will replace the areas listed in 'allAreas' with their progeny on the appropriate level. Heterarchy level

durationCategories

Filter devices by dwell times for which device visits specified areas. If a device's dwell time falls outside of the range, it is filtered out and not considered a visit. Time (in minutes) in the form nn-mm where nn is the lower limit and mm the upper limit. The maximum upper limit is 1440 minutes; which is 24 hours, or a full day. Accepted Values:
  • 0-240

  • 0-480

  • 0-1440

  • 5-240

  • 5-480

  • 5-1440

  • 10-240

  • 10-480

  • 10-1440

  • 15-240

  • 15-480

  • 15-1440

  • 30-240

  • 30-480

  • 30-1440

  • 45-240

  • 45-480

  • 45-1440

  • 60-240

  • 60-480

  • 60-1440

HTTP Method

POST

Resource URI

/api/analytics/v1/path

Requires Basic Auth

N

Parameters

Table 4. Parameter Details

Name

Required

Default

Type

Location

Description

body

Y

JSON array

body

JSON array containing parameters.

Content Type

application/json

Sample Input (JSON)

 {
                "period": "today",
                "timeRange": "00:00-23:59",
                "granularity": "Building",
                "allAreas": "52,75,80"
}
 

Sample Output (JSON)

/* Path Output */
{
    "startTime": "00:00",
    "startDate": "2017-03-07",
    "results": [
        {
            "id": 75,
            "total": 0,
            "medianTransitionTime": 0,
            "ancestry": [
                {
                    "level": "Campus",
                    "name": "TagTest_Campus_1"
                }
            ],
            "area": "TagTest_Building_1",
            "direction": -1,
            "value": 0,
            "averageTransitionTime": 0
        },
        {
            "id": 80,
            "total": 0,
            "medianTransitionTime": 0,
            "ancestry": [
                {
                    "level": "Campus",
                    "name": "TagTest_Campus_1"
                }
            ],
            "area": "TagTest_Building_2",
            "direction": -1,
            "value": 0,
            "averageTransitionTime": 0
        },
        {
            "id": 75,
            "total": 0,
            "medianTransitionTime": 0,
            "ancestry": [
                {
                    "level": "Campus",
                    "name": "TagTest_Campus_1"
                }
            ],
            "area": "TagTest_Building_1",
            "direction": 1,
            "value": 0,
            "averageTransitionTime": 0
        },
        {
            "id": 80,
            "total": 0,
            "medianTransitionTime": 0,
            "ancestry": [
                {
                    "level": "Campus",
                    "name": "TagTest_Campus_1"
                }
            ],
            "area": "TagTest_Building_2",
            "direction": 1,
            "value": 0,
            "averageTransitionTime": 0
        }
    ],
    "executionTime": 88,
    "requestTruncated": false,
    "target": {
        "ancestry": [
            {
                "level": "Campus",
                "name": "campus"
            }
        ],
        "total": 0,
        "id": 52,
        "area": "Building_0",
        "pathsEnded": 0,
        "totalVisits": 0,
        "pathsStarted": 0,
        "avgDwellPerDevice": 0,
        "avgDwellPerVisit": 0,
        "totalDevices": 0
    },
    "insights": {},
    "endDate": "2017-03-07",
    "endTime": "23:59",
    "dataFreshness": {
        "dayOfYear": 66,
        "dayOfMonth": 7,
        "dayOfWeek": 2,
        "era": 1,
        "year": 2017,
        "minuteOfDay": 1277,
        "hourOfDay": 21,
        "weekyear": 2017,
        "monthOfYear": 3,
        "yearOfEra": 2017,
        "yearOfCentury": 17,
        "centuryOfEra": 20,
        "millisOfSecond": 782,
        "millisOfDay": 76673782,
        "secondOfMinute": 53,
        "secondOfDay": 76673,
        "minuteOfHour": 17,
        "weekOfWeekyear": 10,
        "millis": 1488921473782,
        "zone": {
            "fixed": true,
            "id": "Etc/UTC"
        },
        "chronology": {
            "zone": {
                "fixed": true,
                "id": "Etc/UTC"
            }
        },
        "afterNow": false,
        "beforeNow": false,
        "equalNow": true
    }
}

Device Count API

POST: Device Count for a Given Period and Areas

Description

This API retreives the device count for a given period and areas.

The only parameter (body) is a JSON array containing the parameters. The parameters are described below

Table 5. Parameter Details

JSON array parameter

Description

Allowable values/formats

granularity

The desired granularity. One can limit to top n results (i.e. the n values with highest count) by adding "[n]", or the n bottom results by adding "[-n]". If granularity null is specified, all heterarchy types covered by the areas are returned.
  • hourly

  • daily

  • weekly

  • monthly

  • yearly

  • tag

  • tag-name

  • heterarchy level

  • null

period

The period of interest, either specified as a date range, or one of the predefined names
  • yyyy-mm-dd

  • yyyy-mm-dd;yyyy-mm-dd

  • today

  • yesterday

  • this week

  • last week

  • last 2 weeks

  • this month
  • last month
  • last 3 months
  • this year
  • last year
  • forever

timeRange

The time window of interest on each day.
  • HH:mm-HH:mm

aggregate

Whether to aggregate the dwell time by granularity; e.g. showing a total for each day of the week, instead of individual dates
  • none
  • sum
  • avg

areas

The list of areas of interest. If none are given, all are considered A comma-separated list of area ids, or heterarchy levels

durationCategories

Filter devices by dwell times for which device visits specified areas. If a device's dwell time falls outside of the range, it is filtered out and not considered a visit. Time (in minutes) in the form nn-mm where nn is the lower limit and mm the upper limit. The maximum upper limit is 1440 minutes; which is 24 hours, or a full day. Accepted Values:
  • 0-240

  • 0-480

  • 0-1440

  • 5-240

  • 5-480

  • 5-1440

  • 10-240

  • 10-480

  • 10-1440

  • 15-240

  • 15-480

  • 15-1440

  • 30-240

  • 30-480

  • 30-1440

  • 45-240

  • 45-480

  • 45-1440

  • 60-240

  • 60-480

  • 60-1440

includeStationary

Whether to include stationary devices (default=false)
  • true

  • false

connectionState

Whether to restrict to either connected or detected devices (default=all)
  • connected
  • detected
  • all

percentageOf

If set, does not report absolute numbers, but relative percentage Heterarchy level

areaFilter

If set, restricts the results to areas matching the filter. Use 'descendantOf' to restrict the area selection. This option is used for drill down reports. Use 'subsetOf' to restrict the granularity. This option is used with tag granularity.

For example: descendantOf: Campus C1 has Building B1 which zone Z1 and Z2 Campus C2 has Building B2 which zone Z3 query area=Z1,Z2,Z3 and granularity=Building and areaFilter=descendantOf:C1 will return only Building B1

For example: subsetOf: Tag T1,T2 assigned to F1, T2,T3 to F2, T3,T4 to F3 query area=F1,F2,F3 and granularity=tag and areaFilter=subsetOf:T1,T2 will return only T1,T2.

  • descendantOf
  • subsetOf:comma separated ids

expandAll

Include all of the elements descendants in the result
  • true

  • false

HTTP Method

POST

Resource URI

/api/analytics/v1/deviceCount

Requires Basic Auth

N

Parameters

Table 6. Parameter Details

Name

Required

Default

Type

Location

Description

body

Y

JSON array

body

JSON array containing parameters

Content Type

application/json

Sample Input (JSON)

{
	"period": "today",
	"timeRange": "00:00-23:59",
	"granularity": "Building",
	"areas": "52,75,80"
}

Sample Output (JSON)

{
  "startTime": "00:00",
  "startDate": "2017-03-16",
  "connectionState": "all",
  "results": [
    {
      "id": -1,
      "ancestry": [],
      "series": [],
      "hasChildren": false,
      "level": "SUPERZONE",
      "area": "Unknown area",
      "data": []
    }
  ],
  "interval": null,
  "executionTime": 23,
  "minValue": 2147483647,
  "endDate": "2017-03-16",
  "endTime": "23:59",
  "dataFreshness": "2017-03-16T03:00:28.833-07:00",
  "maxValue": 0
}

Analytics Summary Metrics API

GET: All summary KPI

Description

This API retrieves summary of all KPI.

HTTP Method

GET

Resource URI

/api/analytics/v1/summary

Requires Basic Auth

N

Parameters

None.

Sample Output (JSON)

{
    "Top Building dwell": {
        "title": "Top Building dwell",
        "value": {
            "primary": "Nortech-1 (5572.52 min)",
            "secondary": [
                "SJC23 (0.00 min)",
                "SJC24 (0.00 min)",
                "Shell- CBuilding (0.00 min)"
            ],
            "supplementary": "SJC23 (0.00 min)<br/>SJC24 (0.00 min)<br/>Shell- CBuilding (0.00 min)<br/>"
        }
    },
    "Notifications Received": {
        "title": "Notifications Received Rate (5 min avg)",
        "value": {
            "primary": "2.04 notifications/s",
            "secondary": [
                "1 min avg: 2.07",
                "15 min avg: 1.84",
                "Avg since boot: 4.23",
                "Total number of events: 3774166"
            ],
            "supplementary": "1 min avg: 2.07</br>15 min avg: 1.84</br>Avg since boot: 4.23</br>Total number of events: 3774166"
        }
    },
    "RSSI experience": {
        "title": "RSSI experience",
        "value": {
            "primary": "No devices detected",
            "secondary": [
                "No devices detected"
            ],
            "supplementary": "No devices detected"
        }
    },
    "Uptime": {
        "title": "Uptime",
        "value": {
            "primary": "10 days, 07:35",
            "secondary": [
                "Processors: 20",
                "Max mem: 4528 MiB",
                "Memory:  2849/4528 MiB",
                "Threads: 169"
            ],
            "supplementary": "Processors: 20<br/>Max mem: 4528 MiB<br/>Memory:  2849/4528 MiB<br/>Threads: 169"
        }
    },
    "Connected": {
        "title": "Connected",
        "value": {
            "primary": "1916.33%",
            "secondary": [
                "Total: 392",
                "Detected: -7120 (-1816.33%)",
                "Connected: 7512 (1916.33%)"
            ],
            "supplementary": "Total: 392</br>Detected: -7120 (-1816.33%)</br>Connected: 7512 (1916.33%)</br>"
        }
    },
    "Aggregation performance": {
        "title": "Aggregation performance",
        "value": {
            "primary": "534930964.29 / 0",
            "secondary": [
                "API misses (rate): 166(0) / 0(0) <br/>",
                "API misses as % of total API calls: 9.22/�<br/>",
                "Background updates (rate): 0(0) / 0(0) <br/>"
            ],
            "supplementary": "API misses (rate): 166(0) / 0(0) <br/><br/>API misses as % of total API calls: 9.22/�<br/><br/>Background updates (rate): 0(0) / 0(0) <br/>"
        },
        "recordRefreshCounts": {
            "pathRecordsRefreshed": 0,
            "repeatRecordsRefreshed": 0,
            "derivedRecordsRefreshed": 0,
            "hourVisitsUpdated": 121942,
            "areaVisitsUpdated": 119586,
            "crossoverRecordsRefreshed": 0
        }
    },
    "Top Campus count": {
        "title": "Top Campus count",
        "value": {
            "primary": "Nortech Campus (356)",
            "secondary": [
                "Shell (0)",
                "System Campus (0)"
            ],
            "supplementary": "Shell (0)<br/>System Campus (0)<br/>"
        }
    },
    "Database I/O": {
        "title": "Database I/O Rate (5 min avg)",
        "value": {
            "primary": "0.57 operations/s",
            "secondary": [
                "1 min avg: 0.07",
                "15 min avg: 0.53",
                "Avg since boot: 0.46",
                "Total number of events: 409932"
            ],
            "supplementary": "1 min avg: 0.07</br>15 min avg: 0.53</br>Avg since boot: 0.46</br>Total number of events: 409932"
        }
    },
    "Top Floor dwell": {
        "title": "Top Floor dwell",
        "value": {
            "primary": "1st Floor (5572.53 min)",
            "secondary": [
                "1st floor (CCW remodel) (0.00 min)",
                "2nd floor (Area Addition) (0.00 min)",
                "2nd floor (CCW remodel) (0.00 min)"
            ],
            "supplementary": "1st floor (CCW remodel) (0.00 min)<br/>2nd floor (Area Addition) (0.00 min)<br/>2nd floor (CCW remodel) (0.00 min)<br/>"
        }
    },
    "Active devices": {
        "title": "Active devices",
        "value": {
            "primary": 356,
            "secondary": [
                "Most recent detection: 17s ago"
            ],
            "supplementary": "Most recent detection: 17s ago"
        }
    },
    "Top Campus dwell": {
        "title": "Top Campus dwell",
        "value": {
            "primary": "Nortech Campus (5572.53 min)",
            "secondary": [
                "Shell (0.00 min)",
                "System Campus (0.00 min)"
            ],
            "supplementary": "Shell (0.00 min)<br/>System Campus (0.00 min)<br/>"
        }
    },
    "Analysis API calls": {
        "title": "Analysis API calls",
        "value": {
            "primary": "Meter not active yet",
            "secondary": [
                "Please wait while data is being collected."
            ],
            "supplementary": "Please wait while data is being collected."
        }
    },
    "Zone API Calls": {
        "title": "Zone API Calls",
        "value": {
            "primary": "Meter not active yet",
            "secondary": [
                "Please wait while data is being collected."
            ],
            "supplementary": "Please wait while data is being collected."
        }
    },
    "Top Zone dwell": {
        "title": "Top Zone dwell",
        "value": {
            "primary": "CMX Bar (5959.07 min)",
            "secondary": [
                "School (5763.90 min)",
                "Tm (4175.67 min)",
                "CMX Clinic (1783.57 min)"
            ],
            "supplementary": "School (5763.90 min)<br/>Tm (4175.67 min)<br/>CMX Clinic (1783.57 min)<br/>"
        }
    },
    "Top Manufacturer": {
        "title": "Top Manufacturer",
        "value": {
            "primary": "Cisco Systems, Inc (310)",
            "secondary": [
                "Aeroscout Ltd. (78)",
                "G2 Microsystems (44)",
                "Hon Hai Precision Ind. Co.,Ltd. (21)"
            ],
            "supplementary": "Aeroscout Ltd. (78)</br>G2 Microsystems (44)</br>Hon Hai Precision Ind. Co.,Ltd. (21)</br>"
        }
    },
    "Top Zone count": {
        "title": "Top Zone count",
        "value": {
            "primary": "CMX Clinic (106)",
            "secondary": [
                "Tm (86)",
                "CMX Bar (44)",
                "School (20)"
            ],
            "supplementary": "Tm (86)<br/>CMX Bar (44)<br/>School (20)<br/>"
        }
    },
    "Top Building count": {
        "title": "Top Building count",
        "value": {
            "primary": "Nortech-1 (356)",
            "secondary": [
                "SJC23 (0)",
                "SJC24 (0)",
                "Shell- CBuilding (0)"
            ],
            "supplementary": "SJC23 (0)<br/>SJC24 (0)<br/>Shell- CBuilding (0)<br/>"
        }
    },
    "Overall Analytics API Calls": {
        "title": "Overall Analytics API Calls Rate (5 min avg)",
        "value": {
            "primary": "0.00 calls/s",
            "secondary": [
                "1 min avg: 0.00",
                "15 min avg: 0.00",
                "Avg since boot: 0.00",
                "Total number of events: 0"
            ],
            "supplementary": "1 min avg: 0.00</br>15 min avg: 0.00</br>Avg since boot: 0.00</br>Total number of events: 0"
        }
    },
    "Notification processing time": {
        "title": "Notification processing time (avg duration)",
        "value": {
            "primary": "2.13 ms",
            "secondary": [
                "Min: 0 ms",
                "Max: 9 ms",
                "StDev: 0.94"
            ],
            "supplementary": "Min: 0 ms</br>Max: 9 ms</br>StDev: 0.94"
        }
    },
    "Location API Calls": {
        "title": "Location API Calls",
        "value": {
            "primary": "Meter not active yet",
            "secondary": [
                "Please wait while data is being collected."
            ],
            "supplementary": "Please wait while data is being collected."
        }
    },
    "Paths API Calls": {
        "title": "Paths API Calls",
        "value": {
            "primary": "Meter not active yet",
            "secondary": [
                "Please wait while data is being collected."
            ],
            "supplementary": "Please wait while data is being collected."
        }
    },
    "Age of updated aggregation records": {
        "title": "Age of updated aggregation records",
        "value": {
            "primary": "Meter not active yet",
            "secondary": [
                "Please wait while data is being collected."
            ],
            "supplementary": "Please wait while data is being collected."
        }
    },
    "Top Floor count": {
        "title": "Top Floor count",
        "value": {
            "primary": "1st Floor (356)",
            "secondary": [
                "1st floor (CCW remodel) (0)",
                "2nd floor (Area Addition) (0)",
                "2nd floor (CCW remodel) (0)"
            ],
            "supplementary": "1st floor (CCW remodel) (0)<br/>2nd floor (Area Addition) (0)<br/>2nd floor (CCW remodel) (0)<br/>"
        }
    },
    "Heterarchy": {
        "title": "Heterarchy",
        "value": {
            "primary": "199 active elements",
            "secondary": [
                "Elements: 199/54 [act/inact]",
                "APs: 158/39",
                "POIs: 0/0",
                "PATHs: 0/0",
                "Floors: 8/1",
                "Tags: 19/0",
                "Userlevels: 4/0",
                "Zones: 5/12"
            ],
            "supplementary": "Elements: 199/54 [act/inact]<br/>APs: 158/39<br/>POIs: 0/0<br/>PATHs: 0/0<br/>Floors: 8/1<br/>Tags: 19/0<br/>Userlevels: 4/0<br/>Zones: 5/12"
        }
    }
}
}

GET: Specific set of Summary KPIs or a list of available ones

Description

This API retrieves a specific set of summary KPIs or a list of available ones.

HTTP Method

GET

Resource URI

/api/analytics/v1/summary/:summaryItem

Requires Basic Auth

N

Parameters

Table 7. Parameter Details

Name

Required

Default

Type

Location

Description

summaryItem

Y

String

pathReplace

A comma-separated list of summary KPI to return, or 'availableMetrics' to see the list of metrics available. Use the title parameter.

Content Type

application/json

Sample Output (JSON)

{
    "Top Building dwell": {
        "title": "Top Building dwell",
        "value": {
            "secondary": [],
            "supplementary": "",
            "primary": "Nortech Building (0.00 min)"
        }
    }
}

Network State API

POST: Breakdown of Connected and Detected Devices for a Given Period and Areas

Description

This API gives a breakdown of connected and detected devices for a given period and areas. The only parameter (body) is a JSON array containing the parameters. The parameters are described below

Table 8. Parameter Details

JSON array parameter

Description

Allowable values/formats

granularity

The desired granularity. One can limit to top n results (i.e. the n values with highest count) by adding "[n]", or the n bottom results by adding "[-n"]. If granularity null is specified, all heterarchy types covered by the areas are returned.
  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • tag
  • tag-name
  • heterarchy level
  • null

period

The period of interest, either specified as a date range, or one of the predefined names
  • yyyy-mm-dd
  • yyyy-mm-dd;yyyy-mm-dd
  • today
  • yesterday
  • this week
  • last week
  • last 2 weeks
  • this month
  • last month
  • last 3 months
  • this year
  • last year
  • forever

timeRange

The time window of interest on each day.
  • HH:mm-HH:mm

aggregate

Whether to aggregate the dwell time by granularity; e.g. showing a total for each day of the week, instead of individual dates
  • none
  • sum
  • avg

areas

The list of areas of interest. If none are given, all are considered A comma-separated list of area ids, or heterarchy levels
<areaId>
<areaId-1>,<areaId-2>,<areaId-3>

durationCategories

Filter devices by dwell times for which device visits specified areas. If a device's dwell time falls outside of the range, it is filtered out and not considered a visit. Time (in minutes) in the form nn-mm where nn is the lower limit and mm the upper limit. The maximum upper limit is 1440 minutes; which is 24 hours, or a full day. Accepted Values:
  • 0-240

  • 0-480

  • 0-1440

  • 5-240

  • 5-480

  • 5-1440

  • 10-240

  • 10-480

  • 10-1440

  • 15-240

  • 15-480

  • 15-1440

  • 30-240

  • 30-480

  • 30-1440

  • 45-240

  • 45-480

  • 45-1440

  • 60-240

  • 60-480

  • 60-1440

includeStationary

Whether to include stationary devices (default=false)
  • true

  • false

percentageOf

If set, does not report absolute numbers, but relative percentage Heterarchy level

areaFilter

If set, restricts the results to areas matching the filter. Use 'descendantOf' to restrict the area selection. This option is used for drill down reports. Use 'subsetOf' to restrict the granularity. This option is used with tag granularity.

For example: descendantOf: Campus C1 has Building B1 which zone Z1 and Z2 Campus C2 has Building B2 which zone Z3 query area=Z1,Z2,Z3 and granularity=Building and areaFilter=descendantOf:C1 will return only Building B1

For example: subsetOf: Tag T1,T2 assigned to F1, T2,T3 to F2, T3,T4 to F3 query area=F1,F2,F3 and granularity=tag and areaFilter=subsetOf:T1,T2 will return only T1,T2.

  • descendantOf
  • subsetOf:comma separated ids

expandAll

Include all of the elements descendants in the result
  • true

  • false

HTTP Method

POST

Resource URI

/api/analytics/v1/connectedDetected

Requires Basic Auth

N

Parameters

Table 9. Parameter Details

Name

Required

Default

Type

Location

Description

body

Y

JSON array

body

JSON array containing parameters.

Content Type

application/json

Sample Input (JSON)

{
	"period": "today",
	"timeRange": "00:00-23:59",
	"granularity": "hourly",
	"areas": "5786"
}

Sample Output (JSON)

{
  "startTime": "00:00",
  "startDate": "2017-03-16",
  "results": [
    {
      "id": 5786,
      "ancestry": [
        {
          "level": "Campus",
          "name": "Nortech Campus"
        }
      ],
      "startDate": "2017-03-16",
      "series": [
        "datetime"
      ],
      "hasChildren": true,
      "area": "Nortech-1",
      "data": [
        {
          "dwell": null,
          "values": {
            "connected": 0,
            "detected": 0
          },
          "name": null
        },
        {
          "dwell": null,
          "values": {
            "connected": 0,
            "detected": 0
          },
          "name": null
        },
        {
          "dwell": null,
          "values": {
            "connected": 0,
            "detected": 0
          },
          "name": null
        },
        {
          "dwell": null,
          "values": {
            "connected": 0,
            "detected": 0
          },
          "name": null,
          "incomplete": true
        }
      ]
    }
  ],
  "interval": "hourly",
  "executionTime": 18,
  "insights": {
    "summary": {},
    "connected": {
      "ancestry": [
        {
          "level": "Campus",
          "name": "Nortech Campus"
        }
      ],
      "id": 5786,
      "index": 0,
      "maxDate": "2017-03-16",
      "name": "Nortech-1",
      "maxTime": "00:00",
      "maxValue": 0
    },
    "detected": {
      "ancestry": [
        {
          "level": "Campus",
          "name": "Nortech Campus"
        }
      ],
      "id": 5786,
      "index": 0,
      "maxDate": "2017-03-16",
      "name": "Nortech-1",
      "maxTime": "00:00",
      "maxValue": 0
    }
  },
  "endDate": "2017-03-16",
  "maxValues": {
    "connected": 0,
    "detected": 0
  },
  "endTime": "23:59",
  "dataFreshness": "2017-03-16T02:53:55.919-07:00",
  "minValues": {
    "connected": 0,
    "detected": 0
  }
}

Now API

GET: Retrieve the count of active clients on a floor or multiple floors right now.

Description

The only parameter (body) is a JSON array containing the parameters.

HTTP Method

GET

Resource URI

/api/analytics/v1/now/clientCount

Requires Basic Auth

N

Parameters

None.

Content Type

application/json

Sample Output (JSON)

{
    "total": {
        "total": 103,
        "totalNumFloors": 8
    },
    "connectionState": "all",
    "failedFloorIds": [],
    "missingFloorIds": [],
    "executionTime": 147,
    "minValue": 0,
    "data": [
        {
            "floorName": "2nd floor (CCW remodel)",
            "floorId": 207,
            "value": 0
        },
        {
            "floorName": "3rd floor (CCW remodel)",
            "floorId": 157,
            "value": 0
        },
        {
            "floorName": "3rd floor (CCW remodel)",
            "floorId": 232,
            "value": 0
        },
        {
            "floorName": "1st floor (CCW remodel)",
            "floorId": 106,
            "value": 0
        },
        {
            "floorName": "1st floor (CCW remodel)",
            "floorId": 184,
            "value": 0
        },
        {
            "floorName": "1st Floor",
            "floorId": 11,
            "value": 103
        },
        {
            "floorName": "2nd floor (CCW remodel)",
            "floorId": 132,
            "value": 0
        },
        {
            "floorName": "2nd floor (Area Addition)",
            "floorId": 185,
            "value": 0
        }
    ],
    "date": "2017-12-17",
    "nonFloorIds": [],
    "maxValue": 103
}

API History

Table 10. API history

Release

Modification

Cisco CMX Release 10.3

This API is introduced.

POST: Retrieve the count of active clients on a floor or multiple floors right now

Description

This API retrieves the count of active clients on a floor or multiple floors right now. The only parameter (body) is a JSON array containing the parameters.

Parameters

Table 11. Parameter Details

JSON array parameter

Description

Allowable values/formats

floors

The list of floors of interest. If none are given, all are considered.

A comma-separated list of floor ids.
<floorId1>,<floorId2>,..

connectionState

Whether to restrict to either connected or detected devices (default = all)

  • connected

  • detected

  • all

HTTP Method

POST

Resource URI

/api/analytics/v1/now/clientCount

Requires Basic Auth

N

Parameters

Table 12. Parameter Details

Name

Required

Default

Type

Location

Description

body

Y

JSON array

body

JSON array containing parameters.

Content Type

application/json

Sample Input


{
	"floors": "17",
	"connectionState": "all"
}

Sample Output

{
  "total": {
    "total": 0,
    "totalNumFloors": 0
  },
  "connectionState": "all",
  "failedFloorIds": [],
  "missingFloorIds": [
    "17"
  ],
  "executionTime": 1,
  "minValue": 2147483647,
  "data": [],
  "date": "2017-03-16",
  "nonFloorIds": [],
  "maxValue": -2147483648
}

API History

Table 13. API history

Release

Modification

Cisco CMX Release 10.3

This API is introduced.

POST: Retrieve the breakdown of connected and detected devices for a floor right now.

Description

This API retrieve the breakdown of connected and detected devices for a floor right now.

HTTP Method

POST

Resource URI

/api/analytics/v1/now/connectedDetected

Requires Basic Auth

N

Parameters

Table 14. Parameter Details

Name

Required

Default

Type

Location

Description

body

Y

JSON array

body

JSON array containing parameters

Content Type

application/json

Sample Input (JSON)

{
	"floors": "17"
}

Sample Output (JSON)

{
  "total": {
    "totalDetected": 0,
    "totalNumFloors": 0,
    "totalAll": 0,
    "totalConnected": 0
  },
  "startTime": "03:22",
  "startDate": "2017-03-16",
  "failedFloorIds": [],
  "missingFloorIds": [
    "17"
  ],
  "results": [],
  "interval": null,
  "executionTime": 2,
  "endDate": "2017-03-16",
  "endTime": "03:22",
  "nonFloorIds": []
}

API History

Table 15. API history

Release

Modification

Cisco CMX Release 10.3

This API is introduced.

GET: Retrieve the breakdown of connected and detected devices for a floor right now

Description

The API retrieves the breakdown of connected and detected devices for a floor right now.

HTTP Method

GET

Resource URI

/api/analytics/v1/now/connectedDetected

Requires Basic Auth

N

Parameters

None.

Content Type

application/json

Sample Output (JSON)

{
    "total": {
        "totalDetected": 98,
        "totalNumAreas": 1,
        "totalAll": 98,
        "totalConnected": 0
    },
    "startDate": "2017-12-17",
    "interval": null,
    "executionTime": 158,
    "endDate": "2017-12-17",
    "endTime": "22:36",
    "startTime": "22:36",
    "invalidLevelIds": [],
    "missingAreaIds": [],
    "results": [
        {
            "ancestry": [],
            "id": 1,
            "series": [
                "dwell"
            ],
            "hasChildren": true,
            "area": "Campus",
            "data": [
                {
                    "dwell": "0-1440",
                    "values": {
                        "connected": 0,
                        "detected": 98,
                        "all": 98
                    },
                    "name": null
                }
            ]
        }
    ],
    "failedAreaIds": [],
    "maxValues": {
        "connected": 0,
        "detected": 98
    },
    "minValues": {
        "connected": 0,
        "detected": 98
    }
}

API History

Table 16. API history

Release

Modification

Cisco CMX Release 10.3

This API is introduced.

GET: Retrieve the count of active clients on a single or on multiple campuses/buildings/floors right now

Description

The only parameter (body) is a JSON array containing the parameters.

HTTP Method

GET

Resource URI

/api/analytics/v1/now/clientCount/areas

Requires Basic Auth

N

Parameters

None.

Content Type

application/json

Sample Output (JSON)

{
    "invalidLevelIds": [],
    "total": {
        "total": 103,
        "totalNumAreas": 1
    },
    "missingAreaIds": [],
    "connectionState": "all",
    "failedAreaIds": [],
    "executionTime": 147,
    "minValue": 103,
    "data": [
        {
            "areaName": "Campus",
            "value": 103,
            "areaId": 1
        }
    ],
    "date": "2017-12-17",
    "maxValue": 103
}

API History

Table 17. API history

Release

Modification

Cisco CMX Release 10.4

This API is introduced.

POST: Retrieve the count of active clients on a single or on multiple campuses/buildings/floors right now

Description

The only parameter (body) is a JSON array containing the parameters.

HTTP Method

POST

Resource URI

/api/analytics/v1/now/clientCount/areas

Requires Basic Auth

N

Parameters

Table 18. Parameter Details

Name

Required

Default

Type

Location

Description

areas

N

string

body

The list of areas of interest. If none are given, If none are given, the root level campus is considered.

connectionState

N

all

string

body

Whether to restrict to either connected or detected devices.

Content Type

application/json

Sample Output (JSON)

{
    "invalidLevelIds": [],
    "total": {
        "total": 104,
        "totalNumAreas": 1
    },
    "missingAreaIds": [],
    "connectionState": "all",
    "failedAreaIds": [],
    "executionTime": 124,
    "minValue": 104,
    "data": [
        {
            "areaName": "Campus",
            "value": 104,
            "areaId": 1
        }
    ],
    "date": "2017-12-17",
    "maxValue": 104
}

API History

Table 19. API history

Release

Modification

Cisco CMX Release 10.4

This API is introduced.

POST: Retrieve the breakdown of connected and detected devices on a single or on multiple campuses/buildings/floors right now

Description

This API retrieves the breakdown of connected and detected devices on a single or on multiple campuses/buildings/floors right now. The only parameter (body) is a JSON array containing the parameters.

HTTP Method

POST

Resource URI

/api/analytics/v1/now/connectedDetected/areas

Requires Basic Auth

N

Parameters

Table 20. Parameter Details

Name

Required

Default

Type

Location

Description

areas

N

string

body

The list of areas of interest. If none are given, the root level campus is considered.

Content Type

application/json

Sample Output (JSON)

{
    "total": {
        "totalDetected": 105,
        "totalNumAreas": 1,
        "totalAll": 105,
        "totalConnected": 0
    },
    "startDate": "2017-12-20",
    "interval": null,
    "executionTime": 160,
    "endDate": "2017-12-20",
    "endTime": "00:08",
    "startTime": "00:08",
    "invalidLevelIds": [],
    "missingAreaIds": [],
    "results": [
        {
            "ancestry": [],
            "id": 1,
            "series": [
                "dwell"
            ],
            "hasChildren": true,
            "area": "Campus",
            "data": [
                {
                    "dwell": "0-1440",
                    "values": {
                        "connected": 0,
                        "detected": 105,
                        "all": 105
                    },
                    "name": null
                }
            ]
        }
    ],
    "failedAreaIds": [],
    "maxValues": {
        "connected": 0,
        "detected": 105
    },
    "minValues": {
        "connected": 0,
        "detected": 105
    }
}

API History

Table 21. API history

Release

Modification

Cisco CMX Release 10.4

This API is introduced.

GET: Retrieve the breakdown of connected and detected devices on a single or on multiple campuses/buildings/floors right now

Description

This API retrieves the breakdown of connected and detected devices on a single or on multiple campuses/buildings/floors right now.

HTTP Method

GET

Resource URI

/api/analytics/v1/now/connectedDetected/areas

Requires Basic Auth

N

Parameters

None.

Content Type

application/json

Sample Output (JSON)

{
    "total": {
        "totalDetected": 97,
        "totalNumAreas": 1,
        "totalAll": 97,
        "totalConnected": 0
    },
    "startDate": "2017-12-20",
    "interval": null,
    "executionTime": 158,
    "endDate": "2017-12-20",
    "endTime": "00:15",
    "startTime": "00:15",
    "invalidLevelIds": [],
    "missingAreaIds": [],
    "results": [
        {
            "ancestry": [],
            "id": 1,
            "series": [
                "dwell"
            ],
            "hasChildren": true,
            "area": "Campus",
            "data": [
                {
                    "dwell": "0-1440",
                    "values": {
                        "connected": 0,
                        "detected": 97,
                        "all": 97
                    },
                    "name": null
                }
            ]
        }
    ],
    "failedAreaIds": [],
    "maxValues": {
        "connected": 0,
        "detected": 97
    },
    "minValues": {
        "connected": 0,
        "detected": 97
    }
}

API History

Table 22. API history

Release

Modification

Cisco CMX Release 10.4

This API is introduced.

Dwell Breakdown API

POST: Breakdown of Dwell Times Spent by Devices for a Given Period and Areas

Description

The only parameter (body) is a JSON array containing the parameters. The parameters are described below:

Table 23. Parameter Details

JSON Array Parameter

Description

Allowable Values/Formats

granularity

The desired granularity.
  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • tag
  • tag-name
  • heterarchy level. One can limit to top "n" results (that is, the "n" values with highest count) by adding "[n]", or the "n" bottom results by adding "[n]"

period

The period of interest, specified as either a date range, or one of the predefined names.
  • yyyy-mm-dd
  • yyyy-mm-dd;yyyy-mm-dd
  • today
  • yesterday
  • this week
  • last week
  • last 2 weeks
  • this month
  • last month
  • last 3 months
  • this year
  • last year
  • forever

timeRange

The time window of interest on each day.
  • HH:mm-HH:mm

aggregate

Aggregate the dwell time by granularity, for example, showing the total dwell time for each day of the week, instead of individual dates.
  • none
  • sum
  • avg

areas

The list of areas of interest. If none are provided, all are considered. A comma-separated list of area IDs, or hierarchy levels.

durationCategories

Filter devices by dwell times for which device visits specified areas. If a device's dwell time falls outside of the range, it is filtered out and not considered a visit. Time (in minutes) in the form nn-mm where nn is the lower limit and mm the upper limit. The maximum upper limit is 1440 minutes; which is 24 hours, or a full day. Accepted Values:
  • 0-240

  • 0-480

  • 0-1440

  • 5-240

  • 5-480

  • 5-1440

  • 10-240

  • 10-480

  • 10-1440

  • 15-240

  • 15-480

  • 15-1440

  • 30-240

  • 30-480

  • 30-1440

  • 45-240

  • 45-480

  • 45-1440

  • 60-240

  • 60-480

  • 60-1440

includeStationary

Whether to include stationary devices (default=false).
  • true

  • false

connectionState

Whether to restrict connection to either connected or detected devices (default=all).
  • connected

  • detected

  • all

percentageOf

If set this parameter, does not report absolute numbers, only relative percentage. Heterarchy level

dwellLimits

The dwell time limit that specifies how dwellers should be grouped together. Pass -1 to catch all. Example: Light: 100, Medium: 200, Heavy:-1.
  • default
  • minute
  • comma separated limit label:limit value

areaFilter

If set this parameter, restricts the results to areas matching the filter. Use descendantOf to restrict the area selection. This option is used for drill-down reports. Use 'subsetOf' to restrict the granularity. This option is used with tag granularity.

For example: descendantOf: Campus C1 has Building B1 which zone Z1 and Z2 Campus C2 has Building B2 which zone Z3 query area=Z1,Z2,Z3 and granularity=Building and areaFilter=descendantOf:C1 will return only Building B1

For example: subsetOf: Tag T1,T2 assigned to F1, T2,T3 to F2, T3,T4 to F3 query area=F1,F2,F3 and granularity=tag and areaFilter=subsetOf:T1,T2 will return only T1,T2.

  • descendantOf
  • subsetOf:comma separated ids

expandAll

Include all the elements descendants in the result.
  • true

  • false

HTTP Method

POST

Resource URI

/api/analytics/v1/dwellBreakdown

Requires Basic Auth

N

Parameters

Table 24. Parameter Details

Name

Required

Default

Type

Location

Description

body

Y

JSON array

body

JSON array containing parameters.

Content Type

application/json

Sample Input (JSON)

{
	"period": "today",
	"timeRange": "00:00-23:59",
	"granularity": "hourly",
	"areas": "52,75"
}

Sample Output (JSON)

{
  "startTime": "00:00",
  "startDate": "2017-03-16",
  "results": [
    {
      "id": 53,
      "ancestry": [
        {
          "level": "Building",
          "name": "REQ"
        },
        {
          "level": "Campus",
          "name": "Richfield"
        }
      ],
      "series": [
        "datetime",
        "dwell"
      ],
      "hasChildren": false,
      "area": "2nd Floor",
      "data": []
    },
    {
      "id": 75,
      "ancestry": [
        {
          "level": "Floor",
          "name": "Site 4"
        },
        {
          "level": "Building",
          "name": "Site 4"
        },
        {
          "level": "Campus",
          "name": "San Jose Outdoor"
        }
      ],
      "series": [
        "datetime",
        "dwell"
      ],
      "hasChildren": false,
      "area": "f4:0f:1b:1a:82:90",
      "data": []
    }
  ],
  "interval": "hourly",
  "executionTime": 0,
  "insights": {
    "summary": {}
  },
  "endDate": "2017-03-16",
  "maxValues": {},
  "endTime": "23:59",
  "dataFreshness": "2017-03-16T02:53:58.054-07:00",
  "minValues": {}
}

Dwelltime API

POST: Dwell Time for a Given Period and Areas

Description

This API retrevies dwell Time for a given period and areas.The only parameter is a JSON array containing the parameters. The parameters are described below

Table 25. Parameter Details

JSON array parameter

Description

Allowable values/formats

granularity

The desired granularity. One can limit to top n results (i.e. the n values with highest count) by adding "[n]", or the n bottom results by adding "[-n"]. If granularity null is specified, all heterarchy types covered by the areas are returned.
  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • tag
  • tag-name
  • heterarchy level
  • null

period

The period of interest, either specified as a date range, or one of the predefined names
  • yyyy-mm-dd
  • yyyy-mm-dd;yyyy-mm-dd
  • today
  • yesterday
  • this week
  • last week
  • last 2 weeks
  • this month
  • last month
  • last 3 months
  • this year
  • last year
  • forever

timeRange

The time window of interest on each day
  • HH:mm-HH:mm

aggregate

Whether to aggregate the dwell time by granularity; e.g. showing a total for each day of the week, instead of individual dates
  • none
  • sum
  • avg

areas

The list of areas of interest. If none are given, all are considered A comma-separated list of area ids, or heterarchy levels
<areaId>
<areaId-1>,<areaId-2>,<areaId-3>

durationCategories

Filter devices by dwell times for which device visits specified areas. If a device's dwell time falls outside of the range, it is filtered out and not considered a visit. Time (in minutes) in the form nn-mm where nn is the lower limit and mm the upper limit. The maximum upper limit is 1440 minutes; which is 24 hours, or a full day. Accepted Values:
  • 0-240

  • 0-480

  • 0-1440

  • 5-240

  • 5-480

  • 5-1440

  • 10-240

  • 10-480

  • 10-1440

  • 15-240

  • 15-480

  • 15-1440

  • 30-240

  • 30-480

  • 30-1440

  • 45-240

  • 45-480

  • 45-1440

  • 60-240

  • 60-480

  • 60-1440

includeStationary

Whether to include stationary devices
  • true

  • false

connectionState

Whether to restrict to either connected or detected devices (default=all)
  • connected
  • detected
  • all

percentageOf

If set, does not report absolute numbers, but relative percentage Heterarchy level

areaFilter

If set, restricts the results to areas matching the filter. Use 'descendantOf' to restrict the area selection. This option is used for drill down reports. Use 'subsetOf' to restrict the granularity. This option is used with tag granularity.

For example: descendantOf: Campus C1 has Building B1 which zone Z1 and Z2 Campus C2 has Building B2 which zone Z3 query area=Z1,Z2,Z3 and granularity=Building and areaFilter=descendantOf:C1 will return only Building B1

For example: subsetOf: Tag T1,T2 assigned to F1, T2,T3 to F2, T3,T4 to F3 query area=F1,F2,F3 and granularity=tag and areaFilter=subsetOf:T1,T2 will return only T1,T2.

  • descendantOf
  • subsetOf:comma separated ids

expandAll

Include all of the elements descendants in the result
  • true

  • false

HTTP Method

POST

Resource URI

/api/analytics/v1/deviceDwell

Requires Basic Auth

N

Parameters

Table 26. Parameter Details

Name

Required

Default

Type

Location

Description

body

Y

JSON array

body

JSON array containing parameters.

Content Type

application/json

Sample Input (JSON)

{
	"period": "today",
	"timeRange": "00:00-23:59",
	"granularity": "hourly",
	"areas": "52,75"
}

Sample Output (JSON)

{
  "startTime": "00:00",
  "startDate": "2017-03-16",
  "connectionState": "all",
  "results": [
    {
      "id": 53,
      "ancestry": [
        {
          "level": "Building",
          "name": "REQ"
        },
        {
          "level": "Campus",
          "name": "Richfield"
        }
      ],
      "series": [
        "datetime"
      ],
      "hasChildren": false,
      "level": "FLOOR",
      "area": "2nd Floor",
      "data": []
    },
    {
      "id": 75,
      "ancestry": [
        {
          "level": "Floor",
          "name": "Site 4"
        },
        {
          "level": "Building",
          "name": "Site 4"
        },
        {
          "level": "Campus",
          "name": "San Jose Outdoor"
        }
      ],
      "series": [
        "datetime"
      ],
      "hasChildren": false,
      "level": "AP",
      "area": "f4:0f:1b:1a:82:90",
      "data": []
    }
  ],
  "interval": "hourly",
  "executionTime": 0,
  "minValue": 2147483647,
  "endDate": "2017-03-16",
  "endTime": "23:59",
  "dataFreshness": "2017-03-16T02:58:04.319-07:00",
  "maxValue": 0
}