Beta

Integrate Gusto with your product—along with any other
HR & payroll
 application

Connect your product to all the applications your customers use via Merge's Unified API to close more deals, retain customers, and expand to new markets

Get a demo
Payment Terms
Payment Methods
Viewers
General Ledger Transactions
Async Tasks
Employees
Bank Feed Transactions
Bank Feed Accounts
Job Postings
Scopes
Field Mappings

Sync Gusto data

Benefits

The Benefit object is used to represent a benefit that an employee has enrolled in.

No items found.

Companies

The Company object is used to represent a company within the HRIS / Payroll system.

No items found.

Employees

The Employee object is used to represent any person who has been employed by a company. By default, it returns all employees. To filter for only active employees, set the employment_status query parameter to ACTIVE.

No items found.

Employee Payroll Runs

The EmployeePayrollRun object is used to represent an employee's pay statement for a specific payroll run.

No items found.

Employer Benefits

The Employer Benefit object is used to represent a benefit plan offered by a company.

No items found.

Employments

The Employment object is used to represent a job position at a company. If an integration supports historical tracking of employments, it will be reflected in the data. If not, a new Employment object will be created whenever there is a change in job title or pay. The effective_date field should be used to order Employment objects, with the most recent date corresponding to the latest employment record for an employee.

No items found.

Groups

The Group object is used to represent any subset of employees across, for example, DEPARTMENT or TEAM. Employees can be in multiple Groups.

No items found.

Locations

The Location object is used to represent an address that can be associated with an employee.

No items found.

Payroll Runs

The PayrollRun object is used to represent a group of pay statements for a specific pay schedule.

No items found.

Teams

The Team object is used to represent a subdivision of the company, usually a department. Each employee will be grouped into one specific Team.

No items found.

FAQ on integrating with Gusto API

What data can Merge access from Gusto?

Merge can retrieve employee details, employment history, benefits, company and department information, location details, and more. In addition, using advanced features like Remote Data and Field Mapping, you can sync custom fields from customers’ instances of Gusto with your product.

Learn more about the endpoints you can access from Merge.

How frequently can Gusto sync Merge data?

The frequencies can vary based on the Common Model and the sync frequency you set (Daily, Standard, High, and Highest). However, generally speaking, these frequencies range from every hour to every 24 hours.

You can also use the force resync endpoint to sync data outside of these intervals, and you can use Merge’s Automatic Webhooks feature to sync data in real-time.

Learn more about Merge’s sync frequencies for Gusto.

Which organizations use Merge’s Gusto integration?

Countless organizations use the integration, including AngelList, Bonusly, Ramp, and Cledara.

What other HRIS integrations does Merge support?

Merge supports 70+ additional HRIS integrations, including ADP, BambooHR, Workday, Paylocity, and UKG Pro. 

Learn more about the integrations Merge covers via its HRIS unified API.

What support resources does Merge provide?

Merge provides extensive support across plans, with dedicated customer success resources available for Professional and Enterprise tiers. This includes Slack support, onboarding sessions, and technical assistance for troubleshooting, ensuring a seamless integration experience​​ with not only Gusto but also the other integrations you add via Merge.

How does Merge log Gusto data, and how long does it retain data?

Merge retains logs based on your subscription tier: Launch Plan logs are retained for three days, Professional Plan logs are kept for 30 days, and Enterprise Plan logs last for up to 90 days. Merge also temporarily stores API request payloads and webhook logs for Gusto data normalization, making these logs accessible via the Merge Dashboard for monitoring and troubleshooting​​.

How much does it cost to integrate with Gusto using Merge?

Merge offers several pricing plans depending on your integration needs. The Launch Plan is free for the first three linked Gusto accounts, with a cost of $650/month for up to 10 accounts and $65 per additional account after that. 

Merge also offers Professional and Enterprise plans to access more extensive features and a higher number of linked accounts. For example, these plans provide bulk discounts and advanced features, such as Field Mapping and Authenticated Passthrough Requests, to access and sync custom data.

For more details, check out Merge’s pricing page​​​.

Are there any days you’ll be closed for the holidays in 2024?

Trusted to power integrations at

Logotype of HandshakeLogotype of RampLogotype of BrexLogotype of NavanLogotype of TaxBit
Logotype of HandshakeLogotype of RampLogotype of BrexLogotype of NavanLogotype of TaxBit
Logotype of HandshakeLogotype of RampLogotype of BrexLogotype of NavanLogotype of TaxBit
Logotype of HandshakeLogotype of RampLogotype of BrexLogotype of NavanLogotype of TaxBit

Make integrations your competitive advantage

More sales, less code, fewer headaches

Focus on your core product

Stop diverting your engineers to yet another integration and let them get back to work.

Give customer success a break

Manage your simplified integration issues in a single pane. No therapist required.

Stop losing sales due to integrations

Launch integrations in days, not quarters. Your sales team will thank you.

Seamless account linking

Integration authentication that feels like magic

Merge seamlessly manages authentication and authorization on behalf of your customers.
Offer account linking and permission controls to your users with Link for a customizable frontend or with Magic Link for URL-based authorization

View Docs
APIs made simple

The toolkit for all your integration needs

We make integrations painless with accessible API design, dead-simple SDKs, and beautiful documentation that we agonize over.

View Docs
Get Employee Data
1from merge import Merge
2
3client = Merge(
4    account_token="YOUR_ACCOUNT_TOKEN",
5    api_key="YOUR_API_KEY",
6)
7client.hris.employees.list()
import { MergeClient, Merge } from '@mergeapi/merge-node-client';
const merge = new MergeClient({
  apiKey: 'YOUR_API_KEY',
  accountToken: 'YOUR_ACCOUNT_TOKEN',
});
employee = await merge.hris.employees.list()
ApiClient.instance.authentications.tokenAuth = {
  type: 'bearer',
  accessToken: 'API_KEY',
};
new EmployeesApi().employeesList('ACCOUNT_TOKEN', {}, (data) => {
  console.log(data);
});
import (
  "context"
  "fmt"
  merge "github.com/fern-api/merge-go"
  mergeclient "github.com/fern-api/merge-go/client"
  "github.com/fern-api/merge-go/hris"
)

client := mergeclient.NewClient(
  mergeclient.ClientWithAuthApiKey("<YOUR_API_KEY>"),
1ApiClient client = Configuration.getDefaultApiClient();
2client.setBasePath('https://api.merge.dev/api/ats/v1');
3ApiKeyAuth tokenAuth = client.getAuthentication('tokenAuth');
4tokenAuth.setApiKey('API_KEY');
5CandidatesApi apiInstance = new CandidatesApi(client);
6apiInstance.candidatesList('ACCOUNT_TOKEN');
import com.merge.api.MergeApiClient;
import com.merge.api.resources.hris.employees.requests.EmployeesRetrieveRequest;
import com.merge.api.resources.hris.types.Employee;
MergeApiClient mergeClient = MergeApiClient.builder()
    .accountToken("ACCOUNT_TOKEN")
    .apiKey("API_KEY")
    .build();
Employee employee = mergeClient.hris().employees().list(
    EmployeesRetrieveRequest.builder()
        .includeRemoteData(true)

> {  

"id": "0958cbc6-6040-430a-848e-aafacbadf4ae",
"remote_id": "19202938",
"employee_number": "2",
"company": "8d9fd929-436c-4fd4-a48b-0c61f68d6178",
"first_name": "Dirna",
"last_name": "Emanuel",
"display_full_name": "Dirna Emanuel",
    "username": "dirnaemanuel",
    "groups": [

Meta endpoint

Programmatically access required schemas

Third-party providers require specific (and often different) fields to write data to their APIs, making your code a mess.

Dynamically fetch required data schemas from Merge’s /meta endpoint to make POST or PATCH requests that just work.

View Docs
Beyond building

Rely on the best integration observability system

Let our logs, issue detection, and automated alerts save your customer success team time, money, and headaches.

Forget maintenance - let your developers focus on building!

Start for free

Case study

How Drata increases customer value and spends 80% less time managing integrations

View case study

​​Working with Merge’s Unified API and beautiful React component took less than a sprint to integrate, test, and release.

Daniel Marashlian
Co-Founder & CTO, Drata

Read more about building and maintaining multiple integrations

A guide to maintaining your product integrations

Blog

A guide to integrating multiple APIs

Blog

The top challenges of normalizing multiple API integrations

Blog

Make integrations your competitive advantage

Stay in touch to learn how Merge can unlock hundreds of integrations in days, not years

Get a demo