Developer documentation

Build with
ToolTrace.

Start with a focused guide, inspect the complete API reference, or download the OpenAPI specification for your own tooling.

Available now

Web Scraping API

Convert public webpages into Markdown, readable text, metadata, links, schema, structured sections, raw HTML, and SEO diagnostics.

Need one page without code? Use the free Web Page Scraper to copy or download static Markdown and text.

Quick start · cURL
export TOOLTRACE_KEY='paste_your_api_key_here'

curl --request POST \
  --url "https://api.tooltrace.io/v1/extract" \
  --header "X-ToolTrace-Key: ${TOOLTRACE_KEY}" \
  --header 'Content-Type: application/json' \
  --data '{
    "url": "https://example.com",
    "render": "auto",
    "mode": "structured",
    "include": ["markdown"]
  }'

Readable content

Extract article text, structure, and metadata

Use POST /v1/extract with focused include fields when you need the readable body and page identity rather than links, schema, or raw HTML.

Article extraction · cURL
export TOOLTRACE_KEY='paste_your_api_key_here'

curl --request POST \
  --url "https://api.tooltrace.io/v1/extract" \
  --header "X-ToolTrace-Key: ${TOOLTRACE_KEY}" \
  --header 'Content-Type: application/json' \
  --data '{
    "url": "https://example.com/article",
    "render": "auto",
    "mode": "structured",
    "include": ["markdown", "text", "metadata", "sections"]
  }'
markdown

Preserve useful headings, lists, links, tables, quotations, and code in a portable text format.

text

Return a plain readable body for search, comparison, embedding, or lightweight processing.

metadata + sections

Keep page identity, authorship fields, publication details, and a structured section outline beside the body.

Rendering

Static speed. Browser depth.

render: never

Fast static retrieval for pages whose useful content is already present in HTML.

render: auto

Starts statically and selects browser rendering only when the page requires it.

render: always

Runs a browser for JavaScript-rendered applications and dynamic page content.

Usage

Credits follow processing.

Static extraction generally costs 1 credit. Browser-rendered extraction generally costs 5 credits. Requests rejected before processing generally cost 0 credits. Sitemap inspection is priced per URL inspected rather than per request: 1 credit per 10 URLs, so the default 25-URL check costs 3 credits.

Structured data endpoint

Extract JSON-LD without parsing the page yourself

Use POST /v1/schema to collect parseable JSON-LD from a public webpage. Raw mode preserves discovered blocks. Normalized mode expands top-level arrays and @graph collections into deduplicated entities.

Schema extraction · cURL
export TOOLTRACE_KEY='paste_your_api_key_here'

curl --request POST \
  --url "https://api.tooltrace.io/v1/schema" \
  --header "X-ToolTrace-Key: ${TOOLTRACE_KEY}" \
  --header 'Content-Type: application/json' \
  --data '{
    "url": "https://example.com",
    "mode": "normalized"
  }'
raw

Keep the parseable JSON-LD objects and arrays in their discovered block structure.

normalized

Expand top-level arrays and graph entities, then remove exact duplicates for easier downstream processing.

Validation boundary

Extraction does not validate Schema.org vocabulary or guarantee eligibility for a Google rich result.

Page analysis endpoint

Run deterministic on-page checks

Use POST /v1/seo-audit to evaluate a public webpage and receive twelve checks covering metadata, canonical signals, headings, image alt coverage, viewport, robots directives, social fields, JSON-LD presence, and extracted content length.

SEO page audit · cURL
export TOOLTRACE_KEY='paste_your_api_key_here'

curl --request POST \
  --url "https://api.tooltrace.io/v1/seo-audit" \
  --header "X-ToolTrace-Key: ${TOOLTRACE_KEY}" \
  --header 'Content-Type: application/json' \
  --data '{
    "url": "https://example.com/page"
  }'
passed + severity

Prioritize failed critical checks before warnings and informational improvements.

evidence

Keep the observed value beside each result so teams can verify why the check passed or failed.

recommendation

Use the suggested action as a starting point, then apply page intent, template context, and current platform guidance.

The score is the percentage of supported check weight that passed. It is not a ranking prediction, indexation guarantee, sitewide audit, or measurement of links, authority, traffic, competition, or Core Web Vitals.

Technology intelligence endpoint

Detect observable website technologies

Use POST /v1/tech-stack to identify technologies that leave public signals in response headers, HTML, scripts, stylesheets, meta tags, cookies, and rendered page structure.

Tech stack detection · cURL
export TOOLTRACE_KEY='paste_your_api_key_here'

curl --request POST \
  --url "https://api.tooltrace.io/v1/tech-stack" \
  --header "X-ToolTrace-Key: ${TOOLTRACE_KEY}" \
  --header 'Content-Type: application/json' \
  --data '{
    "url": "https://example.com",
    "render": "auto"
  }'
Categorized detections

Group detected CMS platforms, frameworks, analytics tools, infrastructure, and other technologies by function.

Confidence + evidence

Review the public signals that triggered each result instead of treating a detection as an unexplained fact.

Observable scope

Results cannot reveal databases, private services, or backend technologies that leave no public fingerprint.

Production integration

Validate every response, not only the status code.

Store API keys in server-side environment variables or a managed secret store. Never expose a ToolTrace key in public browser code, source control, screenshots, logs, or support messages. Use separate named keys for production, development, and CI so one credential can be revoked without interrupting every environment.

Usage headers

Read credit, plan, and rate-limit headers after each request. Use them for monitoring and graceful backoff instead of waiting for a hard limit.

Fetch evidence

Keep the requested URL, final URL, status, render method, warnings, and request ID with extracted content so downstream systems retain provenance.

Error contract

Handle structured error codes separately from network failures. Do not retry validation, authentication, or blocked-destination errors without changing the request.

Choose an endpoint by output

Use /v1/extract for content, /v1/metadata for page and social fields, /v1/links for normalized links, /v1/schema for structured data, /v1/seo-audit for page-level technical signals, /v1/sitemap-inspector for sitemap documents and listed URLs, and /v1/tech-stack for observable website technologies.

The interactive reference is the source of truth for request fields and response schemas. The downloadable OpenAPI document can generate typed clients, validate contracts, and keep internal documentation synchronized with production.

SDKs and integrations

Official packages for Python and AI frameworks.

Install the package for your stack. Every package authenticates with your ToolTrace API key and calls the same production endpoints documented above.

Python SDK

Sync and async clients for every ToolTrace endpoint. Typed responses, context manager support, and automatic error handling. Install with pip install tooltrace.

PyPI · GitHub

MCP Server

Model Context Protocol server that gives Claude, Cursor, VS Code Copilot, Codex, and other MCP clients direct access to every ToolTrace tool. Install with npm install -g @tooltrace/mcp-server. See the MCP setup guide for per-client configuration.

npm · GitHub

LangChain

Document loader for RAG pipelines and four agent tools for extraction, metadata, SEO audit, and tech stack detection. Install with pip install tooltrace-langchain.

PyPI · GitHub

LlamaIndex

Data reader that loads webpages as LlamaIndex Documents with content hash IDs for change detection. Install with pip install tooltrace-llamaindex.

PyPI · GitHub

MCP quick setup

Add ToolTrace to Claude Desktop, Claude Code, or Cursor in one step:

# Claude Code
claude mcp add tooltrace tooltrace-mcp -e TOOLTRACE_API_KEY=your-api-key

# Claude Desktop / Cursor (add to your MCP config)
{
  "mcpServers": {
    "tooltrace": {
      "command": "tooltrace-mcp",
      "env": { "TOOLTRACE_API_KEY": "your-api-key" }
    }
  }
}

Python quick start

from tooltrace import ToolTrace

client = ToolTrace(api_key="your-key")

# Extract clean Markdown from any webpage
result = client.extract("https://example.com")
print(result.markdown)
print(result.metadata.title)

# Run an SEO audit
audit = client.seo_audit("https://example.com")
print(f"Score: {audit.score}/100")