restautomatic-license-plate-recognitionhikvision

Hikvision ANPR (ISAPI) - Triggering Plate Recognition via API


I'm trying to integrate a Hikvision ANPR/LPR camera using ISAPI, but I can't find clear documentation on whether it's possible to trigger plate recognition manually instead of running it continuously.

Goal: I want the camera to recognize a plate only when I send an API request, not automatically.

Example:

  1. I send an API request, e.g., GET/PUT /ISAPI/Traffic/channels/1/vehicle/tryPlateRecognise.
  2. The camera attempts to recognize the plate.
  3. It returns the detected plate number and confidence level. e.g. <plate>OB123</plate>

Questions:

I have found partial documentation, but since Hikvision doesn't provide full API specs unless you're a partner, it's hard to verify how this works in real-world scenarios.

Any insights would be greatly appreciated!

Thanks!


Solution

  • Hikivision camera supports the manual recognition through ISAPI integration, you can do it with the request below:

    [GET]
    {cameraIp:port}/ISAPI/Traffic/MNPR/channels/1?laneNo=1&OSD=1
    

    And you'll get a response similar to this

    -----------------------------7daf10c20d06
    Content-Disposition: form-data; name="mnpr.xml"; filename="mnpr.xml"
    Content-Type: text/xml
    Content-Length: 2176
    
    
    
    <?xml version="1.0" encoding="utf-8"?>
    <EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
        <ipAddress>192.168.1.221</ipAddress>
        <ipv6Address>::</ipv6Address>
        <portNo>20480</portNo>
        <protocol>HTTP</protocol>
        <macAddress>bc:5e:33:47:dd:ec</macAddress>
        <channelID>1</channelID>
        <dateTime>2025-06-02T10:50:28.169-05:00</dateTime>
        <activePostCount>2</activePostCount>
        <eventType>ANPR</eventType>
        <eventState>active</eventState>
        <eventDescription>ANPR</eventDescription>
        <channelName>ENTRADA_01</channelName>
        <ANPR>
            <licensePlate>unknown</licensePlate>
            <line>1</line>
            <confidenceLevel>0</confidenceLevel>
            <plateType>unknown</plateType>
            <plateColor>unknown</plateColor>