Skip to main content
GET
/
projects
/
{id}
/
time-entries
List time entries
curl --request GET \
  --url https://api.corebill.io/v1/projects/{id}/time-entries \
  --header 'Authorization: Bearer <token>'
{
  "data": {
    "time_entries": [
      {
        "id": "tme_a1b2c3d4e5f6",
        "project_id": "pro_a1b2c3d4e5f6",
        "task_id": "tsk_a1b2c3d4e5f6",
        "user_id": "usr_abc123",
        "company_id": "com_a1b2c3d4e5f6",
        "start_time": "2025-04-10T09:00:00Z",
        "end_time": "2025-04-10T17:00:00Z",
        "duration_minutes": 480,
        "is_running": false,
        "description": "Implemented responsive navigation",
        "is_billable": true,
        "hourly_rate": 75,
        "internal_cost_rate": 123,
        "invoiced": false,
        "invoice_id": "<string>",
        "metadata": {},
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z"
      }
    ],
    "summary": {
      "total_hours": 45.5,
      "total_amount": 3412.5
    },
    "pagination": {
      "total": 42,
      "limit": 50,
      "offset": 0
    }
  }
}

Authorizations

Authorization
string
header
required

API key authentication. Generate keys from the Corebill dashboard under the Developers section.

Example: Authorization: Bearer sk_live_abc123def456

Path Parameters

id
string
required

The project ID

Query Parameters

company_id
string
required

The company ID to scope the request to

limit
integer
default:50

Maximum number of records to return (default 50)

Required range: 1 <= x <= 100
offset
integer
default:0

Number of records to skip for pagination (default 0)

Required range: x >= 0
task_id
string

Filter by task ID

user_id
string

Filter by user ID

is_billable
boolean

Filter by billable status

is_invoiced
boolean

Filter by invoiced status

entry_date_from
string<date>

Filter entries from this date

entry_date_to
string<date>

Filter entries up to this date

Search in description

Response

List of time entries with summary

data
object
required