Public API

Integrate TikkieTrack into your workflows with our RESTful endpoints and flexible authentication.

Quick Start

Authenticate and make your first call in minutes with clear examples.

Real-time Updates

Receive instant notifications through webhooks for critical events.

Dedicated Support

Our team is ready to help with integration questions and best practices.

Public API Documentation

The TikkieTrack Public API lets you automate time tracking, project management and payroll processes directly from your own applications. Use the reference below to understand how to connect, what to expect from each endpoint and how to test requests quickly.

Tip: Replace https://example.com in the examples with your own installation URL. Generate a personal access token in your account settings to authenticate requests.

Getting Started

Use this section as a checklist before calling the API.

Base configuration

Setting Details
Base URL /api/v1
Response format JSON
Authentication Personal access tokens via the Authorization: Bearer <token> header
Pagination List endpoints support per_page (maximum 100) and include pagination metadata in the response

Authentication

  1. Generate a personal access token from Settings → API Tokens inside TikkieTrack.
  2. Add the token to every request using the Authorization: Bearer {token} header.
  3. Keep tokens secret—rotate them regularly if you embed them in automations.
curl -H "Authorization: Bearer {token}" \
  https://example.com/api/v1/time-entries

Pagination

Paginated responses include meta and link objects that let you move between pages. When requesting larger collections, pass per_page to control the page size:

curl -H "Authorization: Bearer {token}" \
  "https://example.com/api/v1/time-entries?per_page=50"

Time Entries

Endpoints that let authenticated users record and manage time.

Endpoints

Method URI Description
GET /api/v1/time-entries List authenticated user's time entries
POST /api/v1/time-entries Create a new time entry
GET /api/v1/time-entries/{id} Retrieve a specific time entry
PUT/PATCH /api/v1/time-entries/{id} Update an existing time entry
DELETE /api/v1/time-entries/{id} Delete a time entry

Filters for listing

Parameter Description
q Search within the description field
status Filter by entry status
start Include entries on or after this YYYY-MM-DD date
end Include entries on or before this YYYY-MM-DD date

Example request

curl -H "Authorization: Bearer {token}" \
  "https://example.com/api/v1/time-entries?q=meeting&status=open&start=2024-05-01&end=2024-05-31"

Example response (201 Created)

{
  "id": 5,
  "date": "2024-01-15",
  "hours": 2.5,
  "status": "open",
  "description": "Design meeting",
  "from_time": "2024-01-15 09:00:00",
  "till_time": "2024-01-15 11:30:00",
  "project": {
    "id": 1,
    "name": "Website Redesign",
    "description": "Revamp",
    "budget": 10000,
    "start_date": "2024-01-01",
    "end_date": "2024-12-31"
  }
}

Projects

Projects group related work. You can create them programmatically when onboarding new clients.

Endpoints

Method URI Description
GET /api/v1/projects List projects for the user's company
POST /api/v1/projects Create a project
GET /api/v1/projects/{id} Retrieve a specific project
PUT/PATCH /api/v1/projects/{id} Update a project
DELETE /api/v1/projects/{id} Delete a project

Example request

curl -X POST https://example.com/api/v1/projects \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Website Redesign",
    "description": "Revamp",
    "start_date": "2024-01-01",
    "end_date": "2024-12-31"
  }'

Example response (201 Created)

{
  "id": 1,
  "name": "Website Redesign",
  "description": "Revamp",
  "budget": 10000,
  "start_date": "2024-01-01",
  "end_date": "2024-12-31"
}

Services

Services describe the billable offerings your organisation provides.

Endpoints

Method URI Description
GET /api/v1/services List services for the user's company
POST /api/v1/services Create a service
GET /api/v1/services/{id} Retrieve a specific service
PUT/PATCH /api/v1/services/{id} Update a service
DELETE /api/v1/services/{id} Delete a service

Example request

curl -X POST https://example.com/api/v1/services \
  -H "Authorization: Bearer {token}" \
  -F "name=Consulting" \
  -F "description=Hourly consulting" \
  -F "file=@consulting.pdf"

Example response (201 Created)

{
  "id": 1,
  "name": "Consulting",
  "description": "Hourly consulting",
  "original_name": "consulting.pdf",
  "file_path": "https://example.com/storage/services/consulting.pdf"
}

Materials

Materials capture physical goods or resources tracked alongside services.

Endpoints

Method URI Description
GET /api/v1/materials List materials for the user's company
POST /api/v1/materials Create a material
GET /api/v1/materials/{id} Retrieve a specific material
PUT/PATCH /api/v1/materials/{id} Update a material
DELETE /api/v1/materials/{id} Delete a material

Example request

curl -X POST https://example.com/api/v1/materials \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Branded notebooks",
    "unit_cost": 4.5,
    "description": "Giveaways for client meetings"
  }'

Example response (201 Created)

{
  "id": 7,
  "name": "Branded notebooks",
  "unit_cost": 4.5,
  "description": "Giveaways for client meetings",
  "created_at": "2024-05-14T09:18:00Z",
  "updated_at": "2024-05-14T09:18:00Z"
}

Support & Feedback

Need help or have suggestions? Reach out to our team at support@tikkietrack.com and we'll be glad to assist.