canonical: https://jentic.com/apis/busybusy.io/busybusy-busybusy-api

# BusyBusy API

Jentic publishes the only available OpenAPI specification for BusyBusy API, keeping it validated and agent-ready. BusyBusy is a workforce time tracking and field operations platform for construction trades. This is the full surface - 512 endpoints covering time entries, projects, members, equipment, certifications, budgets, attachments, and back-office configuration. Use this spec when an integration needs deep coverage; the lighter busybusy spec curates a smaller set of common resources.

## For AI agents

Drive end-to-end BusyBusy workflows: time entries, projects, members, equipment, certifications, and cost data. Authenticate with a Token in the Authorization header.

## Scope

Does not handle payroll runs, GPS-only location tracking, or accounting ledger entries - use for time, project, equipment, certification, and budget management only.

## Capabilities

- Create and amend time entries for field workers
- Manage projects, sub-projects, and project assignments
- Issue equipment to members and track usage records
- Maintain certification records and link them to equipment
- Record cost codes, budget hours, and budget cost entries against projects
- Attach photos and documents to certifications and time records
- Provision API keys and configure account-level permissions

## Use cases

### Construction Time and Project Sync

Synchronise time entries, projects, and members between BusyBusy and a construction ERP or job-costing tool. Operations teams use the full API surface to backfill historical entries, push project structures, and reconcile member assignments. Initial sync of 1,000 time entries typically completes in under an hour.

Example prompt: Pull all time entries for the last pay period, group by project and cost code, and post a summary to the accounting system

### Equipment and Certification Auditing

Run scheduled audits over equipment assignments, certifications, and certification-equipment links. Compliance and safety officers use this to ensure each piece of equipment is operated only by certified members. Reports can be generated nightly with a single agent run.

Example prompt: List all certification-equipment links, flag equipment whose assigned operator's certification expires within 14 days, and email the safety lead

### Project Budget Variance Reporting

Combine budget hours, budget cost, and time entries to produce live variance reports per project. Project managers use this to spot overruns before invoicing. The /budget-hours and /budget-cost endpoints support GET and POST so an agent can both read and update plan data.

Example prompt: For each active project, compute actual hours from /time-entry against /budget-hours and write a variance record to /budget-cost where deviation exceeds 10%

### AI Agent Field Operations

An AI agent can drive BusyBusy operations through Jentic by searching for the right endpoint by intent, loading the schema, and executing the call. With 512 endpoints, intent-based discovery removes the burden of reading docs to find the correct path.

Example prompt: Search Jentic for 'create busybusy time entry', load the schema for POST /time-entry, and execute with the member, project, and time fields

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /api-key | List API keys |
| POST | /api-key | Issue a new API key |
| GET | /certification | List certifications |
| POST | /certification-record | Create a certification record |
| GET | /budget-hours | Read budget hours entries |
| POST | /budget-cost | Create a budget cost entry |
| POST | /certification-equipment-link | Link a certification to equipment |

## Key resources

- **Time Entry** — Create, update, and read time records for members
- **Project** — Manage projects, sub-projects, and assignments
- **Member** — Read and update workforce member records
- **Equipment** — Track equipment and assign it to members
- **Certification** — Manage certifications and link them to equipment
- **Budget Hours / Budget Cost** — Plan and record hours and costs against projects
- **API Key** — Issue and rotate keys for integrations

## Why Jentic

- **Setup:** Wiring the full BusyBusy API by hand means learning its Token in the Authorization header and finding the right path across a large surface of time, project, equipment, certification, and budget resources, then handling backoff on 5xx and heavy collection reads yourself. Through Jentic you install once, import the BusyBusy API from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** BusyBusy identifies records through query and body fields rather than URL path ids, so you limit the agent to the operations it needs, such as GET /certification to read credentials or GET /budget-hours to read plan data. Write operations like POST /certification-record, POST /budget-cost, or POST /api-key stay out of reach unless you add them.
- **Credential handling:** Your BusyBusy API key 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 'create a busybusy time entry' or 'link busybusy certification to equipment', and Jentic returns the matching operation like POST /time-entry or /certification-equipment-link with its input schema, so the agent finds the right path across the large surface without reading the docs.

## Related APIs

- **BusyBusy REST API (curated)** — Lighter 14-endpoint slice of the BusyBusy surface
- **Clockify** — General-purpose time tracking for office and remote teams
- **Gusto** — Payroll system that consumes approved time data
- **BambooHR** — HRIS for employee records and time off

## FAQ

### Why is there no official OpenAPI spec for BusyBusy API?

BusyBusy does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call BusyBusy API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the BusyBusy API use?

BusyBusy uses an API key passed in the Authorization request header. Through Jentic, the key is stored in the encrypted vault and never enters the agent's context - agents receive a scoped token at execution time.

### Can I create time entries with the BusyBusy API?

Yes. The full BusyBusy API exposes time entry resources alongside members, projects, and cost codes, so an agent can create, list, and update time records to drive payroll, billing, or compliance workflows.

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

BusyBusy does not document hard rate limits in the spec. For high-volume sync jobs, batch reads on the larger collections (members, time entries, budgets) and back off on 5xx responses rather than hammering tight loops.

### How do I link a certification to a piece of equipment through Jentic?

Run pip install jentic, then search Jentic with the query 'link busybusy certification to equipment', load the schema for POST /certification-equipment-link, and execute with the certification and equipment IDs.

### How is this spec different from the smaller busybusy spec?

Both target the same base URL (https://api.busybusy.io) and the same X-API-Key authentication. The busybusy-api spec covers all 512 endpoints in the public surface; the busybusy spec curates 14 endpoints around the most common resources for lightweight integrations.

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

Yes. Because you run Jentic One yourself, your own rules decide which BusyBusy operations and credentials the agent may use. You can allow only the reads it needs, such as GET /certification to read credentials or GET /budget-hours to read plan data, while write operations like POST /certification-record, POST /budget-cost, or POST /api-key stay out of reach unless you add them. Since BusyBusy identifies records through query and body fields rather than URL path ids, scoping happens at the operation level you grant.
