Skip to main content
POST
/
site
/
manual
/
create
Manually Create Site (Internal/Admin)
curl --request POST \
  --url https://{appDomain}/site/manual/create \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "site_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "site_name": "<string>",
  "hardware_hash": "<string>",
  "runbook_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "has_pulse": true
}'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "address": "<string>",
  "has_pulse": true,
  "uptime": "2 days, 5 hours, 10 minutes",
  "architecture_name": "<string>",
  "hardware_hash": "<string>",
  "serial_number": "<string>",
  "software_version": "<string>",
  "software_id": "<string>",
  "identity": "<string>",
  "last_seen_from": "127.0.0.1",
  "model": "<string>",
  "board_name": "<string>",
  "routerboard": true,
  "last_seen": "5 minutes ago",
  "last_seen_at": "2023-11-07T05:31:56Z",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "deleted_at": "2023-11-07T05:31:56Z",
  "scheduler_removal": "in 1 day"
}

Authorizations

Authorization
string
header
required

Standard JWT token obtained via a separate authentication process. Required for most user-facing API endpoints.

Body

application/json
customer_id
string<uuid>
required
site_id
string<uuid>
required
site_name
string
required
hardware_hash
string
required
runbook_id
string<uuid>
required
has_pulse
boolean
required

Response

Site created successfully. Returns the created site resource.

id
string<uuid>
name
string
address
string | null
has_pulse
boolean
uptime
string | null

Human-readable uptime string (e.g., "2 days, 5 hours, 10 minutes"). Null if no recent heartbeat.

Example:

"2 days, 5 hours, 10 minutes"

architecture_name
string | null
hardware_hash
string | null
serial_number
string | null
software_version
string | null
software_id
string | null
identity
string | null
last_seen_from
string<ipv4> | null

The public IP address the last heartbeat was received from.

model
string | null
board_name
string | null
routerboard
boolean | null
last_seen
string | null

Human-readable time since last heartbeat (e.g., "5 minutes ago").

Example:

"5 minutes ago"

last_seen_at
string<date-time> | null
created_at
string<date-time>
updated_at
string<date-time>
deleted_at
string<date-time> | null
scheduler_removal
string | null

Human-readable time until the scheduler removal job runs (after soft delete).

Example:

"in 1 day"

I