Get campaign predictions
POST/v1/campaignpredictions
Gets campaign predictions.
Estimates expected job applies for a given budget.
Recommends a budget based on your desired performance.
Predictions use job properties, campaign type, and campaign duration.
Single-job predictions are based on past performance of similar jobs on Indeed.
The API can also predict performance for campaigns with multiple jobs.
Supported currency codes are CAD, GBP, EUR, JPY, and USD.
Default currency is USD.
The API can estimate performance for budgets below USD $100 per day.
After the employer accepts the recommended budget, confirm campaigns are created with the same parameters.
These values are estimates based on Indeed's past performance and do not guarantee future results.
| OAuth scope | Access token type |
|---|---|
employer_access |
Request
- application/json
Body
jobInfo
object
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.
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`.Campaign end date. In YYYY-MM-DD format and in the US Central time zone.
Required 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.
Budget amount to estimate performance for, expressed in the currency specified by currencyCode.
Pass a single number in the array.
Required if predictionType is BUDGET_BASED.
BUDGET_BASED predictions support exactly one job.
If your jobsQuery resolves to multiple jobs, Indeed returns a 400 validation error.
Total applies across jobs for which to estimate the budget.
Pass a single number in the array.
Required if predictionType is APPLY_BASED and appliesPerJob is not set.
Total applies per job for which to estimate the budget.
Pass a single number in the array.
Required if predictionType is APPLY_BASED and totalApplies is not set.
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[]
Errors that prevented the request from being processed successfully.
If there are no errors, this 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
For BUDGET_BASED requests, the estimated number of organic
For BUDGET_BASED requests, the estimated number of total
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
For BUDGET_BASED requests, the estimated number of organic
For BUDGET_BASED requests, the estimated number of total
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 invalid.
The description field usually names the invalid parameter and provides more detail.
Unlike other error types, meta.errors can contain multiple INVALID_REQUEST errors.
Each INVALID_REQUEST error maps to one invalid request parameter.
- 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[]
Errors that prevented the request from being processed successfully.
If there are no errors, this 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": "<p><code>jobsSourceId</code>: required attribute is missing.</p>" } ], "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 @@PH0@@ header is missing or malformed. Include the access token using the
Bearerscheme — 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[]
Errors that prevented the request from being processed successfully.
If there are no errors, this 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": "<p>Invalid OAuth access token.</p>" } ], "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 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 Employer access token. That is, you must specify the |
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[]
Errors that prevented the request from being processed successfully.
If there are no errors, this 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": "<p>Access token does not have permission to access this API.</p>" } ], "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.
Verify 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[]
Errors that prevented the request from being processed successfully.
If there are no errors, this 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": "<p>Failed to process the request.</p>" } ], "rootLocation": "https://apis.indeed.com/ads", "perPage": null, "links": null }, "data": null}