Discover/Workday API
live

Workday APIdeveloper.workday.com

Access Workday's full developer docs navigation tree (1200+ pages), retrieve individual guides in Markdown, and search documentation topics via 4 endpoints.

This API takes change requests — .
Endpoints
4
Updated
3d ago

What is the Workday API?

This API exposes four endpoints covering Workday's developer documentation portal, giving programmatic access to a navigation tree of 1200+ pages, full Markdown content for individual docs, title-based search, and the curated homepage sections. The get_documentation_tree endpoint returns every page entry with its title, URL, and slug, while get_doc_page retrieves the complete content and metadata — including categories and keywords — for any single page identified by its slug.

This call costs1 credit / call— charged only on success
Try it

No input parameters required.

api.parse.bot/scraper/b2cd46f9-4aac-4f96-9594-256329e52c1b/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/b2cd46f9-4aac-4f96-9594-256329e52c1b/get_documentation_tree' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace developer-workday-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""
Workday Developer Documentation API Client
Get your API key from: https://parse.bot/settings
"""

import os
import requests
from typing import Any, Dict, List, Optional


class ParseClient:
    """Client for interacting with the Workday Developer Documentation API."""

    def __init__(self, api_key: Optional[str] = None):
        """Initialize the Parse API client.
        
        Args:
            api_key: API key for authentication. If not provided, uses PARSE_API_KEY env var.
        """
        self.base_url = "https://api.parse.bot"
        self.scraper_id = "b2cd46f9-4aac-4f96-9594-256329e52c1b"
        self.api_key = api_key or os.getenv("PARSE_API_KEY")
        
        if not self.api_key:
            raise ValueError("API key must be provided or set in PARSE_API_KEY environment variable")

    def _call(self, endpoint: str, method: str = "POST", **params) -> Dict[str, Any]:
        """Make an API call to the Parse bot scraper.
        
        Args:
            endpoint: The API endpoint name
            method: HTTP method (GET or POST)
            **params: Query/body parameters
            
        Returns:
            Response JSON as dictionary
        """
        url = f"{self.base_url}/scraper/{self.scraper_id}/{endpoint}"
        headers = {
            "X-API-Key": self.api_key,
            "Content-Type": "application/json"
        }
        
        if method == "GET":
            response = requests.get(url, headers=headers, params=params)
        elif method == "POST":
            response = requests.post(url, headers=headers, json=params)
        else:
            raise ValueError(f"Unsupported HTTP method: {method}")
        
        response.raise_for_status()
        return response.json()

    def get_documentation_tree(self) -> Dict[str, Any]:
        """Get the complete documentation navigation tree.
        
        Returns the full flat list of all documentation pages with their titles, URLs, and slugs.
        
        Returns:
            Dictionary containing total count and list of page objects
        """
        return self._call("get_documentation_tree", method="GET")

    def get_doc_page(self, slug: str) -> Dict[str, Any]:
        """Get a specific documentation page by its slug.
        
        Args:
            slug: The page identifier slug
            
        Returns:
            Dictionary containing page title, metadata, and Markdown content
        """
        return self._call("get_doc_page", method="GET", slug=slug)

    def search_documentation(self, query: str, limit: int = 20) -> Dict[str, Any]:
        """Search the documentation for pages matching the query.
        
        Args:
            query: Search term to match against page titles (case-insensitive)
            limit: Maximum number of results to return (default: 20)
            
        Returns:
            Dictionary containing search results with matching pages
        """
        return self._call("search_documentation", method="GET", query=query, limit=limit)

    def get_doc_home(self) -> Dict[str, Any]:
        """Get the documentation homepage configuration.
        
        Returns curated sections, link groups, and recommended pages.
        
        Returns:
            Dictionary containing homepage sections with links and groups
        """
        return self._call("get_doc_home", method="GET")


def main():
    """Practical workflow example using the Workday Developer Documentation API."""
    
    client = ParseClient()
    
    print("=" * 80)
    print("WORKDAY DEVELOPER DOCUMENTATION API - PRACTICAL EXAMPLE")
    print("=" * 80)
    
    print("\n1. Getting homepage sections to understand the documentation structure...")
    homepage = client.get_doc_home()
    print(f"   Found {len(homepage['sections'])} main sections:")
    for section in homepage['sections']:
        print(f"   - {section['title']}: {section['description'][:60]}...")
    
    print("\n2. Searching for 'REST API' documentation...")
    search_results = client.search_documentation("REST API", limit=5)
    print(f"   Found {search_results['total_results']} pages matching 'REST API'")
    
    if search_results['results']:
        print("   Top results:")
        for i, result in enumerate(search_results['results'][:3], 1):
            print(f"   {i}. {result['title']}")
            print(f"      Slug: {result['slug']}")
    
    print("\n3. Getting detailed content from the first search result...")
    if search_results['results']:
        first_result = search_results['results'][0]
        slug = first_result['slug']
        
        print(f"   Fetching full content for: {first_result['title']}")
        page_content = client.get_doc_page(slug)
        
        print(f"   Title: {page_content['title']}")
        print(f"   Categories: {', '.join(page_content['category'][:2])}...")
        print(f"   Keywords: {', '.join(page_content['keywords'][:3])}...")
        print(f"   Content preview (first 300 chars):")
        print(f"   {page_content['content'][:300]}...")
    
    print("\n4. Searching for 'Integration' to find integration-related docs...")
    integration_results = client.search_documentation("Integration", limit=3)
    print(f"   Found {integration_results['total_results']} pages with 'Integration'")
    
    print("\n5. Fetching details for all integration results...")
    for result in integration_results['results'][:3]:
        print(f"\n   Getting: {result['title']}")
        page_data = client.get_doc_page(result['slug'])
        
        content_preview = page_data['content'][:200].replace('\n', ' ')
        print(f"   Preview: {content_preview}...")
        print(f"   Categories: {page_data['category'][0] if page_data['category'] else 'N/A'}")
    
    print("\n6. Getting glossary page to understand Workday terminology...")
    glossary_results = client.search_documentation("Glossary", limit=1)
    if glossary_results['results']:
        glossary_slug = glossary_results['results'][0]['slug']
        glossary_page = client.get_doc_page(glossary_slug)
        print(f"   Found glossary: {glossary_page['title']}")
        print(f"   Content preview (first 500 chars):")
        print(f"   {glossary_page['content'][:500]}")
    
    print("\n" + "=" * 80)
    print("WORKFLOW COMPLETE - Successfully demonstrated API functionality")
    print("=" * 80)


if __name__ == "__main__":
    main()
All endpoints · 4 totalmissing one? ·

Get the complete documentation navigation tree as a flat list of all pages with their titles, URLs, and slugs. Returns approximately 1200+ documentation page entries covering Integration Apps, Extend Apps, Workday APIs, and Developer Copilot.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "pages": "array of objects with title, url, and slug",
    "total": "integer"
  },
  "sample": {
    "pages": [
      {
        "url": "/wcp_docs/relnotes_dl.html",
        "slug": "relnotes_dl",
        "title": "Documentation Release Notes"
      },
      {
        "url": "/wcp_docs/GUID-1293c9bb-ea02-48cd-a523-254b5060b3a6-enHYPHENus.html",
        "slug": "GUID-1293c9bb-ea02-48cd-a523-254b5060b3a6-enHYPHENus",
        "title": "Getting Started with Integration Apps"
      }
    ],
    "total": 1257
  }
}

About the Workday API

Documentation Tree and Page Content

get_documentation_tree returns a flat list of all documentation pages across Workday's developer portal, covering Integration Apps, Extend Apps, Workday APIs, and Developer Copilot. Each entry in the pages array includes a title, url, and slug, with the total field reporting the full count (typically 1200+). Once you have a slug, pass it to get_doc_page to retrieve the full page: the response includes title, layout, content (the page body in Markdown), and metadata arrays for category and keywords. Slugs follow formats like dlx1529688880052 or GUID-style strings such as GUID-1293c9bb-ea02-48cd-a523-254b5060b3a6-enHYPHENus.

Search and Homepage Sections

search_documentation accepts a required query string and performs a case-insensitive substring match against page titles across the full documentation tree. An optional limit parameter caps the number of results returned. Each result in the results array mirrors the tree format: title, url, and slug. The total_results field reflects how many titles matched.

get_doc_home requires no inputs and returns the homepage configuration as an array of sections, each with a title, description, and nested link_groups. The three sections — Get Started, Apps, and Extend Services — surface curated entry points into the documentation and are useful for building navigation UIs or orientation tools on top of the Workday developer portal.

Reliability & maintenance

The Workday API is a managed, monitored endpoint for developer.workday.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when developer.workday.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official developer.workday.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build an internal search tool that indexes all 1200+ Workday doc pages using titles and slugs from get_documentation_tree
  • Sync Workday API reference content into a private knowledge base by fetching Markdown from get_doc_page for each slug
  • Surface contextually relevant documentation links in a developer IDE extension using search_documentation with keyword queries
  • Generate an onboarding guide by pulling the 'Get Started' section links from get_doc_home
  • Create a documentation diff tool that tracks changes to specific pages over time by storing content fields from get_doc_page
  • Classify and tag Workday docs by topic using the category and keywords metadata returned from get_doc_page
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Workday have an official developer API?+
Yes. Workday publishes official APIs documented at developer.workday.com, including REST APIs and SOAP-based web services. This Parse API surfaces the documentation portal content itself rather than the Workday platform APIs.
What does `search_documentation` match against, and can I search by content body?+
search_documentation matches the query string against page titles only, using a case-insensitive substring comparison. Full-text search across page body content is not currently covered. The API returns titles, URLs, and slugs for matching pages. You can fork it on Parse and revise to add content-body search using data from get_doc_page.
Does `get_doc_page` return versioned or historical documentation?+
The endpoint returns the current published state of each page at the time of the request. Historical versions, changelogs, or diff data between documentation revisions are not exposed. You can fork it on Parse and revise to add a versioning layer that stores and compares snapshots over time.
Can I retrieve documentation for a specific Workday product area only?+
The get_documentation_tree endpoint returns all pages as a flat list without server-side filtering by product area such as Integration Apps or Workday APIs. You can filter client-side using the category metadata returned by get_doc_page, but endpoint-level filtering by product area is not currently supported. You can fork it on Parse and revise to add a category filter parameter.
What slug formats does `get_doc_page` accept?+
Slugs come in two observed formats: short numeric identifiers like dlx1529688880052 and GUID-style strings like GUID-1293c9bb-ea02-48cd-a523-254b5060b3a6-enHYPHENus. Both formats are returned in the slug field from get_documentation_tree and search_documentation results and can be passed directly to get_doc_page.
Page content last updated . Spec covers 4 endpoints from developer.workday.com.
Related APIs in Developer ToolsSee all →
crt.sh API
Search for SSL/TLS certificates across public transparency logs by domain, fingerprint, serial number, or public key, and retrieve detailed certificate information including issuer, validity dates, and certificate chain details. Monitor certificate issuance for domains you care about to track security changes and detect unauthorized certificates.
artificialanalysis.ai API
Compare and rank LLM models and providers across performance benchmarks, then dive into detailed specifications for any model to find the best fit for your needs. Discover performance metrics for specialized AI systems handling speech, images, and video, plus benchmark data for different hardware configurations.
python.org API
Access comprehensive Python release information including downloads, versions, and supported operating systems, plus stay updated with the latest Python news and events. Search across Python.org's resources and browse release files, details, and the FTP index all in one place.
nvidia.com API
nvidia.com API
alienvault.com API
Search and analyze global threat intelligence data including indicators of compromise, threat pulses, and adversary profiles from the Open Threat Exchange community. Monitor recent security alerts and access detailed information about threats and adversaries to strengthen your cybersecurity defenses.
lucide.dev API
Browse and download thousands of Lucide icons with instant search and category filtering to find exactly what you need. Get SVG files and metadata for each icon to integrate them seamlessly into your projects.
dataforseo.com API
Monitor top-performing websites and trending keywords on Google while tracking SERP volatility to stay ahead of SEO trends. Get real-time insights into ranking keywords, search demand patterns, and search engine result page changes to inform your SEO strategy.
trends.google.com API
Discover what's trending right now in any country by accessing the top search topics with real-time search volume, growth rates, and related queries. Stay informed on trending categories and see which searches are gaining the most momentum in your target markets.