# uchkunr/hikvision-best-practices architecture

> Architecture diagram of the GitHub repository uchkunr/hikvision-best-practices, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/uchkunr/hikvision-best-practices
- Repository: https://github.com/uchkunr/hikvision-best-practices

## Overview

This repository is a developer reference for integrating with Hikvision devices and platforms; the available tree contains only README.md, so this is a map of documented capabilities, not an implementation architecture. Its principal workflow is an application addressing a device directly, authenticating, requesting an ISAPI resource, and interpreting the response. The README also documents separate RTSP, ONVIF, and HikCentral integration flavors. The excerpt ends during the system endpoint catalog, so later endpoint coverage and implementation-level wiring cannot be established.

Main entry points: [`README.md`](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md) (ISAPI over HTTP(S))

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_direct["Direct Device Control"]
  node_isapi["ISAPI over HTTP&#40;S&#41;<br/>[README.md]"]
  node_digest["Digest Authentication<br/>[README.md]"]
  node_basic["Basic Authentication<br/>[README.md]"]
end

subgraph group_domains["Device API Domains"]
  node_deviceinfo["Device Information<br/>[README.md]"]
  node_system["System Settings<br/>[README.md]"]
  node_access["Access Control<br/>[README.md]"]
  node_streaming["Streaming Resources<br/>[README.md]"]
  node_intelligent["Intelligent Resources<br/>[README.md]"]
  node_events["Event Resources<br/>[README.md]"]
end

subgraph group_alternatives["Other API Flavors"]
  node_rtsp["RTSP Streams<br/>[README.md]"]
  node_onvif["ONVIF Discovery/PTZ<br/>[README.md]"]
  node_hikcentral["HikCentral OpenAPI<br/>[README.md]"]
end

subgraph group_formats["Requests and Responses"]
  node_payload["JSON or XML<br/>[README.md]"]
  node_status["Status and Errors<br/>[README.md]"]
end

node_application(("Integrating Application"))
node_device(("Hikvision Device"))
node_platform(("HikCentral Platform"))

node_application -->|"sends requests"| node_isapi
node_isapi -->|"authenticates with"| node_digest
node_isapi -.->|"may authenticate with"| node_basic
node_isapi -->|"requests resources"| node_device
node_device -->|"returns responses"| node_isapi
node_isapi -->|"formats payloads"| node_payload
node_device -->|"returns status"| node_status
node_isapi -->|"retrieves"| node_deviceinfo
node_isapi -->|"accesses"| node_system
node_isapi -->|"accesses"| node_access
node_isapi -->|"accesses"| node_streaming
node_isapi -->|"accesses"| node_intelligent
node_isapi -->|"accesses"| node_events
node_application -->|"requests streams"| node_rtsp
node_rtsp -->|"streams media"| node_device
node_application -->|"uses discovery/PTZ"| node_onvif
node_onvif -->|"communicates with"| node_device
node_application -.->|"uses platform API"| node_hikcentral
node_hikcentral -->|"targets"| node_platform

click node_isapi "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_digest "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_basic "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_deviceinfo "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_system "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_access "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_streaming "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_intelligent "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_events "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_payload "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_status "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_rtsp "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_onvif "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"
click node_hikcentral "https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_isapi,node_digest,node_basic toneBlue
class node_deviceinfo,node_system,node_access,node_streaming,node_intelligent,node_events toneAmber
class node_rtsp,node_onvif,node_hikcentral toneMint
class node_payload,node_status toneRose
class node_application,node_device,node_platform toneIndigo
```

## Components

### Direct Device Control

- [ISAPI over HTTP(S)](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`
- [Digest Authentication](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`
- [Basic Authentication](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`

### Device API Domains

- [Device Information](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`
- [System Settings](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`
- [Access Control](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`
- [Streaming Resources](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`
- [Intelligent Resources](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`
- [Event Resources](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`

### Other API Flavors

- [RTSP Streams](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`
- [ONVIF Discovery/PTZ](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`
- [HikCentral OpenAPI](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`

### Requests and Responses

- [JSON or XML](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`
- [Status and Errors](https://github.com/uchkunr/hikvision-best-practices/blob/master/README.md): `README.md`

### Other components

- **Integrating Application**
- **Hikvision Device**
- **HikCentral Platform**

## Connections

- Integrating Application → ISAPI over HTTP(S): sends requests
- ISAPI over HTTP(S) → Digest Authentication: authenticates with
- ISAPI over HTTP(S) → Basic Authentication: may authenticate with
- ISAPI over HTTP(S) → Hikvision Device: requests resources
- Hikvision Device → ISAPI over HTTP(S): returns responses
- ISAPI over HTTP(S) → JSON or XML: formats payloads
- Hikvision Device → Status and Errors: returns status
- ISAPI over HTTP(S) → Device Information: retrieves
- ISAPI over HTTP(S) → System Settings: accesses
- ISAPI over HTTP(S) → Access Control: accesses
- ISAPI over HTTP(S) → Streaming Resources: accesses
- ISAPI over HTTP(S) → Intelligent Resources: accesses
- ISAPI over HTTP(S) → Event Resources: accesses
- Integrating Application → RTSP Streams: requests streams
- RTSP Streams → Hikvision Device: streams media
- Integrating Application → ONVIF Discovery/PTZ: uses discovery/PTZ
- ONVIF Discovery/PTZ → Hikvision Device: communicates with
- Integrating Application → HikCentral OpenAPI: uses platform API
- HikCentral OpenAPI → HikCentral Platform: targets
