Get campaign predictions
POST/v1/campaignpredictions
Gets campaign predictions:
- Estimates the expected job performance in terms of the number of total job applies for a budget.
- Recommends a budget to sponsor a job based on the desired performance.
Predictions are based on the job properties, as well as the type and duration of the campaign. Individual job predictions are based on the past performance of similar jobs at Indeed. It can predict performance of campaign with multiple jobs as well.
Supported currency codes for prediction are CAD, GBP, EUR, JPY, and USD. Default is USD. The API supports estimate performance for budgets lower than USD $100 per day.
After the employer accepts the recommended budget, Make sure that campaigns are created with the same parameters.
The numbers provided are only estimates based on Indeed's past performance and do not guarantee future performance.
| OAuth scope | Access token type |
|---|---|
employer_access | Access token that represents an employer. See Get access token that represents employer. |
Request
- application/json
Body
- City where the job is located.
- Required if jobsQuery, and jobsSourceName are not provided, or for new jobs.
- Job query.
- Required if jobsSourceId is provided.
- Source ID for the job.
- Required if jobsQuery is provided.
- Job title.
- Required if jobsQuery, and jobsSourceName are not provided, or for new jobs.
- Campaign end date. In
YYYY-MM-DDformat and in the US Central time zone. Required ifcampaignTypeisONETIME. - Required if campaignType is ONETIME.
-
Budget amount to estimate performance for, expressed in the currency specified by
currencyCode. Pass a single number in the array.Required if
predictionTypeisBUDGET_BASED.BUDGET_BASEDpredictions support exactly one job — if yourjobsQueryresolves to multiple jobs, Indeed returns a400validation error. -
Total applies across jobs to estimate the budget for. Pass a single number in the array.
Required if
predictionTypeisAPPLY_BASEDandappliesPerJobis not set. -
Total applies per job to estimate the budget for. Pass a single number in the array.
Required if
predictionTypeisAPPLY_BASEDandtotalAppliesis not set.
jobInfo
object
campaignInfo
object
Either ONETIME or MONTHLY.
Campaign start date. Defaults to today. In the YYYY-MM-DD format and in the US Central time zone. Only applicable if campaignType is ONETIME.
predictionsInfo
object
Either BUDGET_BASED or APPLY_BASED.
Currency code for the budget amount. Supported currency codes are CAD, GBP, EUR, JPY, and USD. Default is USD.
Responses
- 200
- 400
- 401
- 403
- 500
Success
- application/json
- Schema
- Example (from schema)
- Budget Based
- Apply Based
Schema
Array [
]
Array [
up: The related resource is a collection that contains the requested resource, or an entity that the requested resource is attached to.next: The next page of entries in a paginated result.prev: The previous page of entries in a paginated result.]
Array [
]
Array [
Array [
]
]
meta
object
Response-related metadata.
HTTP status code of the response.
errors
object[]
Any errors that prevented successful processing of the request. If there were no errors, the value is null.
Name of the error.
Human-readable description of the problem.
Base URL of the Sponsored Jobs API.
For endpoints that return paginated results, the effective maximum number of entries returned on one page. The value may be smaller than the maximum you requested with the perPage parameter. If the endpoint returns a single result or doesn't paginate, the value is null.
links
object[]
Resources related to the requested resource.
The relationship between the requested resource and the related resource. These values are commonly used:
However, the value may also be an arbitrary string describing the relationship, such as Campaign Info.
Endpoint URL of the related resource. Can contain query string parameters. To get the complete URL, append the href to rootLocation.
data
object
Currency code for the returned budget amounts. All the values in this object is aggregated result of individual job predictions.
predictions
object[]
List of predictions. A single value.
For BUDGET_BASED requests, the budget on which the estimated number of applies is based. For APPLY_BASED requests, the recommended budget to achieve the desired number of total applies.
For BUDGET_BASED requests, the estimated number of organic applies for the job without sponsoring. Use totalApplies and organicApplies to calculate the estimated number of applies that result from sponsoring the job.
For BUDGET_BASED requests, the estimated number of total applies for a job (organic and sponsored) for a budget value. For APPLY_BASED requests, the number of total applies on which the recommended budget is based.
For BUDGET_BASED requests, the estimated lower range of applies for a job (organic and sponsored) for a budget value. For APPLY_BASED requests, the response does not include this field.
For BUDGET_BASED requests, the estimated higher range of applies for a job (organic and sponsored) for a budget value. For APPLY_BASED requests, the response does not include this field.
jobLevelPredictions
object[]
List of predictions for each job. Can be null depending on input parameters. All the values in this object is corresponds to individual jobs. This field can be null depending on input parameters.
job
object
Job key.
Job reference ID.
Job title.
Job location.
predictions
object[]
List of predictions. A single value.
For BUDGET_BASED requests, the budget on which the estimated number of applies is based. For APPLY_BASED requests, the recommended budget to achieve the desired number of total applies.
For BUDGET_BASED requests, the estimated number of organic applies for the job without sponsoring. Use totalApplies and organicApplies to calculate the estimated number of applies that result from sponsoring the job.
For BUDGET_BASED requests, the estimated number of total applies for a job (organic and sponsored) for a budget value. For APPLY_BASED requests, the number of total applies on which the recommended budget is based.
For BUDGET_BASED requests, the estimated lower range of applies for a job (organic and sponsored) for a budget value. For APPLY_BASED requests, the response does not include this field.
For BUDGET_BASED requests, the estimated higher range of applies for a job (organic and sponsored) for a budget value. For APPLY_BASED requests, the response does not include this field.
{ "meta": { "status": 200, "errors": [ { "type": "RESOURCE_NOT_FOUND", "description": "Couldn't locate the requested resource" } ], "rootLocation": "https://apis.indeed.com/ads", "perPage": 25, "links": [ { "rel": "next", "href": "/v1/campaigns/3141592653589793" } ] }, "data": { "currencyCode": "USD", "predictions": [ { "budget": 75.5, "organicApplies": 2, "totalApplies": 10, "estimatedLowerApplies": 8, "estimatedHigherApplies": 15 } ], "jobLevelPredictions": [ { "job": { "jobKey": "80fdf7e9de72243f", "refNum": "12800649-92-99", "title": "Firmware Engineer", "location": "Irvine" }, "predictions": [ { "budget": 75.5, "organicApplies": 2, "totalApplies": 10, "estimatedLowerApplies": 8, "estimatedHigherApplies": 15 } ] } ] }}{ "meta": { "status": 200, "errors": null, "rootLocation": "https://apis.indeed.com/ads", "perPage": null, "links": null }, "data": { "currencyCode": "USD", "predictions": [ { "predictionType": "BUDGET_BASED", "budget": 151, "organicApplies": 3, "totalApplies": 7, "estimatedLowerApplies": 3, "estimatedHigherApplies": 10 } ], "jobLevelPredictions": [ { "job": { "jobKey": "80fdf7e9de72243f", "refNum": "12800649-92-99", "title": "Firmware Engineer", "location": "Irvine" }, "predictions": [ { "predictionType": "BUDGET_BASED", "budget": 75.5, "organicApplies": 2, "totalApplies": 4, "estimatedLowerApplies": 2, "estimatedHigherApplies": 5 } ] }, { "job": { "jobKey": "79db86f75cbbde08", "refNum": "12800649-93-100", "title": "Principal Software Engineer", "location": "Irvine" }, "predictions": [ { "predictionType": "BUDGET_BASED", "budget": 75.5, "organicApplies": 1, "totalApplies": 3, "estimatedLowerApplies": 1, "estimatedHigherApplies": 5 } ] } ] }}{ "meta": { "status": 200, "errors": null, "rootLocation": "https://apis.indeed.com/ads", "perPage": null, "links": null }, "data": { "currencyCode": "USD", "predictions": [ { "predictionType": "APPLY_BASED", "budget": 816, "organicApplies": 0, "totalApplies": 16 } ], "jobLevelPredictions": [ { "job": { "jobKey": "80fdf7e9de72243f", "refNum": "12800649-92-99", "title": "Firmware Engineer", "location": "Irvine" }, "predictions": [ { "predictionType": "APPLY_BASED", "budget": 416, "organicApplies": 0, "totalApplies": 8 } ] }, { "job": { "jobKey": "79db86f75cbbde08", "refNum": "12800649-93-100", "title": "Principal Software Engineer", "location": "Irvine" }, "predictions": [ { "predictionType": "APPLY_BASED", "budget": 400, "organicApplies": 0, "totalApplies": 8 } ] } ] }}A request parameter is not valid. The description field usually contains the name of the problematic parameter and a more detailed error message.
Unlike other error types, the meta.errors array may contain multiple INVALID_REQUEST errors, one for each request parameter with a problem.
- application/json
- Schema
- Example (from schema)
- Example
Schema
Array [
]
Array [
up: The related resource is a collection that contains the requested resource, or an entity that the requested resource is attached to.next: The next page of entries in a paginated result.prev: The previous page of entries in a paginated result.]
meta
object
Response-related metadata.
HTTP status code of the response.
errors
object[]
Any errors that prevented successful processing of the request. If there were no errors, the value is null.
Name of the error.
Human-readable description of the problem.
Base URL of the Sponsored Jobs API.
For endpoints that return paginated results, the effective maximum number of entries returned on one page. The value may be smaller than the maximum you requested with the perPage parameter. If the endpoint returns a single result or doesn't paginate, the value is null.
links
object[]
Resources related to the requested resource.
The relationship between the requested resource and the related resource. These values are commonly used:
However, the value may also be an arbitrary string describing the relationship, such as Campaign Info.
Endpoint URL of the related resource. Can contain query string parameters. To get the complete URL, append the href to rootLocation.
{ "meta": { "status": 200, "errors": [ { "type": "RESOURCE_NOT_FOUND", "description": "Couldn't locate the requested resource" } ], "rootLocation": "https://apis.indeed.com/ads", "perPage": 25, "links": [ { "rel": "next", "href": "/v1/campaigns/3141592653589793" } ] }, "data": null}{ "meta": { "status": 400, "errors": [ { "type": "INVALID_REQUEST", "description": "jobsSourceId: required attribute is missing." } ], "rootLocation": "https://apis.indeed.com/ads", "perPage": null, "links": [ { "rel": "up", "href": "/v1/campaigns" } ] }, "data": null}Request did not include a valid access token:
-
The
Authorizationheader is missing or malformed. Include the access token using theBearerscheme — for example,Authorization: Bearer XYZ. -
The access token is malformed. When building requests manually, check that you copied the token without missing or extra characters at the start or end.
-
The access token has expired. Tokens expire after one hour (3,600 seconds). Get a new token using your client credentials (2-legged OAuth) or a refresh token (3-legged OAuth).
- application/json
- Schema
- Example (from schema)
- Example
Schema
Array [
]
Array [
up: The related resource is a collection that contains the requested resource, or an entity that the requested resource is attached to.next: The next page of entries in a paginated result.prev: The previous page of entries in a paginated result.]
meta
object
Response-related metadata.
HTTP status code of the response.
errors
object[]
Any errors that prevented successful processing of the request. If there were no errors, the value is null.
Name of the error.
Human-readable description of the problem.
Base URL of the Sponsored Jobs API.
For endpoints that return paginated results, the effective maximum number of entries returned on one page. The value may be smaller than the maximum you requested with the perPage parameter. If the endpoint returns a single result or doesn't paginate, the value is null.
links
object[]
Resources related to the requested resource.
The relationship between the requested resource and the related resource. These values are commonly used:
However, the value may also be an arbitrary string describing the relationship, such as Campaign Info.
Endpoint URL of the related resource. Can contain query string parameters. To get the complete URL, append the href to rootLocation.
{ "meta": { "status": 200, "errors": [ { "type": "RESOURCE_NOT_FOUND", "description": "Couldn't locate the requested resource" } ], "rootLocation": "https://apis.indeed.com/ads", "perPage": 25, "links": [ { "rel": "next", "href": "/v1/campaigns/3141592653589793" } ] }, "data": null}{ "meta": { "status": 401, "errors": [ { "type": "INVALID_TOKEN", "description": "Invalid OAuth access token." } ], "rootLocation": "https://apis.indeed.com/ads", "perPage": null, "links": null }, "data": null}Valid access token that cannot be used with this API. Inspect the error returned in the meta.errors for details.
| Error type | Meaning and common causes |
|---|---|
INSUFFICIENT_SCOPE | The access token does not have the OAuth v2 token scope required for this API endpoint. For common causes, see FAQ and troubleshooting. |
NOT_EMPLOYER_ACCESS_TOKEN | This endpoint requires an access token that represents an employer. See Get access token that represents employer. That is, you must specify the employer parameter when requesting the access token. You need to do this for the majority of the Sponsored Jobs API endpoints. |
LEGACY_ACCESS_TOKEN_NOT_ALLOWED | Sponsored Jobs API no longer supports access tokens that you get through legacy OAuth endpoints. For updated endpoints, see Integrate with Indeed and call APIs |
- application/json
- Schema
- Example (from schema)
- Example
Schema
Array [
]
Array [
up: The related resource is a collection that contains the requested resource, or an entity that the requested resource is attached to.next: The next page of entries in a paginated result.prev: The previous page of entries in a paginated result.]
meta
object
Response-related metadata.
HTTP status code of the response.
errors
object[]
Any errors that prevented successful processing of the request. If there were no errors, the value is null.
Name of the error.
Human-readable description of the problem.
Base URL of the Sponsored Jobs API.
For endpoints that return paginated results, the effective maximum number of entries returned on one page. The value may be smaller than the maximum you requested with the perPage parameter. If the endpoint returns a single result or doesn't paginate, the value is null.
links
object[]
Resources related to the requested resource.
The relationship between the requested resource and the related resource. These values are commonly used:
However, the value may also be an arbitrary string describing the relationship, such as Campaign Info.
Endpoint URL of the related resource. Can contain query string parameters. To get the complete URL, append the href to rootLocation.
{ "meta": { "status": 200, "errors": [ { "type": "RESOURCE_NOT_FOUND", "description": "Couldn't locate the requested resource" } ], "rootLocation": "https://apis.indeed.com/ads", "perPage": 25, "links": [ { "rel": "next", "href": "/v1/campaigns/3141592653589793" } ] }, "data": null}{ "meta": { "status": 403, "errors": [ { "type": "INSUFFICIENT_SCOPE", "description": "Access token does not have permission to access this API." } ], "rootLocation": "https://apis.indeed.com/ads", "perPage": null, "links": null }, "data": null}Unexpected error occurred. The problem is sometimes temporary and the exact same request may succeed after retrying.
If retrying the request does not help, a problem with parsing the request might have occurred. Make sure that all the required parameters are present and that all parameters are correctly formatted.
If you use an access token obtained with client credentials grant type (2-legged OAuth) with the legacy Sponsored Jobs API endpoint, the INTERNAL_SERVER_ERROR error occurs. Be sure to use the latest base URL (https://apis.indeed.com/ads).
- application/json
- Schema
- Example (from schema)
- Example
Schema
Array [
]
Array [
up: The related resource is a collection that contains the requested resource, or an entity that the requested resource is attached to.next: The next page of entries in a paginated result.prev: The previous page of entries in a paginated result.]
meta
object
Response-related metadata.
HTTP status code of the response.
errors
object[]
Any errors that prevented successful processing of the request. If there were no errors, the value is null.
Name of the error.
Human-readable description of the problem.
Base URL of the Sponsored Jobs API.
For endpoints that return paginated results, the effective maximum number of entries returned on one page. The value may be smaller than the maximum you requested with the perPage parameter. If the endpoint returns a single result or doesn't paginate, the value is null.
links
object[]
Resources related to the requested resource.
The relationship between the requested resource and the related resource. These values are commonly used:
However, the value may also be an arbitrary string describing the relationship, such as Campaign Info.
Endpoint URL of the related resource. Can contain query string parameters. To get the complete URL, append the href to rootLocation.
{ "meta": { "status": 200, "errors": [ { "type": "RESOURCE_NOT_FOUND", "description": "Couldn't locate the requested resource" } ], "rootLocation": "https://apis.indeed.com/ads", "perPage": 25, "links": [ { "rel": "next", "href": "/v1/campaigns/3141592653589793" } ] }, "data": null}{ "meta": { "status": 500, "errors": [ { "type": "INTERNAL_SERVER_ERROR", "description": "Failed to process the request." } ], "rootLocation": "https://apis.indeed.com/ads", "perPage": null, "links": null }, "data": null}