2025-08-21
Updated the GraphQL schema and the GraphQL API Reference with these changes:
Send Candidates API
Breaking change(14)
Breaking change
- Removed field
atsApplicationIdfrom object typeAtsSyncCandidateSyncApplicationVersionStatus - Removed field
atsCandidateIdfrom object typeAtsSyncCandidateSyncApplicationVersionStatus - Removed field
indeedRegistrationIdfrom object typeAtsSyncCandidateSyncApplicationVersionStatus - Removed field
jobMetadatafrom object typeAtsSyncCandidateSyncApplicationVersionStatus - Added input field
applicationIdentifierof typeAtsSyncCandidateSyncApplicationIdentifierInput!to input object typeDeleteAtsSyncCandidateSyncApplicationInput - Removed input field
atsApplicationIdfrom input object typeDeleteAtsSyncCandidateSyncApplicationInput - Removed input field
atsCandidateIdfrom input object typeDeleteAtsSyncCandidateSyncApplicationInput - Removed input field
indeedRegistrationIdfrom input object typeDeleteAtsSyncCandidateSyncApplicationInput - Removed input field
jobMetadatafrom input object typeDeleteAtsSyncCandidateSyncApplicationInput - Added input field
applicationIdentifierof typeAtsSyncCandidateSyncApplicationIdentifierInput!to input object typeInitializeAtsSyncCandidateSyncApplicationInput - Removed input field
atsApplicationIdfrom input object typeInitializeAtsSyncCandidateSyncApplicationInput - Removed input field
atsCandidateIdfrom input object typeInitializeAtsSyncCandidateSyncApplicationInput - Removed input field
indeedRegistrationIdfrom input object typeInitializeAtsSyncCandidateSyncApplicationInput - Removed input field
jobMetadatafrom input object typeInitializeAtsSyncCandidateSyncApplicationInput
New(2)
New
- Added type
AtsSyncCandidateSyncApplicationIdentifier - Added field
applicationIdentifierto object typeAtsSyncCandidateSyncApplicationVersionStatus
Employer Data API
Documentation(36)
Documentation
- Changed the description of field
AttributeUpdateError.detail[removed: Detail that helps understand][added: Details about] the error. - Changed the description of field
AttributeUpdateError.messageA short message [added: that ]describes the error.[removed: ] - Changed the description of field
AttributeUpdateError.suggestionSuggestion[removed: that helps][added: to help] recover from the error. - Changed the description of type
AttributeUpdateResponseCodeStandard GraphQL error code[removed: described in API Recommendations][added: that MUST report standardized error codes for commonly encountered errors [229] describes.] - Changed the description of
enumvalueAttributeUpdateResponseCode.BAD_USER_INPUTThe value of an input parameter is invalid. This error code applies to input validation performed beyond the standard GraphQL client and server libraries[removed: Non-Null][added: non-null] and type checking. - Changed the description of
enumvalueAttributeUpdateResponseCode.FORBIDDENValid authentication credentials are present but insufficient to perform the associated operation. This error code is the GraphQL equivalent of the HTTP [added: `403 Forbidden` ]response status[removed: 403 Forbidden][added: code]. - Changed the description of
enumvalueAttributeUpdateResponseCode.INTERNAL_SERVER_ERRORThe server encountered an unexpected failure and did not provide a response. Use this generic error[removed: only ]for failures that the server cannot handle. - Changed the description of
enumvalueAttributeUpdateResponseCode.PARTIAL_SUCCESS[removed: Its partial-success][added: Partial-success] if the response contains only part of successful response because of some failures. - Changed the description of
enumvalueAttributeUpdateResponseCode.UNAUTHENTICATEDThe operation was not attempted because the request did not include sufficient authentication credentials for the operation. This error code is the GraphQL equivalent of the HTTP [added: `401 Unauthorized` ]response status[removed: 401 Unauthorized][added: code]. - Changed the description of
inputfieldCountrySpecificEmployerAttributesInput.countryAn ISO 3166-1 - alpha[removed: 2 encoded][added: 2-encoded] country code string,[removed: e.g. US][added: such as],[removed: JP][added: `US` or `JP`]. - Changed the description of
inputfieldCountrySpecificEmployerAttributesInput.employees[removed: The size][added: Size] of the employers workforce. Allowed values[added: are]:[removed: - ERv1_1][added: | Value | Number of employees | |]:[added: ------------------|--------------------:| | `ERv1_1` | ]1[removed: employee - ERv1_2_10: 2-10 employees - ERv1_11_50: 11-50 employees - ERv1_1_50: 1-50 employees - ERv1_51_200: 51-200 employees - ERv1_201_500: 201-500 employees - ERv1_501_1000: 501-1000 employees - ERv1_1001_5000: 1001-5000 employees - ERv1_5001_10000: 5001-10000 employees - ERv1_10000_PLUS: ][added: | | `ERv1_2_10` | From 2 to 10 | | `ERv1_11_50` | From 11 to 50 | | `ERv1_1_50` | From 1 to 50 | | `ERv1_51_200` | From 51 to 200 | | `ERv1_201_500` | From 201 to 500 | | `ERv1_501_1000` | From 501 to 1000 | | `ERv1_1001_5000` | From 1001 to 5000 | | `ERv1_5001_10000` | From 5001 to 10000 | | `ERv1_10000_PLUS` | ]10000+ employees [added: |] - Changed the description of
inputfieldCountrySpecificEmployerAttributesInput.isGlobalDefault[added: Deprecated. ]If the data[removed: is supposed to be used as][added: the] global default, set[removed: isGlobalDefault=true][added: `isGlobalDefault=true`]. If[removed: isGlobalDefault=true is set, beside][added: `isGlobalDefault=true` in addition to] its normal locale, data[removed: will][added: is] also[removed: be ]written to[removed: ww_WW][added: `ww_WW`] internally. This field is deprecated because it[removed: will][added: is] always[removed: be true][added: `true`] for[removed: CountrySpecificEmployerAttributes][added: `CountrySpecificEmployerAttributes`]. - Changed the description of
inputfieldCountrySpecificEmployerAttributesInput.phoneNum[removed: Official Phone Number of the employer][added: Deprecated].[removed: This field is deprecated, please use phoneNumber][added: Employers official phone number. Use the `phoneNumber`] field instead. - Changed the description of
inputfieldCountrySpecificEmployerAttributesInput.phoneNumber[removed: Official Phone Number of ][added: Employers official phone number. The value must follow ]the[removed: employer][added: standard [E].[added: 164](https://en.wikipedia.org/wiki/E.164) format. For example, `+17895551234`.] - Changed the description of
inputfieldCountrySpecificEmployerAttributesInput.sectorSUIDs[removed: A list][added: List] of Indeed sector (industry) [added: short unique identifiers (]SUIDs[added: )]. [added: The maximum number of SUIDs is 3. ]Each value must be a valid[removed: SUID—see the following][added: SUID. See this] table[removed: .][added: :] **Market-specific documentation**[removed: |Market|Guidance| |-|-| |Japan|[Valid ][added: | Market | Example value | |:-------|:--------------| | Japan | [Valid ]company sector SUID values](https://docs.indeed.[removed: com/employer/reference/company-sector][added: com/indeed-plus/employer-data-api/reference/company-sector])[removed: | ][added: . |] - Changed the description of
inputfieldCountrySpecificEmployerAttributesInput.taxId[removed: Tax identifier of the employer][added: Employers tax identifier].[removed: Limited to][added: Limit is] 100[removed: chars][added: characters]. **Market-specific documentation**[removed: |Market|Example value| |-|-| |Japan|Use the 法人番号. ][added: | Market | Example value | |:-------|:--------------| | Japan | ]If[removed: `employerType=JURIDICAL_PERSON`, fill in ][added: [`employerType`](/api/employer/objects/EmployerAttributesInput) is `JURIDICAL_PERSON`, set ]this field[removed: with 法人番号 whenever possible. It is necessary][added: to the corporate number (法人番号)] to correctly identify[removed: a][added: the] company.[removed: If `employerType=NATURAL_PERSON`][added: <br/><br/>If `employerType` is `NATURAL_PERSON`], this field is optional.[removed: | ][added: |] - Changed the description of
inputfieldCountrySpecificEmployerAttributesInput.websiteUrlThe root website of the[removed: employer&mdash][added: `employer`&mdash];for example, `indeed.com`. If the employer is a franchise, use the brand website.[removed: Limited to][added: Limit is] 400[removed: chars][added: characters]. Must be a valid URL.[removed: ] - Changed the description of type
EmployerAttributesInput[removed: Each attribute in this input type is an][added: Input object that contains] employer[removed: attribute][added: attributes] that[removed: can be updated on type EmployerAttributesInput][added: you can update.] - Changed the description of
inputfieldEmployerAttributesInput.countrySpecificAttributesEmployer attributes that can[removed: be different based on the][added: differ by] country. - Changed the description of
inputfieldEmployerAttributesInput.employerType[removed: Type of the employer][added: Employer type].[removed: **Market-Specific][added: **Market-specific] documentation**[removed: |Market|Example value| |-|-| |Japan|Use ][added: | Market | Example value | |:-------|:--------------| | Japan | Use ]the field to specify 企業区分: 法人 or[removed: 個人|][added: 個人. |] - Changed the description of
inputfieldEmployerAttributesInput.localeSpecificAttributesEmployer attributes that can[removed: be different based on the][added: differ by] locale ([removed: lang][added: `lang`] +[removed: country][added: `country`]). - Changed the description of
inputfieldJpNewGradsEmployerAttributesInput.schoolsWithHiringRecordsA list of schools[removed: where ][added: from which ]the employer has previously hired graduates[removed: from]. Each school name must be[removed: less][added: fewer] than 100 characters, and the total number of schools cannot exceed 1000. - Changed the description of
inputfieldLocaleSpecificEmployerAttributesInput.countryAn ISO 3166-1[removed: - ]alpha[removed: 2 encoded][added: 2-encoded] country code[removed: string][added: string—for example],[removed: e.g. 'US', 'JP'][added: `US` or `JP`].[removed: We do][added: `ww_WW` is] not[removed: accept ww_WW][added: accepted] for worldwide default data. All data must set a valid[removed: country/language][added: country and language]. - Changed the description of
inputfieldLocaleSpecificEmployerAttributesInput.languageAn ISO 639-1 - alpha[removed: 2 encoded][added: 2-encoded] language code[removed: string][added: string—for example],[removed: e.g. 'en', 'ja'][added: `en` or `ja`].[removed: We do][added: `ww_WW` is] not[removed: accept ww_WW][added: accepted] for worldwide default data. All data must set a valid[removed: country/language][added: country and language]. - Changed the description of
inputfieldLocaleSpecificEmployerAttributesInput.isGlobalDefaultIf[removed: the data is supposed to be used][added: `true`, defines the data] as [added: the ]global default[removed: , set isGlobalDefault=true]. - Changed the description of
inputfieldLocaleSpecificEmployerAttributesInput.localizedNameEmployer name in the[removed: given ]locale. Length[removed: must be 1-60 chars][added: is from 1 to 60 characters]. [added: :::note If the request uses the `Ignore` operation to omit this field but provides `employerName`, then the global `localizedName` field is set to the [`employerName`](/api/employer/objects/PatchEmployerInput) field value. ::: ]**Examples**[removed: |Field|Example value| |-|-| |name|Google| |localizedName|グーグル ][added: | Field | Example value | |:----------------|:-----------------------| | `name` | Yamada Kyujin | | `localizedName` | 山田求人 ](ja_JP)[added: ]|[removed: |phoneticName|グーグル ][added: | `phoneticName` | ヤマダキュウジン ](ja_JP)[added: ]|[removed: |Field|Example value| |-|-| |name|Rakuten| |localizedName|楽天 ][added: | Field | Example value | |:----------------|:-----------------------| | `name` | Google | | `localizedName` | グーグル ](ja_JP)[added: ]|[removed: |phoneticName|ラクテン ][added: | `phoneticName` | グーグル ](ja_JP)[added: ]|[added: | Field | Example value | |:----------------|:-----------------------| | `name` | Rakuten | | `localizedName` | 楽天 (ja_JP) | | `phoneticName` | ラクテン (ja_JP) |] - Changed the description of
inputfieldLocaleSpecificEmployerAttributesInput.phoneticNamePhonetic name of the employer. [added: Limit is 250 characters. ]**Examples**[removed: |Field|Example value| |-|-| |name|Google| |localizedName|グーグル ][added: | Field | Example value | |:----------------|:-----------------------| | `name` | Yamada Kyujin | | `localizedName` | 山田求人 ](ja_JP)[added: ]|[removed: |phoneticName|グーグル ][added: | `phoneticName` | ヤマダキュウジン ](ja_JP)[added: ]|[removed: |Field|Example value| |-|-| |name|Rakuten| |localizedName|楽天 ][added: | Field | Example value | |:----------------|:-----------------------| | `name` | Google | | `localizedName` | グーグル ](ja_JP)[added: ]|[removed: |phoneticName|ラクテン ][added: | `phoneticName` | グーグル ](ja_JP)[added: ]|[added: | Field | Example value | |:----------------|:-----------------------| | `name` | Rakuten | | `localizedName` | 楽天 (ja_JP) | | `phoneticName` | ラクテン (ja_JP) |] - Changed the description of
inputfieldLocaleSpecificEmployerAttributesInput.squareLogoBase64-encoded square logo. Must be a square image with[removed: the following][added: these] dimensions: * **Minimum**: 256x256 pixels * **Maximum**: 4096x4096 pixels - Changed the description of field
Mutation.patchEmployer[removed: Submit employer information. - If employer identifiers cannot be resolved to existing Indeed employerKey, it may create a new one. The created employer will not be claimed. To claim it, use another API. - If employer identifiers were resolved into existing Indeed employerKey, API will PARTIALLY update the employer, where only provided fields will be updated. Other fields will not be touched. Return affected employerKey for accepted request. Depending on the client type, some Indeed employer will be marked as "protected". You can only update: - Non-protected Indeed employer - Protected Indeed employer created by the same client You will not be able to touch protected Indeed employer created by other clients. In such cases, "FORBIDDEN" will be returned. ][added: Creates or updates an employer. * If Indeed resolves `input.id` to an employer, it updates the specified fields for that employer. * If Indeed cannot resolve `input.id` to an employer, it creates an employer. If the request succeeds, the API returns the `employerKey` for the updated or new employer. Depending on the client type, some Indeed employers are marked as *protected*. You can update only: - Non-protected Indeed employers - Protected Indeed employers created by the same client You cannot update protected Indeed employers that other clients created. If you try to do so, the API returns the `FORBIDDEN` error. When you call the Indeed PLUS APIs, initiate a timeout after 5,000 milliseconds.] - Changed the description of type
PatchEmployerInput[removed: To partial update employer attributes, - {websiteUrl: <not provided>}, nothing will be updated. - {websiteUrl: null}, the attribute will be removed. - {websiteUrl: "http://example.com"}, websiteUrl will be overwritten. For array type of fields, eg. sectorSUIDs. - {sectorSUIDs: <not provided>}, nothing will be updated. - {sectorSUIDs: null}, all existing values will be removed. - {sectorSUIDs: [<some-values>]}, all existing values will be overwritten. Example request (examples for other type of clients are not exposed in this public doc) ``` { "id": { "type": "INDEED_EMPLOYER_KEY", "id": "Employer key" }, "employerName": "Example company", "employerAttributes": { "countrySpecificAttributes": [ { "country": "US", "sectorSUIDs": [ "SUID-of-some-indeed-sector" ] } ], "localeSpecificAttributes": [ { "country": "US", "language": "en", "isGlobalDefault": true, "description": "Description of example company", "squareLogo": "Base64-encoded-string" } ] }, "createEmployerIfNotFound": true } ``` ][added: To partially update employer attributes: * `{websiteUrl: <not-provided>}`: Does not update the attribute. * `{websiteUrl: null}`: Removes the attribute. * `{websiteUrl: "http://example.com"}`: Overwrites the attribute with the specified value. For fields that are array types—for example, `sectorSUIDs`: * `{sectorSUIDs: <not-provided>}`: Does not update the attribute. * `{sectorSUIDs: []}`: Removes the attribute. * `{sectorSUIDs: [<some-values>]}`: Overwrites the attribute with the specified values. An example request is: ``` { "id": { "type": "INDEED_EMPLOYER_KEY", "id": "Employer key" }, "employerName": "Example company", "employerAttributes": { "countrySpecificAttributes": [{ "country": "US", "sectorSUIDs": ["SUID-of-some-indeed-sector"] }], "localeSpecificAttributes": [{ "country": "US", "language": "en", "isGlobalDefault": true, "description": "Description of example company", "squareLogo": "Base64-encoded-string" }] } } ```] - Changed the description of
inputfieldPatchEmployerInput.idThe[removed: the ]globally unique [added: Internationalized Resource Identifier (]IRI[added: )] for [added: the ]employer. - Changed the description of
inputfieldPatchEmployerInput.employerNameOfficial employer name[removed: . It's ][added: , which is ]required to create[removed: a new][added: an] Indeed employer key, and optional to submit employer data.[added: Limit is 255 UTF-16-encoded characters. Cannot include the email address or eight consecutive digits. :::note The value of `employerName` is copied to the **global** [`localizedName`](/api/employer/objects/LocaleSpecificEmployerAttributesInput) field, except when the request explicitly sets the **global** [`localizedName`](/api/employer/objects/LocaleSpecificEmployerAttributesInput) field. :::] - Changed the description of
inputfieldPatchEmployerInput.employerAttributesEmployer attributes to[removed: be updated][added: update]. If[removed: this is set ]null, no employer attributes[removed: will be][added: are] updated. - Changed the description of type
PatchEmployerPayloadResponse for[removed: patchEmployer][added: `patchEmployer`]. - Changed the description of field
PatchEmployerPayload.attributeUpdated[removed: Returns][added: If] `true`[removed: if][added: ,] the employer attribute[removed: has been][added: was] updated,[removed: and][added: . Otherwise,] `false`[removed: otherwise]. - Changed the description of field
PatchEmployerPayload.errors[removed: A list][added: List] of errors.[removed: Empty array will be returned if there is no error][added: If no errors occur, returns an empty array].
Common
Breaking change(4)
Breaking change
- Removed field
admin1Codefrom object typeJobLocation - Removed field
admin2Codefrom object typeJobLocation - Removed field
admin3Codefrom object typeJobLocation - Removed field
admin4Codefrom object typeJobLocation
New(1)
New
- Added field
rawInputLocationto object typeEmployerJobExternalPostingMetadata
Documentation(3)
Documentation
- Changed the description of type
EmployerIdentifiersInputEmployer identifier that uniquely defines an employer. Clients that have Indeed employer key[removed: .][added: :] ``` { "type": "INDEED_EMPLOYER", "id": "<Indeed employerKey>" } ``` Other types of employer[removed: identifier types will be][added: identifiers are] communicated **individually**[removed: ]. - Changed the description of
inputfieldEmployerIdentifiersInput.typeA magic string that indicates the identifier type. - Otherwise, the type[removed: will be][added: is] communicated individually. - Changed the description of
inputfieldEmployerIdentifiersInput.idID[added: .]