Work with records

Projects

Send a project to GeotechOS with its address, client and contacts. Keep your own project numbers, or let GeotechOS give them.

A project is a site or a contract. It has one client or more, the people to contact, and the jobs done on it.

Send a project

curl -s -X PUT "$GEOTECHOS_URL/projects/ext:P-500" \
  -H "Authorization: Bearer $GEOTECHOS_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example Estate Stage 2",
    "address": "14 Sample Road",
    "city": "Parramatta",
    "state": "NSW",
    "zip_code": "2150",
    "latitude": -33.8150,
    "longitude": 151.0011,
    "start_date": "2026-11-01",
    "client": {"ext": "C-19"},
    "contacts": [
      {"ext": "K-7", "role": "site", "report_recipient": true, "primary": true}
    ]
  }'
Field Notes
name Required
address, address_line_2, city, state, zip_code, country The site
latitude, longitude Decimal degrees. They put the project on the map
description, soil_description Free text
start_date, due_date Days, for example 2026-11-01
status, is_active, is_completed, is_archived The project's state
client A reference to a client
contacts The people on the project. See below
number Only for a key that keeps your project numbers. See below

Project numbers

GeotechOS gives each new project a number from the workspace's sequence, for example G-0042. The number comes back in data.number. Its jobs are numbered from it: G-0042-001.

Keep your own project numbers

If your system gives projects their numbers and people quote them, make the key with Keeps its own project numbers. whoami then shows "assigns_project_numbers": true.

  • Every new project must have number. GeotechOS keeps it as you send it, for example 12310 or T10339.
  • Its jobs are numbered from it: 12310-001.
  • A number that is already used in the workspace is refused with 422.
  • You cannot change a project's number later. Its jobs, dockets and reports carry it.

Name the client

client names the project's client. You can change it later while the project has one client. A project with more than one client, for example a separate client to bill, is refused with 409: change it in GeotechOS.

Name the contacts

contacts is a list of client contacts. Each item has ext or uuid, and can have:

  • role: free text, for example site or accounts.
  • report_recipient: true to send this person the project's reports.
  • primary: true for the main contact.

GeotechOS links each contact, or updates its link. A contact that you leave out of the list stays on the project, because the office may have added it.

Remove a project

There is no delete. Send "is_archived": true, or "is_completed": true when the work is done.