2026-01-12
GraphQL schema change log: 2026-01-12
📘 Documentation: Updated the GraphQL schema and the GraphQL API Reference with these changes:
-
Changed the description of field
AttributeUpdateError.detailfrom:Details about the error.To:
Error details. -
Changed the description of field
AttributeUpdateError.detailfrom:In case of error, the error information will be in the standard GraphQL errors arrayTo:
Errors appear in the standard GraphQL errors array. -
Changed the description of field
AttributeUpdateError.messagefrom:A short message that describes the error.To:
Short error message. -
Changed the description of field
AttributeUpdateError.messagefrom:In case of error, the error information will be in the standard GraphQL errors arrayTo:
Errors appear in the standard GraphQL errors array. -
Changed the description of field
AttributeUpdateError.suggestionfrom:Suggestion to help recover from the error.To:
Recovery suggestion. -
Changed the description of field
AttributeUpdateError.suggestionfrom:In case of error, the error information will be in the standard GraphQL errors arrayTo:
Errors appear in the standard GraphQL errors array. -
Changed the description of type
AttributeUpdateResponseCodefrom:Standard GraphQL error code that [MUST report standardized error codes for commonly encountered errors [229]](https://api-wg.pages.corp.indeed.com/api-recommendations/recommendations/graphql/errors/errors/#must-report-standardized-error-codes-for-commonly-encountered-errors-229) describes.To:
Standard GraphQL error code. See [MUST report standardized error codes for commonly encountered errors [229]](https://api-wg.pages.corp.indeed.com/api-recommendations/recommendations/graphql/errors/errors/#must-report-standardized-error-codes-for-commonly-encountered-errors-229). -
Changed the description of enum value
AttributeUpdateResponseCode.BAD_USER_INPUTfrom:The value of an input parameter is invalid. This error code applies to input validation performed beyond the standardGraphQL client and server libraries non-null and type checking.To:
Invalid input parameter. Applies to validation beyond standard GraphQL type/`null` checking. -
Changed the description of enum value
AttributeUpdateResponseCode.FORBIDDENfrom:Valid authentication credentials are present but insufficient to perform the associated operation.This error code is the GraphQL equivalent of the HTTP `403 Forbidden` response status code.To:
Valid credentials but insufficient permissions. Equivalent to HTTP `403 Forbidden`. -
Changed the description of enum value
AttributeUpdateResponseCode.INTERNAL_SERVER_ERRORfrom:The server encountered an unexpected failure and did not provide a response.Use this generic error for failures that the server cannot handle.To:
Unexpected server failure. Generic error for unhandled failures. -
Changed the description of enum value
AttributeUpdateResponseCode.PARTIAL_SUCCESSfrom:Partial-success if the response contains only part of successful response because of some failures.To:
Partial success due to some failures. -
Changed the description of enum value
AttributeUpdateResponseCode.QUERY_TOO_COMPLEXfrom:The query exceeded the allowed complexity for a single request.To:
Query exceeded complexity limit. -
Changed the description of enum value
AttributeUpdateResponseCode.UNAUTHENTICATEDfrom:The 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 `401 Unauthorized` response status code.To:
Insufficient authentication credentials. Equivalent to HTTP `401 Unauthorized`. -
Changed the description of type
CountrySpecificEmployerAttributesInputfrom:Country specific dataTo:
Country-specific data. -
Changed the description of input field
CountrySpecificEmployerAttributesInput.countryfrom:An ISO 3166-1 - alpha 2-encoded country code string, such as, `US` or `JP`.To:
ISO 3166-1 alpha-2 country code (such as `US`, `JP`). -
Changed the description of input field
CountrySpecificEmployerAttributesInput.employeesfrom:Size of the employers workforce.Allowed values are:| Value | Number of employees ||:------------------|--------------------:|| `ERv1_1` | 1 || `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 |To:
Employers workforce size. Allowed values:| Value | Number of employees ||:------------------|--------------------:|| `ERv1_1` | 1 || `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 | -
Changed the description of input field
CountrySpecificEmployerAttributesInput.isGlobalDefaultfrom:Deprecated. If the data the global default, set `isGlobalDefault=true`.If `isGlobalDefault=true` in addition to its normal locale, data is also written to `ww_WW` internally.This field is deprecated because it is always `true` for `CountrySpecificEmployerAttributes`.To:
Deprecated. Always `true` for `CountrySpecificEmployerAttributes`.When `true`, data is also written to `ww_WW` internally. -
Changed the description of input field
CountrySpecificEmployerAttributesInput.phoneNumfrom:Deprecated. Employers official phone number. Use the `phoneNumber` field instead.To:
Deprecated. Use `phoneNumber` instead.' -
Changed the description of input field
CountrySpecificEmployerAttributesInput.phoneNumberfrom:Employers official phone number.The value must follow the standard [E.164](https://en.wikipedia.org/wiki/E.164) format.For example, `+17895551234`.To:
Employers official phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format.Example: `+17895551234` -
Changed the description of input field
CountrySpecificEmployerAttributesInput.sectorSUIDsfrom:List of Indeed sector (industry) short unique identifiers (SUIDs).The maximum number of SUIDs is 3. Each value must be a valid SUID.See this table:**Market-specific documentation**| Market | Example value ||:-------|:--------------|| Japan | [Valid company sector SUID values](https://docs.indeed.com/employers/reference/company-sector). |To:
Sector (industry) SUIDs. Maximum 3, must be valid.Japan: [Company sectors](https://docs.indeed.com/employers/reference/company-sector). -
Changed the description of input field
CountrySpecificEmployerAttributesInput.taxIdfrom:Employers tax identifier.Limit is 100 characters.**Market-specific documentation**| Market | Example value ||:-------|:--------------|| Japan | If [`employerType`](/api/employer/objects/EmployerAttributesInput) is `JURIDICAL_PERSON`, set this field to the corporate number (法人番号) to correctly identify the company.<br/><br/>If `employerType` is `NATURAL_PERSON`, this field is optional. |To:
Employers tax identifier. Limit: 100 characters.Japan: If [`employerType`](/api/employer/objects/EmployerAttributesInput) is `JURIDICAL_PERSON`, set to the corporate number (法人番号) for correct identification. If `employerType` is `NATURAL_PERSON`, this field is optional. -
Changed the description of input field
CountrySpecificEmployerAttributesInput.websiteUrlfrom:The root website of the `employer`—for example, `indeed.com`.If the employer is a franchise, use the brand website.Limit is 400 characters. Must be a valid URL.To:
Employers root website (such as `indeed.com`). For franchises, use the brand website.Limits: 400 characters. Must be a valid URL.' -
Changed the description of type
EmployerAttributesInputfrom:Input object that contains employer attributes that you can update.To:
Updatable employer attributes. -
Changed the description of input field
EmployerAttributesInput.countrySpecificAttributesfrom:Employer attributes that can differ by country.To:
Country-specific employer attributes. -
Changed the description of input field
EmployerAttributesInput.jpNewGradsAttributesfrom:Employer attributes that are specific to JP New-Grads.To:
JP new grads employer attributes. -
Changed the description of input field
EmployerAttributesInput.localeSpecificAttributesfrom:Employer attributes that can differ by locale (`lang` + `country`).To:
Locale-specific employer attributes (`lang` + `country`). -
Changed the description of type
EmployerIdentifiersInputfrom:Employer identifier that uniquely defines an employer.Clients that have Indeed employer key:Other types of employer identifiers are communicated **individually**.To:
Unique employer identifier.For clients with an Indeed employer key:Other identifier types are communicated individually. -
Changed the description of input field
EmployerIdentifiersInput.typefrom:A magic string that indicates the identifier type.- Indeed internal clients can check valid types on [`EmployerIdentifierType`](https://link.indeed.tech/cd-patch-employer).- Otherwise, the type is communicated individually.To:
Identifier type.* Indeed internal clients: See valid types in [`EmployerIdentifierType`](https://link.indeed.tech/cd-patch-employer).* Others: Communicated individually. -
Changed the description of type
JpNewGradsEmployerAttributesInputfrom:Employer attributes that are specific to JP New-GradsTo:
JP new grads employer attributes. -
Changed the description of input field
JpNewGradsEmployerAttributesInput.schoolsWithHiringRecordsfrom:A list of schools from which the employer has previously hired graduates.Each school name must be fewer than 100 characters, and the total number of schools cannot exceed 1000.To:
Schools the employer has hired graduates from.Limits: Max 1000 schools, each name under 100 characters. -
Changed the description of type
LeaderInputfrom:Leaders information.To:
Leader information. -
Changed the description of input field
LeaderInput.namefrom:Leaders nameTo:
Leader name. -
Changed the description of type
LocaleSpecificEmployerAttributesInputfrom:Attributes that are bound to specific localesTo:
Locale-specific attributes. -
Changed the description of input field
LocaleSpecificEmployerAttributesInput.countryfrom:An ISO 3166-1 alpha 2-encoded country code string—for example, `US` or `JP`.`ww_WW` is not accepted for worldwide default data. All data must set a valid country and language.To:
ISO 3166-1 alpha-2 country code (such as `US`, `JP`).`ww_WW` is not accepted. All data must specify a valid country and language. -
Changed the description of input field
LocaleSpecificEmployerAttributesInput.descriptionfrom:Description of the employer.To:
Employer description. -
Changed the description of input field
LocaleSpecificEmployerAttributesInput.headquarterAddressfrom:Headquarter address. Referenced as 本社所在地住所 in Japans market.To:
Headquarters address. Japan: 本社所在地住所 -
Changed the description of input field
LocaleSpecificEmployerAttributesInput.isGlobalDefaultfrom:If `true`, defines the data as the global default.To:
If `true`, sets this data as the global default. -
Changed the description of input field
LocaleSpecificEmployerAttributesInput.languagefrom:An ISO 639-1 - alpha 2-encoded language code string—for example, `en` or `ja`.`ww_WW` is not accepted for worldwide default data. All data must set a valid country and language.To:
ISO 639-1 alpha-2 language code (such as `en`, `ja`).`ww_WW` is not accepted. All data must specify a valid country and language. -
Changed the description of input field
LocaleSpecificEmployerAttributesInput.leaderfrom:Leaders information.To:
Leader information. -
Changed the description of input field
LocaleSpecificEmployerAttributesInput.localizedNamefrom:Employer name in the locale.Length is from 1 to 60 characters.:::noteIf 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**| Field | Example value ||:----------------|:-----------------------|| `name` | Yamada Kyujin || `localizedName` | 山田求人 (ja_JP) || `phoneticName` | ヤマダキュウジン (ja_JP) || Field | Example value ||:----------------|:-----------------------|| `name` | Google || `localizedName` | グーグル (ja_JP) || `phoneticName` | グーグル (ja_JP) || Field | Example value ||:----------------|:-----------------------|| `name` | Rakuten || `localizedName` | 楽天 (ja_JP) || `phoneticName` | ラクテン (ja_JP) |To:
Localized employer name. Limit: 1 to 60 characters.:::noteIf 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**:| Field | Example value ||:----------------|:-----------------------|| `name` | Yamada Kyujin || `localizedName` | 山田求人 (ja_JP) || `phoneticName` | ヤマダキュウジン (ja_JP) || Field | Example value ||:----------------|:-----------------------|| `name` | Google || `localizedName` | グーグル (ja_JP) || `phoneticName` | グーグル (ja_JP) || Field | Example value ||:----------------|:-----------------------|| `name` | Rakuten || `localizedName` | 楽天 (ja_JP) || `phoneticName` | ラクテン (ja_JP) | -
Changed the description of input field
LocaleSpecificEmployerAttributesInput.phoneticNamefrom:Phonetic name of the employer.Limit is 250 characters.**Examples**| Field | Example value ||:----------------|:-----------------------|| `name` | Yamada Kyujin || `localizedName` | 山田求人 (ja_JP) || `phoneticName` | ヤマダキュウジン (ja_JP) || Field | Example value ||:----------------|:-----------------------|| `name` | Google || `localizedName` | グーグル (ja_JP) || `phoneticName` | グーグル (ja_JP) || Field | Example value ||:----------------|:-----------------------|| `name` | Rakuten || `localizedName` | 楽天 (ja_JP) || `phoneticName` | ラクテン (ja_JP) |To:
Employer phonetic name. Limit: 250 characters.**Examples**:| Field | Example value ||:----------------|:-----------------------|| `name` | Yamada Kyujin || `localizedName` | 山田求人 (ja_JP) || `phoneticName` | ヤマダキュウジン (ja_JP) || Field | Example value ||:----------------|:-----------------------|| `name` | Google || `localizedName` | グーグル (ja_JP) || `phoneticName` | グーグル (ja_JP) || Field | Example value ||:----------------|:-----------------------|| `name` | Rakuten || `localizedName` | 楽天 (ja_JP) || `phoneticName` | ラクテン (ja_JP) | -
Changed the description of input field
LocaleSpecificEmployerAttributesInput.squareLogofrom:Base64-encoded square logo. Must be a square image with these dimensions:* **Minimum**: 256x256 pixels* **Maximum**: 4096x4096 pixelsTo:
Base64-encoded square logo.Dimensions:* Minimum: 256×256 pixels* Maximum: 4096×4096 pixels -
Changed the description of field
Mutation.patchEmployerfrom: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 clientYou 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.To:
Creates or updates an employer.If `input.id` matches an existing employer, updates it.Otherwise, creates an employer.Returns the `employerKey` on success.**Protected employers:**Some employers are marked as protected. You can only update:* Non-protected employers* Protected employers your client createdUpdating a protected employer created by another client returns a `FORBIDDEN` error.**Timeout:**Set a 5,000 ms timeout for Indeed PLUS API calls. -
Changed the description from:
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}]}}To:
| Action | Regular fields | Array fields ||:--------|:---------------|:-------------|| Keep unchanged | Omit the field | Omit the field || Remove value | Set to null | Set to `[]` || Overwrite | Set new value | Set new array |**Example**:{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 input field
PatchEmployerInput.employerAttributesfrom:Employer attributes to update. If null, no employer attributes are updated.To:
Employer attributes to update. If null, nothing is updated. -
Changed the description of input field
PatchEmployerInput.employerNamefrom:Official employer name, which is required to create an Indeed employer key, and optional to submit employer data.Limit is 255 UTF-16-encoded characters. Cannot include the email address or eight consecutive digits.:::noteThe 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.:::To:
Official employer name. Required to create an employer key; optional for submitting employer data.Limits: 255 UTF-16 characters. No email addresses or 8+ consecutive digits.:::note`employerName` is copied to the global [`localizedName`](/api/employer/objects/LocaleSpecificEmployerAttributesInput) field unless explicitly set in the request.::: -
Changed the description of input field
PatchEmployerInput.idfrom:The globally unique Internationalized Resource Identifier (IRI) for the employer.To:
Globally unique IRI for the employer. -
Changed the description of field
PatchEmployerPayload.attributeUpdatedfrom:If `true`, the employer attribute was updated,. Otherwise, `false`.To:
`true` if employer attributes were updated. -
Changed the description of field
PatchEmployerPayload.errorsfrom:List of errors.If no errors occur, returns an empty array.To:
List of errors. Empty if none. -
Changed the description of field
PatchEmployerPayload.errorsfrom:In case of error, the error information will be in the standard GraphQL errors arrayTo:
Errors appear in the standard GraphQL errors array. -
Changed the description of field
PatchEmployerPayload.responseCodefrom:In case of success, no special response code will be used. In case of error, the error codes will be in the standard GraphQL errors arrayTo:
Success returns no special code. Errors appear in the standard GraphQL errors array.