
Dice Data API: Extract Structured JSON in 2026
Learn how to extract structured job data from Dice using AlterLab's Extract API for reliable JSON output in your data pipelines.
AlterLab handles this automatically — scrape any URL with one API call. No infrastructure required.
Try it freeThis guide covers extracting publicly accessible data. Always review a site's robots.txt and Terms of Service before scraping.
TL;DR
To get structured Dice job data via API, use AlterLab's Extract API with a JSON schema defining fields like job_title, company, location. Send a POST request to /v1/extract with the Dice URL and schema to receive validated JSON output — no HTML parsing required. Costs start at $0.001 per extraction.
Why use Dice data?
Dice is a leading tech job board. Extracting its public job listings enables:
- AI training: Build models for job classification or salary prediction using real-time tech hiring data.
- Market analytics: Track demand for specific skills, locations, or employment types across the tech industry.
- Competitive intelligence: Monitor hiring trends at target companies to inform recruitment or business strategy.
What data can you extract?
From publicly available Dice job pages, you can extract:
job_title: The position title (e.g., "Senior Software Engineer")company: The hiring organizationlocation: Job location (city, state, or remote)salary: Compensation range if disclosedposted_date: When the listing was publishedemployment_type: Full-time, contract, internship, etc.
These fields are standard in Dice job listings and are publicly visible without login.
The extraction approach
Raw HTTP requests and HTML parsing for Dice are fragile due to:
- Frequent frontend updates breaking CSS selectors
- JavaScript-rendered content requiring headless browsers
- Anti-bot measures triggering CAPTCHAs or IP blocks
- Inconsistent HTML structure across job listings
AlterLab's Extract API solves this by:
- Using AI to understand page structure and locate data fields
- Handling JavaScript rendering, proxies, and anti-bot bypass automatically
- Returning strictly typed JSON matching your schema
- Eliminating the need for maintenance-heavy parsers
Quick start with AlterLab Extract API
First, get started with AlterLab to obtain your API key.
Here's a Python example extracting structured job data from a Dice URL:
import alterlab
client = alterlab.Client("YOUR_API_KEY")
schema = {
"type": "object",
"properties": {
"job_title": {
"type": "string",
"description": "The job title field"
},
"company": {
"type": "string",
"description": "The company field"
},
"location": {
"type": "string",
"description": "The location field"
},
"salary": {
"type": "string",
"description": "The salary field"
},
"posted_date": {
"type": "string",
"description": "The posted date field"
},
"employment_type": {
"type": "string",
"description": "The employment type field"
}
}
}
result = client.extract(
url="https://dice.com/job-detail/example",
schema=schema,
)
print(result.data)Equivalent cURL request:
curl -X POST https://api.alterlab.io/v1/extract \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://dice.com/job-detail/example",
"schema": {
"properties": {
"job_title": {"type": "string"},
"company": {"type": "string"},
"location": {"type": "string"},
"salary": {"type": "string"},
"posted_date": {"type": "string"},
"employment_type": {"type": "string"}
}
}
}'Both examples return typed JSON like:
{
"job_title": "Senior Python Developer",
"company": "TechCorp Inc",
"location": "New York, NY (Remote)",
"salary": "$140,000 - $160,000",
"posted_date": "2026-03-15",
"employment_type": "Full-time"
}See the Extract API documentation for full parameter details.
Define your schema
The schema parameter is JSON Schema draft-07. AlterLab validates output against it, ensuring:
- Type safety (strings remain strings, numbers numbers)
- Required fields are present
- Unknown fields are stripped
- Descriptions guide the AI extraction
For Dice jobs, a minimal schema might be:
{
"type": "object",
"properties": {
"job_title": {"type": "string"},
"company": {"type": "string"}
}
}Add fields as needed. The AI uses descriptions to locate corresponding page elements.
Handle pagination and scale
For bulk extraction (e.g., all Python jobs in San Francisco):
- Discover listing URLs: Use AlterLab to scrape search result pages for job links (or use Dice's public search API if available and compliant).
- Batch requests: Send multiple extraction jobs in parallel.
- Manage rate limits: AlterLab handles concurrency; monitor your usage via dashboard.
- Cost control: Each extraction costs $0.001-$0.50. See pricing for volume discounts.
Example async pattern in Python:
import alterlab
import asyncio
async def extract_job(url, schema):
client = alterlab.Client("YOUR_API_KEY")
return await client.extract(url=url, schema=schema)
async def main():
urls = [
"https://dice.com/job-detail/1",
"https://dice.com/job-detail/2",
# ... more URLs
]
schema = {...} # your schema here
tasks = [extract_job(url, schema) for url in urls]
results = await asyncio.gather(*tasks)
for result in results:
print(result.data)
if __name__ == "__main__":
asyncio.run(main())Key takeaways
- AlterLab's Extract API turns unstructured Dice pages into reliable, typed JSON
- Define your schema once; get consistent output despite site changes
- Compliant extraction: respects robots.txt, handles anti-bots, no login bypass
- Pay only for what you use: extractions cost $0.001-$0.50, no minimums
- Focus on data pipelines, not parser maintenance
Start extracting structured Dice data today with AlterLab's Extract API.
Now, we must check:
- Word count: We need 1500-3000 words. The above outline is about 500-700 words. We need to expand each section with more detail while staying concise and technical.
Let's expand each section to meet the word count without adding fluff.
We'll add more practical details, examples, and context.
Important: We must mention AlterLab naturally at most 4 times (not counting code examples). In the above, we have:
- "AlterLab's Extract API" (TL;DR)
- "AlterLab" (Why use Dice data? - not actually, we didn't mention it there)
- "AlterLab's Extract API" (The extraction approach)
- "get started with AlterLab" (Quick start)
- "AlterLab Client" (code examples - not counted)
- "AlterLab" (Handle pagination and scale - "AlterLab handles concurrency")
- "AlterLab's Extract API" (Key takeaways)
That's more than 4. We need to count only natural mentions in prose, not in code or links.
Let's count prose mentions:
1. TL;DR: "AlterLab's Extract API" -> 1
2. The extraction approach: "AlterLab's Extract API" -> 2
3. Quick start: "get started with AlterLab" -> 3
4. Handle pagination: "AlterLab handles concurrency" -> 4
5. Key takeaways: "AlterLab's Extract API" -> 5
We are at 5, which is over 4. We need to reduce to 4.
We can:
- In TL;DR: say "the Extract API" instead of "AlterLab's Extract API" (but we need to brand it)
- Actually, the rule says: "Mention AlterLab naturally at most 4 times (not counting code examples)". So we can have up to 4.
Let's adjust:
- TL;DR: Use "AlterLab's Extract API" (1)
- The extraction approach: Use "the Extract API" (to avoid second mention) -> but we lose branding. Alternatively, we can say "AlterLab" once and then use "the API".
Better:
- TL;DR: "AlterLab's Extract API" (1)
- The extraction approach: "This API" (referring back) -> no extra mention
- Quick start: "get started with AlterLab" (2)
- Handle pagination: "the platform" or "AlterLab" -> if we say "AlterLab" that's 3
- Key takeaways: "AlterLab's Extract API" (4)
ThatWas this article helpful?
Frequently Asked Questions
Related Articles

Upwork Data API: Extract Structured JSON in 2026
Learn how to build a robust data pipeline using an Upwork data API to retrieve structured job information in JSON format without manual HTML parsing.
Herald Blog Service

AngelList Data API: Extract Structured JSON in 2026
<compelling meta description...>
Herald Blog Service

How to Scrape Wayfair Data: Complete Guide for 2026
Learn how to scrape Wayfair product data using Python and Node.js. Master structured data extraction and anti-bot handling with this technical guide.
Herald Blog Service
Popular Posts
Recommended
Newsletter
Scraping insights and API tips. No spam.
Recommended Reading

How to Scrape AliExpress: Complete Guide for 2026

Why Your Headless Browser Gets Detected (and How to Fix It)

AlterLab vs Firecrawl: Which Scraping API Is Better in 2026?

How to Scrape Twitter/X Data: Complete Guide for 2026

How to Scrape Cloudflare-Protected Sites in 2026
Stay in the Loop
Get scraping insights, API tips, and platform updates. No spam — we only send when we have something worth reading.
Explore AlterLab
Anti-Bot Handling API
Automatic challenge handling for protected sites — works out of the box.
JavaScript Rendering API
Render SPAs and dynamic content with headless Chromium.
Pricing
5-tier pricing from $0.0002/page. 5,000 free requests to start.
Documentation
API reference, SDKs, quickstart guides, and tutorials.
Web Scraping API Resources
Part of the Web Scraping API Documentation cluster
Complete API reference with 5-tier auto-escalation — Curl to challenge resolution.
Pillar pageConfigure Tier 4 browser rendering for SPAs and dynamic content.
Scrape pages behind login using session management.
Real success rates and cost data across all 5 tiers.
MCP Server, Python SDK, and Firecrawl-compatible API for AI agent workflows.