openapi: 3.0.3 info: title: Reolink Camera HTTP AI Network API description: The Reolink Camera HTTP API provides a RESTful interface for controlling and configuring Reolink IP cameras and NVRs. All commands are sent as HTTP POST requests to the /cgi-bin/api.cgi endpoint with JSON payloads. The API supports authentication via token-based sessions, device information retrieval, network configuration, video and image settings, encoding parameters, recording management, PTZ (pan-tilt-zoom) control, alarm and motion detection configuration, IR and LED light control, AI-powered object detection, and live streaming URL generation. Authentication is performed by first calling the Login command to obtain a session token, which is then passed as a query parameter on subsequent requests. version: '8.0' contact: name: Reolink url: https://reolink.com license: name: Proprietary url: https://reolink.com servers: - url: https://{camera_ip} description: Reolink Camera or NVR variables: camera_ip: default: 192.168.1.100 description: IP address of the Reolink camera or NVR security: - tokenAuth: [] tags: - name: Network description: Network configuration, WiFi, DDNS, NTP, email, FTP, and push notifications paths: /cgi-bin/api.cgi?cmd=GetNetPort&token={token}: post: operationId: getNetPort summary: Get network port configuration description: Retrieves network port settings including HTTP, HTTPS, RTSP, and ONVIF ports. tags: - Network parameters: - $ref: '#/components/parameters/Token' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CommandRequest' responses: '200': description: Network port settings retrieved content: application/json: schema: $ref: '#/components/schemas/CommandResponse' /cgi-bin/api.cgi?cmd=SetNetPort&token={token}: post: operationId: setNetPort summary: Set network port configuration description: Configures network port settings. tags: - Network parameters: - $ref: '#/components/parameters/Token' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CommandRequest' responses: '200': description: Network port settings updated content: application/json: schema: $ref: '#/components/schemas/CommandResponse' /cgi-bin/api.cgi?cmd=GetLocalLink&token={token}: post: operationId: getLocalLink summary: Get local network link settings description: Retrieves local network link configuration including IP address and DNS. tags: - Network parameters: - $ref: '#/components/parameters/Token' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CommandRequest' responses: '200': description: Local link settings retrieved content: application/json: schema: $ref: '#/components/schemas/CommandResponse' /cgi-bin/api.cgi?cmd=GetWifi&token={token}: post: operationId: getWifi summary: Get WiFi configuration description: Retrieves wireless network configuration settings. tags: - Network parameters: - $ref: '#/components/parameters/Token' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CommandRequest' responses: '200': description: WiFi settings retrieved content: application/json: schema: $ref: '#/components/schemas/CommandResponse' /cgi-bin/api.cgi?cmd=GetDdns&token={token}: post: operationId: getDdns summary: Get DDNS settings description: Retrieves Dynamic DNS configuration. tags: - Network parameters: - $ref: '#/components/parameters/Token' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CommandRequest' responses: '200': description: DDNS settings retrieved content: application/json: schema: $ref: '#/components/schemas/CommandResponse' /cgi-bin/api.cgi?cmd=GetNtp&token={token}: post: operationId: getNtp summary: Get NTP settings description: Retrieves Network Time Protocol configuration. tags: - Network parameters: - $ref: '#/components/parameters/Token' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CommandRequest' responses: '200': description: NTP settings retrieved content: application/json: schema: $ref: '#/components/schemas/CommandResponse' /cgi-bin/api.cgi?cmd=GetEmail&token={token}: post: operationId: getEmail summary: Get email notification settings description: Retrieves email notification configuration for alerts. tags: - Network parameters: - $ref: '#/components/parameters/Token' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CommandRequest' responses: '200': description: Email settings retrieved content: application/json: schema: $ref: '#/components/schemas/CommandResponse' /cgi-bin/api.cgi?cmd=GetFtp&token={token}: post: operationId: getFtp summary: Get FTP upload settings description: Retrieves FTP server configuration for recording and snapshot uploads. tags: - Network parameters: - $ref: '#/components/parameters/Token' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CommandRequest' responses: '200': description: FTP settings retrieved content: application/json: schema: $ref: '#/components/schemas/CommandResponse' /cgi-bin/api.cgi?cmd=GetPush&token={token}: post: operationId: getPush summary: Get push notification settings description: Retrieves push notification configuration. tags: - Network parameters: - $ref: '#/components/parameters/Token' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CommandRequest' responses: '200': description: Push notification settings retrieved content: application/json: schema: $ref: '#/components/schemas/CommandResponse' /cgi-bin/api.cgi?cmd=GetUpnp&token={token}: post: operationId: getUpnp summary: Get UPnP settings description: Retrieves Universal Plug and Play network configuration. tags: - Network parameters: - $ref: '#/components/parameters/Token' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CommandRequest' responses: '200': description: UPnP settings retrieved content: application/json: schema: $ref: '#/components/schemas/CommandResponse' components: schemas: CommandRequest: type: object required: - cmd - action properties: cmd: type: string description: The API command name action: type: integer description: Action type (0 for get, 1 for set) param: type: object description: Command-specific parameters CommandResponse: type: object properties: cmd: type: string description: The command that was executed code: type: integer description: Response code (0 for success) value: type: object description: Command-specific response data error: type: object properties: rspCode: type: integer description: Error response code detail: type: string description: Error detail message parameters: Token: name: token in: path required: true description: Authentication token obtained from the Login command schema: type: string securitySchemes: tokenAuth: type: apiKey in: query name: token description: Authentication token obtained from the Login command. Pass as a query parameter on all requests after authentication.