Convert and extract a public website URL into clean Markdown or readable text plus bounded
Convert and extract a public website URL into clean Markdown or readable text plus bounded structured links, canonical and heading signals, Schema.org types, redirect evidence, content hashes, and response provenance for RAG, research, or agent context.
10000 (raw units)
price
1
calls / 30d
1
unique payers
2026-08-31
updated
Provider
apiacre.com · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0xa0BFa4f07281c9b248DC3AED2217836BcA24869B",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"maxTimeoutSeconds": 300
},
{
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "B4CHWQeQn7GDLZD2aW6hpGG2bEseisBFLZYECA3HDLan",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "10000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"url": "https://example.com"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"data": {
"characters": 167,
"content": "# Example Domain\n\nThis domain is for use in documentation examples without ne...",
"contentSha256": "5945db6fd8137aa377638814ca9bb1ac0a663fd90a97f11f86c3f5c09cfb40e3",
"description": null,
"extraction": {
"javascriptRendered": false,
"limitations": [
"Client-rendered content is not executed.",
"Markdown preserves readable block text, not the complete page layout.",
"Structured links are bounded and exclude non-HTTP(S) targets."
],
"linksPreserved": true,
"method": "bounded HTML DOM extraction",
"version": "apiacre-content-extract/3"
},
"format": "markdown",
"language": "en",
"links": {
"detected": 1,
"external": 1,
"internal": 0,
"returned": 1,
"truncated": false
},
"pageSignals": {
"alternateLanguageCount": 0,
"canonicalUrl": null,
"feedCount": 0,
"headings": {
"h1": [
"Example Domain"
],
"h2Count": 0,
"h3Count": 0
},
"structuredData": {
"blocks": 0,
"invalidBlocks": 0,
"truncated": false,
"types": [],
"validBlocks": 0
}
},
"redirected": false,
"requestedUrl": "https://example.com/",
"response": {
"bodySha256": "ff67a9d764d6a2367a187734e697f6a53217db9a21c101d410a113ca871a299d",
"bytes": 559,
"contentType": "text/html",
"elapsedMs": 36,
"statusCode": 200
},
"sha256": "5945db6fd8137aa377638814ca9bb1ac0a663fd90a97f11f86c3f5c09cfb40e3",
"title": "Example Domain",
"url": "https://example.com/",
"words": 19
},
"meta": {
"cached": false,
"duration_ms": 42,
"next_actions": [],
"sources": [],
"warnings": []
},
"request_id": "018f1f54-7f38-7ba2-8dc3-5f90272d9f1a",
"service": "web.extract",
"version": "1"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"output": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"data": {
"properties": {
"characters": {
"type": "integer"
},
"content": {
"type": "string"
},
"contentSha256": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"extraction": {
"type": "object"
},
"format": {
"type": "string"
},
"language": {
"type": [
"string",
"null"
]
},
"links": {
"type": "object"
},
"pageSignals": {
"type": "object"
},
"redirected": {
"type": "boolean"
},
"requestedUrl": {
"type": "string"
},
"response": {
"type": "object"
},
"sha256": {
"type": "string"
},
"title": {
"type": [
"string",
"null"
]
},
"url": {
"type": "string"
},
"words": {
"type": "integer"
}
},
"type": "object"
},
"meta": {
"properties": {
"cached": {
"type": "boolean"
},
"duration_ms": {
"type": "integer"
},
"next_actions": {
"items": {
"type": "object"
},
"type": "array"
},
"sources": {
"items": {
"type": "string"
},
"type": "array"
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"duration_ms",
"cached",
"sources",
"warnings",
"next_actions"
],
"type": "object"
},
"request_id": {
"type": "string"
},
"service": {
"type": "string"
},
"version": {
"type": "string"
}
},
"required": [
"request_id",
"service",
"version",
"data",
"meta"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
},
"payment-identifier": {
"info": {
"required": false
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"maxLength": 128,
"minLength": 16,
"pattern": "^[a-zA-Z0-9_-]+$",
"type": "string"
},
"required": {
"type": "boolean"
}
},
"required": [
"required"
],
"type": "object"
}
}
}Use it
curl
curl "https://apiacre.com/v1/web/extract" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://apiacre.com/v1/web/extract");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://apiacre.com/v1/web/extract")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/2605.json, and this resource appears in /discovery/resources and /discovery/search.