Salary.com
Home API MCP
Home
API
Welcome to the Salary.com API
Data as a Service CompAnalyst and JobArchitect

Data as a Service

Introduction & AI
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
Behavior Request Field Definitions Response Field Definitions Match a Job POST Match a Job (Verbose) POST

CompAnalyst

Get an Employee GET Get Employee List GET Create an Employee POST Update an Employee PUT Delete an Employee DELETE
Get a Company Job GET Get Company Job List GET Create a Company Job POST Update a Company Job PUT
Get Composite List GET Get Composite by Job Code GET

JobArchitect

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

Reference

Employees Company Jobs Salary Plan Competencies Composites JobArchitect Skills
Change Log
MCP
Welcome to Salary.com MCP Authentication

CompAnalyst Market Data Tools

Overview
getMarketRate getBenchmarkJobDetails findBenchmarkMatches compareToMarket Shared Fields & Filters

SalaryIQ Labor Market Tools

Overview
getPostingTrends getTrendingSkills getHiringCompanies summarizeLaborMarket Shared Fields & Filters

Reference

Resources
×
Back
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

Batch Match Jobs

POST /DaaS/batchjobpricing

Match up to 200 jobs in a single request. The request fields are the same as for the single /jobpricing endpoint, with the addition of the “SubRequestID” field. The consumer must assign a unique SubRequestID to each individual job in the request.

This SubRequestID is returned in the response body in order to match each requested job to the response.

URL

https://daasjobmatchapi.salary.com/DaaS/batchjobpricing

Method

POST

Request Headers

Authorization: Bearer {AccessToken}

Content-Type: application/json

Request Body

[
  {
    "SubRequestID": "string",
    "JobTitle": "string",
    "JobDesc": "string",
    "CompanyName": "string",
    "DataScope": {
      "CountryCode": "string",
      "State": "string",
      "City": "string",
      "ZipCode": "string",
      "NAICSCode": "string",
      "FTEValue": 0,
      "Revenue": 0
    }
  },
  {
    "SubRequestID": "string",
    "JobTitle": "string",
    "JobDesc": "string",
    "CompanyName": "string",
    "DataScope": {
      "CountryCode": "string",
      "State": "string",
      "City": "string",
      "ZipCode": "string",
      "NAICSCode": "string",
      "FTEValue": 0,
      "Revenue": 0
    }
  }
]

Please reference “Field Definitions” and “Behavior” sections for detailed information about the fields and API behavior.

Example Request

curl -X 'POST' \
  'https://daasjobmatchapi.salary.com/DaaS/batchjobpricing' \
  -H 'accept: */*' \
  -H 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6IjA1NjE4Q0JBLTUzMzAtNEYxQi05NzI2LUY4OUQ2MkZCNTREMCIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWUiOiJCRUQ0M0ZCMC1COUU1LTQ3ODAtOUNCRS01NTdFMUE2MUFDNzciLCJuYmYiOjE3MTM0NTY3ODUsImV4cCI6MTcxNDA2MTU4NSwiaXNzIjoiU2FsYXJ5IiwiYXVkIjoiSm9iTWF0Y2hBUElDbGllbnQifQ.Cy-TVOjmNZkD4jaSeoeOj_jX4x8H07X9VoRDQnSFTl8' \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "SubRequestID": "1",
    "JobTitle": "Accountant I",
    "JobDesc": "",
    "CompanyName": "",
    "DataScope": {
      "CountryCode": "USA",
      "State": "MA",
      "City": "Boston",
      "ZipCode": "02111",
      "NAICSCode": "52",
      "FTEValue": 150,
      "Revenue": 0
    }
  },
    {
    "SubRequestID": "2",
    "JobTitle": "Accountant II",
    "JobDesc": "",
    "CompanyName": "",
    "DataScope": {
      "CountryCode": "USA",
      "State": "MA",
      "City": "Boston",
      "ZipCode": "02111",
      "NAICSCode": "52",
      "FTEValue": 0,
      "Revenue": 10000000
    }
  }
]'

Response Body

Note the SubRequestID in the example request corresponds to the SubRequestID in the response body.

200 HTTP Status Code

This response body corresponds to the example request above.

{
  "Code": 1,
  "Data": [
    {
      "SubRequestID": "1",
      "MatchRating": "Confident",
      "Salary10": 56553.7446,
      "Salary25": 62128.7423,
      "Salary50": 68252.1006,
      "Salary75": 75286.3125,
      "Salary90": 81690.5949,
      "Comp10": 57260.8285,
      "Comp25": 63277.4648,
      "Comp50": 69885.9014,
      "Comp75": 77720.2083,
      "Comp90": 84852.9354,
      "BonusTarget50": 4095.126,
      "BonusTargetAvg": 4504.6386,
      "CurrencyCode": "USD",
      "DataScope_IndustryCode": "52",
      "DataScope_IndustryName": "Finance and Insurance",
      "DataScope_FTERange": "101-200",
      "DataScope_CountryCode": "USA",
      "DataScope_Region": "Northeast",
      "DataScope_State": "MA",
      "DataScope_City": "Boston",
      "JobFamilyName": "Accountants and Financial Personnel",
      "JobLevelName": "Entry (I)"
    },
    {
      "SubRequestID": "2",
      "MatchRating": "Confident",
      "Salary10": 67006.5856,
      "Salary25": 74077.1885,
      "Salary50": 81843.2605,
      "Salary75": 90570.0902,
      "Salary90": 98515.4126,
      "Comp10": 68074.7302,
      "Comp25": 75916.8802,
      "Comp50": 84530.3893,
      "Comp75": 94626.8736,
      "Comp90": 103819.1951,
      "BonusTarget50": 6474.232,
      "BonusTargetAvg": 6496.2007,
      "CurrencyCode": "USD",
      "DataScope_IndustryCode": "52",
      "DataScope_IndustryName": "Finance and Insurance",
      "DataScope_RevenueRange": "5000001-10000000",
      "DataScope_CountryCode": "USA",
      "DataScope_Region": "Northeast",
      "DataScope_State": "MA",
      "DataScope_City": "Boston",
      "JobFamilyName": "Accountants and Financial Personnel",
      "JobLevelName": "Intermediate (II)"
    }
  ]
}

Common Errors

Non Unique SubRequestID

200 HTTP Status Code

{
    "Code": -1,
    "Data": [
      {
        "SubRequestID": "1",
        "ErrorMessage": "SubRequestID for each subrequest must be unique, duplicate SubRequestID: 1."
      },
      {
        "SubRequestID": "1",
        "ErrorMessage": "SubRequestID for each subrequest must be unique, duplicate SubRequestID: 1."
      }
    ]
}

Missing SubRequestID in one of the JSON objects

200 HTTP Status Code

If one of the JSON objects contains valid data but a second is missing the SubRequestID, data will still be returned for the valid objects.

    .....
    {
      "ErrorMessage": "The SubRequestID field is required."
    }

Exceed max call of batch API

200 HTTP Status Code

{
    "Code": -1,
    "Message": "Batch subrequest limit exceeded. Only 200 subrequest allowed in each API call."
}

© Copyright Salary.com 2026. All Rights Reserved.

Privacy Policy/California Privacy Rights | Legal | Accessibility | Terms of Use | Do Not Sell or Share My Information