DataCore API

Turn any web page into clean, structured, LLM-ready data with a single POST request. Nine endpoints, one client key, zero infrastructure โ€” powered by an advanced rendering engine with built-in WAF and JS-challenge handling.

9 Data Endpoints POST JSON ยท Get JSON Agent Web Access 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

๐Ÿ’ก Every data endpoint lives at https://data.dataleads.pro and accepts POST with a JSON body. The only required fields are clientKey and url.
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"])
}

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
โš ๏ธ Keep clientKey server-side. Exposing it in frontend code lets anyone spend your quota.

API Endpoints

All data endpoints are POST with a shared JSON body โ€” only the path changes

๐Ÿ“ฆ Shared request body โ€” every /v1/* endpoint accepts: clientKey (string, required) ยท url (string, required) ยท maxTimeout (int, optional, 5000โ€“120000 ms, default 60000).
POST /v1/fetch Agent Web Access API

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.

FieldTypeDescription
successboolTrue when the fetch succeeded
urlstringFinal URL after any redirects
http_statusintHTTP status code of the target
metadataobjecttitle, description, og_title, og_image, language, canonical, links[], html_bytes
htmlstringFull rendered HTML of the page
cookiesarrayCookies set during rendering
user_agentstringUser-agent used for the fetch
elapsed_msintTotal processing time in milliseconds
Response
{
  "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
}
POST /v1/markdown Research-Web API for LLMs

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.

FieldTypeDescription
successboolTrue when conversion succeeded
title / description / languagestringPage metadata
markdownstringClean markdown of the main content
markdown_charsintCharacter count of the markdown โ€” handy for token budgeting
elapsed_msintTotal processing time
Response
{
  "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
}
POST /v1/extract Agent Web Access API

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.

FieldTypeDescription
title, description, og_title, og_imagestringCore page metadata
languagestringDetected page language (BCP-47)
canonicalstringCanonical URL if declared
links[]arrayAll links found on the page
html_bytesintSize of the underlying HTML
Response
{
  "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
}
POST /v1/product Universal Commerce Data API

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.

FieldTypeDescription
namestringProduct name
price / currencystringCurrent price and ISO currency code
stockstringAvailability as reported by the page
images[]arrayProduct image URLs
sourcestringstructured-data or best-effort
Response
{
  "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
}
POST /v1/diff Web Change Intelligence

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.

FieldTypeDescription
changedboolWhether content changed since the previous call
previous_snapshotstringHash of the previous snapshot
current_hashstringHash of the current content
current_text_charsintVisible text length of the current page
text_previewstringShort text preview of the current content
Response
{
  "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
}
POST /v1/tech Website Technology Intelligence

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.

FieldTypeDescription
technologies[]arrayDetected technologies by name and category
generator_meta[]arrayValues of meta generator tags found on the page
Response
{
  "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
}
POST /v1/company Company Signals API

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.

FieldTypeDescription
company_namestringBest-guess company name from the site
descriptionstringCompany description from meta or body copy
emails[]arrayContact emails found on the site
social_profiles[]arrayLinkedIn, Twitter/X, Facebook, Instagram, YouTube and similar links
technologies[]arrayDetected stack (same engine as /v1/tech)
external_links[]arrayOutbound links to other domains
Response
{
  "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
}
POST /v1/jobs Job Market Intelligence API

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.

FieldTypeDescription
jobs_foundintNumber of job postings detected
jobs[]arraytitle, organisation, date_posted, location, salary
job_link_countintCount of career-related links found
sourcestringstructured-data or link-scan
Response
{
  "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": "Berlin, DE",
      "salary": null
    }
  ],
  "job_link_count": 5,
  "source": "structured-data",
  "elapsed_ms": 2890
}
POST /v1/realestate Real-Estate Data Graph

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.

FieldTypeDescription
listings[]arrayname, address, price, currency, beds, baths
sourcestringstructured-data or pattern
Response
{
  "success": true,
  "url": "https://realestate.example.com/listings",
  "http_status": 200,
  "listings": [
    {
      "name": "Sunny 2-Bed Apartment",
      "address": "12 Example Street, Lisbon",
      "price": "325000",
      "currency": "EUR",
      "beds": 2,
      "baths": 1
    }
  ],
  "source": "structured-data",
  "elapsed_ms": 2650
}
GET /health ยท /v1/usage ยท /docs ยท /openapi.json Utilities

Operational endpoints, no request body needed.

EndpointDescription
GET /healthService heartbeat โ€” returns status and engine
GET /v1/usagePer-key call counts for your clientKey
GET /docsInteractive Swagger UI (live OpenAPI spec)
GET /openapi.jsonMachine-readable OpenAPI 3.0 specification
Example โ€” GET /health
{
  "status": "ok",
  "engine": "advanced rendering engine"
}

Product Mapping

Nine endpoints, packaged into focused data products for different jobs-to-be-done

EndpointProductWho 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.

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.

โœ… Every successful response also carries success: true, the final url, http_status of the target and elapsed_ms timing.

Interactive Try-It

Send a live request from your browser โ€” data goes straight from your machine to the API

Fill in a client key, pick an endpoint, and send a live request.