Employer Registration API guide
Register employers for Candidate Sync.
By using this API and its documentation and building an integration, you agree to the Additional API Terms and Guidelines.
API overview
#Use the Employer Registration API to register employers for Candidate Sync. After you register an employer, you can sync candidate data between their ATS and Indeed, and control which features they can use.
API steps
#After you integrate the Employer Registration API, complete these steps to register and manage employers.
1. Authenticate
#When you become an Indeed partner, Indeed creates an app for your integration. Sign in to Partner Console (opens in a new window) to view the app and your OAuth credentials: client ID, secret, and a 3-legged OAuth authorization code. Exchange those credentials for an access token to authenticate API calls.
Each Candidate Sync API operation requires an OAuth token:
| API and operations | OAuth token type |
|---|---|
| Authenticate with a 3-legged OAuth token that represents an employer and has the employer.ats_candidate.sync scope. This token links the employer's Indeed account to their ATS account. An Indeed administrator or owner must create it. If registerEmployer returns a missing scope error, the token might not be associated with an employer. |
| Authenticate with a 2-legged OAuth token, which requires no user interaction. |
Securely store access tokens in your ATS, and don't share them between users. Indeed trusts that your system is the source of truth for a job. If you use a user's access token for a job that another user posted, Indeed might grant that user access to the other user's job on Indeed.
After you get an access token, include this token in the query or mutation. Indeed recommends that you refresh your access tokens before they expire to avoid asking users to sign in every time they need to view updated job statuses.
See Integrate with Indeed and call APIs and Scopes.
2. Register employer
#Request – Register employer
#To register an employer and return registration information, call registerEmployer.
Authenticate with a 3-legged OAuth token that represents an employer and has the employer.ats_candidate.sync scope. This token links the employer's Indeed account to their ATS account. An Indeed administrator or owner must create it. If registerEmployer returns a missing scope error, the token might not be associated with an employer.
Provide these input fields in RegisterEmployerInput:
| Field | Required | Description |
|---|---|---|
Type: | ✅ | An ID you provide to uniquely identify the employer. You can register one |
Type: | ✅ | The name you provide for the employer. Employers see this name on Indeed. |
Response – Register employer
#The API returns an EmployerRegistration. Store its id for later Candidate Sync API calls, or query findRegisteredEmployers with the partnerEmployerId to get it again.
3. Update registration
#Request – Update registration
#To enable or disable features for an employer registration, call manageFeaturesForEmployer.
Authenticate with a 2-legged OAuth token. Your application authenticates directly with Indeed's authorization server without user interaction.
Provide these input fields:
| Field | Required | Description |
|---|---|---|
Type: | ✅ | The ID of the ATS-employer registration. Set this value to the |
Type: | ✅ | The features to update. Features that you omit, or set to their current status, don't change. Don't list a feature more than once. Set each feature to
|
Response – Update registration
#Returns a ManageFeaturesForEmployerPartnerAtsSyncEmployerRegistrationPayload object.
4. List registrations
#Request – List registrations
#To list an employer's registrations, call findRegisteredEmployers. It returns the registration ID that manageFeaturesForEmployer and deregisterEmployer require.
Authenticate with a 2-legged OAuth token. Your application authenticates directly with Indeed's authorization server without user interaction.
Provide these input fields:
| Field | Required | Description |
|---|---|---|
|
Type: | ✅ | Your unique ID for the employer. Use it to list all of the employer's registrations. |
Type: | ⬜ | The ID of the ATS-employer registration. Use it to show only that registration. Set this value to the |
Response – List registrations
#Returns a FindRegisteredEmployersConnection object with the EmployerRegistration objects that match the filter. Results are paginated, with 50 registrations per page by default:
- To change the page size, set the
firstargument. - To get the next page, check that
pageInfo.hasNextPageistrue, and then passpageInfo.endCursoras theafterargument.
5. Deregister employer
#Request – Deregister employer
#To delete a registration and disable its features, call deregisterEmployer.
Authenticate with a 2-legged OAuth token. Your application authenticates directly with Indeed's authorization server without user interaction.
Deregistering also deletes the employer and candidate data you sent to Indeed through this registration.
Provide this input field:
| Field | Required | Description |
|---|---|---|
|
Type: | ✅ | The ID of the ATS-employer registration. Set this value to the |
Deregistration is permanent. You can't recover the registration or its candidate data, but the employer can register again to get a new registration ID.
Response – Deregister employer
#Returns the DeregisterEmployerPartnerAtsSyncEmployerRegistrationPayload object.
6. Troubleshoot errors
#- For OAuth errors, which occur before your request reaches GraphQL, see Troubleshoot OAuth errors.
- For GraphQL errors, see Troubleshoot GraphQL errors.
GraphQL API references
#registerEmployer— Registers an employer. Authenticate with a 3-legged OAuth token that represents an employer and theemployer.ats_candidate.syncscope.manageFeaturesForEmployer— Enables or disables features for an employer. Authenticate with a 2-legged OAuth token.findRegisteredEmployers— Lists employer registrations. Authenticate with a 2-legged OAuth token. Default page size is 50.deregisterEmployer— Removes a registration and disables its features. Authenticate with a 2-legged OAuth token.