canonical: https://jentic.com/apis/jibble.io/jibble

# Jibble API

The Jibble API is the integration surface for Jibble's free time-tracking and attendance platform. Its 22 endpoints expose timesheets, members (employees), activities, projects, locations, schedules, and reports so HR systems and bots can record clock-ins, audit time, and pull payroll-ready reports without operating the Jibble dashboard. Authentication uses a Bearer token issued from the Jibble admin console, and resources scope automatically to the authenticated organization.

## For AI agents

Read and write workforce time-tracking data on Jibble: list timesheets, manage members, projects, activities, and locations, and pull attendance reports for payroll.

## Scope

Does not run payroll, calculate taxes, or store HR records (compensation, manager) - use for time-tracking, attendance, and reporting only.

## Capabilities

- Pull approved or draft timesheets for any date range via /timesheets
- Create, update, or deactivate team members through /members
- List and manage tracked activities (job tasks, billing categories) via /activities
- Assign members to projects and read project participation through /projects
- Record and audit clock-in locations (geofences, branches) via /locations
- Read shift schedules and assigned rotas for any member via /schedules
- Fetch aggregated attendance reports through /reports for payroll handoff

## Use cases

### Payroll Handoff Automation

At each pay period close, a script pulls /reports for the period and /timesheets filtered by approved status, then maps Jibble members to the payroll provider's employee records and submits hours. This eliminates manual CSV exports for teams with 20-500 employees and ensures only approved time is paid.

Example prompt: Call GET /reports for the prior pay period, then POST each member's total hours to the configured payroll provider after mapping member.id to employee_external_id.

### Project Time Allocation Reporting

Agencies and consultancies need to know how much time was spent per client project. The agent walks /projects, then for each project calls /timesheets filtered by projectId to compute total billable hours per client. The result feeds invoicing and utilisation dashboards without hand reconciliation.

Example prompt: Call GET /projects, then for each project call GET /timesheets?projectId={id}&from={start}&to={end} and sum the duration field to produce a per-project hours table.

### Onboarding and Offboarding Automation

When HR adds a new hire to the HRIS, an automation creates the matching Jibble member, assigns them to a default project and schedule, and sets their location. On termination, the same automation deactivates the member so they can no longer clock in. This keeps Jibble in sync with the source-of-truth HR system without dual data entry.

Example prompt: POST /members with the new hire's name and email, then POST `/projects/{id}/members` to assign them to the default project, and POST /schedules to attach the standard rota.

### AI Agent Integration via Jentic

An HR ops agent uses Jentic to discover Jibble operations by intent. The agent searches for 'pull approved timesheets for last week' and Jentic returns the /timesheets operation with its date filters and approval-status parameter, so the agent executes the call without scraping Jibble docs. The Bearer token stays in your Jentic One instance.

Example prompt: Search Jentic for 'pull approved timesheets', load the GET /timesheets schema, and execute it with from and to set to the previous Monday and Sunday.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/timesheets` | List timesheet entries |
| GET | `/members` | List organization members |
| GET | `/projects` | List projects |
| GET | `/activities` | List tracked activities |
| GET | `/reports` | Pull attendance reports for a date range |

## Key resources

- **Timesheets** — List, filter, and read clock-in entries by member, project, and date range.
- **Members** — Create, update, and deactivate Jibble employees in the organization.
- **Projects** — Manage projects and assign members to them.
- **Activities** — Define and tag the work activities members track time against.
- **Locations** — Configure office locations and geofences used for clock-in validation.
- **Schedules** — Manage shift rotas and recurring schedules per member.
- **Reports** — Pull aggregated attendance reports ready for payroll handoff.

## Why Jentic

- **Setup:** Wiring the Jibble API by hand means handling its bearer token and pulling timesheet, member, and report data across endpoints yourself. Through Jentic you install once, import Jibble from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** The Jibble endpoints here are read-only, so scope by operation: allow the agent only the reads it needs, such as pulling timesheets, members, or reports. You pick the allowed set, so it stays within time-tracking and attendance and reaches nothing else.
- **Credential handling:** Your Jibble bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'pull approved timesheets', and Jentic returns the matching Jibble timesheets operation with its date and status parameters so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Clockify API** — Clockify offers a similar free time-tracking surface with deeper project and reporting endpoints
- **Toggl Track API** — Toggl Track is a long-established alternative for desktop and mobile time tracking
- **BambooHR API** — Sync Jibble members and timesheets into a BambooHR HRIS for source-of-truth employee records

## FAQ

### What authentication does the Jibble API use?

Jibble uses a Bearer token issued from the admin console at api.jibble.io. Send it as Authorization: Bearer <token> on every request. Through Jentic the token is held in the vault and injected at execution time so the agent never sees the raw value.

### Can I pull approved timesheets for a date range with the Jibble API?

Yes. Call GET /timesheets with from and to query parameters and a status filter set to approved. The response includes per-entry duration, member, project, and activity references for downstream payroll or analytics processing.

### What are the rate limits for the Jibble API?

Jibble's published guidance is to keep request volume reasonable (no fixed limit shown in the spec). For nightly payroll handoffs, prefer one /reports call over many per-member /timesheets calls. If you do hit a 429, back off exponentially.

### How do I add a new employee to Jibble through Jentic?

Run pip install jentic, search for 'add a new employee to my time tracker', then load and execute the POST /members operation with the new hire's name and email. Jentic injects the Bearer token; the new member can clock in from the Jibble app immediately.

### Can I get attendance broken down by project with the Jibble API?

Yes. Call GET /timesheets with a projectId filter for each project (enumerate them first via GET /projects), then aggregate duration by project. Alternatively, /reports offers pre-aggregated breakdowns when configured to group by project.

### Is the Jibble API free?

Jibble's core time-tracking product is free for unlimited users. API access is included on the free plan for typical integration usage; high-volume use cases or premium features (advanced reporting, payroll integrations) may require a paid plan.

### Can I limit what my agent is allowed to do with the Jibble API?

Yes. Jentic One is self-hosted, so you run it under your own rules and decide which Jibble operations and credentials the agent may use. Because the Jibble endpoints here are read-only, you scope by operation and grant only the reads the agent needs, such as pulling timesheets, listing members, or fetching attendance reports. Anything you do not allow stays off limits, and your Jibble bearer token is injected at execution time rather than exposed to the agent.
