Skip to main content

People counter API

AXIS People Counter is an application accessible on your indoor Axis camera that provides simultaneous two-way counting of people, which lets you analyze visitor trends such as peak visitor hours. It is also able to estimate occupancy levels in real-time and provide access to data on the number of people present on either the premises or in a certain area at a certain time. This is helpful when you want to understand occupancy trends that enables you to measure if the occupancy levels exceed a set threshold.

Additionally, the application can detect and notify if more than one person enters within a set time interval or move in the wrong direction. This means that if you set up the application over a one-way entrance you will receive a notification whenever someone tries to leave or if more than one person tries to enter at the same time.

Common examples

Request real time data from the People Counter

Request

http://<servername>/local/tvpc/.api?live-sum.json

Return

{
"serial":"00408CAC512B",
"name":"Exit south",
"timestamp":"20170503112756",
"in":12,
"out":318
}

See Request real-time data for additional information.

List all days of data available on the People Counter

Request

http://<servername>/local/tvpc/.api?list-cnt.json

Return

{
"timestamp" : "20170513132513",
"days":["20170510", "20170511", "20170513"]}
}

See List available data for additional information.

Request historical data for the 12th to the 15th of May 2017

Request

http://<servername>/local/tvpc/.api?export-cnt&date=20170512-20170515

See Download binary data for additional information.

Request all available historical data

Request

http://<servername>/local/tvpc/.api?export-cnt&date=all

See Download binary data for additional information.

Request historical CSV data for the 12th and the 15th of May 2017 with 15-minute resolution

Request

http://<servername>/local/tvpc/.api?export-csv&date=20170512,20170515&res=15m

See Request CSV data for additional information.

Request historical data for all available days, with 24-hour resolution

Request

http://<servername>/local/tvpc/.api?export-csv&date=all&res=24h

See Request CSV data for additional information.

Request historical XML data for the 12th and the 15th of May 2017 with 15-minute resolution

Request

http://<servername>/local/tvpc/.api?export-xml&date=20170512,20170515&res=15m

See Request XML data for additional information.

Request Live view information from the People Counter

Request

http://<servername>/local/tvpc/.api?cntpos.json

Response

{
"width":320,
"height":240,
"left":0,
"right":296,
"top":88,
"bottom":224,
"yfirst":88,
"ylast":152,
"radius":0
}

See Live view information for additional information.

API specification

Request real-time data

Returns JSON file with real time counting data.

  • Format: JSON
  • Method: GET

Request

http://<servername>/local/tvpc/.api?live-sum.json

Return

{
"serial":"<camera-serial>",
"name":"<counter-name>",
"timestamp":"<timestamp>",
"in":<in>,
"out":<out>
}

Return value descriptions

ValueDescription
camera-serialcamera serial number
counter-namename of the counter
timestamptime in the camera in the format YYYYMMDDhhmmss
innumber of people passing in until now today
outnumber of people passing out until now

List available data

Returns a list of days where data exists.

  • Format: JSON
  • Method: GET

Request

http://<servername>/local/tvpc/.api?list-cnt.json

Return

{
"timestamp" : "<timestamp>",
"days":["YYYYMMDD", [..] "YYYYMMDD"]}
}

Return value descriptions

ValueDescription
timestamptime in the camera in the format YYYYMMDDhhmmss
daysan array of days where there exists

Download binary data

This script returns a binary data file for the given date(s), to be used in AXIS Store Data Manager

  • Format: cnt
  • Method: GET

Request

http://<servername>/local/tvpc/.api?export-cnt&date=<date>

Request parameter descriptions

ParameterDescription
datea date of the form YYYYMMDD
a date interval of the form YYYYMMDD-YYYYMMDD
comma separated dates of the form YYYYMMDD,[..],YYYYMMDD
all for all available data

Return

A binary data file for the given date(s).

Request CSV data

Returns historical data in CSV format

  • Format: CSV
  • Method: GET

Request

http://<servername>/local/tvpc/.api?export-csv[&date=<date>][&res=<res>]

Request parameter descriptions

ParameterDescription
datea date of the form YYYYMMDD
a date interval of the form YYYYMMDD-YYYYMMDD
comma separated dates of the form YYYYMMDD,[..],YYYYMMDD
all (default) for all available data
res15m (default) for data in 15 minute bins
1h for data in 1 hour bins
24h for data in 1 day bins

Return

This script returns data in plain text, comma-separated values. The first line contains a description of each element, and the following lines contain the corresponding data for the chosen time interval and resolution.

Request JSON data

Returns historical data in JSON format

  • Format: JSON
  • Method: GET

Request

http://<servername>/local/tvpc/.api?export-json[&date=<date>][&res=<res>]

Request parameter descriptions

ParameterDescription
datea date of the form YYYYMMDD
a date interval of the form YYYYMMDD-YYYYMMDD
comma separated dates of the form YYYYMMDD,[..],YYYYMMDD
all (default) for all available data
res15m (default) for data in 15 minute bins
1h for data in 1 hour bins
24h for data in 1 day bins

Return

This script returns data in JSON format.

Request XML data

Returns historical data in XML format

  • Format: XML
  • Method: GET

Request

http://<servername>/local/tvpc/.api?export-xml[&date=<date>][&res=<res>]

Request parameter descriptions

ParameterDescription
datea date of the form YYYYMMDD
a date interval of the form YYYYMMDD-YYYYMMDD
comma separated dates of the form YYYYMMDD,[..],YYYYMMDD
all (default) for all available data
res15m (default) for data in 15 minute bins
1h for data in 1 hour bins
24h for data in 1 day bins

Return

This script returns data in XML format. The DTD file can be found at: http://<servername>/local/tvpc/appdata.dtd

Clear counting data

  • Format: text/plain
  • Method: GET

Request

http://<servername>/local/tvpc/.apioperator?clear-data

Return

OK
note

Please note that this method will permanently delete all counting data from your device.

Live view information

Returns information about the placement of the lines in Live view.

  • Format: JSON
  • Method: GET

Request

http://<servername>/local/tvpc/.api?cntpos.json

Response

{
"width":<width>,
"height":<height>,
"left":<left>,
"right":<right>,
"top":<top>,
"bottom":<bottom>,
"yfirst":<yfirst>,
"ylast":<ylast>,
"radius":<radius>
}

Return value descriptions

ValueDescription
widthdimension of the video stream
height
leftx coordinates in pixels forstart and stop for the blue lines in Live view
right
topy coordinates in pixels for the two blue lines in Live view
bottom
yfirsty coordinates in pixels for the top and bottom of the red counting area, disregarding curvature
ylast
radiusradius in pixels describing the curvature of the red counting area, as measured in the center of the area on both axes, or if the area is not curved

Show the system log

  • Format: text/plain
  • Method: GET

Request

http://<servername>/local/tvpc/.apioperator?show-logs

Return

Displays the system logs.

Generate a log archive

  • Format: tar.gz
  • Method: GET

Request

http://<servername>/local/tvpc/.apioperator?generate-logs

Return

A log archive

List people counter parameters

  • Format: JSON
  • Method: GET

Request

http://<servername>/local/tvpc/.api?params.json

Return

A JSON object of all the People Counter related parameters.

Set people counter parameters

  • Format: text
  • Method: POST

The post format has a format where pairs and values need to be specified, best described by an example: &p1=Counter.Enable&v1=1&p2=Counter.Height&v2=280&setparams=needstobeincluded

note

For Firmware-version 5.60 and later, use: setparams&Counter.Height=280 instead.

Request

http://<servername>/local/tvpc/.apioperator?setparams

Return

OK

Occupancy data

The occupancy data requests fetches the total number of people entering or leaving a location and their average visit time.

note

Please note that occupancy data must be enabled in the settings page to be able to perform the requests listed in this section.

Request

Request historical data for all available days and a 24–hour resolution.

http://<servername>/tvpc/.apioperator?occupancy-export-json&date=all&res=24h

Response

{
"counter": {
"name": "Axis-ACCC8E019C5F",
"serial": "ACCC8E019C5F",
"delta": 86400,
"types": {
"Occupancy": 64,
"Average Time": 64,
"Total In": 66,
"Total Out": 67
}
},
"data":{
"20170908000000" : [0,0,17,17],
"20170909000000" : [0,0,18,17],
"20170910000000" : [0,0,1,0],
"20170911000000" : [0,0,0,0],
"20170912000000" : [0,0,21,15],
}
}
ParameterDescription
nameThe name of the application, chosen by the client.
serialThe Mac address for the camera.
deltaThe time difference between data entries, measured in seconds.
OccupancyThe number of people currently in the location.
Average timeAverage time a person is staying in a location.
Total InTotal number of people entering a location.
Total OutTotal number of people leaving a location.

API specification

Real-time data

Request a JSON file with the real time occupancy data.

http://IPaddress/tvpc/.api?live-occupancy.json

Reset occupancy

Request a reset of the available occupancy data.

http://IPaddress/tvpc/.api?occupancy-reset&occ=[value]
note

Please note that this method only works while the people counter is set to naïve mode. See the user manual for AXIS People Counter for additional information.

Export occupancy

Export the occupancy data by specifying a date and time frame using either the CSV, JSON or XML-format.

CSV

http://IPaddress/local/tvpc/.api?occupancy-export-csv&date=[date]&res=[res]

JSON

http://IPaddress/local/tvpc/.api?occupancy-export-json&date=[date]&res=[res]

XML

http://IPaddress/local/tvpc/.api?occupancy-export-xml&date=[date]&res=[res]
ParameterDescription
[date]A date in the form YYYYMMDD, for example date=20180520
[res]1m for data in 1 minute bins.
15m for data in 15 minute bins.
1h for data in 1 hour bins.
24h for data in 24 hour bins.