Summary
The Doorbird D2101KH Series is a Video Door Station controllable via a LAN-2-LAN HTTP API. The device supports TCP/HTTP for command and control, RTSP for live video streaming, SIP for voice calls, and UDP event broadcasts for doorbell, motion, and sensor notifications. Authentication uses RFC 2617 Basic/Digest or plaintext HTTP parameters.
Transport
protocols:
- tcp
- udp
addressing:
port: 80 # HTTP
# UNRESOLVED: HTTPS port 443 mentioned but not explicitly stated as configurable
base_url: http://<device-ip>/bha-api
auth:
type: UNRESOLVED # source does not state this (was inferred basic: source describes RFC 2617 Basic/Digest auth)
RTSP transport:
protocols:
- UNRESOLVED
addressing:
port: 554 # RTSP
# UNRESOLVED: RTSP-over-HTTP port 8557 not confirmed as configurable
UDP event broadcasts:
protocols:
- udp
addressing:
port: 6524 # event broadcast
port: 35344 # event broadcast
SIP:
protocols:
- UNRESOLVED
addressing:
port: 5060 # SIP
Traits
- queryable # inferred: info.cgi, sip.cgi?action=status, monitor.cgi present
- levelable # inferred: mic_volume, spk_volume settings present
Actions
- id: open_door
label: Open Door
kind: action
params:
- name: r
type: string
description: "DoorcontrollerID@relay, e.g. 1 or gggaaa@1. Default: relay1"
- id: light_on
label: Light On
kind: action
params: []
- id: restart
label: Restart Device
kind: action
params: []
- id: get_session
label: Get Session ID
kind: action
params: []
- id: invalidate_session
label: Invalidate Session ID
kind: action
params:
- name: invalidate
type: string
description: Session ID to invalidate
- id: list_favorites
label: List Favorites
kind: action
params: []
- id: save_favorite
label: Save Favorite
kind: action
params:
- name: action
type: string
description: Fixed value "save"
- name: type
type: string
enum: [sip, http]
description: Favorite type
- name: title
type: string
description: Name/title
- name: value
type: string
description: URL or SIP address
- name: id
type: integer
description: Optional ID to change existing favorite
- id: delete_favorite
label: Delete Favorite
kind: action
params:
- name: action
type: string
description: Fixed value "remove"
- name: type
type: string
enum: [sip, http]
description: Favorite type
- name: id
type: integer
description: ID of favorite to delete
- id: list_schedules
label: List Schedules
kind: action
params: []
- id: save_schedule
label: Save Schedule
kind: action
params:
- name: input
type: string
enum: [doorbell, motion, rfid, fingerprint]
description: Input event type
- name: param
type: string
description: Doorbell number, transponder ID, or fingerprint ID
- name: output
type: array
description: JSON array of output configurations
- id: delete_schedule
label: Delete Schedule
kind: action
params:
- name: action
type: string
description: Fixed value "remove"
- name: input
type: string
enum: [doorbell, motion, rfid]
description: Input event type
- name: param
type: string
description: Doorbell number or transponder ID
- id: sip_registration
label: SIP Registration
kind: action
params:
- name: action
type: string
description: Fixed value "registration"
- name: user
type: string
description: SIP proxy username
- name: password
type: string
description: SIP proxy password
- name: url
type: string
description: SIP proxy IP/hostname
- id: sip_make_call
label: SIP Make Call
kind: action
params:
- name: action
type: string
description: Fixed value "makecall"
- name: url
type: string
description: SIP URL to call
- id: sip_hangup
label: SIP Hangup
kind: action
params:
- name: action
type: string
description: Fixed value "hangup"
- id: sip_settings
label: SIP Settings
kind: action
params:
- name: action
type: string
description: Fixed value "settings"
- name: enable
type: integer
description: "0..1, enable SIP after reboot"
- name: mic_volume
type: integer
description: "1..100, microphone volume"
- name: spk_volume
type: integer
description: "1..100, speaker volume"
- name: dtmf
type: integer
description: "0..1, enable DTMF support"
- name: relay1_passcode
type: integer
description: "0..99999999, pincode for door open relay"
- name: incoming_call_enable
type: integer
description: "0..1, enable incoming calls"
- name: anc
type: integer
description: "0..1, acoustic noise cancellation"
- name: ring_time_limit
type: integer
description: "10..300, ringing time limit in seconds"
- name: call_time_limit
type: integer
description: "30..300, call duration limit in seconds"
- id: sip_reset
label: SIP Settings Reset
kind: action
params:
- name: action
type: string
description: Fixed value "reset"
- id: request_live_video
label: Request Live Video (MJPEG)
kind: action
params: []
- id: request_live_image
label: Request Live Image
kind: action
params: []
- id: request_history_image
label: Request History Image
kind: action
params:
- name: index
type: integer
description: "1..50, history image index (1=latest)"
- name: event
type: string
enum: [doorbell, motionsensor]
description: Event type, default doorbell
- id: monitor_events
label: Monitor Events
kind: action
params:
- name: ring
type: string
enum: [doorbell, motionsensor]
description: Event types to monitor
- id: request_audio_receive
label: Receive Live Audio
kind: action
params: []
- id: transmit_audio
label: Transmit Live Audio
kind: action
params: []
- id: rtsp_live_video
label: RTSP Live Video
kind: action
params:
- name: resolution
type: string
enum: [mpeg/media.amp, mpeg/720p/media.amp, mpeg/1080p/media.amp]
description: Video resolution path
- id: sip_set_incoming_call_user
label: SIP Set Incoming Call User
kind: action
params:
- name: action
type: string
description: Fixed value "settings"
- name: incoming_call_user
type: string
description: "SIP user; Allowed SIP user which will be authenticated for DoorBird. E.g. \"sip:10.0.0.1:5060\" or \"sip:user@10.0.0.2:5060\"."
- id: sip_set_autocall_doorbell_url
label: SIP Set Autocall Doorbell URL
kind: action
params:
- name: action
type: string
description: Fixed value "settings"
- name: autocall_doorbell_url
type: string
description: "URL or \"none\"; DEPRECATED: use schedule.cgi. SIP URL to automatically call upon doorbell event. By the second doorbell event hangs theprevious call. Set to \"none\" to disable this automatic call. Default: \"none\""
Feedbacks
- id: info_response
type: object
description: Device information from info.cgi
query_command: "http://<device-ip>/bha-api/info.cgi"
fields:
- RETURNCODE
- VERSION[]: firmware, build_number, primary_mac_addr, relays, device_type
- id: session_response
type: object
description: Session information from getsession.cgi
query_command: "http://<device-ip>/bha-api/getsession.cgi"
fields:
- RETURNCODE
- SESSIONID
- NOTIFICATION_ENCRYPTION_KEY
- id: sip_status
type: object
description: SIP status from sip.cgi?action=status
query_command: "http://<device-ip>/bha-api/sip.cgi?action=status"
fields:
- LASTERRORCODE
- LASTERRORTEXT
- id: monitor_event
type: string
description: "Continuous multipart stream events: doorbell:H/L, motionsensor:H/L"
query_command: "http://<device-ip>/bha-api/monitor.cgi?ring=doorbell[,motionsensor]"
- id: live_video_stream
type: binary
description: Multipart JPEG video stream (multipart/x-mixed-replace)
query_command: "http://<device-ip>/bha-api/video.cgi"
- id: live_image
type: binary
description: JPEG image (image/jpeg)
query_command: "http://<device-ip>/bha-api/image.cgi"
- id: history_image
type: binary
description: JPEG history image (image/jpeg)
query_command: "http://<device-ip>/bha-api/history.cgi?<parameter>=<value>"
- id: audio_stream
type: binary
description: G.711 μ-law audio stream (audio/basic)
query_command: "http://<device-ip>/bha-api/audio-receive.cgi"
- id: favorites_list
type: object
description: JSON object with sip and http favorites
query_command: "http://<device-ip>/bha-api/favorites.cgi"
- id: schedules_list
type: array
description: JSON array of schedule entries
query_command: "http://<device-ip>/bha-api/schedule.cgi"
- id: udp_broadcast
type: object
description: Encrypted UDP event broadcast (ChaCha20-Poly1305)
fields:
- INTERCOM_ID
- EVENT
- TIMESTAMP
Variables
# UNRESOLVED: SIP settings are settable via sip.cgi?action=settings but documented
# as action parameters rather than discrete Variables. Consider recording as
# writable Variables: mic_volume, spk_volume, dtmf, relay1_passcode,
# incoming_call_enable, anc, ring_time_limit, call_time_limit
Events
# Events delivered via monitor.cgi (HTTP multipart) and UDP broadcasts:
- id: doorbell_event
description: Doorbell ring event
fields:
- doorbell number
- timestamp
- id: motion_event
description: Motion sensor triggered
fields:
- timestamp
# UNRESOLVED: RFID and keypad events mentioned as "coming soon"
Macros
# UNRESOLVED: No explicit multi-step macros documented in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: No explicit safety warnings or interlock procedures in source.
# Source notes: video/audio calls return 503 (Busy) when line is in use.
# Auth failures result in 423 (Blocked) after extensive wrong credentials.
Notes
The device supports Basic/Digest HTTP authentication (RFC 2617) or plaintext http-user/http-password parameters. Session IDs are valid for 10 minutes and obtained via getsession.cgi. Event monitoring uses ChaCha20-Poly1305 encrypted UDP broadcasts on ports 6524 and 35344 (v2, since November 2023). RTSP video is available on port 554 with RTSP-over-HTTP on port 8557. SIP operates on port 5060. The API handles maximum 1 concurrent connection per second; video/audio calls are limited to 1 simultaneous session. Video streaming can be interrupted when the official DoorBird App connects.
Provenance
source_domains:
- doorbird.com
source_urls:
- https://www.doorbird.com/downloads/api_lan.pdf
retrieved_at: 2026-10-07T18:44:57.038Z
last_checked_at: 2026-10-07T18:44:57.038Z
Verification Summary
verdict: verified
checked_at: 2026-10-07T18:44:57.038Z
matched_actions: 35
action_count: 35
confidence: medium
summary: "All 35 action units (25 actions, 10 query feedbacks) match source endpoints with correct shapes, transport values are supported, and the source catalogue is fully covered. (11 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "Serial (RS-232) control not mentioned in source"
- "HTTPS port 443 mentioned but not explicitly stated as configurable"
- "RTSP-over-HTTP port 8557 not confirmed as configurable"
- "SIP settings are settable via sip.cgi?action=settings but documented"
- "RFID and keypad events mentioned as \"coming soon\""
- "No explicit multi-step macros documented in source"
- "No explicit safety warnings or interlock procedures in source."
- "Serial/RS-232 control interface not documented"
- "Firmware version compatibility range not stated"
- "RFID and keypad events documented as \"coming soon\""
- "Voltage/power specifications not in source"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0