Overview
You’ve recently received StackOne access and want to initiate your first API call using our Unified API . As an introduction to the StackOne Unified API, you’ve tested account connection through the StackOne Dashboard.
Now, you want to integrate a specific provider into your existing application and test the integration. In this guide, you will learn how to:
Prerequisites
API Key created in StackOne Dashboard and copied to a secure location
Required provider integration enabled
Account linked successfully
(Optional) Use an SDK or Postman
Getting Account ID
Specify the request type, URL, and API Key in the Authorization section (append to the header). cURL example:
Important : The API key must be base64 encoded when using Basic authentication. You cannot use the raw API key directly.
curl --request GET
--url https://api.stackone.com/accounts
--header 'accept: application/json'
--header 'authorization: Basic base64_encoded_api_key'
Example : If your API key is sk_test_1234567890
, you need to base64 encode it first:
In terminal: echo -n "sk_test_1234567890" | base64
In JavaScript: btoa("sk_test_1234567890")
The result would be something like: c2tfdGVzdF8xMjM0NTY3ODkw
To filter results by a specific provider account (e.g., ATS Greenhouse), define the providers
parameter:
Examples of complete API requests:
# Get all Greenhouse accounts
curl --request GET \
--url 'https://api.stackone.com/accounts?providers=greenhouse' \
--header 'accept: application/json' \
--header 'authorization: Basic base64_encoded_api_key'
# Get all HubSpot accounts
curl --request GET \
--url 'https://api.stackone.com/accounts?providers=hubspot' \
--header 'accept: application/json' \
--header 'authorization: Basic base64_encoded_api_key'
# Get all BambooHR accounts
curl --request GET \
--url 'https://api.stackone.com/accounts?providers=bamboohr' \
--header 'accept: application/json' \
--header 'authorization: Basic base64_encoded_api_key'
From the /accounts
API call response, copy the id
value.
ATS: List Applications in Greenhouse
Specify the List Applications URL and header details using the account ID from the previous step:
curl --request GET \
--url 'https://api.stackone.com/unified/ats/applications' \
--header 'accept: application/json' \
--header 'authorization: Basic base64_encoded_api_key' \
--header 'x-account-id: your_greenhouse_account_id_here'
Note: Replace your_greenhouse_account_id_here
with the actual ID value from the /accounts
API call response
The response will contain a collection of existing applications with crucial data including:
Application ID
Candidate ID
Job ID
Location ID
Status
Created and Updated timestamps
(Optional) Use the data from the previous step to create new applications by making POST requests via the API.
First, list all contacts to see the available contacts:
curl --request GET \
--url 'https://api.stackone.com/unified/crm/contacts' \
--header 'accept: application/json' \
--header 'authorization: Basic base64_encoded_api_key' \
--header 'x-account-id: your_hubspot_account_id_here'
Select the required contact from the contacts collection and copy its ID.
Get a specific contact by including the contact ID in the URL path:
curl --request GET \
--url 'https://api.stackone.com/unified/crm/contacts/contact_id_here' \
--header 'accept: application/json' \
--header 'authorization: Basic base64_encoded_api_key' \
--header 'x-account-id: your_hubspot_account_id_here'
The response will contain all available data for the specified contact, including:
First Name, Last Name
Company Name
Email(s)
Phone Number(s)
Associated Account ID
Created and Updated timestamps
HRIS: Create Employee in BambooHR
First, get a list of existing employees to see the structure:
curl --request GET \
--url 'https://api.stackone.com/unified/hris/employees' \
--header 'accept: application/json' \
--header 'authorization: Basic base64_encoded_api_key' \
--header 'x-account-id: your_bamboohr_account_id_here'
Create a new employee using a POST request with the same URL and headers:
curl --request POST \
--url 'https://api.stackone.com/unified/hris/employees' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'authorization: Basic base64_encoded_api_key' \
--header 'x-account-id: your_bamboohr_account_id_here' \
--data '{ Employee JSON data goes here }'
Specify employee details in the request body, for example:
{
"first_name" : "John" ,
"last_name" : "Doe" ,
"name" : "John Doe" ,
"display_name" : "Dr. John Doe" ,
"work_email" : "john@stackone.com" ,
"job_title" : "Consultant" ,
"gender" : {
"value" : "male"
},
"ethnicity" : {
"value" : "white"
},
"marital_status" : {
"value" : "single"
},
"employment_type" : {
"value" : "full_time"
},
"employment_contract_type" : {
"value" : "full_time"
},
"employment_status" : {
"value" : "active"
},
"home_location" : {
"country" : {
"value" : "AF"
},
"state" : {
"value" : "AD-07"
}
},
"work_location" : {
"country" : {
"value" : "AF"
},
"state" : {
"value" : "AD-07"
}
}
}
Upon successful creation, you’ll receive a 🟢 201 Status Code
with the message “Record created successfully” and its timestamp.
(Optional) To verify the record creation, use the Employee ID returned in the response to get the specific employee:
curl --request GET \
--url 'https://api.stackone.com/unified/hris/employees/new_employee_id_here' \
--header 'accept: application/json' \
--header 'authorization: Basic base64_encoded_api_key' \
--header 'x-account-id: your_bamboohr_account_id_here'
References
List Accounts
List Applications
Create Application
Get Contact
Create an Employee
Integrations List
Libraries & SDKs