canonical: https://jentic.com/apis/gusto-demo.com/gusto-app-integrations

# Gusto Demo Gusto App Integrations API

Jentic publishes the only available OpenAPI specification for Gusto App Integrations API, keeping it validated and agent-ready. The Gusto App Integrations API is the partner-facing surface used by HR, time-tracking, expense, and benefits apps to read and write company, employee, payroll, and benefits data inside Gusto. Its 100 endpoints span companies, locations, departments, employees, jobs and compensations, employee employments, addresses, time-off policies, custom fields, contractors, company benefits, employee benefits, pay schedules, and webhooks. Authentication uses OAuth 2.0 access tokens issued at the company or system scope.

## For AI agents

Read and write Gusto company, employee, compensation, benefits, and pay-schedule data through the partner App Integrations API for HR and time-tracking apps.

## Scope

Does not handle expense management, applicant tracking, or 401(k) plan administration directly - use for Gusto company, employee, compensation, benefits, and pay-schedule integration only.

## Capabilities

- Provision and inspect Gusto companies including locations, departments, and custom fields
- Manage employees, their jobs and compensations, employments, and home addresses
- Read and update company benefits and individual employee benefit elections
- Configure pay schedules and read minimum-wage data per location
- Manage contractors alongside W-2 employees in the same company
- Register webhooks to receive employee, compensation, and benefit-change events

## Use cases

### Time-tracking sync into payroll

A time-tracking app reads employee rosters and pay-schedule data from Gusto, then writes hours and compensation updates back so the company can run payroll cleanly. The endpoints expose locations, departments, employees, and jobs and compensations as the canonical references the time app needs to map shifts. Integration partners typically launch in two to four weeks once OAuth is configured.

Example prompt: Call GET `/v1/companies/{company_id}` for company metadata, then GET the employees list and PUT compensation updates for the affected pay period.

### Benefits administration partner sync

A benefits broker keeps Gusto's company-benefits records in lock-step with the broker's internal plan catalog and individual elections per employee. The company-benefits and employee-benefits resources let the broker create plans, attach employees, and update contribution amounts. This avoids manual CSV uploads at open enrolment.

Example prompt: List company benefits, create or update an employee benefit election, and verify the change appears on the next pay schedule run.

### Multi-state employer location setup

When a company hires its first employee in a new state, an HR ops tool reads the existing locations, posts a new location, and ensures the matching pay-schedule and tax-detail records are present before the employee is added. The locations and minimum-wage endpoints provide the data needed to validate the setup before payroll can run.

Example prompt: POST `/v1/companies/{company_id}/locations` for a new state location and verify it appears in GET `/v1/companies/{company_id}/locations.`

### AI agent HR ops via Jentic

An AI assistant in an HR ops workflow handles a request to update an employee's compensation by reading the employee record from Gusto, applying the new amount, and confirming the change. Through Jentic the agent loads the right Gusto endpoints on demand instead of pre-wiring the SDK.

Example prompt: Search Jentic for 'update gusto employee compensation', load the matching operation, and execute with the employee ID and new annualised amount.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v1/companies/{company_id}` | Get a company |
| POST | `/v1/provision` | Create a company |
| GET | `/v1/companies/{company_id}/locations` | List company locations |
| POST | `/v1/companies/{company_id}/locations` | Create a company location |
| GET | `/v1/locations/{location_uuid}/minimum_wages` | Get minimum wages for a location |
| POST | `/oauth/token` | Refresh access token |

## Key resources

- **Companies** — Read company records, custom fields, and provision new companies
- **Employees** — Read and update employees, employments, jobs, compensations, and addresses
- **Locations** — Manage company locations and read minimum-wage data per location
- **Pay Schedules** — Configure and read company pay schedules
- **Company Benefits** — Create and update benefit plans at the company level
- **Employee Benefits** — Manage individual employee benefit elections
- **Webhooks** — Register and manage webhook subscriptions for Gusto events

## Why Jentic

- **Setup:** Wiring the Gusto App Integrations API by hand means running its OAuth 2.0 flow, refreshing tokens before expiry, choosing the demo or production host, and tracking the company-scope versus system-scope distinction yourself. Through Jentic you install once, import Gusto App Integrations from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Gusto App Integrations puts the company id and location id in the URL path (`/companies/{company_id}/...`, `/locations/{location_uuid}/...`), so a rule can pin your agent to one company: it can read that company's locations and minimum wages and nothing else. You choose the operations it may call, so provisioning or creating locations is not included unless you add it.
- **Credential handling:** Your Gusto OAuth access and refresh tokens are stored once, encrypted, by your own Jentic One instance and injected at execution time, with refresh handled automatically before expiry. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list Gusto employees' or 'read a company's locations', and Jentic returns the matching App Integrations operation with its input schema, including the company-scope versus system-scope distinction, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Rippling** — All-in-one HR, IT, and payroll platform with partner integrations API
- **BambooHR** — HRIS for SMB and mid-market without integrated payroll in some markets
- **Deputy** — Time-tracking and shift-scheduling that feeds hours into payroll

## FAQ

### Why is there no official OpenAPI spec for Gusto App Integrations API?

Gusto does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Gusto App Integrations 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 Gusto App Integrations API use?

Gusto App Integrations uses OAuth 2.0 with separate Company and System access scopes. Tokens are refreshed via POST `/oauth/token.` Through Jentic, both refresh and access tokens are stored encrypted in the vault and the right scope is selected per operation.

### Can I update an employee's compensation with the Gusto App Integrations API?

Yes. The Jobs and Compensations endpoints under `/v1/employees` and `/v1/jobs` let an integration read current compensation, post a new compensation record, or update an existing one. Use PUT to update the existing job's effective dates.

### Can I provision a new Gusto company via the API?

Yes. POST `/v1/provision` creates a new company at the partner level and returns the company ID, which can then be used with `/v1/companies/{company_id}` and the location, employee, and pay-schedule endpoints.

### What are the rate limits for the Gusto App Integrations API?

Gusto enforces tiered rate limits per partner API key, generally measured in requests per second per token. Check Retry-After on 429 responses and use webhook subscriptions for change-driven workflows rather than polling employee records.

### How do I list employees at a Gusto company through Jentic?

Search Jentic for 'list gusto employees', load the matching company employees operation, then execute with the company ID. Install with pip install jentic.

### Can I limit what my agent is allowed to do with the Gusto App Integrations API?

Yes. Jentic One is self-hosted, so your own rules decide which Gusto operations and OAuth credentials the agent may use. Because the company id and location id sit in the URL path (`/v1/companies/{company_id}/...`, `/v1/locations/{location_uuid}/...`), you can pin the agent to a single company so it only reads that company's locations, employees, and minimum-wage data. You choose the operations it can call, so write actions like POST `/v1/provision` or creating a location stay off-limits unless you explicitly allow them.
