Harbor Gateway
  1. Controllers
Harbor Gateway
  • Harbor Gateway API
    • Health & Status
      • Admin interface
      • Health check
    • Transactions
      • List all transactions
      • Create a transaction
      • Get transaction details
      • Release transaction
      • Open locker by transaction ID
    • Lockers
      • List all lockers
      • Get locker details
      • Open locker by ID
      • Open all lockers
    • System
      • Get system information
      • Update system configuration
      • Get system logs
    • Schemas
      • Locker
      • TransactionResponse
      • LockController
      • System
      • LogEntry
      • OperationResponse
      • LockerOperationResponse
      • MultiStatusOperationResponse
      • OpenAllLockersResponse
      • Error
  • Harbor Gateway Admin API
    • Authentication
      • Login with Basic Auth and receive session token
      • Logout and invalidate session token
    • Controllers
      • List all lock controllers
        GET
      • Manually add a lock controller
        POST
      • Trigger manual mDNS scan
        POST
      • Get controller details
        GET
      • Update controller settings
        PATCH
      • Remove controller from system
        DELETE
      • Replace a failed controller
        POST
      • Adjust locker count for controller
        PATCH
    • Lockers
      • Update locker service state
    • System
      • Refresh network information
      • Reboot gateway system
    • Diagnostics
      • Test Sentry error tracking integration
    • Schemas
      • Schemas
        • Controller
        • ControllerDetails
        • CreateControllerRequest
        • AdjustLockerCountResponse
        • OperationResponse
        • Error
      • Response
        • Unauthorized
        • NotFound
        • InternalServerError
  1. Controllers

Manually add a lock controller

POST
/controllers
Manually register a lock controller when mDNS auto-discovery is unavailable or fails.
Use cases:
mDNS service disabled on controller
Network configuration blocking mDNS broadcasts
Manual IP address configuration
Testing and development
Behavior:
Creates controller record with provided details
Automatically provisions specified number of lockers (default: 20)
Validates hostname uniqueness (duplicate hostnames rejected)
Logs operation with source tracking
Initial operational status set to true (health check will update)
Important:
Hostname must be unique in the system
If IP address provided, controller reachable via IP (mDNS optional)

Request

Authorization
Basic Auth
Send your HTTP requests with an
Authorization
header that contains the word Basic followed by a space and a base64-encoded string username:password
Example:
Authorization: Basic *****************
or
API Key
Add parameter in header
X-Session-Token
Example:
X-Session-Token: ********************
or
Body Params application/jsonRequired

Examples

Responses

🟢201Created
application/json
Controller created successfully
Body

🟠400Bad Request
🟠409Conflict
🔴500Internal Server Error
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location --request POST '/controllers' \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "South Bank",
    "hostname": "luxer-abc123.local",
    "ipAddress": "192.168.1.100",
    "port": 8080,
    "lockerCount": 20
}'
Response Response Example
201 - Example 1
{
    "success": true,
    "controller": {
        "id": 0,
        "name": "string",
        "hostname": "string",
        "ipAddress": "string",
        "port": 8080,
        "operational": true,
        "operationalLastChecked": "2019-08-24T14:15:22Z",
        "lastSeen": "2019-08-24T14:15:22Z",
        "reasonCode": "CONTROL_BOARD_UNREACHABLE",
        "reason": "string",
        "lockerCount": 0,
        "createdAt": "2019-08-24T14:15:22Z",
        "updatedAt": "2019-08-24T14:15:22Z"
    },
    "lockersCreated": 0
}
Modified at 2025-11-27 00:06:25
Previous
List all lock controllers
Next
Trigger manual mDNS scan
Built with