abletime.comOpen App

API Overview

The AbleTime API lets your own systems and tools read and write the same work your team tracks in the application: projects, tasks, time entries, milestones, invoices and more. It is a REST API over HTTPS that accepts and returns JSON.

The core documentation for the API endpoint lives in the API Reference.

Base address

Every endpoint sits under /api/public/v2 on your AbleTime host. The version is part of the path, so a future version can appear alongside this one without changing how your integration behaves.

text
https://track.abletime.com/api/public/v2/tasks

What you need before you start

  1. An active paid plan that includes API access. Without it every request is refused with 403.

  2. An API key, created under Settings > Integrations > API Keys.

  3. The permissions, called grants, that your credential needs for the endpoints you intend to call.

What you can reach

Resource

What you can do

Projects

Read projects, and expand one to include its categories, members, stages or client

Clients

Read clients

Users

Read the people in your organization

Epics

Create, read, update, delete, and set state

Tasks

Full create and update, plus schedule, state, assignee, priority, blocking, dependencies, archiving, comments and attachments

Milestones

Create, read, update, delete

Time entries

Create, read, update, delete, and start or stop a running timer

Calendar entries

A person's own proposed time, reached only with a personal access token

Billing

Read invoices and move one to a new status

Webhooks

Register a destination for events, or delete one

The interactive reference, with every endpoint, parameter and response shape, is on the API Reference tab.

Conventions that apply everywhere

  • Your organization is decided by your credential. Never send an organization id in a request body or query string; there is no parameter for one.

  • Identifiers are 26-character ULIDs.

  • Referring to something that belongs to another organization returns 404. The two are indistinguishable on purpose.

  • PATCH is a merge patch: leave a field out to keep its current value, and send an explicit null to clear a field that allows it.

  • Timestamps you receive are ISO 8601 unless a field is documented as a wall-clock value.

Requests are limited by how fast you call, not by how much you call in total. There is no monthly request allowance on this API. See the rate limits page.