Workday API.
Workday's official API is tenant-scoped OAuth. The public postings live on myworkdayjobs.com. JobsPipe collects those public tenants into one endpoint, one schema, one key.
Why people are confused about the Workday API
Workday does not offer a public job-postings API. The Workday Staffing REST API requires OAuth credentials granted by each tenant. That works if you are the company; it does not work if you want to consume jobs from many companies.
Every Workday customer hosts their careers site at a subdomain of myworkdayjobs.com (wd1, wd3, wd5 and so on). The page is rendered through Workday's UI, but the underlying job data is fetched from an internal JSON endpoint whose shape varies across tenant versions. JobsPipe reads that public surface for each verified tenant and normalizes it so you learn one shape.
Possible, but you need per-tenant configuration, the JSON shape varies between Workday versions, and Workday's bot detection blocks naive scrapers.
Works for that one company only, and only after they grant you OAuth credentials. Not a path to multi-tenant coverage.
Every verified public tenant, one call. Same record shape as the other boards JobsPipe collects. Free tier of 1,000 jobs a month, key in 30 seconds.
Does Workday have an API?
Yes, but not a public jobs one. Workday ships the Workday REST API (OAuth, Staffing, HCM, Time and Absence, Compensation and a few recruiting endpoints) and the older Public Web Services SOAP API with 50+ services. Both are per tenant: a client id issued by one company reaches that company's data only. The job postings a candidate sees are served by the tenant's careers site on myworkdayjobs.com, which has no documented API. That public careers surface is what JobsPipe collects for every verified tenant.
Is the Workday API free?
Not in any way an outside developer can use. There is no price list because there is no self-serve access: API clients are created by a tenant admin inside Workday and are part of that customer's subscription. Third-party 'Workday job APIs' sold on scraping marketplaces are metered per result and read the same public careers pages JobsPipe reads. JobsPipe's free tier returns 1,000 jobs a month with no card, and the sandbox at POST /v1/sandbox/jobs/search needs no key.
How do I get a Workday API key?
Ask the tenant admin. In Workday they run Register API Client for Integrations, pick the scopes, and hand you a client id and secret that exchange for a bearer token at that tenant's token endpoint. The credentials never work against another tenant, and Workday does not run a developer program that issues cross-tenant keys. If your goal is reading postings across many Workday customers, the key you need is a JobsPipe key: sign up, copy it, and send it as a Bearer token to POST /v1/jobs/search with "source_or": ["workday"].
What does the Workday API documentation cover?
Workday's official docs live at community.workday.com behind a Workday Community login. They document the REST API by service (Staffing, Person, Time, Compensation, Recruiting), the SOAP Web Services by version, the OAuth 2.0 setup for integration system users, and the Workday Extend platform. What they do not document is any public job-postings endpoint, because Workday has none; the careers site runs on an internal JSON call that changes between tenant versions. JobsPipe's docs at /docs cover the one record shape returned for every Workday tenant and every other collected board.
What JobsPipe returns for Workday
A POST /v1/jobs/search with "source_or": ["workday"] returns Workday postings as JobsPipe records: id (the tenant's job path), job_title, company, company_domain, url, date_posted, discovered_at, last_seen_at, verified_at, status with closed_at and closed_reason once a posting closes, ghost_score, seniority, min_annual_salary_usd and max_annual_salary_usd when the posting states a range, technology_slugs and keyword_slugs parsed from the description, and sources[0].provider set to workday. Filters that matter for Workday: company_name_partial_match_or to pin one tenant, job_title_or, posted_at_max_age_days, job_country_code_or, remote, and max_ghost_score to skip stale reposts. The data section below shows what share of Workday postings carry a salary, a remote flag and a seniority label.
Workday REST API vs the careers site
The Workday REST API is the modern OAuth interface Workday added in v32+. It covers Staffing (workers, organizations, supervisory hierarchy), Time and Absence, Compensation and a handful of recruiting endpoints, all for the authenticated tenant. There is no equivalent of a Greenhouse Job Board API where any developer can hit a public endpoint and get a tenant's jobs without OAuth. For a single tenant integration (payroll sync, provisioning, custom report extraction) go through OAuth onboarding with that tenant's admin. For cross-tenant postings, JobsPipe is the integration: one key, every verified public tenant, one schema.
Workday postings by the numbers
Measured on the Workday rows in the JobsPipe index and published as shares rather than counts. Use them to decide whether Workday carries the fields your product needs before you filter on source_or.
- Entry3.0%
- Senior16.7%
- Lead and above12.6%
Sample request
curl https://api.jobspipe.dev/v1/jobs/search \
-H "Authorization: Bearer jp_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "source_or": ["workday"], "status": "active", "limit": 25 }'Sample response
{
"id": "job/California---San-Francisco/Senior-Software-Engineer-Distributed-Systems_JR-284431",
"job_title": "Senior Software Engineer, Distributed Systems",
"company": "Salesforce",
"company_domain": "salesforce.com",
"url": "https://salesforce.wd12.myworkdayjobs.com/en-US/External_Career_Site/job/California---San-Francisco/Senior-Software-Engineer-Distributed-Systems_JR-284431",
"date_posted": "2026-09-02",
"discovered_at": "2026-09-02T09:23:11+00:00",
"last_seen_at": "2026-09-08 05:41:07",
"verified_at": "2026-09-08 06:02:19",
"status": "active",
"closed_at": null,
"closed_reason": null,
"ghost_score": 9,
"seniority": "senior",
"cities": [
"San Francisco"
],
"state_code": "CA",
"min_annual_salary_usd": 165000,
"max_annual_salary_usd": 220000,
"technology_slugs": [
"java",
"kubernetes",
"aws"
],
"keyword_slugs": [
"distributed-systems",
"microservices"
],
"sources": [
{
"provider": "workday",
"url": "https://salesforce.wd12.myworkdayjobs.com/en-US/External_Career_Site/job/California---San-Francisco/Senior-Software-Engineer-Distributed-Systems_JR-284431"
}
]
}Every record is returned in the same JSON shape regardless of the board it came from. The full schema is documented in the docs.
Skip the scraper - try the API right now
Sample data from Workday and 30+ other sources in the exact live JSON shape. No key needed.
Run the search to see normalized results.
{
"job_title_or": [
"software engineer"
],
"limit": 3,
"remote": true
}Live results are one free key away - same request against /v1/jobs/search.
Fields in every job record
Related on the blog
FAQ
Does Workday have an API?+
Yes, two: the Workday REST API (Staffing, HCM, Time, Compensation) and the Public Web Services SOAP API. Both are scoped to one tenant and need credentials that tenant's admin issues. Neither returns public job postings across companies. The public postings live on each tenant's myworkdayjobs.com careers site, which is what JobsPipe collects.
Is the Workday API free?+
There is no separate API price, but access is bundled with a Workday subscription and gated per tenant, so you cannot buy or request it as an outsider. JobsPipe's free tier returns 1,000 jobs a month across every collected board, including Workday, and the sandbox endpoint needs no key at all.
How do I get a Workday API key?+
Only from a tenant admin. They register an API client under Register API Client for Integrations, scope it, and issue OAuth client credentials that reach that tenant alone. If you are not that company, there is no key to get. JobsPipe never asks for Workday credentials; a JobsPipe key reads the public postings of every verified tenant.
Does JobsPipe need OAuth credentials from each Workday tenant?+
No. JobsPipe reads only public job postings from public tenant career sites. It never has access to applicant data, candidate PII, or any non-public Workday object.
Can I filter to one specific Workday tenant?+
Yes. Add "company_name_partial_match_or": ["salesforce"] to the JSON body of POST /v1/jobs/search (or any other company name) to narrow results to one company's postings, and keep "source_or": ["workday"] to stay on Workday rows.
What about Workday tenants that block scrapers?+
JobsPipe respects robots.txt and rate-limits per tenant. If a tenant explicitly disallows indexing, those jobs are not on JobsPipe.
Try Workday data free - key in 30 seconds.
Get a free API key