☰
CompAnalyst
| API
×
Welcome to the Salary.com API Authentication
Data as a Service CompAnalyst and JobArchitect

DATA AS A SERVICE

Introduction & AI Market Data Job Match API
Behavior Request Field Definitions Response Field Definitions Match a Job POST Batch Match Jobs POST Match a Job (Verbose) POST Batch Match Jobs (Verbose) POST
Posting Data Job Match API
Behavior Request Field Definitions Response Field Definitions Match a Job POST Match a Job (Verbose) POST

COMPANALYST

Employees
Get an Employee GET Get Employee List GET Create an Employee POST Update an Employee PUT Delete an Employee DELETE
Company Jobs
Get a Company Job GET Get Company Job List GET Create a Company JobPOST Update a Company Job PUT
Composites
Get Composite ListGET Get Composite by Job CodeGET

JOBARCHITECT

Jobs
Get Job Description List GET Get a Job Description Details GET
Skills
Get Skills GET

REFERENCE

Field Definitions
Employees Company Jobs Salary Plan Competencies Composites JobArchitect Skills
Change Log

Update a Company Job

PUT /cloud/Data/V1/CompanyJob/{CompanyJobCode}

Updates an existing company job record in CompAnalyst.

URL

https://companalystapi.salary.com/cloud/Data/V1/CompanyJob/{CompanyJobCode}

Method

PUT

Request Headers

Authorization: Bearer {AccessToken}

Content-Type: application/json

Important Behavior

When updating standard fields on the company job, only the updated fields need to be included in the request body. Values for all other fields will be persevered. In this sense the method functions as a PATCH request.

When updating StructureAssignments, any object not passed in the PUT request that previously existed will be removed.

For example, if Structure A is added in the update but the job previously had Structure B (which is not included in the request), then after the update, only Structure A will be associated with the job. Structure B will be removed.

To update custom fields, use the UDF DB name e.g. UDFCmjTXS02. The DB name of UDFs is not exposed in the API. Please contact your Professional Services rep and request the DB name of each UDF and note it is API related.

Glossary

Refer to Company Jobs

Request Body

Only update job family, below request is okay and preserves values of other fields.

{
       "JobFamily": "Accounting & Finance" 
}

When updating the structure and plan data, include all the existing structure and plan objects or assignment will be removed.

{
   "StructureAssignment": [ 
    { 
      "StructureCodeForGrade": "USAEXE", 
      "GradeCode": "01" 
    }, 
    { 
      "StructureCodeForGrade": "USNEXE", 
      "GradeCode": "05" 
    } 
  ], 
  "PlanAssignment": [ 
    { 
      "StructureCodeForPlan": "USAEXE", 
      "SalaryPlanCode": "P1", 
      "LTI1": "1", 
      "LTI2": "0", 
      "LTI3": "0", 
      "LTI4": "0", 
      "LTI5": "0", 
      "LTI6": "0", 
      "LTI7": "0", 
      "LTI8": "0", 
      "LTI9": "0", 
      "IsBonusEligible": "1", 
      "BonusTargetPercent": "0.2", 
      "JobPoints": "3", 
      "BasePhilPercentile": "0.5", 
      "TCCPhilPercentile": "0.5", 
      "SalaryRangeMin": "11111", 
      "SalaryRangeMid": "22222", 
      "SalaryRangeMax": "33333", 
      "CurrencyCode": "USD", 
      "DefaultComparisonCode": "2", 
      "IsUseDefaultMarketData": "0", 
      "CAMDCountryCode": "USA", 
      "IndustryFamilyCode": "I00", 
      "RangeTypeCode": "3", 
      "RangeCode": "0", 
      "GeoTypeCode": "33", 
      "GeoCode": "0", 
      "UDFCmjMNY01": "1111" 
    }, 
    { 
      "StructureCodeForPlan": "USAEXE", 
      "SalaryPlanCode": "P2", 
      "LTI1": "1", 
      "LTI2": "1", 
      "LTI3": "1", 
      "LTI4": "1", 
      "LTI5": "1", 
      "LTI6": "1", 
      "LTI7": "1", 
      "LTI8": "1", 
      "LTI9": "1", 
      "IsBonusEligible": "1", 
      "BonusTargetPercent": "0.24", 
      "JobPoints": "4", 
      "BasePhilPercentile": "0.5", 
      "TCCPhilPercentile": "0.5", 
      "SalaryRangeMin": "25462.8", 
      "SalaryRangeMid": "37895.9", 
      "SalaryRangeMax": "40003.5", 
      "CurrencyCode": "USD", 
      "DefaultComparisonCode": "2", 
      "IsUseDefaultMarketData": "1", 
      "CAMDCountryCode": "USA", 
      "IndustryFamilyCode": "I50", 
      "RangeTypeCode": "3", 
      "RangeCode": "0", 
      "GeoTypeCode": "33", 
      "GeoCode": "0", 
      "UDFCmjMNY01": "2222" 
    }, 
    { 
      "StructureCodeForPlan": "USAEXE", 
      "SalaryPlanCode": "P3", 
      "LTI1": "1", 
      "LTI2": "0", 
      "LTI3": "0", 
      "LTI4": "1", 
      "LTI5": "0", 
      "LTI6": "0", 
      "LTI7": "1", 
      "LTI8": "0", 
      "LTI9": "0", 
      "IsBonusEligible": "1", 
      "BonusTargetPercent": "0.5", 
      "JobPoints": "3", 
      "BasePhilPercentile": "0.5", 
      "TCCPhilPercentile": "0.5", 
      "SalaryRangeMin": "30138.8", 
      "SalaryRangeMid": "36550.9", 
      "SalaryRangeMax": "44283.5", 
      "CurrencyCode": "USD", 
      "DefaultComparisonCode": "2", 
      "IsUseDefaultMarketData": "0", 
      "CAMDCountryCode": "USA", 
      "IndustryFamilyCode": "I30", 
      "RangeTypeCode": "3", 
      "RangeCode": "0", 
      "GeoTypeCode": "33", 
      "GeoCode": "0", 
      "UDFCmjMNY01": "3333" 
    } 
  ]   
}

Response Model

Successful call

200: OK - The request was successful, the corresponding content of this company job had been updated.

{
        "WEBAPIStatusCode": 0,
        "WEBAPIStatusDesc": "Success."
}

Successful call

200: OK - The company job code entered does not exist in the system

{
        "WEBAPIStatusCode": 1,
        "WEBAPIStatusDesc": "This companyjob does not exist."
}

Failed call

400: Bad Request - The call parameter is incorrect or the parameter content is not match the format

{
        "StatusCode": 400,
        "Reason": "Bad Request"
}
© Copyright Salary.com 2025. All Rights Reserved. Privacy Policy | Legal