Introduction

This is the Time Tracker App API Documentation

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

This API is not authenticated.

Activity

Get All

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/activities
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

paginate
boolean

Field to paginate. Defaults to true.

Example:
1
page
integer

Field to paginate. Defaults to null.

Example:
1
perPage
integer

Field to paginate. Defaults to null.

Example:
1
filterBy
string

Field to filterBy. Defaults to null.

Example:
name
filterValue
string

Field to filterValue. Defaults to null.

Example:
Car
Example request:
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"
Example response:
{
    "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
        }
    }
}

Create

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/activities
requires authentication

Store new division

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://time-tracker-backend.pinnguaq.com/api/admin/activities" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": [
        \"azgpliiqthpawbhd\"
    ]
}"
Example response:
{
    "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

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/activities/{id}
requires authentication

Show existing by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the activity.

Example:
1
Example request:
curl --request GET \
    --get "https://time-tracker-backend.pinnguaq.com/api/admin/activities/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "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

PUT
PATCH
https://time-tracker-backend.pinnguaq.com
/api/admin/activities/{id}
requires authentication

update by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the activity.

Example:
1

Body Parameters

Example request:
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\"
}"
Example response:
{
    "success": true,
    "status_code": 200,
    "message": [
        "Record updated successfully."
    ],
    "data": true
}

Delete

DELETE
https://time-tracker-backend.pinnguaq.com
/api/admin/activities/{id}
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the activity.

Example:
1
Example request:
curl --request DELETE \
    "https://time-tracker-backend.pinnguaq.com/api/admin/activities/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]

ActivityLog

Recent activity across all time records, newest first.

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/activity-log
requires authentication

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.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

page
integer

Default 1.

Example:
8
perPage
integer

Default 25. Max 100.

Example:
19
time_record_id
string

Optional — filter to a single record's history.

Example:
"abc-123"
Example request:
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"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": false,
    "status": 401,
    "message": [
        "You are not authenticated. Please login."
    ],
    "data": []
}

Auth

APIs for managing Auth

Login

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/login

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
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\"
}"

Refresh

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/refresh

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.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request POST \
    "https://time-tracker-backend.pinnguaq.com/api/admin/refresh" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Logout

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/logout
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request POST \
    "https://time-tracker-backend.pinnguaq.com/api/admin/logout" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Get Profile

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/profile
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://time-tracker-backend.pinnguaq.com/api/admin/profile" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": false,
    "status": 401,
    "message": [
        "You are not authenticated. Please login."
    ],
    "data": []
}

Update Profile

PUT
PATCH
https://time-tracker-backend.pinnguaq.com
/api/admin/profile/update
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
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\"
}"

Capability

Get All

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/capabilities
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

paginate
boolean

Field to paginate. Defaults to true.

Example:
1
page
integer

Field to paginate. Defaults to null.

Example:
1
perPage
integer

Field to paginate. Defaults to null.

Example:
1
filterBy
string

Field to filterBy. Defaults to null.

Example:
name
filterValue
string

Field to filterValue. Defaults to null.

Example:
Car
Example request:
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"
Example response:
{
    "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
        }
    }
}

Create

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/capabilities
requires authentication

Store new capability

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://time-tracker-backend.pinnguaq.com/api/admin/capabilities" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": [
        \"acx\"
    ]
}"
Example response:
{
    "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

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/capabilities/{id}
requires authentication

Show existing by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the capability.

Example:
44
Example request:
curl --request GET \
    --get "https://time-tracker-backend.pinnguaq.com/api/admin/capabilities/44" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "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

PUT
PATCH
https://time-tracker-backend.pinnguaq.com
/api/admin/capabilities/{id}
requires authentication

update by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the capability.

Example:
44

Body Parameters

Example request:
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\"
}"
Example response:
{
    "success": true,
    "status_code": 200,
    "message": [
        "Record updated successfully."
    ],
    "data": true
}

Delete

DELETE
https://time-tracker-backend.pinnguaq.com
/api/admin/capabilities/{id}
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the capability.

Example:
44
Example request:
curl --request DELETE \
    "https://time-tracker-backend.pinnguaq.com/api/admin/capabilities/44" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]

Division

Taxonomy

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/divisions/{division_id}/taxonomy
requires authentication

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.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

division_id
integer
required

The ID of the division.

Example:
65
Example request:
curl --request GET \
    --get "https://time-tracker-backend.pinnguaq.com/api/admin/divisions/65/taxonomy" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": false,
    "status": 401,
    "message": [
        "You are not authenticated. Please login."
    ],
    "data": []
}

Reset Taxonomy

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/divisions/{division_id}/reset-taxonomy
requires authentication

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.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

division_id
integer
required

The ID of the division.

Example:
65
Example request:
curl --request POST \
    "https://time-tracker-backend.pinnguaq.com/api/admin/divisions/65/reset-taxonomy" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Get All

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/divisions
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

paginate
boolean

Field to paginate. Defaults to true.

Example:
1
page
integer

Field to paginate. Defaults to null.

Example:
1
perPage
integer

Field to paginate. Defaults to null.

Example:
1
filterBy
string

Field to filterBy. Defaults to null.

Example:
name
filterValue
string

Field to filterValue. Defaults to null.

Example:
Car
Example request:
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"
Example response:
{
    "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"
        }
    ]
}

Create

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/divisions
requires authentication

Store new division

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://time-tracker-backend.pinnguaq.com/api/admin/divisions" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": [
        \"hkeqgttiyvrfmzecegqnvtpri\"
    ]
}"
Example response:
{
    "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

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/divisions/{id}
requires authentication

Show existing by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the division.

Example:
65
Example request:
curl --request GET \
    --get "https://time-tracker-backend.pinnguaq.com/api/admin/divisions/65" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "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

PUT
PATCH
https://time-tracker-backend.pinnguaq.com
/api/admin/divisions/{id}
requires authentication

update by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the division.

Example:
65

Body Parameters

Example request:
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\"
    ]
}"
Example response:
{
    "success": true,
    "status_code": 200,
    "message": [
        "Record updated successfully."
    ],
    "data": true
}

Delete

DELETE
https://time-tracker-backend.pinnguaq.com
/api/admin/divisions/{id}
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the division.

Example:
65
Example request:
curl --request DELETE \
    "https://time-tracker-backend.pinnguaq.com/api/admin/divisions/65" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]

Endpoints

POST api/admin/{entity}/multiple-delete

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/{entity}/multiple-delete

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

entity
string
required
Example:
9b97b9c9-b8fb-41df-98f0-8424b51eaab9

Body Parameters

Example request:
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" \

Project

Get All

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/projects
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

paginate
boolean

Field to paginate. Defaults to true.

Example:
1
page
integer

Field to paginate. Defaults to null.

Example:
1
perPage
integer

Field to paginate. Defaults to null.

Example:
1
filterBy
string

Field to filterBy. Defaults to null.

Example:
name
filterValue
string

Field to filterValue. Defaults to null.

Example:
Car
Example request:
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"
Example response:
{
    "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
        }
    }
}

Create

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/projects
requires authentication

Store new project

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request POST \
    "https://time-tracker-backend.pinnguaq.com/api/admin/projects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "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

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/projects/{id}
requires authentication

Show existing by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the project.

Example:
16
Example request:
curl --request GET \
    --get "https://time-tracker-backend.pinnguaq.com/api/admin/projects/16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "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

PUT
PATCH
https://time-tracker-backend.pinnguaq.com
/api/admin/projects/{id}
requires authentication

update by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the project.

Example:
16

Body Parameters

Example request:
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\"
}"
Example response:
{
    "success": true,
    "status_code": 200,
    "message": [
        "Record updated successfully."
    ],
    "data": true
}

Delete

DELETE
https://time-tracker-backend.pinnguaq.com
/api/admin/projects/{id}
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the project.

Example:
16
Example request:
curl --request DELETE \
    "https://time-tracker-backend.pinnguaq.com/api/admin/projects/16" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]

Reports

Top-level KPI numbers: total hours, distinct contributors, distinct projects, and an organization-wide utilization percentage.

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/reports/summary
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

from
string

Start of the date range (inclusive).

Example:
2026-05-01
to
string

End of the date range (inclusive).

Example:
2026-05-31
Example request:
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"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": false,
    "status": 401,
    "message": [
        "You are not authenticated. Please login."
    ],
    "data": []
}

Hours grouped by project, ordered by hours descending.

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/reports/by-project
requires authentication

Each row carries an absolute hours value and a share (% of total).

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://time-tracker-backend.pinnguaq.com/api/admin/reports/by-project" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": false,
    "status": 401,
    "message": [
        "You are not authenticated. Please login."
    ],
    "data": []
}

Hours grouped by capability. Includes the count of distinct users who logged time against the capability in the period -- useful for spotting capabilities with high hours but a thin headcount bench.

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/reports/by-capability
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://time-tracker-backend.pinnguaq.com/api/admin/reports/by-capability" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": false,
    "status": 401,
    "message": [
        "You are not authenticated. Please login."
    ],
    "data": []
}

Hours grouped by division/department.

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/reports/by-division
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://time-tracker-backend.pinnguaq.com/api/admin/reports/by-division" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": false,
    "status": 401,
    "message": [
        "You are not authenticated. Please login."
    ],
    "data": []
}

Per-user view with capacity context: hours logged, weekly capacity, the prorated expected hours over the date range, and utilization %.

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/reports/by-user
requires authentication

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).

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://time-tracker-backend.pinnguaq.com/api/admin/reports/by-user" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": false,
    "status": 401,
    "message": [
        "You are not authenticated. Please login."
    ],
    "data": []
}

Time summary for a single user over the range (default: current month).

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/reports/user/{user_id}
requires authentication

Powers the allocation readout on the Update User panel.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

user_id
string
required

The ID of the user.

Example:
9b97b9dd-2cd5-4a7c-84b9-9b5ef2600040

Query Parameters

from
string

Start of the date range (inclusive).

Example:
2026-06-01
to
string

End of the date range (inclusive).

Example:
2026-06-30
Example request:
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"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": false,
    "status": 401,
    "message": [
        "You are not authenticated. Please login."
    ],
    "data": []
}

Hours bucketed by day / week / month for trend charts.

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/reports/timeseries
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

from
string

Start of the date range (inclusive).

Example:
2026-01-01
to
string

End of the date range (inclusive).

Example:
2026-05-14
group_by
string

day|week|month. Default: week.

Example:
week
Example request:
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"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": false,
    "status": 401,
    "message": [
        "You are not authenticated. Please login."
    ],
    "data": []
}

TimeRecord

List soft-deleted time records (admin only).

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/time-records/trashed
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

paginate
boolean

Field to paginate. Defaults to true.

Example:
1
page
integer

Field to paginate. Defaults to null.

Example:
1
perPage
integer

Field to paginate. Defaults to null.

Example:
1
Example request:
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"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    vary
                                                            : Origin
                                                         
{
    "success": false,
    "status": 401,
    "message": [
        "You are not authenticated. Please login."
    ],
    "data": []
}

Restore a soft-deleted time record (admin only).

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/time-records/{id}/restore
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the time record.

Example:
34
Example request:
curl --request POST \
    "https://time-tracker-backend.pinnguaq.com/api/admin/time-records/34/restore" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Bulk approve a batch of submitted time records (admin only).

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/time-records/bulk-approve
requires authentication

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.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
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\"
    ]
}"

Approve a time record (admin only).

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/time-records/{time_record}/approve
requires authentication

Sets status to 'approved', stamps approver + timestamp, and clears any prior rejection. Idempotent: re-approving an already-approved record refreshes the approver/timestamp.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

time_record
integer
required
Example:
34
Example request:
curl --request POST \
    "https://time-tracker-backend.pinnguaq.com/api/admin/time-records/34/approve" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Reject a time record with a reason (admin only).

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/time-records/{time_record}/reject
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

time_record
integer
required
Example:
34

Body Parameters

Example request:
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\\\"\"
}"

Get All

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/time-records
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

paginate
boolean

Field to paginate. Defaults to true.

Example:
1
page
integer

Field to paginate. Defaults to null.

Example:
1
perPage
integer

Field to paginate. Defaults to null.

Example:
1
filterBy
string

Field to filterBy. Defaults to null.

Example:
date
filterValue
string

Field to filterValue. Defaults to null.

Example:
2024-02-28
Example request:
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"
Example response:
{
    "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
        }
    }
}

Create

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/time-records
requires authentication

Store new divsion

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
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\"
}"
Example response:
{
    "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

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/time-records/{id}
requires authentication

Show existing by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the time record.

Example:
34
Example request:
curl --request GET \
    --get "https://time-tracker-backend.pinnguaq.com/api/admin/time-records/34" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "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

PUT
PATCH
https://time-tracker-backend.pinnguaq.com
/api/admin/time-records/{id}
requires authentication

update by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the time record.

Example:
34

Body Parameters

Example request:
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\"
}"
Example response:
{
    "success": true,
    "status_code": 200,
    "message": [
        "Record updated successfully."
    ],
    "data": true
}

Delete

DELETE
https://time-tracker-backend.pinnguaq.com
/api/admin/time-records/{id}
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the time record.

Example:
34
Example request:
curl --request DELETE \
    "https://time-tracker-backend.pinnguaq.com/api/admin/time-records/34" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]

Users

Get All

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/users
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

paginate
boolean

Field to paginate. Defaults to true.

Example:
1
page
integer

Field to paginate. Defaults to null.

Example:
1
perPage
integer

Field to paginate. Defaults to null.

Example:
1
filterBy
string

Field to filterBy. Defaults to null.

Example:
name
filterValue
string

Field to filterValue. Defaults to null.

Example:
Car
Example request:
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"
Example response:
{
    "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
        }
    }
}

Create

POST
https://time-tracker-backend.pinnguaq.com
/api/admin/users
requires authentication

Store new divsion

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request POST \
    "https://time-tracker-backend.pinnguaq.com/api/admin/users" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "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

GET
https://time-tracker-backend.pinnguaq.com
/api/admin/users/{id}
requires authentication

Show existing by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
string
required

The ID of the user.

Example:
9b97b9dd-2cd5-4a7c-84b9-9b5ef2600040
Example request:
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"
Example response:
{
    "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

PUT
PATCH
https://time-tracker-backend.pinnguaq.com
/api/admin/users/{id}
requires authentication

update by id

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
string
required

The ID of the user.

Example:
9b97b9dd-2cd5-4a7c-84b9-9b5ef2600040

Body Parameters

Example request:
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\"
}"
Example response:
{
    "success": true,
    "status_code": 200,
    "message": [
        "Record updated successfully."
    ],
    "data": true
}

Delete

DELETE
https://time-tracker-backend.pinnguaq.com
/api/admin/users/{id}
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
string
required

The ID of the user.

Example:
9b97b9dd-2cd5-4a7c-84b9-9b5ef2600040
Example request:
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"
Example response:
[Empty response]