This is the Time Tracker App API Documentation
This documentation aims to provide all the information you need to work with our API.
This API is not authenticated.
Field to paginate. Defaults to true.
Field to paginate. Defaults to null.
Field to paginate. Defaults to null.
Field to filterBy. Defaults to null.
Field to filterValue. Defaults to null.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/activities?paginate=1&page=1&perPage=1&filterBy=name&filterValue=Car" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"list": [
{
"id": 3,
"name": "Doe",
"created_at": "2024-03-04T08:46:33.000000Z",
"updated_at": "2024-03-04T08:46:33.000000Z"
},
{
"id": 2,
"name": "Jane",
"created_at": "2024-03-04T08:46:33.000000Z",
"updated_at": "2024-03-04T08:46:33.000000Z"
},
{
"id": 1,
"name": "John",
"created_at": "2024-03-04T08:46:33.000000Z",
"updated_at": "2024-03-04T08:46:33.000000Z"
}
],
"pagination": {
"total": 3,
"per_page": 10,
"current": 1,
"first": 1,
"last": 1,
"previous": null,
"next": null,
"pages": [
1
],
"from": 1,
"to": 3
}
}
}
Store new division
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/activities" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": [
\"azgpliiqthpawbhd\"
]
}"
{
"success": true,
"status_code": 201,
"message": [
"Record created successfully."
],
"data": [
{
"name": "John",
"updated_at": "2024-03-04T08:46:33.000000Z",
"created_at": "2024-03-04T08:46:33.000000Z",
"id": 1
},
{
"name": "Jane",
"updated_at": "2024-03-04T08:46:33.000000Z",
"created_at": "2024-03-04T08:46:33.000000Z",
"id": 2
},
{
"name": "Doe",
"updated_at": "2024-03-04T08:46:33.000000Z",
"created_at": "2024-03-04T08:46:33.000000Z",
"id": 3
}
]
}
Show existing by id
The ID of the activity.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/activities/1" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"id": 2,
"name": "Jane",
"capabilities": [
{
"id": 1,
"name": "John",
"created_at": "2024-03-04T08:46:13.000000Z",
"updated_at": "2024-03-04T08:46:13.000000Z"
}
],
"created_at": "2024-03-04T08:46:33.000000Z",
"updated_at": "2024-03-04T08:46:33.000000Z"
}
}
update by id
The ID of the activity.
curl --request PUT \
"https://time-tracker-backend.pinnguaq.com/api/admin/activities/1" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"sejeyzwwytgfdxzgixophbnuw\"
}"
{
"success": true,
"status_code": 200,
"message": [
"Record updated successfully."
],
"data": true
}
The ID of the activity.
curl --request DELETE \
"https://time-tracker-backend.pinnguaq.com/api/admin/activities/1" \
--header "Content-Type: application/json" \
--header "Accept: application/json" [Empty response]
Each entry represents an observed mutation (create / update / delete) derived from the audit columns + soft-delete timestamps. We can't reconstruct a full change history without an events table, but the "who touched this last and when" view is enough to answer the common "why is this number off?" question.
Default 1.
Default 25. Max 100.
Optional — filter to a single record's history.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/activity-log?page=8&perPage=19&time_record_id=%22abc-123%22" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": false,
"status": 401,
"message": [
"You are not authenticated. Please login."
],
"data": []
}
APIs for managing Auth
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/login" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"firebase_token\": \"est\"
}"
Exchanges an existing (possibly expired-but-within-refresh-window) JWT for a new one. Public — the endpoint reads the current token from the Authorization header so the access-token expiry middleware can't reject us first.
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/refresh" \
--header "Content-Type: application/json" \
--header "Accept: application/json" curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/logout" \
--header "Content-Type: application/json" \
--header "Accept: application/json" curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/profile" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": false,
"status": 401,
"message": [
"You are not authenticated. Please login."
],
"data": []
}
curl --request PUT \
"https://time-tracker-backend.pinnguaq.com/api/admin/profile/update" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"first_name\": \"jswuhbped\",
\"last_name\": \"seegndhxlovseocubzpkqn\",
\"phone\": \"uhilhrdxmamogkeaoizydxa\",
\"password\": \"E!xjlJ%cd\'P&uU27($\",
\"picture\": \"http:\\/\\/connelly.com\\/in-sed-velit-non-nulla-quo-vel-mollitia-aut\"
}"
Field to paginate. Defaults to true.
Field to paginate. Defaults to null.
Field to paginate. Defaults to null.
Field to filterBy. Defaults to null.
Field to filterValue. Defaults to null.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/capabilities?paginate=1&page=1&perPage=1&filterBy=name&filterValue=Car" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"list": [
{
"id": 3,
"name": "Doe",
"created_at": "2024-03-04T08:46:13.000000Z",
"updated_at": "2024-03-04T08:46:13.000000Z"
},
{
"id": 2,
"name": "Jane",
"created_at": "2024-03-04T08:46:13.000000Z",
"updated_at": "2024-03-04T08:46:13.000000Z"
},
{
"id": 1,
"name": "John",
"created_at": "2024-03-04T08:46:13.000000Z",
"updated_at": "2024-03-04T08:46:13.000000Z"
}
],
"pagination": {
"total": 3,
"per_page": 10,
"current": 1,
"first": 1,
"last": 1,
"previous": null,
"next": null,
"pages": [
1
],
"from": 1,
"to": 3
}
}
}
Store new capability
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/capabilities" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": [
\"acx\"
]
}"
{
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"id": 2,
"name": "Jane",
"divisions": [
{
"id": 1,
"name": "John",
"created_at": "2024-02-28T15:43:48.000000Z",
"updated_at": "2024-02-28T15:43:48.000000Z"
}
],
"created_at": "2024-03-04T08:46:13.000000Z",
"updated_at": "2024-03-04T08:46:13.000000Z"
}
}
Show existing by id
The ID of the capability.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/capabilities/44" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"id": 1,
"project_no": "1",
"name": "John",
"created_at": "2024-02-26T12:36:12.000000Z",
"updated_at": "2024-02-26T12:36:12.000000Z",
"deleted_at": null
}
}
update by id
The ID of the capability.
curl --request PUT \
"https://time-tracker-backend.pinnguaq.com/api/admin/capabilities/44" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"nwfbedhwxvoklg\"
}"
{
"success": true,
"status_code": 200,
"message": [
"Record updated successfully."
],
"data": true
}
The ID of the capability.
curl --request DELETE \
"https://time-tracker-backend.pinnguaq.com/api/admin/capabilities/44" \
--header "Content-Type: application/json" \
--header "Accept: application/json" [Empty response]
Show a division with its full nested taxonomy: its custom labels, the capabilities attached to it (each with their activities), and its projects. Used by the admin taxonomy manager.
The ID of the division.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/divisions/65/taxonomy" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": false,
"status": 401,
"message": [
"You are not authenticated. Please login."
],
"data": []
}
Soft-delete this division's capabilities (and their activities) and projects, for a clean slate. The division's name, labels, and members are kept. Soft-delete (not a hard delete) so existing time entries are not affected and the data is recoverable.
The ID of the division.
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/divisions/65/reset-taxonomy" \
--header "Content-Type: application/json" \
--header "Accept: application/json" Field to paginate. Defaults to true.
Field to paginate. Defaults to null.
Field to paginate. Defaults to null.
Field to filterBy. Defaults to null.
Field to filterValue. Defaults to null.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/divisions?paginate=1&page=1&perPage=1&filterBy=name&filterValue=Car" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": [
{
"id": 3,
"name": "Doe",
"created_at": "2024-02-28T15:43:48.000000Z",
"updated_at": "2024-02-28T15:43:48.000000Z"
},
{
"id": 2,
"name": "Jane",
"created_at": "2024-02-28T15:43:48.000000Z",
"updated_at": "2024-02-28T15:43:48.000000Z"
},
{
"id": 1,
"name": "John",
"created_at": "2024-02-28T15:43:48.000000Z",
"updated_at": "2024-02-28T15:43:48.000000Z"
}
]
}
Store new division
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/divisions" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": [
\"hkeqgttiyvrfmzecegqnvtpri\"
]
}"
{
"success": true,
"status_code": 201,
"message": [
"Record created successfully."
],
"data": [
{
"name": "John",
"updated_at": "2024-03-05T16:00:43.000000Z",
"created_at": "2024-03-05T16:00:43.000000Z",
"id": 4
},
{
"name": "Jane",
"updated_at": "2024-03-05T16:00:43.000000Z",
"created_at": "2024-03-05T16:00:43.000000Z",
"id": 5
},
{
"name": "Doe",
"updated_at": "2024-03-05T16:00:43.000000Z",
"created_at": "2024-03-05T16:00:43.000000Z",
"id": 6
}
]
}
Show existing by id
The ID of the division.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/divisions/65" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"id": 1,
"name": "John",
"created_at": "2024-02-28T15:43:48.000000Z",
"updated_at": "2024-02-28T15:43:48.000000Z"
}
}
update by id
The ID of the division.
curl --request PUT \
"https://time-tracker-backend.pinnguaq.com/api/admin/divisions/65" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"dsvkwewgnpcoqwmnqktqwqs\",
\"capability_label\": \"ixxgbudeglalefohfbe\",
\"activity_label\": \"kxfpkxulwpwzxa\",
\"project_label\": \"zwbw\",
\"user_ids\": [
\"eligendi\"
]
}"
{
"success": true,
"status_code": 200,
"message": [
"Record updated successfully."
],
"data": true
}
The ID of the division.
curl --request DELETE \
"https://time-tracker-backend.pinnguaq.com/api/admin/divisions/65" \
--header "Content-Type: application/json" \
--header "Accept: application/json" [Empty response]
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/9b97b9c9-b8fb-41df-98f0-8424b51eaab9/multiple-delete" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
Field to paginate. Defaults to true.
Field to paginate. Defaults to null.
Field to paginate. Defaults to null.
Field to filterBy. Defaults to null.
Field to filterValue. Defaults to null.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/projects?paginate=1&page=1&perPage=1&filterBy=name&filterValue=Car" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"list": [
{
"id": 3,
"project_no": "34545",
"name": "Doe",
"created_at": "2024-03-04T08:49:22.000000Z",
"updated_at": "2024-03-04T08:49:22.000000Z"
},
{
"id": 2,
"project_no": "23555",
"name": "Jane",
"created_at": "2024-03-04T08:49:22.000000Z",
"updated_at": "2024-03-04T08:49:22.000000Z"
},
{
"id": 1,
"project_no": "14345",
"name": "John",
"created_at": "2024-03-04T08:49:22.000000Z",
"updated_at": "2024-03-04T08:49:22.000000Z"
}
],
"pagination": {
"total": 3,
"per_page": 10,
"current": 1,
"first": 1,
"last": 1,
"previous": null,
"next": null,
"pages": [
1
],
"from": 1,
"to": 3
}
}
}
Store new project
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/projects" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 201,
"message": [
"Record created successfully."
],
"data": [
{
"project_no": "15466",
"name": "John",
"updated_at": "2024-03-04T08:49:22.000000Z",
"created_at": "2024-03-04T08:49:22.000000Z",
"id": 1
},
{
"project_no": "24565",
"name": "Jane",
"updated_at": "2024-03-04T08:49:22.000000Z",
"created_at": "2024-03-04T08:49:22.000000Z",
"id": 2
},
{
"project_no": "36556",
"name": "Doe",
"updated_at": "2024-03-04T08:49:22.000000Z",
"created_at": "2024-03-04T08:49:22.000000Z",
"id": 3
}
]
}
Show existing by id
The ID of the project.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/projects/16" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"id": 1,
"project_no": "1",
"name": "John",
"created_at": "2024-02-26T12:36:12.000000Z",
"updated_at": "2024-02-26T12:36:12.000000Z",
"deleted_at": null
}
}
update by id
The ID of the project.
curl --request PUT \
"https://time-tracker-backend.pinnguaq.com/api/admin/projects/16" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"project_no\": \"ldvhkdtcptkyxkamadzbihjab\",
\"name\": \"shzjbkjsriaqh\"
}"
{
"success": true,
"status_code": 200,
"message": [
"Record updated successfully."
],
"data": true
}
The ID of the project.
curl --request DELETE \
"https://time-tracker-backend.pinnguaq.com/api/admin/projects/16" \
--header "Content-Type: application/json" \
--header "Accept: application/json" [Empty response]
Start of the date range (inclusive).
End of the date range (inclusive).
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/reports/summary?from=2026-05-01&to=2026-05-31" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": false,
"status": 401,
"message": [
"You are not authenticated. Please login."
],
"data": []
}
Each row carries an absolute hours value and a share (% of total).
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/reports/by-project" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": false,
"status": 401,
"message": [
"You are not authenticated. Please login."
],
"data": []
}
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/reports/by-capability" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": false,
"status": 401,
"message": [
"You are not authenticated. Please login."
],
"data": []
}
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/reports/by-division" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": false,
"status": 401,
"message": [
"You are not authenticated. Please login."
],
"data": []
}
Includes active users with zero logged hours so execs can see who is under-utilizing (rather than only seeing the people who already submitted cards).
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/reports/by-user" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": false,
"status": 401,
"message": [
"You are not authenticated. Please login."
],
"data": []
}
Powers the allocation readout on the Update User panel.
The ID of the user.
Start of the date range (inclusive).
End of the date range (inclusive).
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/reports/user/9b97b9dd-2cd5-4a7c-84b9-9b5ef2600040?from=2026-06-01&to=2026-06-30" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": false,
"status": 401,
"message": [
"You are not authenticated. Please login."
],
"data": []
}
Start of the date range (inclusive).
End of the date range (inclusive).
day|week|month. Default: week.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/reports/timeseries?from=2026-01-01&to=2026-05-14&group_by=week" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": false,
"status": 401,
"message": [
"You are not authenticated. Please login."
],
"data": []
}
Field to paginate. Defaults to true.
Field to paginate. Defaults to null.
Field to paginate. Defaults to null.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/time-records/trashed?paginate=1&page=1&perPage=1" \
--header "Content-Type: application/json" \
--header "Accept: application/json" cache-control
: no-cache, private
content-type
: application/json
vary
: Origin
{
"success": false,
"status": 401,
"message": [
"You are not authenticated. Please login."
],
"data": []
}
The ID of the time record.
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/time-records/34/restore" \
--header "Content-Type: application/json" \
--header "Accept: application/json" Already-approved entries in the batch are refreshed; rejected entries are also flipped to approved. Records the operator returns 200 with the count of rows touched so the UI can confirm.
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/time-records/bulk-approve" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"ids\": [
\"tempora\"
]
}"
Sets status to 'approved', stamps approver + timestamp, and clears any prior rejection. Idempotent: re-approving an already-approved record refreshes the approver/timestamp.
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/time-records/34/approve" \
--header "Content-Type: application/json" \
--header "Accept: application/json" curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/time-records/34/reject" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"reason\": \"\\\"Missing project allocation\\\"\"
}"
Field to paginate. Defaults to true.
Field to paginate. Defaults to null.
Field to paginate. Defaults to null.
Field to filterBy. Defaults to null.
Field to filterValue. Defaults to null.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/time-records?paginate=1&page=1&perPage=1&filterBy=date&filterValue=2024-02-28" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"list": [
{
"id": 6,
"user_id": "9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"division_id": 1,
"capability_id": 1,
"activity_id": 1,
"project_id": 1,
"user": {
"id": "9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"username": "pinnguaq-9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"first_name": "Updated John2",
"last_name": "Updated Do2e",
"phone": "98765432120",
"email": "updated.j12ohn.doe@example.com",
"email_verified_at": null,
"role": "user",
"picture": "profile.png",
"created_at": "2024-03-04T08:47:58.000000Z",
"updated_at": "2024-03-04T08:47:58.000000Z",
"deleted_at": null
},
"capability": {
"id": 1,
"name": "John",
"created_at": "2024-03-04T08:46:13.000000Z",
"updated_at": "2024-03-04T08:46:13.000000Z"
},
"activity": {
"id": 1,
"name": "John",
"created_at": "2024-03-04T08:46:33.000000Z",
"updated_at": "2024-03-04T08:46:33.000000Z"
},
"project": {
"id": 1,
"project_no": "1",
"name": "John",
"created_at": "2024-03-04T08:49:22.000000Z",
"updated_at": "2024-03-04T08:49:22.000000Z"
},
"date": "2024-03-01",
"note": "This is a sample note",
"time_spent": "2 hours",
"created_at": "2024-03-04T08:50:46.000000Z",
"updated_at": "2024-03-04T08:50:46.000000Z"
},
{
"id": 5,
"user_id": "9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"division_id": 1,
"capability_id": 1,
"activity_id": 1,
"project_id": 1,
"user": {
"id": "9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"username": "pinnguaq-9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"first_name": "Updated John2",
"last_name": "Updated Do2e",
"phone": "98765432120",
"email": "updated.j12ohn.doe@example.com",
"email_verified_at": null,
"role": "user",
"picture": "profile.png",
"created_at": "2024-03-04T08:47:58.000000Z",
"updated_at": "2024-03-04T08:47:58.000000Z",
"deleted_at": null
},
"capability": {
"id": 1,
"name": "John",
"created_at": "2024-03-04T08:46:13.000000Z",
"updated_at": "2024-03-04T08:46:13.000000Z"
},
"activity": {
"id": 1,
"name": "John",
"created_at": "2024-03-04T08:46:33.000000Z",
"updated_at": "2024-03-04T08:46:33.000000Z"
},
"project": {
"id": 1,
"project_no": "1",
"name": "John",
"created_at": "2024-03-04T08:49:22.000000Z",
"updated_at": "2024-03-04T08:49:22.000000Z"
},
"date": "2024-03-01",
"note": "This is a sample note",
"time_spent": "2 hours",
"created_at": "2024-03-04T08:49:43.000000Z",
"updated_at": "2024-03-04T08:49:43.000000Z"
},
{
"id": 4,
"user_id": "9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"division_id": 1,
"capability_id": 1,
"activity_id": 1,
"project_id": 1,
"user": {
"id": "9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"username": "pinnguaq-9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"first_name": "Updated John2",
"last_name": "Updated Do2e",
"phone": "98765432120",
"email": "updated.j12ohn.doe@example.com",
"email_verified_at": null,
"role": "user",
"picture": "profile.png",
"created_at": "2024-03-04T08:47:58.000000Z",
"updated_at": "2024-03-04T08:47:58.000000Z",
"deleted_at": null
},
"capability": {
"id": 1,
"name": "John",
"created_at": "2024-03-04T08:46:13.000000Z",
"updated_at": "2024-03-04T08:46:13.000000Z"
},
"activity": {
"id": 1,
"name": "John",
"created_at": "2024-03-04T08:46:33.000000Z",
"updated_at": "2024-03-04T08:46:33.000000Z"
},
"project": {
"id": 1,
"project_no": "1",
"name": "John",
"created_at": "2024-03-04T08:49:22.000000Z",
"updated_at": "2024-03-04T08:49:22.000000Z"
},
"date": "2024-03-02",
"note": "This is a sample note",
"time_spent": "2 hours",
"created_at": "2024-03-04T08:49:38.000000Z",
"updated_at": "2024-03-04T08:49:38.000000Z"
}
],
"pagination": {
"total": 3,
"per_page": 10,
"current": 1,
"first": 1,
"last": 1,
"previous": null,
"next": null,
"pages": [
1
],
"from": 1,
"to": 3
}
}
}
Store new divsion
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/time-records" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"division_id\": 17,
\"capability_id\": 20,
\"activity_id\": 20,
\"project_id\": 18,
\"activity_info\": \"sequi\",
\"date\": \"2026-06-22T14:43:03\",
\"note\": \"ut\",
\"time_spent\": \"rem\",
\"google_event_id\": \"accusantium\",
\"version\": 9,
\"user_id\": \"maiores\"
}"
{
"success": true,
"status_code": 201,
"message": [
"Record created successfully."
],
"data": {
"id": 6,
"user_id": "9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"division_id": 1,
"capability_id": 1,
"activity_id": 1,
"project_id": 1,
"date": "2024-03-01",
"note": "This is a sample note",
"time_spent": "2 hours",
"created_at": "2024-03-04T08:50:46.000000Z",
"updated_at": "2024-03-04T08:50:46.000000Z",
"deleted_at": null
}
}
Show existing by id
The ID of the time record.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/time-records/34" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"id": 4,
"user_id": "9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"division_id": 1,
"capability_id": 1,
"activity_id": 1,
"project_id": 1,
"user": {
"id": "9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"username": "pinnguaq-9b7b60d5-20bd-40cd-ac33-f8bf84749c02",
"first_name": "Updated John2",
"last_name": "Updated Do2e",
"phone": "98765432120",
"email": "updated.j12ohn.doe@example.com",
"email_verified_at": null,
"role": "user",
"picture": "profile.png",
"created_at": "2024-03-04T08:47:58.000000Z",
"updated_at": "2024-03-04T08:47:58.000000Z",
"deleted_at": null
},
"capability": {
"id": 1,
"name": "John",
"created_at": "2024-03-04T08:46:13.000000Z",
"updated_at": "2024-03-04T08:46:13.000000Z"
},
"activity": {
"id": 1,
"name": "John",
"created_at": "2024-03-04T08:46:33.000000Z",
"updated_at": "2024-03-04T08:46:33.000000Z"
},
"project": {
"id": 1,
"project_no": "1",
"name": "John",
"created_at": "2024-03-04T08:49:22.000000Z",
"updated_at": "2024-03-04T08:49:22.000000Z"
},
"date": "2024-03-02",
"note": "This is a sample note",
"time_spent": "2 hours",
"created_at": "2024-03-04T08:49:38.000000Z",
"updated_at": "2024-03-04T08:49:38.000000Z"
}
}
update by id
The ID of the time record.
curl --request PUT \
"https://time-tracker-backend.pinnguaq.com/api/admin/time-records/34" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"division_id\": 14,
\"capability_id\": 2,
\"activity_id\": 18,
\"project_id\": 2,
\"activity_info\": \"ut\",
\"date\": \"2026-06-22T14:43:03\",
\"note\": \"aut\",
\"time_spent\": \"architecto\",
\"google_event_id\": \"ipsam\",
\"version\": 11,
\"user_id\": \"quisquam\"
}"
{
"success": true,
"status_code": 200,
"message": [
"Record updated successfully."
],
"data": true
}
The ID of the time record.
curl --request DELETE \
"https://time-tracker-backend.pinnguaq.com/api/admin/time-records/34" \
--header "Content-Type: application/json" \
--header "Accept: application/json" [Empty response]
Field to paginate. Defaults to true.
Field to paginate. Defaults to null.
Field to paginate. Defaults to null.
Field to filterBy. Defaults to null.
Field to filterValue. Defaults to null.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/users?paginate=1&page=1&perPage=1&filterBy=name&filterValue=Car" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"list": [
{
"id": "9b978e30-40bf-42d6-97b0-5c205879a375",
"username": "user",
"first_name": "Jane",
"last_name": "Doe",
"phone": "1234567890",
"email": "user@example.com",
"email_verified_at": "2024-03-18T08:57:58.000000Z",
"profile": "user.jpg",
"is_active": "1",
"created_at": "2024-03-18T08:57:58.000000Z",
"updated_at": "2024-03-18T08:57:58.000000Z",
"deleted_at": null
},
{
"id": "9b978e2f-b0ad-4bca-8d15-0fb0e3c0af11",
"username": "user1",
"first_name": "John",
"last_name": "Doe",
"phone": null,
"email": "user1@example.com",
"email_verified_at": null,
"profile": "admin.jpg",
"is_active": "1",
"created_at": "2024-03-18T08:57:58.000000Z",
"updated_at": "2024-03-18T08:57:58.000000Z",
"deleted_at": null
}
],
"pagination": {
"total": 2,
"per_page": 10,
"current": 1,
"first": 1,
"last": 1,
"previous": null,
"next": null,
"pages": [
1
],
"from": 1,
"to": 2
}
}
}
Store new divsion
curl --request POST \
"https://time-tracker-backend.pinnguaq.com/api/admin/users" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 201,
"message": [
"Record created successfully."
],
"data": [
{
"first_name": "Updated John",
"last_name": "Updated Doe",
"phone": "9876543210",
"email": "updated.john.doe@example.com",
"picture": "profile.png",
"id": "9b97b9dd-2cd5-4a7c-84b9-9b5ef2600040",
"username": "user-9b97b9dd-2cd5-4a7c-84b9-9b5ef2600040",
"updated_at": "2024-03-18T11:00:06.000000Z",
"created_at": "2024-03-18T11:00:06.000000Z"
}
]
}
Show existing by id
The ID of the user.
curl --request GET \
--get "https://time-tracker-backend.pinnguaq.com/api/admin/users/9b97b9dd-2cd5-4a7c-84b9-9b5ef2600040" \
--header "Content-Type: application/json" \
--header "Accept: application/json" {
"success": true,
"status_code": 200,
"message": [
"Record fetched successfully."
],
"data": {
"id": "9b978e30-40bf-42d6-97b0-5c205879a375",
"username": "user",
"first_name": "Jane",
"last_name": "Doe",
"phone": "1234567890",
"email": "user@example.com",
"email_verified_at": "2024-03-18T08:57:58.000000Z",
"profile": "user.jpg",
"is_active": "1",
"created_at": "2024-03-18T08:57:58.000000Z",
"updated_at": "2024-03-18T08:57:58.000000Z",
"deleted_at": null,
"divisions": [
{
"id": 1,
"name": "John",
"created_at": "2024-02-28T15:43:48.000000Z",
"updated_at": "2024-02-28T15:43:48.000000Z",
"deleted_at": null,
"pivot": {
"user_id": "9b978e30-40bf-42d6-97b0-5c205879a375",
"division_id": 1
}
},
{
"id": 3,
"name": "Doe",
"created_at": "2024-02-28T15:43:48.000000Z",
"updated_at": "2024-02-28T15:43:48.000000Z",
"deleted_at": null,
"pivot": {
"user_id": "9b978e30-40bf-42d6-97b0-5c205879a375",
"division_id": 3
}
}
]
}
}
update by id
The ID of the user.
curl --request PUT \
"https://time-tracker-backend.pinnguaq.com/api/admin/users/9b97b9dd-2cd5-4a7c-84b9-9b5ef2600040" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"first_name\": \"oxrqckjqbgeyxwe\",
\"last_name\": \"vligmodrysvglqqnsgmgnqd\",
\"username\": \"aumljqhvfflfjnkcomqyn\",
\"phone\": \"guivkxpqyeokimtdddybjol\",
\"email\": \"kshlerin.otilia@example.net\",
\"password\": \"P99}iG}`=%`Y33|\",
\"picture\": \"http:\\/\\/www.gottlieb.com\\/ut-repellendus-eligendi-hic-dignissimos\"
}"
{
"success": true,
"status_code": 200,
"message": [
"Record updated successfully."
],
"data": true
}
The ID of the user.
curl --request DELETE \
"https://time-tracker-backend.pinnguaq.com/api/admin/users/9b97b9dd-2cd5-4a7c-84b9-9b5ef2600040" \
--header "Content-Type: application/json" \
--header "Accept: application/json" [Empty response]