List employer campaigns and statuses
GET/v1/campaigns
Lists an employer's campaigns and their statuses. Results might be paginated.
Example: List active campaigns, up to 100 per page:
https://apis.indeed.com/ads/v1/campaigns?status=ACTIVE&perPage=100| OAuth scope | Access token type |
|---|---|
employer.advertising.campaign.read |
Request
Query Parameters
Default value: 30
Maximum number of campaigns to return.
The response may include fewer campaigns than requested, even when more results are available.
Always check whether another page exists.
The maximum is 500 campaigns per page.
Position within a paginated response.
If more results are available, the response includes the next position.
Possible values: [ACTIVE, DELETED, PAUSED]
Campaign status.
Pass ACTIVE, DELETED, or PAUSED to filter by status.
By default, the response includes campaigns in all statuses.
Possible values: [SOURCE, HOSTED]
Job type.
Use SOURCE for jobs from the web or an XML feed.
Use HOSTED for jobs posted through the Post a Job page.
By default, the response includes both types.
Comma-separated list of response fields.
Valid values: Id, Name, Status, NonSpendingReasons, Type, CurrencyCode, TrackingToken, StartDate, FixedEndDate, TargetEndDate, BudgetOnetimeLimit, BudgetMonthlyLimit, FundingSource, SponsorshipPlan, and DailyAvgBudgetPerJob.
Default: Id, Name, Status.
Comma-separated list of campaignIds to return.
Supports up to 50 campaign IDs.
Only fields is supported.
Responses
- 200
- 400
- 401
- 403
- 500
Lists campaigns.
If campaignIds is omitted and no campaigns match, the API returns an empty data.Campaigns array with HTTP status 200.
Results may be paginated.
If more results are available, meta.links includes "rel": "next".
Append the href value to the base URL to get the next page.
The next URL includes only the start parameter.
If you used non-default perPage, status, or type values, add them manually.
- application/json
- Schema
- Example (from schema)
- Default fields
- With Non Spending Reasons
- With CampaignIds Param
- With More Fields
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 [
-
BEFORE_START_DATE: The current date in US Central Time is before the campaign start date. -
AFTER_END_DATE: The current date in US Central Time is on or after the campaign end date. -
ACCOUNT_MONTHLY_BUDGET_HIT: The employer account has already spent its monthly budget. -
MONTHLY_BUDGET_HIT: The campaign has already spent its monthly budget. -
ONETIME_BUDGET_HIT: The campaign has already spent its total budget. -
JOB_SOURCE_NOT_VERIFIED: Indeed has not yet verified the job source. -
BILLING_PENDING: The employer account does not have valid billing information. -
USER_PAUSED_CAMPAIGN: The campaign was paused as requested. -
USER_DELETED_CAMPAIGN: The campaign was deleted as requested. -
TARGET_APPLICATIONS_HIT: The campaign has already reached the requested number of applications. -
OTHER: Unknown reason. ]
-
Bonus Sponsored Job Credits: Funded with annual deals bonus credits.
-
Budget: Funded with regular budget.
]
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
Campaigns
object[]
Possible values: non-empty and <= 250 characters
Campaign name. Use it to identify the campaign later. It must be unique within your employer account.
Campaign ID. Automatically generated when the campaign is created.
Possible values: [ACTIVE, DELETED, PAUSED]
Default value: ACTIVE
Campaign status. PAUSED keeps the campaign inactive until you enable it, or temporarily stops sponsorship.
NonSpendingReasons
object[]
Reasons that prevent the campaign from sponsoring jobs.
Possible values: [BEFORE_START_DATE, AFTER_END_DATE, ACCOUNT_MONTHLY_BUDGET_HIT, MONTHLY_BUDGET_HIT, ONETIME_BUDGET_HIT, JOB_SOURCE_NOT_VERIFIED, BILLING_PENDING, USER_PAUSED_CAMPAIGN, USER_DELETED_CAMPAIGN, TARGET_APPLICATIONS_HIT, OTHER]
ID for the problem. Supported values:
Human-readable description of the problem.
Possible values: [SOURCE, HOSTED]
Type of job sponsored by the campaign. Either SOURCE for jobs gathered from the web, or sent to Indeed by using an XML feed, or HOSTED for jobs posted through the **Post a Job** page.
ISO 4217 currency code of the currency for the campaign's budget.
Possible values: <= 255 characters
Click-tracking token added to the job URL for sponsored clicks. Use it to identify clicks from Indeed and the campaign that sponsored them.
One-time budget limit for the campaign. You cannot set budgetOnetimeLimit and budgetMonthlyLimit at the same time.
Monthly budget limit for the campaign. You cannot set dailyAvgBudgetPerJob, budgetOnetimeLimit, and budgetMonthlyLimit at the same time.
Start date for sponsoring jobs, in ISO 8601 YYYY-MM-DD format. Default: current date.
The campaign starts at the beginning of that day in US Central Time (US/Central). The date must be the current date in CT or later. For example, if startDate is 2026-01-15, the campaign starts on January 15, 2026 at 12:00 AM CT. If you omit the date or use the current date, the campaign starts immediately.
After the campaign becomes active and starts spending, you cannot update startDate. To pause a campaign temporarily, set status to PAUSED.
Date when the campaign must stop sponsoring jobs, even if budget remains. Use ISO 8601 YYYY-MM-DD format.
If the campaign uses a one-time budget (budgetOnetimeLimit), specify either fixedEndDate or targetEndDate, but not both.
If the campaign uses a monthly recurring budget (budgetMonthlyLimit), fixedEndDate is optional. Without it, the campaign continues until you pause or delete it. These are called evergreen campaigns.
The campaign stops at the start of the specified day in US Central Time (US/Central). fixedEndDate must be at least one day after the current date in CT, or after the campaign startDate if one is set. For example, if fixedEndDate is 2026-06-20, the campaign stops on June 20, 2026 at 12:00 AM CT.
Date before when the campaign *should* stop sponsoring jobs, though it may continue sponsoring past the given date if it hasn't spent its whole budget yet. Follows the ISO 8601 format of YYYY-MM-DD.
A campaign with a one-time budget (budgetOnetimeLimit) always have either a fixedEndDate or a targetEndDate, but not both. A campaign with a monthly recurring budget (budgetMonthlyLimit) cannot have a targetEndDate, only a fixedEndDate or no end date.
The campaign targets the start of the specified day in US Central Time (CT, US/Central). The target end date is at least one day after the current date in CT, or the startDate of the campaign, if the campaign has one. For example, if the target end date is 2026-06-20, the campaign targets June 20, 2026 at 0:00 AM CT.
Funding source for the campaign:
Possible values: [PREMIUM, STANDARD, ``]
Sponsorship tier for average daily budget (ADB) campaigns. Returned only if requested with the fields parameter.
For campaigns funded by annual deals bonus credits, this field returns STANDARD for standard campaigns, PREMIUM for premium campaigns, or an empty string otherwise.
Daily average budget per job for the campaign. Returned only for campaigns that use the average daily budget (ADB) model. You cannot set dailyAvgBudgetPerJob and budgetMonthlyLimit at the same time.
{ "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": { "Campaigns": [ { "Name": "Entry Level Jobs - Priority 1", "Id": "43e7dfe1bd4966a1", "Status": "ACTIVE", "NonSpendingReasons": [ { "type": "BEFORE_START_DATE", "description": "The current date in US Central Time is before the campaign start date." } ], "Type": "SOURCE", "CurrencyCode": "USD", "TrackingToken": "&source=indeed", "BudgetOnetimeLimit": 10000, "BudgetMonthlyLimit": 10000, "StartDate": "2026-01-15", "FixedEndDate": "2026-06-20", "TargetEndDate": "2026-05-01", "FundingSource": "Bonus Sponsored Job Credits", "SponsorshipPlan": "PREMIUM", "DailyAvgBudgetPerJob": 2000 } ] }}{ "meta": { "status": 200, "rootLocation": "https://apis.indeed.com/ads", "perPage": 30, "links": [ { "rel": "next", "href": "/v1/campaigns?start=ee4d641cab17b22c" }, { "rel": "'Entry Level Jobs - Priority 1' Info", "href": "/v1/campaigns/43e7dfe1bd4966a1" } ] }, "data": { "Campaigns": [ { "Name": "Entry Level Jobs - Priority 1", "Id": "43e7dfe1bd4966a1", "Status": "ACTIVE" } ] }}{ "meta": { "status": 200, "rootLocation": "https://apis.indeed.com/ads", "perPage": 30, "links": [ { "rel": "next", "href": "/v1/campaigns?start=ee4d641cab17b22c" }, { "rel": "'Entry Level Jobs - Priority 1' Info", "href": "/v1/campaigns/43e7dfe1bd4966a1" } ] }, "data": { "Campaigns": [ { "Name": "Entry Level Jobs - Priority 1", "Id": "43e7dfe1bd4966a1", "Status": "ACTIVE", "NonSpendingReasons": [ { "type": "USER_PAUSED_CAMPAIGN", "description": "<p>Campaign has been paused, as requested.</p>" } ] } ] }}{ "meta": { "status": 200, "rootLocation": "https://apis.indeed.com/ads", "perPage": 2, "links": [ { "rel": "'Entry Level Jobs - Priority 1' Info", "herf": "/v1/campaigns/43e7dfe1bd4966a1" }, { "rel": "'Entry Level Jobs - Priority 2' Info", "href": "/v1/campaigns/43e7dfe1bd4966b1" } ] }, "data": { "Campaigns": [ { "Name": "Entry Level Jobs - Priority 1", "Id": "43e7dfe1bd4966a1", "Status": "ACTIVE" }, { "Name": "Entry Level Jobs - Priority 2", "Id": "43e7dfe1bd4966b1", "Status": "ACTIVE" } ] }}{ "meta": { "status": 200, "rootLocation": "https://apis.indeed.com/ads", "perPage": 30, "links": [ { "rel": "next", "href": "/v1/campaigns?start=ee4d641cab17b22c" }, { "rel": "'Entry Level Jobs - Priority 1' Info", "href": "/v1/campaigns/43e7dfe1bd4966a1" } ] }, "data": { "Campaigns": [ { "Name": "Entry Level Jobs - Priority 1", "Id": "43e7dfe1bd4966a1", "Status": "ACTIVE", "Type": "SOURCE", "CurrencyCode": "USD", "TrackingToken": "&source=indeed", "NonSpendingReasons": [ { "type": "USER_PAUSED_CAMPAIGN", "description": "<p>Campaign has been paused, as requested.</p>" } ], "StartDate": "2023-05-10", "FixedEndDate": "2024-01-20", "FundingSource": "Bonus Sponsored Job Credits", "SponsorshipPlan": "PREMIUM", "DailyAvgBudgetPerJob": 2000 } ] }}A request parameter is not valid.
- application/json
- Schema
- Example (from schema)
- perPage - negative
- perPage - more than 500
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>Invalid parameter value.</p>\n<p><code>perPage</code> must be a positive number.</p>\n<p>Example: <code>perPage=5</code>.</p> " } ], "rootLocation": null, "perPage": null, "links": null }, "data": null}{ "meta": { "status": 400, "errors": [ { "type": "INVALID_REQUEST", "description": "<p><code>perPage</code>: <code>perPage</code> cannot be greater than <code>500</code>.</p>" } ], "rootLocation": null, "perPage": null, "links": null }, "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}