Developer API

Read your organization's time entries, projects, work items and members straight from Hourdeck. Per-org API keys, full & incremental sync, and a rate-limited, read-only surface — built for Power BI, a data warehouse, or your own scripts.

1

Create a key

In the app, open Settings → API keys (admins only). Name your key, set an optional expiry, and copy the secret — it's shown once.

2

Call the API

Send the key as a Bearer token. Every endpoint is read-only and scoped to your organization.

3

Sync smart

Page through everything for a full load, or pass updatedSince for incremental deltas. Store each run's latest updatedAt.

Authenticate

Send your key as a bearer token on every request:

curl -H "Authorization: Bearer hd_your_key_here" \
  "https://hourdeck.com/api/public/v1/time-entries?pageSize=1000"

Incremental sync

Pull only what changed since your last run:

# First run: full load — keep following nextCursor until hasMore is false.
# Next runs: pass updatedSince = the latest updatedAt you saw last time.
curl -H "Authorization: Bearer hd_your_key_here" \
  "https://hourdeck.com/api/public/v1/time-entries?updatedSince=2026-07-01T00:00:00Z"

Endpoints

GET/api/public/v1/time-entriesTime entries — full or incremental; optional from/to day window.
GET/api/public/v1/projectsCached DevOps projects.
GET/api/public/v1/work-itemsCached DevOps work items (reporting axes).
GET/api/public/v1/membersOrganization members, roles and seats.
GET/api/public/v1/metaToken introspection: org, key, scopes, limits and quota left.

Limits & safety

  • · 120 requests/minute per key
  • · Monthly per-org quota
  • · Up to 10,000 rows per page (default 1,000)
  • · Keyset pagination — no gaps or dupes
  • · Read-only; revoke a key any time

Over-limit requests return 429 with Retry-After.

API reference

OpenAPI spec ↗