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 example12310orT10339. - 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 examplesiteoraccounts.report_recipient:trueto send this person the project's reports.primary:truefor 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.