Get a timesheet period
Returns one timesheet period.
Scope: attendance:read · Plan: Pro and Enterprise in live mode; every plan in test mode.
AuthorizationBearer <token>Send Authorization: Bearer <token> on every request. The token is one of:
| Prefix | What it is | Where it may be used |
|---|---|---|
agoo_sk_live_ | Secret key, live mode | Your servers only |
agoo_sk_test_ | Secret key, test mode | Your servers only |
agoo_pk_live_ | Publishable key, live mode | Browsers and apps: create pre-registrations and bookings, read public booking types (with their intake questions) and their free slots, read the visit types open for pre-registration with their public forms. Never lists people. |
agoo_pk_test_ | Publishable key, test mode | As above, in test mode |
Admins create keys in Console → Developers → API keys and choose each key's scopes. A key is shown once. Never put a secret key in a URL, a browser or a mobile app.
Scope: attendance:read
period_id*stringThe period's ID.
^tsp_[0-7][0-9a-hjkmnp-tv-z]{25}$"tsp_01m5a2b3c4d5e6f7g8h9jkmnpr"The period.
application/json- response
A timesheet period: weekly, fortnightly or monthly by your organisation's rules, following on from the one before.
id*TimesheetPeriodIdA timesheet period ID (TypeID with the tsp prefix).
^tsp_[0-7][0-9a-hjkmnp-tv-z]{25}$"tsp_01m5a2b3c4d5e6f7g8h9jkmnpr"kind*string"weekly""fortnightly""monthly"starts_on*stringdateends_on*stringThe period's last day.
datelabel*string"September 2026""26 Aug to 25 Sep 2026"payroll_on*|The payroll date: your organisation's payroll day, or the date HR set for this period; null when there's none.
datestatus*stringopen while it runs, closed once it has ended, approved once every timesheet in it is approved.
"open""closed""approved"counts*closed_at*|date-timeapproved_at*|date-timecreated_at*stringdate-timecurl -X GET 'https://api.agoo.ardent.africa/v1/timesheet-periods/tsp_01m5a2b3c4d5e6f7g8h9jkmnpr'{ "id": "tsp_01m5a2b3c4d5e6f7g8h9jkmnpr", "kind": "monthly", "starts_on": "2026-09-01", "ends_on": "2026-09-30", "label": "September 2026", "payroll_on": "2026-10-02", "status": "closed", "counts": { "open": 0, "to_confirm": 0, "to_approve": 3, "approved": 11 }, "closed_at": "2026-10-01T00:05:00Z", "approved_at": null, "created_at": "2026-09-01T00:05:00Z"}List timesheet periods GET
Returns your organisation's timesheet periods, newest first: each one's days, its payroll date and how many timesheets in it are open, waiting for the person to confirm, waiting for approval and approved. Periods follow your organisation's rules (weekly, fortnightly or monthly) and follow on from each other. Filter by `from` and `to` (periods overlapping them). **Scope:** `attendance:read` · **Plan:** Pro and Enterprise in live mode; every plan in test mode.
List timesheets GET
Returns timesheets, the newest period first: one per person and period, with where each stands (`open`, `to_confirm`, `to_approve`, `approved`), its totals and its approval. An approved timesheet is locked: its days and totals don't change until someone reopens it. A private type of leave (sick and maternity by default) is counted as `away`. **Scope:** `attendance:read` · **Plan:** Pro and Enterprise in live mode; every plan in test mode.