Reference · POST /v1/sites

Create site

Create site
Add a new site under a customer you have access to. Requires the sites:write scope on your key. Useful when you onboard a new location and want to reference it in a job request immediately.

Request

curl -X POST -H "Authorization: Bearer fi_pk_…" \
  -H "Content-Type: application/json" \
  -d '{
    "customer": "245715",
    "business_name": "Acme Depot — Brand Drive",
    "address": "Unit 3/24 Brand Dr, Pimpama QLD 4209",
    "first_name": "Jane",
    "last_name": "Patel",
    "mobile_number": "+61400000000",
    "email": "site@acme.example",
    "notes": "Roller door access on east side.",
    "external_id": "client-site-001"
  }' \
  https://<host>/v1/sites

Response

{ "id": "3065756" }

Fields

customerrequired
string
Customer the site belongs to. Must be one of the customer IDs available to your key — fetch valid IDs from /v1/customers. Example: `"customer": "245715"`.
business_name
string
Display name for the site — what staff and field techs see. Brand + location works well for disambiguation. Example: `"Hungry Jacks — Swanston Street"`. ≤ 200 chars.
address
string
Postal/street address as a free-form string. Example: `"Unit 3/24 Brand Dr, Pimpama QLD 4209"`. ≤ 500 chars.
first_name
string
Primary contact at the site (e.g. site manager). ≤ 100 chars.
last_name
string
≤ 100 chars.
mobile_number
string
Contact phone in E.164 form is safest, but free-form is accepted. Example: `"+61400000000"`. ≤ 50 chars.
email
string
Contact email. ≤ 200 chars.
notes
string
Free-form notes about the site — access instructions, parking, gate codes. Visible to field techs. ≤ 2000 chars.
url
string
Optional URL — e.g. a link to the customer’s portal entry for this site. ≤ 500 chars.
external_id
string
Your own reference for the site — typically a record ID in your system. ≤ 36 chars.

Errors

400 invalid-body400 customer-not-in-scope401 unauthorized429 rate-limited

The new site appears in /v1/sites immediately and can be referenced as `site=` on POST /v1/jobs.