VisionAIre
  • About Nodeflux
  • Visionaire Stream
    • Overview
    • Requirements
      • Credential Keys
      • Tested Hardware
      • Bandwith Requirements
    • Installation Guide
      • Dependencies
      • Simple Installation
      • Advanced Installation
      • Clustering Installation
      • Add-ons Analytics Installation
        • People Attributes Installation
        • Vehicle Attributes Installation
        • OVOD Installation
        • OVIC Installation
        • VM Installation
        • VLM Installation
    • Analytics
      • Face Recognition
        • Additional Information
          • Overview
          • Disclaimer
          • Metrics
          • Testing
      • People Analytics
      • Crowd Estimation
      • PPE Detection
      • License Plate Recognition
      • Vehicle Analytics
      • Water Level Monitoring
        • Camera Guideline
      • Pre-Flood Monitoring
      • Person Smoking Detection
      • Person with Handphone Detection
      • Smoke and Fire Detection
      • Person Using Firearms Detection
      • Vandalism Attempt Recognition
      • ATM Burglary Incident Recognition
      • Road Crash Monitoring
      • People Fighting Recognition
      • Riot Recognition
    • Developer Guide
      • How our APIs work
      • HTTP APIs
      • Websocket
      • Database Structure
    • Changelogs
  • Visionaire Snapshot
    • Overview
    • Requirements
    • Installation Guide
      • Face Searching & Matching
        • Single Node
        • Clustering
      • Helmet Detection
      • Chicken Estimation
      • Face Detection
      • Over Dimension Over Load
      • Frontal License Plate Recognition
    • Analytics
      • Face Searching & Matching
        • Face Enrollment
          • Image Guideline
          • Face and Image Quality Assessment
            • Setup On Premise
            • API
          • Insert / Update / Delete Enrollment
          • Batch Enrollment
      • Helmet Detection
      • Chicken Estimation
      • People Demography
      • Face Detection
      • Over Dimension Over Load
      • License Plate Recognition -Frontal
    • Developer Guide
      • APIs
        • Face Searching & Matching
        • Helmet Detection
        • Chicken Estimation
        • People Demography
        • Face Detection
        • Over Dimension Over Load
        • Frontal License Plate Recognition
      • Vanilla APIs for Face Enrollment
      • Porting Enrollment Database Cluster to Docker
    • Changelogs
  • VisionAIre Dashboard
    • Introduction
    • Add Analytic Assignment
    • Accessing Vanilla Database
    • Connect to Vanilla Websocket
    • Create your own visualization
      • Migration from Old Streamer to New Streamer
      • Drawing Region of Interest
      • Additional Visualization Query
Powered by GitBook
On this page

Was this helpful?

Export as PDF
  1. Visionaire Stream
  2. Developer Guide

HTTP APIs

PreviousHow our APIs workNextWebsocket

Last updated 1 year ago

Was this helpful?

Getting Started

Before you read this part, please make sure to read How our APIs workto understand the interaction between data in our platform.

Postman Documentation

Click the link below to access Postman Documentation for easier use for our HTTP API:

Streams

This section is used for stream configuration. If you want to create your visualization then this API will help you to connect the camera RTSP / RTMP address to be consumed by our engine.

Analytics Pipeline

Pipeline is a process where we assign specific analytic(s) to a stream.

Detailed Explanations FR
  • areas: An array of unique blacklist areas per frame, used to remove areas from detection.

    • name: A string indicating the name of the blacklist area, located within the areas array object.

    • points: An array object containing the points defining the blacklist area, nested inside the areas array object.

  • dumping_interval: An integer specifying the minimum time interval for dumping; increasing this value reduces the intensity of dumping.

  • dumping_confidence_threshold: A float that sets the minimum threshold for dumping a certain identity; increasing the value enhances precision but reduces sensitivity.

  • fr_primary_threshold: A float for the primary face detection threshold, customizable to the user's needs.

  • fr_secondary_threshold: A float for the secondary face detection threshold, also customizable.

  • sampling_time_ms: An integer defining the time interval for passing detected faces from the primary to the secondary face detector; modifying this value affects the intensity in the secondary model.

  • frontal_only: A boolean indicating whether to pass only frontal faces to the secondary face detector and facial recognition; turning this off may improve sensitivity on non-frontal cameras/views but could reduce accuracy.

  • matching_iou_threshold: A float determining the minimum value of intersection between primary and secondary detections needed to be considered a true detection; decreasing the IOU (Intersection Over Union) may increase sensitivity.

  • bbox_filter_active: A boolean that activates or deactivates face filtering based on the bounding box; setting it to True activates the filter.

  • bbox_filter_threshold: A float that sets the minimum threshold for categorizing an object as an outlier based on a z-score; a z-score greater than 3.0 means the object is detected as an outlier or excluded from detections.

Detailed Explanations for License Plate Recognition
  • areas: An array of unique blacklist areas per frame, used to remove areas from detection.

    • name: A string indicating the name of the blacklist area, located within the areas array object.

    • points: An array object containing the points defining the blacklist area, nested inside the areas array object.

  • max_group_member: Candidates for correct plates (max).

  • min_grup_member: Candidates for correct plates (min).

  • no_input_period_threshold: Time to detect plate (in ms).

  • plate_cache_lifetime: Time required for the plate to be detected (in ms).

  • plate_confidence_threshold: Confidence threshold for plate detection.

  • roi_as_blacklist: TRUE if you have a blacklisted area, FALSE if you don't.

  • similarity_score_threshold: IoU threshold.

  • vehicle_confidence_threshold: Confidence threshold for vehicle detection.

For the API below, the body request will be used in People Counting, Vehicle Counting, and Head Counting the only difference is the analytics codification. For People Counting use NFV4-PC, Vehicle Counting use NFV4-VC and Head Counting use NFV4-HC.

Others

VisionAIre StreamVisionAIre Stream
Logo
Page cover image

Get All Streams

get

This API will give you all streams in all nodes (in case you use clustering deployment).

Responses
200
Success
application/json
get
GET /streams HTTP/1.1
Host: {{ip}}
Accept: */*
200

Success

{
  "stream_number": 11,
  "streams": [
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "c73a1992f67961d1",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "halte slave 11",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/police-shooter-nashville.mp4",
      "stream_custom_data": {},
      "stream_id": "f8c4e792f1606a36",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "Test Node 1 False",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "44649ea3b72155e3",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "asdqwe",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/jalan-santai-yapen-selatan-00_01_00-00_02_00.mp4",
      "stream_custom_data": {},
      "stream_id": "1f49ae135b4fa44b",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "Jalan Santai",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/arkadia/ESCALATOR1-LT.GF.mp4",
      "stream_custom_data": {},
      "stream_id": "7b7954701f6e4948",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "Mall",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/drone_dpr_zoom1.mp4",
      "stream_custom_data": {},
      "stream_id": "4b508b81dfccdbb0",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "Drone CE",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "78d4cf7639ed1fa7",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "qwe",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "45bb1fd40f439797",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "zxc",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "fdd3f05f2fdf8c20",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "qqwe",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "cd5b759b6f7bfc95",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "zxczxc",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "ed9490e28e2d3a8a",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_node_num": 0
    }
  ]
}

Get All Stream in a Node

get

This API will give you all streams in spesific node.

Path parameters
node_numberstringRequired
Responses
200
Success
application/json
get
GET /streams/{node_number} HTTP/1.1
Host: {{ip}}
Accept: */*
200

Success

{
  "stream_number": 11,
  "streams": [
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "c73a1992f67961d1",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "halte slave 11",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/police-shooter-nashville.mp4",
      "stream_custom_data": {},
      "stream_id": "f8c4e792f1606a36",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "Test Node 1 False",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "44649ea3b72155e3",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "asdqwe",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/jalan-santai-yapen-selatan-00_01_00-00_02_00.mp4",
      "stream_custom_data": {},
      "stream_id": "1f49ae135b4fa44b",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "Jalan Santai",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/arkadia/ESCALATOR1-LT.GF.mp4",
      "stream_custom_data": {},
      "stream_id": "7b7954701f6e4948",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "Mall",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/drone_dpr_zoom1.mp4",
      "stream_custom_data": {},
      "stream_id": "4b508b81dfccdbb0",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "Drone CE",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "78d4cf7639ed1fa7",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "qwe",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "45bb1fd40f439797",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "zxc",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "fdd3f05f2fdf8c20",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "qqwe",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "cd5b759b6f7bfc95",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "zxczxc",
      "stream_node_num": 0
    },
    {
      "active": true,
      "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_custom_data": {},
      "stream_id": "ed9490e28e2d3a8a",
      "stream_latitude": 0,
      "stream_longitude": 0,
      "stream_name": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
      "stream_node_num": 0
    }
  ]
}

Get Specific Stream Detail

get

This API will give you detail information about stream status (from resolution to fps) and also analytics status (how many analytics assigned).

Path parameters
node_numberstringRequired
stream_idstringRequired
Responses
200
Result without Analytics / Result with Analytics
application/json
get
GET /streams/{node_number}/{stream_id} HTTP/1.1
Host: {{ip}}
Accept: */*
200

Result without Analytics / Result with Analytics

{
  "active": true,
  "pipelines": [
    "NFV4-MPA"
  ],
  "seats": [
    {
      "analytic_id": "NFV4-MPA",
      "serial_number": "NFV4-MPAA-2XA8-J5JG"
    }
  ],
  "status": {
    "pipelines": [
      {
        "active": true,
        "analytic_id": "NFV4-MPA",
        "message": "Running",
        "restart_num": 0,
        "state": "RUNNING"
      }
    ],
    "services": []
  },
  "stream_address": "rtsp://10.7.2.50:554/VOD/aljabar.mp4",
  "stream_custom_data": {},
  "stream_id": "bd72d9c54a9ea5d7",
  "stream_latitude": 0,
  "stream_longitude": 0,
  "stream_name": "CCTV Al Jabar - Active",
  "stream_node_num": 0,
  "stream_stats": {
    "fps": 24,
    "frame_height": 1080,
    "frame_width": 1920,
    "last_error_msg": "Stream is running..",
    "state": "RUNNING"
  }
}

Delete stream connection

delete

This API will delete (permanently) stream connection. If you have analytic assigned from this stream connection, it will automatically delete the analytic.

Path parameters
node_numberstringRequired
stream_idstringRequired
Responses
200
Delete stream connection
application/json
delete
DELETE /streams/{node_number}/{stream_id} HTTP/1.1
Host: {{ip}}
Accept: */*
200

Delete stream connection

{
  "code": 200,
  "message": "stream successfully deleted",
  "node_num": 0,
  "stream_id": "b90694a235dc4bf3"
}

DELETE Face Recognition Pipeline

delete

DELETE Face Recognition Pipeline

Path parameters
node_numberstringRequired
stream_idstringRequired
Responses
200
Success delete analytic pipeline
application/json
delete
DELETE /pipeline/{node_number}/{stream_id}/NFV4-FR HTTP/1.1
Host: {{ip}}
Accept: */*
200

Success delete analytic pipeline

{
  "analytic_id": "NFV4-FR",
  "code": 200,
  "message": "pipeline successfully deleted",
  "node_num": 0,
  "stream_id": "1f49ae135b4fa44b"
}

GET Analytic Configuration

get

GET Analytic Configuration

Responses
200
Face Recognition / People Analytics / People Counting
application/json
get
GET /pipeline/0/bd72d9c54a9ea5d7/NFV4-PC HTTP/1.1
Host: {{ip}}
Accept: */*
200

Face Recognition / People Analytics / People Counting

{
  "analytic_id": "NFV4-FR",
  "code": 200,
  "config": {},
  "node_num": 0,
  "stream_id": "bd72d9c54a9ea5d7"
}

GET Resource Statistics

get

GET Resource Statistics

Responses
200
Success
application/json
get
GET /resource_stats HTTP/1.1
Host: {{ip}}
Accept: */*
200

Success

{
  "devices": [
    {
      "data": {
        "camera_stats": [],
        "cpu_percent": 11.11111068725586,
        "gpus": [
          {
            "gpu_id": 0,
            "gpu_memory_free": 5395972096,
            "gpu_memory_total": 8053063680,
            "gpu_memory_used": 2657091584,
            "gpu_name": "Tesla P4",
            "gpu_utilization": 3,
            "services": [
              {
                "service_name": "visionaire::face_extraction<visionaire::fe_gpu>",
                "service_number": 1
              },
              {
                "service_name": "visionaire::face_object_detection<visionaire::primary_face_detection>",
                "service_number": 1
              },
              {
                "service_name": "visionaire::face_object_detection<visionaire::secondary_face_detection>",
                "service_number": 1
              }
            ]
          },
          {
            "gpu_id": 1,
            "gpu_memory_free": 6700400640,
            "gpu_memory_total": 8053063680,
            "gpu_memory_used": 1352663040,
            "gpu_name": "Tesla P4",
            "gpu_utilization": 0,
            "services": [
              {
                "service_name": "visionaire::detection_batching<visionaire::people_detection>",
                "service_number": 1
              }
            ]
          }
        ],
        "nvidia_driver_version": "525.147.05",
        "ram_percent": 32.83856964111328,
        "swap_memory_percent": 5.699999809265137
      },
      "node_num": 0
    }
  ]
}

GET All Analytics Available

get

GET All Analytics Available

Responses
200
Success
application/json
get
GET /analytic_list HTTP/1.1
Host: {{ip}}
Accept: */*
200

Success

{
  "analytic_num": 25,
  "analytics": [
    {
      "description": "Crowd Estimation Realtime Video Analytic",
      "id": "NFV4-CE",
      "major_version": 1,
      "minor_version": 0,
      "name": "Crowd Estimation",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "roi"
    },
    {
      "description": "Face Recognition Realtime Video Analytic",
      "id": "NFV4-FR",
      "major_version": 1,
      "minor_version": 0,
      "name": "Face Recognition",
      "publisher": "Nodeflux",
      "seats": [
        {
          "active_status": false,
          "serial_number": "NFV4-FR0Q-6B6F-BMFQ"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-FR2X-I7D1-CPOJ"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-FRKA-HJ0Z-72V8"
        }
      ],
      "type": "full_frame"
    },
    {
      "description": "General Object Counting Realtime Video Analytic",
      "id": "NFV4-GOC",
      "major_version": 1,
      "minor_version": 1,
      "name": "General Object Counting",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "line"
    },
    {
      "description": "Head Counting Realtime Video Analytic",
      "id": "NFV4-HC",
      "major_version": 1,
      "minor_version": 1,
      "name": "Head Counting",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "line"
    },
    {
      "description": "Head Density Realtime Video Analytic",
      "id": "NFV4-HD",
      "major_version": 1,
      "minor_version": 1,
      "name": "Head Density",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "roi"
    },
    {
      "description": "License Plate Recognition Realtime Video Analytic",
      "id": "NFV4-LPR",
      "major_version": 1,
      "minor_version": 1,
      "name": "License Plate Recognition",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "line"
    },
    {
      "description": "License Plate Recognition Realtime Video Analytic (Experimental)",
      "id": "NFV4-LPR2",
      "major_version": 1,
      "minor_version": 0,
      "name": "License Plate Recognition (Experimental)",
      "publisher": "Nodeflux",
      "seats": [
        {
          "active_status": false,
          "serial_number": "NFV4-LPR2-ABGG-F5LF"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-LPR2-U7U3-O1F5"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-LPR2-XGE7-XWSD"
        }
      ],
      "type": "roi"
    },
    {
      "description": "License Plate Recognition Realtime Video Analytic (Experimental)",
      "id": "NFV4-LPRS",
      "major_version": 1,
      "minor_version": 0,
      "name": "License Plate Recognition with Special Multi Classes",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "roi"
    },
    {
      "description": "Multi-logics People Realtime Video Analytic",
      "id": "NFV4-MPA",
      "major_version": 1,
      "minor_version": 0,
      "name": "People Analytic",
      "publisher": "Nodeflux",
      "seats": [
        {
          "active_status": false,
          "serial_number": "NFV4-MPAA-2XA8-J5JG"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-MPAC-O713-W5MX"
        }
      ],
      "type": "multi_type"
    },
    {
      "description": "Multi-Logic People with Attribute Realtime Video Analytic",
      "id": "NFV4-MPAA",
      "major_version": 1,
      "minor_version": 1,
      "name": "Multi-Logic People Analytic With Attribute",
      "publisher": "Nodeflux",
      "seats": [
        {
          "active_status": false,
          "serial_number": "NFV4-MPAA-2Z07-HEPA"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-MPAA-ID5D-9S6N"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-MPAA-NPK9-GLK7"
        }
      ],
      "type": "line"
    },
    {
      "description": "Multi-logics Vehicle Realtime Video Analytic",
      "id": "NFV4-MVA",
      "major_version": 1,
      "minor_version": 1,
      "name": "Vehicle Analytic",
      "publisher": "Nodeflux",
      "seats": [
        {
          "active_status": false,
          "serial_number": "NFV4-MVAD-03PO-PT8Z"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-MVAT-5XCR-X7RV"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-MVAW-KU9U-ZPKM"
        }
      ],
      "type": "multi_type"
    },
    {
      "description": "People Counting Realtime Video Analytic",
      "id": "NFV4-PC",
      "major_version": 1,
      "minor_version": 1,
      "name": "People Counting",
      "publisher": "Nodeflux",
      "seats": [
        {
          "active_status": false,
          "serial_number": "NFV4-PCFA-9OSJ-2XZP"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-PCIX-HQP6-CLEM"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-PCKT-DI2Q-BYN0"
        }
      ],
      "type": "line"
    },
    {
      "description": "People Dwelling Realtime Video Analytic (Experimental)",
      "id": "NFV4-PD",
      "major_version": 1,
      "minor_version": 0,
      "name": "People Dwelling",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "roi"
    },
    {
      "description": "Personal Protective Equipment Surveilance Realtime Video Analytic (POC)",
      "id": "NFV4-PPE",
      "major_version": 1,
      "minor_version": 0,
      "name": "Personal Protective Equipment Analytic",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "full_frame"
    },
    {
      "description": "Empty Pipeline That Does Nothing, used for testing",
      "id": "NFV4-TEST",
      "major_version": 1,
      "minor_version": 0,
      "name": "Empty Test Pipeline",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "full_frame"
    },
    {
      "description": "Vehicle Aerial Surveilance Realtime Video Analytic (POC)",
      "id": "NFV4-VAS",
      "major_version": 1,
      "minor_version": 0,
      "name": "Vehicle Aerial Surveilance",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "full_frame"
    },
    {
      "description": "Vehicle Counting Realtime Video Analytic",
      "id": "NFV4-VC",
      "major_version": 1,
      "minor_version": 1,
      "name": "Vehicle Counting",
      "publisher": "Nodeflux",
      "seats": [
        {
          "active_status": false,
          "serial_number": "NFV4-VCMQ-E98A-Y0PU"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-VCS5-4JIH-GEQ5"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-VCTR-2H2E-L1O1"
        }
      ],
      "type": "line"
    },
    {
      "description": "Vehicle Counting (Highway) Realtime Video Analytic",
      "id": "NFV4-VC-HW",
      "major_version": 1,
      "minor_version": 1,
      "name": "Vehicle Counting Highway",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "line"
    },
    {
      "description": "Vehicle Attribute Realtime Video Analytic (POC)",
      "id": "NFV4-VCAT",
      "major_version": 1,
      "minor_version": 0,
      "name": "Vehicle Counting Attribute",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "line"
    },
    {
      "description": "Vehicle Dwelling Realtime Video Analytic",
      "id": "NFV4-VD",
      "major_version": 1,
      "minor_version": 0,
      "name": "Vehicle Dwelling",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "roi"
    },
    {
      "description": "Water Level Monitoring Realtime Video Analytic",
      "id": "NFV4-WLM",
      "major_version": 1,
      "minor_version": 0,
      "name": "Water Level Monitoring",
      "publisher": "Nodeflux",
      "seats": [
        {
          "active_status": false,
          "serial_number": "NFV4-WLMB-IH3A-BLV6"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-WLMJ-9JPN-UQB2"
        },
        {
          "active_status": false,
          "serial_number": "NFV4-WLMP-LFG7-3E42"
        }
      ],
      "type": "roi"
    },
    {
      "description": "OVIC Snapshot Video Analytic",
      "id": "NFV4D-OVIC",
      "major_version": 1,
      "minor_version": 0,
      "name": "OVIC",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "snapshot"
    },
    {
      "description": "OVOD Snapshot Video Analytic",
      "id": "NFV4D-OVOD",
      "major_version": 1,
      "minor_version": 0,
      "name": "OVOD",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "snapshot"
    },
    {
      "description": "WLM Snapshot Video Analytic",
      "id": "NFV4D-WLM",
      "major_version": 1,
      "minor_version": 0,
      "name": "WLM",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "snapshot"
    },
    {
      "description": "Hybrid Face Recognition Realtime Video Analytic",
      "id": "NFV4H-FR",
      "major_version": 1,
      "minor_version": 0,
      "name": "Hybrid Face Recognition",
      "publisher": "Nodeflux",
      "seats": [],
      "type": "full_frame"
    }
  ],
  "code": 200,
  "deployment_key": "9b3929a0-c28b-4d07-8fce-1fad6fd34b1c",
  "message": "success",
  "version": {
    "major": 4,
    "minor": 56,
    "patch": 2
  }
}
  • Getting Started
  • Postman Documentation
  • Streams
  • GETGet All Streams
  • GETGet All Stream in a Node
  • POSTCreate stream connection
  • GETGet Specific Stream Detail
  • PUTUpdate stream connection
  • DELETEDelete stream connection
  • Analytics Pipeline
  • POSTPOST Face Recognition Analytic
  • DELETEDELETE Face Recognition Pipeline
  • POSTPOST People Analytics
  • POSTPOST Vehicle Analytics
  • POSTPOST License Plate Recognition 2
  • POSTPOST People Counting
  • POSTPOST Water Level Monitoring
  • POSTPOST Crowd Estimation
  • POSTPOST PPE
  • Others
  • GETGET Analytic Configuration
  • GETGET Resource Statistics
  • GETGET All Analytics Available

Create stream connection

post

This API will create a stream connection from RTSP address. You can enable or disable camera stream from active boolean value.

Path parameters
node_numberstringRequired
Body
activebooleanOptionalExample: true
stream_addressstringOptionalExample: rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4
stream_namestringOptionalExample: CCTV Halte - Active
Responses
200
Create disabled stream connection / Create active stream connection
application/json
post
POST /streams/{node_number} HTTP/1.1
Host: {{ip}}
Content-Type: application/json
Accept: */*
Content-Length: 113

{
  "active": true,
  "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
  "stream_name": "CCTV Halte - Active"
}
200

Create disabled stream connection / Create active stream connection

{
  "active": true,
  "code": 200,
  "message": "stream successfully created",
  "node_num": 0,
  "ok": true,
  "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
  "stream_id": "b90694a235dc4bf3",
  "stream_name": "CCTV Halte - Active"
}

Update stream connection

put

This API will update information for stream connection. Make sure to include all body request when you use this API.

Path parameters
node_numberstringRequired
stream_idstringRequired
Body
activebooleanOptionalExample: true
stream_addressstringOptionalExample: rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4
stream_latitudenumberOptionalExample: -6.261376228442297
stream_longitudenumberOptionalExample: 106.82364878415255
stream_namestringOptionalExample: CCTV Halte Jakarta
Responses
200
Success
application/json
put
PUT /streams/{node_number}/{stream_id} HTTP/1.1
Host: {{ip}}
Content-Type: application/json
Accept: */*
Content-Length: 187

{
  "active": true,
  "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
  "stream_latitude": -6.261376228442297,
  "stream_longitude": 106.82364878415255,
  "stream_name": "CCTV Halte Jakarta"
}
200

Success

{
  "active": true,
  "code": 200,
  "message": "stream successfully updated",
  "node_num": 0,
  "stream_address": "rtsp://10.7.2.50:554/VOD/halte_unj_crd.mp4",
  "stream_id": "b90694a235dc4bf3",
  "stream_name": "CCTV Halte Jakarta"
}

POST Face Recognition Analytic

post

POST Face Recognition Analytic

Path parameters
node_numberstringRequired
stream_idstringRequired
Body
bbox_filter_activebooleanOptionalExample: true
bbox_filter_thresholdnumberOptionalExample: 3
dumping_confidence_thresholdnumberOptionalExample: 0
dumping_intervalnumberOptionalExample: 0
fr_primary_thresholdnumberOptionalExample: 0.4
fr_secondary_thresholdnumberOptionalExample: 0.4
frontal_onlybooleanOptionalExample: true
matching_iou_thresholdnumberOptionalExample: 0.7
sampling_time_msnumberOptionalExample: 50
Responses
200
Success without blacklist area / Success with blacklist area
application/json
post
POST /pipeline/{node_number}/{stream_id}/NFV4-FR HTTP/1.1
Host: {{ip}}
Content-Type: application/json
Accept: */*
Content-Length: 315

{
  "areas": [
    {
      "name": "Blacklist Area 1",
      "points": [
        {
          "x": 0,
          "y": 0.5
        },
        {
          "x": 1,
          "y": 0.5
        }
      ]
    }
  ],
  "bbox_filter_active": true,
  "bbox_filter_threshold": 3,
  "dumping_confidence_threshold": 0,
  "dumping_interval": 0,
  "fr_primary_threshold": 0.4,
  "fr_secondary_threshold": 0.4,
  "frontal_only": true,
  "matching_iou_threshold": 0.7,
  "sampling_time_ms": 50
}
200

Success without blacklist area / Success with blacklist area

{
  "analytic_id": "NFV4-FR",
  "code": 200,
  "message": "pipeline successfully created",
  "node_num": 0,
  "stream_id": "1f49ae135b4fa44b"
}

POST People Analytics

post

POST People Analytics

Path parameters
node_numberstringRequired
stream_idstringRequired
Body
Responses
200
Success create all logics / Success create density logic / Success create dwelling logic / Success create counting logic
application/json
post
POST /pipeline/{node_number}/{stream_id}/NFV4-MPA HTTP/1.1
Host: {{ip}}
Content-Type: application/json
Accept: */*
Content-Length: 190

{
  "sub_analytics": [
    {
      "areas": [
        {
          "bidirection": true,
          "in": true,
          "name": "Area 1",
          "points": [
            {
              "x": 0,
              "y": 0.5
            },
            {
              "x": 1,
              "y": 0.5
            }
          ]
        }
      ],
      "is_active": true,
      "name": "counting",
      "object_confidence_threshold": 0.7
    }
  ]
}
200

Success create all logics / Success create density logic / Success create dwelling logic / Success create counting logic

{
  "analytic_id": "NFV4-MPA",
  "code": 200,
  "message": "pipeline successfully created",
  "node_num": 0,
  "stream_id": "1f49ae135b4fa44b"
}

POST Vehicle Analytics

post

POST Vehicle Analytics

Path parameters
node_numberstringRequired
stream_idstringRequired
Body
Responses
200
Success create all logics / Success create density logic / Success create dwelling logic / Success create counting logic
application/json
post
POST /pipeline/{node_number}/{stream_id}/NFV4-MVA HTTP/1.1
Host: {{ip}}
Content-Type: application/json
Accept: */*
Content-Length: 190

{
  "sub_analytics": [
    {
      "areas": [
        {
          "bidirection": true,
          "in": true,
          "name": "Area 1",
          "points": [
            {
              "x": 0,
              "y": 0.5
            },
            {
              "x": 1,
              "y": 0.5
            }
          ]
        }
      ],
      "is_active": true,
      "name": "counting",
      "object_confidence_threshold": 0.7
    }
  ]
}
200

Success create all logics / Success create density logic / Success create dwelling logic / Success create counting logic

{
  "analytic_id": "NFV4-MPA",
  "code": 200,
  "message": "pipeline successfully created",
  "node_num": 0,
  "stream_id": "1f49ae135b4fa44b"
}

POST License Plate Recognition 2

post

POST License Plate Recognition 2

Path parameters
node_numberstringRequired
stream_idstringRequired
Body
max_group_membernumberOptionalExample: 20
min_group_membernumberOptionalExample: 2
no_input_period_thresholdnumberOptionalExample: 20
plate_cache_lifetimenumberOptionalExample: 5
plate_confidence_thresholdnumberOptionalExample: 0.7
roi_as_blacklistbooleanOptionalExample: false
similarity_score_thresholdnumberOptionalExample: 0.7
vehicle_confidence_thresholdnumberOptionalExample: 0.7
Responses
200
Success
application/json
post
POST /pipeline/{node_number}/{stream_id}/NFV4-LPR2 HTTP/1.1
Host: {{ip}}
Content-Type: application/json
Accept: */*
Content-Length: 343

{
  "areas": [
    {
      "name": "kiri",
      "points": [
        {
          "x": 0.05,
          "y": 0.05
        },
        {
          "x": 0.05,
          "y": 0.95
        },
        {
          "x": 0.48,
          "y": 0.95
        },
        {
          "x": 0.48,
          "y": 0.05
        }
      ]
    }
  ],
  "max_group_member": 20,
  "min_group_member": 2,
  "no_input_period_threshold": 20,
  "plate_cache_lifetime": 5,
  "plate_confidence_threshold": 0.7,
  "roi_as_blacklist": false,
  "similarity_score_threshold": 0.7,
  "vehicle_confidence_threshold": 0.7
}
200

Success

{
  "analytic_id": "NFV4-LPR2",
  "code": 200,
  "message": "pipeline successfully created",
  "node_num": 0,
  "stream_id": "0e08b38c86161ae9"
}

POST People Counting

post

POST People Counting

Path parameters
node_numberstringRequired
stream_idstringRequired
Body
object_confidence_thresholdnumberOptionalExample: 0.7
Responses
200
Success
application/json
post
POST /pipeline/{node_number}/{stream_id}/NFV4-PC HTTP/1.1
Host: {{ip}}
Content-Type: application/json
Accept: */*
Content-Length: 135

{
  "areas": [
    {
      "bidirection": true,
      "in": true,
      "name": "Area 1",
      "points": [
        {
          "x": 0,
          "y": 0.5
        },
        {
          "x": 1,
          "y": 0.5
        }
      ]
    }
  ],
  "object_confidence_threshold": 0.7
}
200

Success

{
  "analytic_id": "NFV4-PC",
  "code": 200,
  "message": "pipeline successfully created",
  "node_num": 0,
  "stream_id": "0e08b38c86161ae9"
}

POST Water Level Monitoring

post

POST Water Level Monitoring

Path parameters
node_numberstringRequired
stream_idstringRequired
Body
intervalnumberOptionalExample: 10
Responses
200
Success
application/json
post
POST /pipeline/{node_number}/{stream_id}/NFV4-WLM HTTP/1.1
Host: {{ip}}
Content-Type: application/json
Accept: */*
Content-Length: 134

{
  "areas": [
    {
      "name": "Area 1",
      "points": [
        {
          "x": 0.05,
          "y": 0.05
        },
        {
          "x": 0.05,
          "y": 0.95
        },
        {
          "x": 0.48,
          "y": 0.95
        },
        {
          "x": 0.48,
          "y": 0.05
        }
      ]
    }
  ],
  "interval": 10
}
200

Success

{
  "analytic_id": "NFV4-WLM",
  "code": 200,
  "message": "pipeline successfully created",
  "node_num": 0,
  "stream_id": "0e08b38c86161ae9"
}

POST Crowd Estimation

post

POST Crowd Estimation

Path parameters
node_numberstringRequired
stream_idstringRequired
Body
intervalnumberOptionalExample: 10
Responses
200
Success
application/json
post
POST /pipeline/{node_number}/{stream_id}/NFV4-CE HTTP/1.1
Host: {{ip}}
Content-Type: application/json
Accept: */*
Content-Length: 134

{
  "areas": [
    {
      "name": "Area 1",
      "points": [
        {
          "x": 0.05,
          "y": 0.05
        },
        {
          "x": 0.05,
          "y": 0.95
        },
        {
          "x": 0.48,
          "y": 0.95
        },
        {
          "x": 0.48,
          "y": 0.05
        }
      ]
    }
  ],
  "interval": 10
}
200

Success

{
  "analytic_id": "NFV4-CE",
  "code": 200,
  "message": "pipeline successfully created",
  "node_num": 0,
  "stream_id": "0e08b38c86161ae9"
}

POST PPE

post

POST PPE

Path parameters
node_numberstringRequired
stream_idstringRequired
Body
helmet_iou_thresholdnumberOptionalExample: 0.85
interval_msnumberOptionalExample: 5
minimal_countnumberOptionalExample: 10
person_score_thresholdnumberOptionalExample: 0.6
vest_iou_thresholdnumberOptionalExample: 0.85
Responses
200
Success
application/json
post
POST /pipeline/{node_number}/{stream_id}/NFV4-PPE HTTP/1.1
Host: {{ip}}
Content-Type: application/json
Accept: */*
Content-Length: 119

{
  "helmet_iou_threshold": 0.85,
  "interval_ms": 5,
  "minimal_count": 10,
  "person_score_threshold": 0.6,
  "vest_iou_threshold": 0.85
}
200

Success

{
  "analytic_id": "NFV4-PPE",
  "code": 200,
  "message": "pipeline successfully created",
  "node_num": 0,
  "stream_id": "0e08b38c86161ae9"
}