---
title: "Workday API: public job postings from every tenant in 2026"
description: "The official Workday API only serves tenant customers, so it cannot give you another company's public job postings at any price."
canonical: https://jobspipe.dev/blog/workday-api-guide
date_published: 2026-03-22
date_modified: 2026-09-30
author: Dvir Atias
---

# Workday API: public job postings from every tenant in 2026

The official Workday API only serves tenant customers, so it cannot give you another company's public job postings at any price. Every public Workday career site is backed by an undocumented JSON endpoint the site itself calls: page it with limit 20 and an offset, fetch each description separately, and expect Akamai throttling, a 10,000-result cap per query on large tenants, and no public directory of tenants.

Skip Workday's enterprise SOAP API. Pull public job postings from every Workday tenant through one REST endpoint - same JSON shape as Greenhouse, Lever and the rest of 30+ sources.

Search for “**Workday API**” and most of the results are about Workday’s official integration platform - SOAP endpoints, OAuth2 grants, and tenant-side access that you can’t get unless your company is already a Workday customer. If you’re a developer trying to pull _job postings_ from Workday tenants (Stripe, Salesforce, Adobe, every Fortune 500), that’s the wrong API to be looking at.

This post explains what the official Workday API actually offers, why it doesn’t solve the job-data problem, and the two practical ways to access public Workday job postings at scale in 2026.

## The official Workday API: what it is, and isn’t

Workday exposes a REST + SOAP API to _tenant customers_ - the companies who pay for Workday HCM. If you work at Stripe and you want to integrate Stripe’s Workday with Slack, you can get OAuth2 credentials and call `/ccx/api/v1/workers` all day. If you do not work at Stripe and you want Stripe’s public job postings, that API isn’t available to you at any price.

Most of the 1,000+ monthly searches for “Workday API” fall into the second bucket: external developers building sourcing tools, compensation benchmarks, AI recruiters, or job-search products who need public Workday data.

Try it without a key

```
curl -d '{"limit":3}' https://api.jobspipe.dev/v1/sandbox/jobs/search
```

Only `/v1/sandbox/*` needs no key.

## Option 1: hit the tenant CXS feeds directly - the full contract

Every public Workday career site is rendered from an undocumented but stable JSON endpoint, the same one the site’s own frontend calls. The shape is:

```
POST https://{host}/wday/cxs/{tenant}/{site}/jobs
Content-Type: application/json

{ "appliedFacets": {}, "limit": 20, "offset": 0, "searchText": "" }
```

The three values come from the company’s careers URL, not from any directory. From `nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite`: host `nvidia.wd5.myworkdayjobs.com`, tenant `nvidia`, site `NVIDIAExternalCareerSite`. The datacenter segment (`wd1`, `wd3`, `wd5`, `wd103`...) and the site name are per-customer choices you cannot guess - open the careers page with devtools filtered to `cxs` and copy the POST URL verbatim.

The response gives you `total` plus a `jobPostings` array of `title`, `externalPath`, `locationsText`, and `postedOn`. Descriptions need a second request per job: GET `https://{host}/wday/cxs/{tenant}/{site}{externalPath}` returns `jobPostingInfo` with `jobDescription` (HTML), `location`, and `startDate`. The public job URL is `https://{host}/en-US/{site}{externalPath}`.

The gotchas that will actually bite you:

-   **`limit` silently caps at 20.** Ask for 100 and Workday returns an _empty_ `jobPostings` array with no error - which reads exactly like “no more results.” Keep limit at 20 and page with `offset` until `offset >= total`.
-   **Akamai bot management.** Sustained fetching from one IP gets throttled mid-pagination. If you break on the first failed page you’ll silently store a truncated list - retry with backoff, and abort the whole tenant rather than committing a partial crawl.
-   **10,000-result hard cap per query** on the biggest tenants - slice by location or category facets to enumerate everything.
-   **No closed signal.** The feed only contains open roles; diff snapshots to detect closes, and treat a whole board going empty as “unknown,” not as mass closure.
-   **Tenant discovery is the real problem.** There is no public directory of Workday customers; building and maintaining the tenant list is its own permanent background job.

For 1-2 specific companies, the direct route is genuinely fine - copy the URL from devtools and you’re done in an hour. At tens or hundreds of tenants, the discovery, throttling, and diffing work adds up to an ongoing engineering project.

## Option 2: use a normalized Workday Jobs API

JobsPipe ships a single REST endpoint that returns Workday job postings from any indexed tenant - same JSON schema as Indeed, Greenhouse, Lever, and every other source. You don’t need to know the tenant URL; you query by company name across 45,000+ live Workday postings from the verified tenant set:

```
curl https://api.jobspipe.dev/v1/jobs/search \
  -H "Authorization: Bearer jp_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{ "company_name_partial_match_or": ["Stripe"], "limit": 25 }'
```

Response is normalized: `title`, `company`, `location`, parsed `compensation`, the original `apply_url` pointing back at the tenant, and a stable `id` that stays the same for as long as the posting is live.

## Pricing reality check

We have a free tier (1,000 jobs to start), then $49/mo for 25,000 jobs. Building the equivalent in-house means paying for your own compute, plus an engineer’s time on the regular Workday UI changes. Most teams break even on JobsPipe inside the first month.

## Sources

-   [Workday REST API reference (Workday Community)](https://community.workday.com/sites/default/files/file-hosting/restapi/index.html)
-   [Workday Developers](https://developer.workday.com/about)
-   [Workday integrations (product page)](https://www.workday.com/en-us/products/platform-product-extensions/integrations.html)
-   [NVIDIA Workday career site (the example the post uses)](https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite)

## Frequently Asked Questions

### Does Workday have a public API for job postings?

Workday's official REST and SOAP API is available only to tenant customers, not to outside developers who want job postings. If your company pays for Workday HCM you can get OAuth2 credentials and call endpoints like /ccx/api/v1/workers. If you do not work there, that API is not available to you at any price. Public job postings are a separate path: the tenant JSON feeds, or a normalized third-party API.

### How do I pull job postings from a Workday tenant?

Every public Workday tenant exposes a JSON feed at a predictable URL, in the shape company.wd1.myworkdayjobs.com/wday/cxs/{tenant}/External/jobs. You POST a search filter and get back a paginated list of jobs as structured JSON, so no HTML scraping or browser rendering is needed. The catch is operational: Workday uses Akamai bot management, each tenant has its own URL shape, and job search has a 10,000-result hard cap per query.

### How much does it cost to get Workday job data?

JobsPipe has a free tier with 1,000 jobs to start, then $49/month for 25,000 jobs. Building the equivalent in-house costs roughly $4,200 per month in compute alone, plus an engineer's time absorbing the regular Workday UI changes. Workday's own tenant API is not sold to outside developers at any price, so the real choice is between a DIY scraper across a tenant list you maintain yourself and a managed source.

Related

## Keep reading

-   [Guide · Jul 30, 2026Paylocity API: the payroll API vs the job postings you can actually read](https://jobspipe.dev/blog/paylocity-api-jobs)
-   [Guide · Jul 16, 2026Taleo API: pulling job postings from Oracle's legacy ATS](https://jobspipe.dev/blog/taleo-api-jobs)
-   [Guide · Jan 25, 2026Dice API: getting tech job postings without the partnership paperwork](https://jobspipe.dev/blog/dice-api-tech-jobs)
-   [Guide · Dec 7, 2025How to scrape Workday job postings legally (and why you shouldn't)](https://jobspipe.dev/blog/scrape-workday-jobs-legally)
-   [Guide · Jul 16, 2026Teamtailor API: clean JSON:API, one key per tenant - and the fix](https://jobspipe.dev/blog/teamtailor-api-jobs)


## Further reading

- [Workday API](https://jobspipe.dev/sources/workday)
- [Does Workday have an API?](https://jobspipe.dev/answers/does-workday-have-an-api)
- [Which ATS APIs are actually public? The 2026 job-data reference](https://jobspipe.dev/blog/public-vs-gated-ats-apis)

---
Building this integration yourself? The steps above work. The alternative is one API over 30+ sources, already normalized and deduplicated. Try it right now - no key, no signup:

```bash
curl -d '{"limit":3}' https://api.jobspipe.dev/v1/sandbox/jobs/search
```

Sample data, exact live schema. For live data get a free key (1,000 jobs to start) at https://jobspipe.dev/signup, then swap /v1/sandbox/jobs/search for /v1/jobs/search with an Authorization: Bearer header. Full agent index: https://jobspipe.dev/llms.txt?src=md-twin