Summary
Doorbird D2103V Series is a video door station supporting LAN-2-LAN API control over HTTP/HTTPS (TCP) and UDP event broadcasts. Supports door relay control, light activation, live video/audio streaming (MJPG and RTSP), SIP calling, and schedule-based automation. Authentication via Basic/Digest HTTP auth or plaintext HTTP parameters; encryption on port 443 with self-signed certificate.
Transport
protocols:
- http
- tcp
- udp
addressing:
port: 80 # HTTP (unencrypted)
# port 443 also available for HTTPS (encrypted) - port number not explicitly stated in source
auth:
type: basic # Basic or Digest auth per RFC 2617; plaintext http-user/http-password also supported
# UNRESOLVED: RTSP port 554 and SIP port 5060 mentioned in source but not explicitly numbered in this device's context - omitting per Tier 3 rule
Traits
# inferred from door open, light-on commands:
- actionable
# inferred from info.cgi returning JSON state:
- queryable
# inferred from monitor.cgi doorbell/motion event monitoring:
- observable
Actions
- id: open_door
label: Open Door
kind: action
params:
- name: r
type: string
description: "Relay to trigger, e.g. 1 or <doorcontrollerID>@<relay>. Omit for relay 1."
- id: light_on
label: Light On
kind: action
params: []
- id: get_session
label: Get Temporary Session ID
kind: action
params: []
# returns SESSIONID and NOTIFICATION_ENCRYPTION_KEY valid for 10 minutes
- id: invalidate_session
label: Invalidate Session ID
kind: action
params:
- name: invalidate
type: string
description: Session ID to invalidate
- id: get_info
label: Get Device Info
kind: action
params: []
# returns firmware version, build number, MAC address, relay config
- id: list_favorites
label: List Favorites
kind: action
params: []
- id: save_favorite
label: Add or Change Favorite
kind: action
params:
- name: action
type: string
description: Fixed value "save"
- name: type
type: string
description: "sip or http"
- name: title
type: string
description: Name/title of the favorite
- name: value
type: string
description: URL or SIP address
- name: id
type: integer
description: "Optional: ID of existing favorite to change"
- id: delete_favorite
label: Delete Favorite
kind: action
params:
- name: action
type: string
description: Fixed value "remove"
- name: type
type: string
description: "sip or http"
- name: id
type: integer
description: ID of the favorite to delete
- id: list_schedules
label: List Schedules
kind: action
params: []
- id: save_schedule
label: Add or Update Schedule Entry
kind: action
params:
- name: input
type: string
description: "doorbell, motion, rfid, fingerprint"
- name: param
type: string
description: "Doorbell number, transponder ID, or fingerprint ID"
- name: output
type: string
description: JSON array of output configurations
- id: delete_schedule
label: Delete Schedule Entry
kind: action
params:
- name: action
type: string
description: Fixed value "remove"
- name: input
type: string
description: "doorbell, motion, rfid"
- name: param
type: string
description: Doorbell number or transponder ID
- id: restart
label: Restart Device
kind: action
params: []
- 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_makecall
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: incoming_call_user
type: string
description: Allowed SIP user
- name: anc
type: integer
description: "0..1, acoustic noise cancellation"
- name: ring_time_limit
type: integer
description: "10..300, max ringing time in seconds"
- name: call_time_limit
type: integer
description: "30..300, max call duration in seconds"
- id: sip_status
label: SIP Status Query
kind: action
params:
- name: action
type: string
description: Fixed value "status"
- id: sip_reset
label: SIP Settings Reset
kind: action
params:
- name: action
type: string
description: Fixed value "reset"
- id: live_video
label: Live Video
kind: action
params: []
- id: live_image
label: Live Image
kind: action
params: []
- id: history_image
label: History Image
kind: action
params:
- name: index
type: integer
description: "1..50"
- name: event
type: string
description: "doorbell|motionsensor"
- id: monitor
label: Monitor Events
kind: action
params:
- name: ring
type: string
description: "doorbell|motionsensor"
- id: live_audio_receive
label: Live Audio Receive
kind: action
params: []
- id: live_audio_transmit
label: Live Audio Transmit
kind: action
params: []
- id: rtsp_live_video
label: RTSP Live Video
kind: action
params:
- name: path
type: string
description: "/mpeg/media.amp, /mpeg/720p/media.amp, /mpeg/1080p/media.amp"
Feedbacks
- id: open_door_response
type: json
description: JSON with RETURNCODE indicating success/failure
- id: light_on_response
type: json
description: JSON with RETURNCODE indicating success/failure
- id: session_response
type: json
description: JSON containing SESSIONID and NOTIFICATION_ENCRYPTION_KEY
query_command: /bha-api/getsession.cgi
- id: device_info
type: json
description: JSON with FIRMWARE, BUILD_NUMBER, PRIMARY_MAC_ADDR, RELAYS, DEVICE-TYPE
query_command: /bha-api/info.cgi
- id: favorites_list
type: json
description: JSON object with sip and http favorites
query_command: /bha-api/favorites.cgi
- id: schedule_list
type: json
description: JSON array of schedule entries with input, param, output
query_command: /bha-api/schedule.cgi
- id: restart_response
type: http_status
description: 200 OK, 401 auth required, or 503 device busy
- id: sip_status_response
type: json
description: JSON with LASTERRORCODE and LASTERRORTEXT
query_command: /bha-api/sip.cgi?action=status
- id: sip_settings_response
type: http_status
description: 200 OK or 401 auth required
Variables
# UNRESOLVED: no discrete settable parameters found outside of SIP settings action
# SIP settings (mic_volume, spk_volume, dtmf, etc.) are covered by sip_settings action
Events
- id: doorbell_event
type: string
description: Doorbell press event, sent via UDP broadcast on ports 6524 and 35344 (v2, ChaCha20-Poly1305 encrypted). Event field is "doorbell" padded to 8 chars.
- id: motionsensor_event
type: string
description: Motion sensor triggered event, sent via UDP broadcast on ports 6524 and 35344 (v2, ChaCha20-Poly1305 encrypted). Event field is "motion" padded to 8 chars.
- id: rfid_event
description: "Coming soon per source - UNRESOLVED: not implemented yet"
- id: keypad_event
description: "Coming soon per source - UNRESOLVED: not implemented yet"
# UDP event structure (v2):
# - IDENT: 0xDE 0xAD 0xBE (3 bytes)
# - VERSION: 0x02 (1 byte)
# - NONCE: 8 bytes
# - CIPHERTEXT: 34 bytes (ChaCha20-Poly1305)
# After decryption:
# - INTERCOM_ID: 6 chars (first 6 of username)
# - EVENT: 8 chars (doorbell number or "motion ")
# - TIMESTAMP: 4 bytes Unix timestamp
Macros
# UNRESOLVED: no explicit multi-step macros defined in source
# Schedule entries (schedule.cgi) provide event-driven automation combining inputs/outputs
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no explicit safety warnings or interlock procedures stated in source
# Note: audio transmission requires client-side AEC/ANR - not a device safety field but a implementation requirement
# Note: SIP calls auto-terminate at 180 seconds for security
Notes
- HTTP API rate limit: 1 concurrent connection per second for API access
- Wrong authentication blocks IP/user for 1 minute (HTTP 423)
- Live video/audio streams may be interrupted when official DoorBird App takes precedence
- Permission "watch always" or recent ring event required for live stream access
- Monitor stream: up to 8 concurrent streams allowed; HTTP 509 when all busy
- Video streams (MJPG): up to 8 fps depending on network/load
- RTSP streams: up to 12 fps; uses standard RTSP auth (no parameter auth)
- RTSP port 554 and RTSP-over-HTTP port 8557 mentioned in source
- Audio codec: G.711 μ-law, 8000 Hz sampling rate
- SIP runs on port 5060 (mentioned for P2P mode)
- Schedule time units are seconds since 1.1.1970 UTC; weekdays slots in 30-minute increments (1800 seconds)
- Favorites and schedules require firmware 000110 or higher
- UDP keep-alive broadcasts sent every 7 seconds on ports 6524 and 35344
- Session ID valid for 10 minutes; NOTIFICATION_ENCRYPTION_KEY valid until password change
- Autocall_doorbell_url is deprecated in favor of schedule.cgi
Provenance
source_domains:
- doorbird.com
source_urls:
- https://www.doorbird.com/downloads/api_lan.pdf
retrieved_at: 2026-05-14T10:39:02.971Z
last_checked_at: 2026-10-07T18:12:55.018Z
Verification Summary
verdict: verified
checked_at: 2026-10-07T18:12:55.018Z
matched_actions: 30
action_count: 30
confidence: medium
summary: "All 30 action units match source endpoints and parameters, transport values are supported, and the source's roughly 25 commands are fully covered. (9 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "device firmware compatibility range not stated in source"
- "RTSP port 554 and SIP port 5060 mentioned in source but not explicitly numbered in this device's context - omitting per Tier 3 rule"
- "no discrete settable parameters found outside of SIP settings action"
- "not implemented yet\""
- "no explicit multi-step macros defined in source"
- "no explicit safety warnings or interlock procedures stated in source"
- "RTSP port explicitly stated as 554 but source gives this as default without confirming D2103V-specific port"
- "HTTPS port 443 mentioned as default but not explicitly confirmed for D2103V Series"
- "full GPIO/relay pinout not detailed beyond relay numbers 1, 2, and DoorController format"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0