Skip to content

Connect a Camera to Beacon over FTP ​

This guide covers LPR camera delivery to Beacon over FTP.

Use this when the camera uploads snapshots over FTP. FTP and SFTP use different Beacon servers.

Prerequisites ​

Before you begin, make sure you have:

  • Access to your camera web interface
  • Your Camera Endpoint Username and Password from Beacon (Settings → Organization)
  • Your device ID from Beacon

Required camera fields ​

Configure the following in the camera FTP / file-upload settings:

  • Protocol: FTP
  • Server address: ftp.beaconlpr.com
  • Server port: 21
  • Username: camera endpoint username from Beacon
  • Password: camera endpoint password from Beacon
  • Parent directory: the camera manufacturer, or custom
  • Subdirectory: the Beacon device ID
  • Filename separator: _
  • Filename order: timestamp_deviceID_plate
  • Transfer trigger: upload the snapshot when an LPR event occurs

The SFTP path aws-transfer-ftp-bucket/images belongs to sftp.beaconlpr.com port 2222.

Directory ​

The upload path has two levels.

  1. Parent directory — camera manufacturer, or custom when the manufacturer is not one of the names below.
  2. Subdirectory — the Beacon device ID.

Parent directory names:

  • custom
  • Uniview
  • Hike Vision
  • Milesite
  • Speco
text
<manufacturer>/<device ID>/

Example:

text
Uniview/device-42/

File name ​

Separate each part with an underscore, in this order:

text
timestamp_deviceID_plate

Example:

text
2026-09-30T18:00:00Z_device-42_ABC123.jpg

When the camera does not put a plate in the file name, use none for the plate value:

text
timestamp_deviceID_none

Example:

text
2026-09-30T18:00:00Z_device-42_none.jpg

A full path looks like this:

text
Uniview/device-42/2026-09-30T18:00:00Z_device-42_ABC123.jpg

Example template ​

text
Protocol: FTP
Host: ftp.beaconlpr.com
Port: 21
Username: <camera endpoint username>
Password: <camera endpoint password>
Parent directory: Uniview
Subdirectory: <device ID>
Filename: <timestamp>_<device ID>_<plate>

Configure the camera ​

Enter these values in the camera FTP client:

FieldValue
ProtocolFTP
Serverftp.beaconlpr.com
Port21
UsernameCamera endpoint username
PasswordCamera endpoint password
Parent directorycustom, Uniview, Hike Vision, Milesite, or Speco
SubdirectoryBeacon device ID
Filename separator_
Filenametimestamp_deviceID_plate, or timestamp_deviceID_none when the camera has no plate value
UploadSnapshot on each plate read

Use passive FTP when the camera offers a transfer mode.

Expected behavior ​

After saving settings and generating an LPR event:

  • The camera uploads a snapshot to ftp.beaconlpr.com on port 21
  • The file is stored under <manufacturer>/<device ID>/
  • The file name is timestamp_deviceID_plate, or timestamp_deviceID_none when the camera has no plate value
  • Beacon ingests the file and creates an event for that device ID

Verify success ​

  1. Save the camera settings.
  2. Trigger one known plate read.
  3. Confirm the camera reports a successful FTP transfer.
  4. Confirm the file name uses _ and the order timestamp_deviceID_plate (or timestamp_deviceID_none).
  5. Confirm the read appears in Beacon for that device.

Troubleshooting ​

FTP login fails ​

  • Set the protocol to FTP
  • Set the server to ftp.beaconlpr.com and the port to 21
  • Re-copy the camera endpoint username and password from Settings → Organization
  • If the endpoint password was rotated, update the camera and test again

The camera cannot resolve the server ​

  • Confirm the camera DNS server can resolve ftp.beaconlpr.com
  • Confirm the camera network can reach the internet on TCP port 21

The upload path fails ​

  • Set the parent directory to custom, Uniview, Hike Vision, Milesite, or Speco
  • Set the subdirectory to the Beacon device ID
  • Keep the SFTP path aws-transfer-ftp-bucket/images off this server

The file arrives but Beacon shows no event ​

  • The subdirectory and the device ID inside the file name must match the Beacon device ID
  • File name parts must be separated by _
  • Order must be timestamp_deviceID_plate, or timestamp_deviceID_none when the camera does not supply a plate
  • Trigger a new read after saving the path and file name