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/user/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/user/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
        }
    }
}

Auth

APIs for managing Auth

Login

POST
https://time-tracker-backend.pinnguaq.com
/api/user/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/user/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"firebase_token\": \"veritatis\"
}"

Logout

POST
https://time-tracker-backend.pinnguaq.com
/api/user/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/user/logout" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Get Profile

GET
https://time-tracker-backend.pinnguaq.com
/api/user/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/user/profile" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:

Update Profile

PUT
PATCH
https://time-tracker-backend.pinnguaq.com
/api/user/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/user/profile/update" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"qwmbbftbljio\",
    \"last_name\": \"nhmpmbebjcmwcsoac\",
    \"phone\": \"yxfnndgvlyyvxxgxr\",
    \"password\": \"(W}5$|LK1{x=e\"
}"

Delete Profile

DELETE
https://time-tracker-backend.pinnguaq.com
/api/user/profile
requires authentication

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request DELETE \
    "https://time-tracker-backend.pinnguaq.com/api/user/profile" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:

Capability

Get All

GET
https://time-tracker-backend.pinnguaq.com
/api/user/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/user/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
        }
    }
}

Division

Get All

GET
https://time-tracker-backend.pinnguaq.com
/api/user/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/user/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"
        }
    ]
}

Project

Get All

GET
https://time-tracker-backend.pinnguaq.com
/api/user/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/user/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
        }
    }
}

TimeRecord

Get All

GET
https://time-tracker-backend.pinnguaq.com
/api/user/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/user/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/user/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/user/time-records" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"division_id\": 16,
    \"capability_id\": 14,
    \"activity_id\": 20,
    \"project_id\": 14,
    \"activity_info\": \"velit\",
    \"date\": \"2025-04-08T14:56:12\",
    \"note\": \"assumenda\",
    \"time_spent\": \"ut\"
}"
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/user/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/user/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/user/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/user/time-records/34" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"division_id\": 7,
    \"capability_id\": 6,
    \"activity_id\": 15,
    \"project_id\": 6,
    \"activity_info\": \"odio\",
    \"date\": \"2025-04-08T14:56:12\",
    \"note\": \"vitae\",
    \"time_spent\": \"nulla\"
}"
Example response:
{
    "success": true,
    "status_code": 200,
    "message": [
        "Record updated successfully."
    ],
    "data": true
}

Delete

DELETE
https://time-tracker-backend.pinnguaq.com
/api/user/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/user/time-records/34" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Empty response]