Projects
Projects allow employees to track time against specific tasks, clients, or cost centers. Each project has a unique code that can be used for quick assignment on devices or via the API. Projects can be organized into categories and assigned to specific employee groups.
The Project Object
- Name
id- Type
- string (UUID)
- Description
Unique identifier for the project.
- Name
archived_at- Type
- string (ISO 8601) or null
- Description
Timestamp when the project was archived, or
nullif active.
- Name
name- Type
- string
- Description
The project name. Required.
- Name
code- Type
- string
- Description
A short unique code for the project (used on devices and for quick assignment). Required.
- Name
color- Type
- string
- Description
Display color for the project.
- Name
category_id- Type
- string (UUID) or null
- Description
The project category ID.
- Name
category_name- Type
- string
- Description
The category name. Read-only.
- Name
group_assignments- Type
- array
- Description
Employee groups that have access to this project. Read-only.
- Name
device_assignments- Type
- array
- Description
Devices this project is assigned to. Read-only.
- Name
locations- Type
- array
- Description
GPS locations associated with the project, each with
longitude,latitude,max_distance, andaddress.
- Name
value_type- Type
- string
- Description
The type of value tracking for this project.
- Name
value- Type
- string
- Description
The configured value.
List all Projects
Retrieve a paginated list of projects.
Query Parameters
- Name
q- Type
- string
- Description
Search by project name or code.
- Name
codes- Type
- string
- Description
Filter by project codes, pipe-separated.
- Name
ids- Type
- string
- Description
Filter by project IDs, pipe-separated.
- Name
group_ids- Type
- string
- Description
Filter by assigned employee group IDs, pipe-separated.
- Name
category_ids- Type
- string
- Description
Filter by category IDs, pipe-separated.
- Name
archived- Type
- string
- Description
Filter by archive status:
true,false(default), orall.
- Name
recent- Type
- integer
- Description
Return projects used within the last N days.
- Name
for-employee- Type
- string (UUID)
- Description
Filter projects accessible to a specific employee.
- Name
modified_at__gte- Type
- string (ISO 8601)
- Description
Return only projects modified after this timestamp.
Request
curl -X GET "https://api.zeitstrom.com/api/v2/projects/projects/?q=website&archived=false" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Response
{
"count": 2,
"results": [
{
"id": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
"archived_at": null,
"name": "Website Redesign",
"code": "WEB-01",
"color": "#2196F3",
"category_id": "c1c1c1c1-c2c2-c3c3-c4c4-c5c5c5c5c5c5",
"category_name": "Development",
"group_assignments": [],
"device_assignments": [],
"locations": [],
"value_type": "none",
"value": null
}
]
}
Retrieve a Project
Get details of a specific project.
Request
curl -X GET "https://api.zeitstrom.com/api/v2/projects/projects/1a2b3c4d-5e6f-7890-abcd-ef1234567890/" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Create a Project
Create a new project.
- Name
name- Type
- string
- Description
The project name. Required.
- Name
code- Type
- string
- Description
A short unique code. Required.
- Name
color- Type
- string
- Description
Display color (hex code).
- Name
category_id- Type
- string (UUID)
- Description
Assign to a project category.
Request
curl -X POST "https://api.zeitstrom.com/api/v2/projects/projects/" \
-H "Authorization: Token <YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "Mobile App Development",
"code": "MOB-01",
"color": "#4CAF50",
"category_id": "c1c1c1c1-c2c2-c3c3-c4c4-c5c5c5c5c5c5"
}'
Update a Project
Update an existing project.
Request
curl -X PUT "https://api.zeitstrom.com/api/v2/projects/projects/1a2b3c4d-5e6f-7890-abcd-ef1234567890/" \
-H "Authorization: Token <YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "Website Redesign v2",
"code": "WEB-02",
"color": "#1565C0"
}'
Archive a Project
Archive a project. Archived projects cannot be assigned to new timespans but historical data is preserved.
Request
curl -X POST "https://api.zeitstrom.com/api/v2/projects/projects/1a2b3c4d-5e6f-7890-abcd-ef1234567890/archive/" \
-H "Authorization: Token <YOUR_API_TOKEN>"
Unarchive a Project
Restore a previously archived project.
Request
curl -X POST "https://api.zeitstrom.com/api/v2/projects/projects/1a2b3c4d-5e6f-7890-abcd-ef1234567890/unarchive/" \
-H "Authorization: Token <YOUR_API_TOKEN>"