DataCore
One API platform for search, AI web access, e-commerce intelligence, jobs and SEO data. Six specialized product APIs, one client key, zero infrastructure β every request rendered in a real browser engine with built-in WAF and JS-challenge handling.
Features
Everything you need to feed clean web data to agents, pipelines and dashboards
Built for AI Agents & RAG
Dedicated markdown output, structured metadata and page snapshots sized for LLM context windows. Stop parsing HTML β start feeding tokens.
WAF & JS-Challenge Handling
An advanced rendering engine executes JavaScript and works through anti-bot front-ends, so hard targets return real content instead of block pages.
Structured by Default
Products, jobs, real-estate listings and company profiles come back as typed JSON fields extracted from structured data β with smart fallbacks when it is missing.
Change Intelligence
Content hashing per URL tells you what changed since the last call. Perfect for competitive monitoring, price watches and archival alerts.
One Simple Contract
Every endpoint is POST with the same JSON body: clientKey, url, optional maxTimeout. Every response reports success, http_status and elapsed_ms.
Gateway or Direct
Call it directly with your clientKey, or through a marketplace gateway using a proxy-secret header. Same payloads, same responses, either way.
Quick Start
Fetch LLM-ready markdown from any URL in under a minute
curl -X POST https://data.dataleads.pro/v1/markdown \
-H 'Content-Type: application/json' \
-d '{
"clientKey": "YOUR_CLIENT_KEY",
"url": "https://example.com/article",
"maxTimeout": 60000
}'
import requests
resp = requests.post(
"https://data.dataleads.pro/v1/markdown",
json={
"clientKey": "YOUR_CLIENT_KEY",
"url": "https://example.com/article",
"maxTimeout": 60000,
},
timeout=130,
)
data = resp.json()
if data["success"]:
print(data["markdown"][:500])
else:
print("Failed:", resp.status_code, data)
const resp = await fetch("https://data.dataleads.pro/v1/markdown", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
clientKey: process.env.DATACORE_KEY,
url: "https://example.com/article",
maxTimeout: 60000,
}),
});
const data = await resp.json();
if (data.success) console.log(data.markdown.slice(0, 500));
else console.error("Failed:", resp.status, data);
<?php
$ch = curl_init('https://data.dataleads.pro/v1/markdown');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'clientKey' => getenv('DATACORE_KEY'),
'url' => 'https://example.com/article',
'maxTimeout'=> 60000,
]),
]);
$data = json_decode(curl_exec($ch), true);
if (!empty($data['success'])) {
echo substr($data['markdown'], 0, 500);
}
payload := []byte(`{
"clientKey": "YOUR_CLIENT_KEY",
"url": "https://example.com/article",
"maxTimeout": 60000
}`)
resp, err := http.Post(
"https://data.dataleads.pro/v1/markdown",
"application/json", bytes.NewBuffer(payload))
if err != nil { log.Fatal(err) }
defer resp.Body.Close()
var data map[string]any
json.NewDecoder(resp.Body).Decode(&data)
if data["success"] == true {
fmt.Println(data["markdown"])
}
Pricing β Lowest in the Market
Every plan includes every product API β no per-feature gating.
| Plan | Price | Requests/month | Best for |
|---|---|---|---|
| Free | $0 | 500 | Trying the APIs |
| Starter | $9/mo | 5,000 | Solo builders |
| Pro | $29/mo | 25,000 | Production workloads |
| Business | $99/mo | 100,000 | Agencies and platforms |
| Enterprise | Custom | Unlimited | Dedicated infrastructure |
Getting Access
Two ways to authenticate β pick whichever matches your setup
Direct API Access
Pass your clientKey in the JSON body of every request. Works from any language, any runtime, any network.
{ "clientKey": "dcore_live_xxx", "url": "https://example.com" }Marketplace Gateway
Access via a marketplace gateway using an X-RapidAPI-Proxy-Secret header instead of the clientKey. Ideal if you subscribe through an API marketplace.
X-RapidAPI-Proxy-Secret: YOUR_PROXY_SECRET
API Endpoints
All data endpoints are POST with a shared JSON body β only the path changes
Full-page fetch returning complete HTML plus extracted metadata, cookies and the user-agent the page actually saw. Use when you need raw HTML for parsing, archiving or custom extraction.
| Field | Type | Description |
|---|---|---|
| success | bool | True when the fetch succeeded |
| url | string | Final URL after any redirects |
| http_status | int | HTTP status code of the target |
| metadata | object | title, description, og_title, og_image, language, canonical, links[], html_bytes |
| html | string | Full rendered HTML of the page |
| cookies | array | Cookies set during rendering |
| user_agent | string | User-agent used for the fetch |
| elapsed_ms | int | Total processing time in milliseconds |
{
"success": true,
"url": "https://example.com/article",
"http_status": 200,
"metadata": {
"title": "Example Article",
"description": "An example page",
"og_title": "Example Article",
"og_image": "https://example.com/og.png",
"language": "en",
"canonical": "https://example.com/article",
"links": ["https://example.com/", "https://example.com/about"],
"html_bytes": 84213
},
"html": "<!DOCTYPE html>...",
"cookies": [{ "name": "session", "value": "..." }],
"user_agent": "Mozilla/5.0 ...",
"elapsed_ms": 2381
}Converts any URL into clean, LLM-ready markdown β navigation chrome stripped, content preserved. The workhorse for RAG ingestion, agent browsing and dataset building. Optional include_links (bool, default true) controls whether links are kept in the output.
| Field | Type | Description |
|---|---|---|
| success | bool | True when conversion succeeded |
| title / description / language | string | Page metadata |
| markdown | string | Clean markdown of the main content |
| markdown_chars | int | Character count of the markdown β handy for token budgeting |
| elapsed_ms | int | Total processing time |
{
"success": true,
"url": "https://example.com/article",
"http_status": 200,
"title": "Example Article",
"description": "An example page",
"language": "en",
"markdown": "# Example Article\n\nLorem ipsum dolor sit amet...",
"markdown_chars": 4812,
"elapsed_ms": 1910
}Structured metadata only β everything except the HTML body. Cheaper and faster than a full fetch when you just need titles, canonical URLs, OpenGraph data, language and outbound links.
| Field | Type | Description |
|---|---|---|
| title, description, og_title, og_image | string | Core page metadata |
| language | string | Detected page language (BCP-47) |
| canonical | string | Canonical URL if declared |
| links[] | array | All links found on the page |
| html_bytes | int | Size of the underlying HTML |
{
"success": true,
"url": "https://example.com",
"http_status": 200,
"title": "Example Domain",
"description": "An example domain",
"og_title": null,
"og_image": null,
"language": "en",
"canonical": "https://example.com/",
"links": ["https://www.iana.org/domains/example"],
"html_bytes": 1256,
"elapsed_ms": 1102
}E-commerce product extraction driven by structured data, with heuristic fallbacks when a shop ships incomplete markup. Point it at any product URL to get name, price, currency, stock and images β the core of any pricing-intelligence pipeline.
| Field | Type | Description |
|---|---|---|
| name | string | Product name |
| price / currency | string | Current price and ISO currency code |
| stock | string | Availability as reported by the page |
| images[] | array | Product image URLs |
| source | string | structured-data or best-effort |
{
"success": true,
"url": "https://shop.example.com/product/12345",
"http_status": 200,
"name": "Aero Runner Sneaker",
"price": "129.99",
"currency": "EUR",
"stock": "InStock",
"images": ["https://shop.example.com/img/12345_1.jpg"],
"source": "structured-data",
"elapsed_ms": 2450
}Content change detection. Each call computes a content hash for the URL and compares it against the previous call for that same URL. The first call for a URL establishes the baseline and returns changed=false.
| Field | Type | Description |
|---|---|---|
| changed | bool | Whether content changed since the previous call |
| previous_snapshot | string | Hash of the previous snapshot |
| current_hash | string | Hash of the current content |
| current_text_chars | int | Visible text length of the current page |
| text_preview | string | Short text preview of the current content |
{
"success": true,
"url": "https://example.com/pricing",
"http_status": 200,
"changed": true,
"previous_snapshot": "a1b2c3d4...",
"current_hash": "e5f6a7b8...",
"current_text_chars": 3041,
"text_preview": "Pricing β Starter $29 ...",
"elapsed_ms": 1720
}Detects the technology stack behind any website using 25+ signatures across CMS platforms, frameworks, analytics, payments and chat widgets. Ideal for sales prospecting, market research and technical due diligence.
| Field | Type | Description |
|---|---|---|
| technologies[] | array | Detected technologies by name and category |
| generator_meta[] | array | Values of meta generator tags found on the page |
{
"success": true,
"url": "https://shop.example.com",
"http_status": 200,
"technologies": [
{ "name": "Shopify", "category": "ecommerce" },
{ "name": "Google Analytics", "category": "analytics" },
{ "name": "Stripe", "category": "payments" },
{ "name": "Intercom", "category": "chat" }
],
"generator_meta": ["Shopify"],
"elapsed_ms": 2054
}Builds a company profile straight from its website: name, description, contact emails, social profiles, detected technologies and external links. One call replaces a manual crawl for lead enrichment and sales research.
| Field | Type | Description |
|---|---|---|
| company_name | string | Best-guess company name from the site |
| description | string | Company description from meta or body copy |
| emails[] | array | Contact emails found on the site |
| social_profiles[] | array | LinkedIn, Twitter/X, Facebook, Instagram, YouTube and similar links |
| technologies[] | array | Detected stack (same engine as /v1/tech) |
| external_links[] | array | Outbound links to other domains |
{
"success": true,
"url": "https://example-company.com",
"http_status": 200,
"company_name": "Example Company",
"description": "We build great things",
"emails": ["hello@example-company.com"],
"social_profiles": ["https://www.linkedin.com/company/example-company"],
"technologies": [{ "name": "React", "category": "framework" }],
"external_links": ["https://partner.example.org"],
"elapsed_ms": 3120
}Detects job openings on any careers page using JobPosting structured data first, then a career-link scan as fallback. Useful for hiring signals, investor diligence and lead scoring by headcount growth.
| Field | Type | Description |
|---|---|---|
| jobs_found | int | Number of job postings detected |
| jobs[] | array | title, organisation, date_posted, location, salary |
| job_link_count | int | Count of career-related links found |
| source | string | structured-data or link-scan |
{
"success": true,
"url": "https://example-company.com/careers",
"http_status": 200,
"jobs_found": 2,
"jobs": [
{
"title": "Senior Backend Engineer",
"organisation": "Example Company",
"date_posted": "2026-08-14",
"location": "Remote β EU",
"salary": "β¬80k β β¬100k"
},
{
"title": "Product Designer",
"organisation": "Example Company",
"date_posted": "2026-08-02",
"location": "Chicago, IL",
"salary": null
}
],
"job_link_count": 5,
"source": "structured-data",
"elapsed_ms": 2890
}Extracts property listings from RealEstateListing, Apartment and House structured data, with a price/beds/baths pattern fallback for sites that lack markup. Feed portals, valuation models and market analytics with normalized listing data.
| Field | Type | Description |
|---|---|---|
| listings[] | array | name, address, price, currency, beds, baths |
| source | string | structured-data or pattern |
{
"success": true,
"url": "https://realestate.example.com/listings",
"http_status": 200,
"listings": [
{
"name": "Sunny 2-Bed Apartment",
"address": "1204 Example Street, Austin",
"price": "325000",
"currency": "USD",
"beds": 2,
"baths": 1
}
],
"source": "structured-data",
"elapsed_ms": 2650
}Operational endpoints, no request body needed.
| Endpoint | Description |
|---|---|
| GET /health | Service heartbeat β returns status and engine |
| GET /v1/usage | Per-key call counts for your clientKey |
| GET /docs | Interactive Swagger UI (live OpenAPI spec) |
| GET /openapi.json | Machine-readable OpenAPI 3.0 specification |
{
"status": "ok",
"engine": "advanced rendering engine"
}Product Mapping
72 endpoints across 16 product APIs β one platform for search, AI web access, e-commerce intelligence, jobs and SEO data
| Endpoint | Product | Who it is for |
|---|---|---|
| /v1/fetch /v1/markdown |
Agent Web Access API Β· Research-Web API for LLMs | AI SaaS teams building agents, RAG pipelines and LLM research tools that need clean tokens instead of raw HTML. |
| /v1/product | Universal Commerce Data API Β· Pricing Intelligence | E-commerce brands and price-monitoring tools tracking competitor catalogs and MAP compliance. |
| /v1/diff | Web Change Intelligence Β· Competitive Intelligence | Growth and strategy teams watching pricing pages, docs, press releases and competitor moves. |
| /v1/tech | Website Technology Intelligence | Sales teams and market researchers profiling prospect tech stacks for targeting and enrichment. |
| /v1/company | Company Signals API | RevOps and GTM engineers enriching CRM records with emails, socials and stack data straight from company websites. |
| /v1/jobs | Job Market Intelligence API | Investors and recruiters tracking hiring signals and headcount growth as a company-health indicator. |
| /v1/realestate | Real-Estate Data Graph | Proptech platforms and analysts aggregating listings into valuation and market analytics. |
Endpoint Catalog
All 72 endpoints β every capability of the DataCore platform at a glance
| Category | Endpoint | Purpose | Status |
|---|---|---|---|
| Web | POST /v1/fetch | Full HTML + metadata + cookies | β Live |
POST /v1/markdown | LLM-ready Markdown extraction | β Live | |
POST /v1/extract | Structured metadata only | β Live | |
POST /v1/web/crawl | Multi-page same-origin crawl (2β10 pages) | β Live | |
POST /web/scrape Β· /web/render Β· /web/markdown | Friendly aliases | β Live | |
| Search | POST /v1/google/search | Web search results (title + URL) | β Live |
POST /v1/google/news | News search results | β Live | |
POST /v1/google/local | Local business results | β Live | |
| Commerce | POST /v1/product | Any product page β name, price, stock | β Live |
POST /v1/amazon/search | Amazon search results (ASIN, title, price) | β Live | |
POST /v1/amazon/product | Amazon product detail extraction | β Live | |
POST /v1/price/track | Price snapshot + change detection | β Live | |
| Intelligence | POST /v1/tech | Website technology detection (25+ signatures) | β Live |
POST /v1/company | Company profile: emails, socials, tech | β Live | |
POST /v1/diff | Page content change detection | β Live | |
| Jobs | POST /v1/jobs | Job postings from any careers page | β Live |
POST /v1/jobs/indeed | Indeed job search | β Live | |
POST /v1/jobs/linkedin | LinkedIn public job search | β Live | |
| Real Estate | POST /v1/realestate | Property listings: price, beds, baths | β Live |
| SEO | POST /v1/seo/audit | On-page audit: 17 checks, 0-100 score + grade | β Live |
POST /v1/seo/content | Content analysis: readability, keyword density, outline | β Live | |
POST /v1/keywords/ideas | Keyword suggestions (+ alphabet expansion) | β Live | |
POST /v1/keywords/questions | Question keywords (PAA + autocomplete) | β Live | |
POST /v1/domain/overview | Domain intelligence: RDAP registrar/dates, tech, robots, audit | β Live | |
| Rank Tracking | POST /v1/rank/check | One-shot SERP position check (1-25 keywords) | β Live |
POST /v1/rank/trackers/create | Create scheduled tracker (1-50 keywords, max 10 per key) | β Live | |
POST /v1/rank/trackers/list | List your trackers with latest positions | β Live | |
POST /v1/rank/trackers/results | Position history + latest + delta per keyword | β Live | |
POST /v1/rank/trackers/check-now | Recheck a tracker on demand | β Live | |
POST /v1/rank/trackers/delete | Deactivate a tracker | β Live | |
POST /v1/rank/cron | Scheduler endpoint (gateway-auth only) | β Live | |
| Maps Leads | POST /v1/maps/search | Submit Google Maps search job (query or URL, depth 1-10, optional email extraction) | β Live |
POST /v1/maps/status | Poll job status | β Live | |
POST /v1/maps/results | Structured leads: name, phone, website, rating, reviews, hours, coords | β Live | |
POST /v1/maps/jobs | List your Maps jobs | β Live | |
POST /v1/maps/jobs/delete | Delete a job and its leads | β Live | |
| YouTube Data | POST /v1/youtube/transcript | Fetch a video transcript (text, start, duration β up to 5000 snippets) | β Live |
POST /v1/youtube/search | Search YouTube videos (videoId + title, up to 20) | β Live | |
POST /v1/youtube/channel | List a channel's videos (videoId + title, up to 50) | β Live | |
| App Intelligence | POST /v1/app/gplay/details | Google Play app details (title, developer, score, installs, price, genreβ¦) | β Live |
POST /v1/app/gplay/reviews | Google Play user reviews (normalized, up to 200) | β Live | |
POST /v1/app/apple/search | App Store search via iTunes API (normalized results) | β Live | |
POST /v1/app/apple/details | App Store app details by trackId or search term | β Live | |
POST /v1/app/apple/reviews | App Store customer reviews via RSS (paged, up to 5 pages) | β Live | |
| Identity Intelligence | POST /v1/osint/username | Username scan across up to 150 social sites (found site + profile URL) | β Live |
| Airbnb Market | POST /v1/airbnb/search | Airbnb stays search (name, roomId, price, rating, coords, url) | β Live |
POST /v1/airbnb/details | Airbnb listing details by roomId (type, capacity, rating, host) | β Live | |
POST /v1/airbnb/calendar | Availability calendar per day (available + price, 90-day cap) | β Live | |
| Jobs Multi-Board | POST /v1/jobs/multi | Multi-board job search (indeed, linkedin, glassdoor, zip_recruiter, google, bayt, naukri) | β Live |
| Ad Intelligence | POST /v1/ads/google/suggestions | Advertiser suggestions for a keyword (name, advertiserId, region β up to 20) | β Live |
POST /v1/ads/google/advertiser | List an advertiser's ad creatives (creative IDs, up to 100 β every creative seen is snapshotted) | β Live | |
POST /v1/ads/google/creative | Full creative detail (format, last shown date, link, body, title, image/video URL) | β Live | |
POST /v1/ads/google/advertiser/history | Creative history per advertiser (first seen, last seen, times seen, days running) | β Live | |
| Monitoring & Extraction | POST /v1/track/register | Register any URL for snapshot monitoring (price, tech, content, jobs, pricing) β fetches now and stores the first snapshot | β Live |
POST /v1/track/check | Re-check a tracked URL β sha256 change detection with previous/current values, first/last seen, times seen | β Live | |
POST /v1/track/history | Snapshot history per tracked URL (value hash, last value, days tracked) | β Live | |
POST /v1/website-to-json | Extract structured JSON from any page via a schema of CSS selectors / text / html / @attr specs β missing fields reported | β Live | |
POST /v1/saas/pricing | Heuristic SaaS pricing extraction (JSON-LD offers + plan cards: name, priceMonthly/Yearly, currency, features, highlighted) | β Live | |
POST /v1/tenders/search | Public procurement search across TED (EU), Contracts Finder (UK) and SAM.gov (US) β title, buyer, dates, value, source URL | β Live | |
POST /v1/news/article | Article extraction: title, author/byline, publish date, clean text with word count, top image | β Live | |
POST /v1/ai/models | Curated AI model catalog (vendor, input/output price per 1k, context window, capabilities) β seeded on first call | β Live | |
POST /v1/ai/models/refresh | Re-scrape vendor pricing pages (OpenAI, Anthropic, Google) to update the model catalog β per-vendor parsed counts | β Live | |
POST /v1/company/signals | Aggregated company signals: tech stack, profile emails/socials, jobs count, tracked change events, last checked | β Live | |
| Browser Agent | POST /v1/browse | One-shot agentic fetch: launch Chromium, navigate, execute an ordered action list (click/type/scroll/wait/press), return final HTML + markdown + title + final URL | β Live |
POST /v1/session/create | Open a persistent browser session (own Chromium context + page) with an inactivity TTL β returns a sessionId for follow-up calls | β Live | |
POST /v1/interact | Execute actions inside a live session (click/type/scroll/wait/press, up to 50 per call) and extract html / markdown / text / title β cookies and state carry over | β Live | |
POST /v1/screenshot | PNG capture of a live session page or a one-shot URL β full-page option; consume via returned downloadUrl (GET, image/png) or inline base64 dataUrl | β Live | |
POST /v1/session/list | List your browser sessions with status, created, last used, TTL and pages visited | β Live | |
POST /v1/session/delete | Close a session's browser and mark it deleted β ownership-checked | β Live | |
POST /v1/captcha/solve | In-house CaptchaFlow auto-solve: one-shot browser visit, widget detection (reCAPTCHA v2/v3, hCaptcha, Turnstile) + solve + token injection β or use the solvecaptcha action inside /v1/browse and /v1/interact | β Live | |
| Utility | GET /health Β· GET /v1/usage | Service status and usage stats | β Live |
All endpoints accept POST with JSON {"clientKey": "...", "url": "..."} (search endpoints take query).
Every response includes success, elapsed_ms, and endpoint-specific fields.
All requests are rendered through a full browser engine with WAF and JS-challenge handling.
Error Reference
Predictable error semantics β know exactly what went wrong and what to do next
401 Invalid clientKey
{ "detail": "Invalid clientKey" }
Authentication failed. Check the clientKey in the JSON body, or the X-RapidAPI-Proxy-Secret header if you are calling through the marketplace gateway. Keys are environment-specific β do not mix sandbox and production keys.
502 Fetch failed
{ "detail": "Fetch failed: ..." }
The target site was unreachable, blocked the request or did not respond in time. Retry with a higher maxTimeout, verify the URL, or treat the target as temporarily unavailable. These errors are safe to retry with backoff.
Developer Tools
Official CLI and MCP server β free, open source, ships with every plan
β¨οΈ DataCore CLI pip
Every endpoint from your terminal.
pip install datacore-cli.tar.gznpm: npm install -g datacore-cli-0.1.0.tgz
export DATACORE_KEY=your-key
datacore search "laptops" --country US
datacore markdown https://example.com
β¬οΈ Download datacore-cli.tar.gz
π€ DataCore MCP for Claude & LLMs
Model Context Protocol server β let Claude, Cursor and agents call this API natively.
pip install datacore-mcp.tar.gznpm: npm install -g datacore-mcp-0.1.0.tgz
// Claude Desktop config
{"mcpServers": {"datacore cli-mcp": {"command": "python",
"args": ["-m", "datacore_mcp.server"],
"env": {"DATACORE_KEY": "your-key"}}}}}
β¬οΈ Download datacore-mcp.tar.gz
Base URL: https://data.dataleads.pro Β· MIT licensed, source included in each tarball.
Interactive Try-It
Send a live request from your browser β data goes straight from your machine to the API