canonical: https://jentic.com/apis/busybusy.com/busybusy

# busybusy REST API

The busybusy REST API exposes time tracking, project management, and safety data for construction companies that run on busybusy. It covers time entries, projects, members, cost codes, certifications, and API keys, with read access on every resource and create access on time entries, projects, certifications, and API keys. It is used to sync busybusy data into payroll, ERP, and BI systems and to create time entries from external tools. Authentication is a Bearer API key sent in the Authorization header.

## For AI agents

Read and create time entries, projects, members, cost codes, and certifications for a construction company running on busybusy.

## Scope

Does not handle payroll execution, equipment management, or financial accounting - use for busybusy time tracking, projects, members, and certification data only.

## Capabilities

- List time entries across the company via GET /time-entry
- Create new time entries via POST /time-entry
- List and create projects via /project
- List members of the company via GET /member
- Read the company's cost codes via GET /cost-code
- List and rotate API keys via /api-key
- List and create employee certifications via /certification

## Use cases

### Payroll-ready time entry sync

Pull all time entries for a pay period from /time-entry and route them to a payroll system. The endpoint returns the worker, project, cost code, start, and end timestamps needed to calculate wages and allocate labour cost across jobs. Suitable for construction firms that want busybusy as the system of record but pay through QuickBooks, ADP, or similar.

Example prompt: GET /time-entry filtered to the previous pay period, transform the records, and post them to the payroll system.

### Project and cost code setup

Create new projects in busybusy when a new job is won and read the company's cost codes so external tools can present consistent options to the field. POST /project creates a project; GET /cost-code returns the available codes that can be tagged on time entries.

Example prompt: POST /project for the newly awarded job, then GET /cost-code so any downstream tool can present the right codes when workers clock in.

### Workforce and safety records

Maintain the list of company members and their safety certifications. GET /member lists the workforce; /certification supports both reading existing certifications and posting new ones when training is completed. Useful for safety officers who track OSHA-style certifications across crews.

Example prompt: GET /member to list the workforce, then POST /certification for each worker who completed a recent safety course.

### AI agent jobsite assistant via Jentic

An AI assistant can answer foreman questions like 'who is currently clocked in on the Smith project?' or 'how many hours has crew B logged this week?' by calling busybusy reads through Jentic. Jentic securely stores the busybusy API key and issues scoped, short-lived access for each call.

Example prompt: Search Jentic for 'list busybusy time entries', load the GET /time-entry schema, execute it filtered to the current week and project, and summarise the results for the foreman.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /time-entry | List time entries |
| POST | /time-entry | Create a time entry |
| GET | /project | List projects |
| POST | /project | Create a project |
| GET | /member | List members |
| GET | /cost-code | List cost codes |
| POST | /certification | Create a certification |
| GET | /api-key | List API keys |

## Key resources

- **TimeEntry** — List and create time entries across the company.
- **Project** — List and create projects.
- **Member** — List company members.
- **CostCode** — Read the cost codes available on the company.
- **Certification** — List and create employee certifications.
- **ApiKey** — List and rotate API keys for the account.

## Why Jentic

- **Setup:** Wiring the busybusy REST API by hand means learning its Bearer API key in the Authorization header, filtering time entries to a pay period client-side since the reads return the whole company, and handling 429 retries yourself for bulk pulls. Through Jentic you install once, import the busybusy REST 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 /time-entry to read hours or GET /member to list the workforce. Create operations like POST /time-entry, POST /project, or POST /certification stay out of reach unless you add them.
- **Credential handling:** Your busybusy Bearer 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 'list busybusy time entries' or 'create a busybusy project', and Jentic returns the matching operation like GET /time-entry or POST /project with its input schema, so the agent calls the right endpoint without reading the busybusy docs.

## Related APIs

- **Clockify API** — Clockify is a general-purpose time tracking API not specific to construction.
- **Toggl Track API** — Toggl Track focuses on knowledge worker time tracking with projects and tags.
- **Akamai API** — Akamai for edge security in front of operations dashboards that read busybusy data.

## FAQ

### What authentication does the busybusy REST API use?

Requests carry an Authorization header containing a Bearer API key issued from the busybusy account. Through Jentic, the key is encrypted in the vault and a scoped, short-lived token is issued per operation, so the raw key never enters the agent's context.

### Can I create a busybusy time entry programmatically?

Yes - POST /time-entry with the worker, project, optional cost code, and start/end timestamps creates a time entry. This is the path used by external clock-in tools that mirror data into busybusy as the system of record.

### How do I pull all time entries for a pay period?

GET /time-entry returns time entries for the company; filter the results to the pay period in your client and feed them to your payroll process. Pair with /member and /cost-code to label the records consistently.

### Does the busybusy API expose safety certifications?

Yes. GET /certification lists certifications and POST /certification creates one. This is suitable for tracking OSHA-style safety training across crews and members.

### What are the rate limits for the busybusy REST API?

The OpenAPI spec does not declare explicit limits. busybusy applies per-account quotas documented at https://api.busybusy.io/docs/apiv3.html - handle 429 responses with retry-with-backoff for bulk time-entry pulls.

### How do I list busybusy time entries through Jentic?

Run `pip install jentic` and search for 'list busybusy time entries'. Jentic returns the GET /time-entry operation, you load its schema, and execute the call - credentials stay in your Jentic One instance.

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

Yes. Because your Jentic One instance is self-hosted, your own rules decide which busybusy operations and credentials the agent may use, so you can grant only read calls like GET /time-entry to pull hours or GET /member to list the workforce. Create operations such as POST /time-entry, POST /project, and POST /certification stay out of reach unless you explicitly add them. busybusy identifies records through query and body fields rather than URL path ids, so scoping is done per operation rather than per record.
