Skip to main content
POST
/
sites
Create a site
curl --request POST \
  --url https://api.cula.tech/tracking/v1/sites \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'Cula-Org-Id: <cula-org-id>' \
  --data '
{
  "external_id": "GC-VND-ACKJAM",
  "name": "Ackerman Farms (James)",
  "address": {
    "street": "123 Farm Road",
    "city": "Dickinson",
    "postcode": "58601",
    "country": "United States",
    "country_code": "US"
  },
  "created_by_site": {
    "external_id": "GC-SITE-REFINERY"
  },
  "organisation": {
    "external_id": "GC-ORG-ACKJAM"
  }
}
'
{
  "id": "ste_01kqzcjrpyf27tge7875y20mmr",
  "external_id": "GC-VND-ACKJAM",
  "name": "Ackerman Farms (James)",
  "timezone": "America/Chicago",
  "coordinates": {
    "lat": 46.8792,
    "long": -102.7896
  },
  "address": {
    "street": "123 Farm Road",
    "city": "Dickinson",
    "postcode": "58601",
    "country": "United States",
    "country_code": "US"
  },
  "created_by_site": {
    "id": "ste_01kqzcjrpyf27tge6smsbnhkh5",
    "external_id": "GC-SITE-REFINERY"
  },
  "organisation": {
    "id": "org_01kqzcjrpyf27tge8c161z0b8h",
    "external_id": "GC-ORG-ACKJAM"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.cula.tech/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

OAuth2 client credentials flow. Exchange your client_id and client_secret for a short-lived access token, then pass it as a Bearer token in the Authorization header.

Headers

Cula-Org-Id
string
required

Organisation ID that scopes this request. The authenticated consumer must be authorized for this organisation. Omitting this header returns 400; passing an unauthorised org returns 403.

Body

application/json

Create a site, such as a supplier farm or customer facility. Provide at least one of coordinates or address. When address is provided, the server geocodes it and persists the resolved coordinates and canonical address. When both are provided, they must agree.

name
string
required
Example:

"Ackerman Farms (James)"

coordinates
object
required

Latitude/longitude of the site. Provide at least one of coordinates or address.

created_by_site
object
required

The site creating this record. Must be a site within your API key's scope.

Example:
{ "id": "ste_01kqzcjrpyf27tge6smsbnhkh5" }
organisation
object
required

The organisation this site is grouped under.

Example:
{ "id": "ste_01kqzcjrpyf27tge6smsbnhkh5" }
external_id
string

Partner-assigned identifier. Must be unique within the organisation.

address
object

Postal address of the site. Provide at least one of coordinates or address. The address is geocoded before saving.

Response

Site created.

id
string
required
Example:

"ste_01kqzcjrpyf27tge6smsbnhkh5"

name
string
required
Example:

"GreenCarbon Refinery"

coordinates
object
required

Latitude/longitude coordinates of the site.

external_id
string | null
timezone
string | null

IANA timezone identifier. Sites with created_by_site inherit the creating site's timezone when not explicitly set.

Example:

"America/Chicago"

address
object

Postal address of the site, if known.

created_by_site
object

The site that created this site record. Null for sites not created via the API.

organisation
object

The organisation that owns or operates this site.