Web & Page Intelligence API Documentation
Independent public-page reads for agents: Markdown conversion, schema extraction, change detection, metadata, displayed contacts, and sitemap indexes. Pages are fetched directly over HTTP. No browser session is used. Payment is the exact USDC price on Base with x402.
https://brainiac.software/api/v1/web-intelligence/url-to-markdown$0.04 USDCConvert URL to Markdown
Fetch one public webpage and convert its readable HTML into Markdown. Scripts are not run, and missing text is not filled in.
Body
| Field | Required | Notes |
|---|---|---|
url | Yes | string |
Request exampleJSON
{
"url": "https://example.com/"
}Response exampleJSON
{
"retrievedAt": "2026-11-02T18:00:00.000Z",
"requestedUrl": "https://example.com/",
"finalUrl": "https://example.com/",
"httpStatus": 200,
"contentType": "text/html",
"warnings": [
"Embedded frames were not fetched."
],
"sources": [
{
"source": "Public HTTP response",
"url": "https://example.com/",
"retrievedAt": "2026-11-02T18:00:00.000Z"
}
],
"limitations": [
"Only the bytes from one public HTTP GET are read. JavaScript is not executed."
],
"markdown": "# Example Domain\n\nThis domain is for use in documentation examples.",
"contentHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}cURL
curl -i -X POST "https://brainiac.software/api/v1/web-intelligence/url-to-markdown" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"url": "https://example.com/"
}
JSONhttps://brainiac.software/api/v1/web-intelligence/structured-page-extract$0.05 USDCExtract structured page data
Extract caller-defined fields from one public webpage. A field is returned only when a selector, JSON-LD property, or matching meta tag contains it. Otherwise the value is null.
Body
| Field | Required | Notes |
|---|---|---|
url | Yes | string |
schema | Yes | array; Array |
Request exampleJSON
{
"url": "https://example.com/",
"schema": [
{
"name": "heading",
"type": "string",
"selector": "h1"
}
]
}Response exampleJSON
{
"retrievedAt": "2026-11-02T18:00:00.000Z",
"requestedUrl": "https://example.com/",
"finalUrl": "https://example.com/",
"httpStatus": 200,
"contentType": "text/html",
"warnings": [
"A JSON-LD script could not be parsed."
],
"sources": [
{
"source": "Public HTTP response",
"url": "https://example.com/",
"retrievedAt": "2026-11-02T18:00:00.000Z"
}
],
"limitations": [
"Without a selector, a field is filled only from a JSON-LD property, a meta name or property, or the document title when the field name is title."
],
"fields": [
{
"name": "heading",
"type": "string",
"value": "Example Domain",
"warnings": [
"2 elements matched; the first was used."
]
}
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/web-intelligence/structured-page-extract" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"url": "https://example.com/",
"schema": [
{
"name": "heading",
"type": "string",
"selector": "h1"
}
]
}
JSONhttps://brainiac.software/api/v1/web-intelligence/page-change-detect$0.05 USDCDetect page changes
Fetch a public page and compare its Markdown with a caller-supplied previous snapshot. The snapshot is not stored. The result lists added and removed lines and does not rank their importance.
Body
| Field | Required | Notes |
|---|---|---|
url | Yes | string |
previousMarkdown | Yes | string |
previousRetrievedAt | No | string; date-time |
Request exampleJSON
{
"url": "https://example.com/",
"previousMarkdown": "Previous snapshot",
"previousRetrievedAt": "2026-11-01T18:00:00.000Z"
}Response exampleJSON
{
"retrievedAt": "2026-11-02T18:00:00.000Z",
"requestedUrl": "https://example.com/",
"finalUrl": "https://example.com/",
"httpStatus": 200,
"contentType": "text/html",
"warnings": [
"Only the first 40 added or removed lines are listed."
],
"sources": [
{
"source": "Public HTTP response",
"url": "https://example.com/",
"retrievedAt": "2026-11-02T18:00:00.000Z"
}
],
"limitations": [
"The previous snapshot is supplied by the caller and is not stored."
],
"changed": true,
"previousRetrievedAt": "2026-11-01T18:00:00.000Z",
"previousHash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"currentHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"currentMarkdown": "# Example Domain\n\nThis domain is for use in documentation examples.",
"changes": [
{
"kind": "removed",
"text": "Previous snapshot"
},
{
"kind": "added",
"text": "Example Domain"
}
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/web-intelligence/page-change-detect" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"url": "https://example.com/",
"previousMarkdown": "Previous snapshot",
"previousRetrievedAt": "2026-11-01T18:00:00.000Z"
}
JSONhttps://brainiac.software/api/v1/web-intelligence/website-metadata-extract$0.02 USDCExtract website metadata
Read title, description, canonical URL, Open Graph tags, language, and robots directives from one public page. Absent tags are null. robots.txt is not fetched.
Body
| Field | Required | Notes |
|---|---|---|
url | Yes | string |
Request exampleJSON
{
"url": "https://example.com/"
}Response exampleJSON
{
"retrievedAt": "2026-11-02T18:00:00.000Z",
"requestedUrl": "https://example.com/",
"finalUrl": "https://example.com/",
"httpStatus": 200,
"contentType": "text/html",
"warnings": [
"A canonical link was present but was not an http or https URL."
],
"sources": [
{
"source": "Public HTTP response",
"url": "https://example.com/",
"retrievedAt": "2026-11-02T18:00:00.000Z"
}
],
"limitations": [
"robots.txt was not fetched. Robots values come from the page meta tag and the X-Robots-Tag header."
],
"title": "Example Domain",
"description": "Illustrative description from the description meta tag.",
"canonicalUrl": "https://example.com/",
"language": "en",
"robots": {
"meta": "index,follow",
"header": "noarchive"
},
"openGraph": {
"title": "Example Domain",
"description": "Illustrative description",
"type": "website",
"url": "https://example.com/",
"image": "https://example.com/image.png",
"siteName": "Example",
"locale": "en"
}
}cURL
curl -i -X POST "https://brainiac.software/api/v1/web-intelligence/website-metadata-extract" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"url": "https://example.com/"
}
JSONhttps://brainiac.software/api/v1/web-intelligence/website-contact-extract$0.04 USDCExtract website contacts
Read publicly displayed emails, tel: links, address elements, and structured contact data from one public page. Linked pages are not crawled, and missing contacts are not guessed.
Body
| Field | Required | Notes |
|---|---|---|
url | Yes | string |
Request exampleJSON
{
"url": "https://example.com/"
}Response exampleJSON
{
"retrievedAt": "2026-11-02T18:00:00.000Z",
"requestedUrl": "https://example.com/",
"finalUrl": "https://example.com/",
"httpStatus": 200,
"contentType": "text/html",
"warnings": [
"No publicly displayed email, telephone, or address was found in the fetched HTML."
],
"sources": [
{
"source": "Public HTTP response",
"url": "https://example.com/",
"retrievedAt": "2026-11-02T18:00:00.000Z"
}
],
"limitations": [
"Phone numbers are taken from tel: links and structured contact data, not from arbitrary digit strings."
],
"emails": [
"info@example.com"
],
"phones": [
"+1-202-555-0100"
],
"addresses": [
"123 Example Street, Example City"
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/web-intelligence/website-contact-extract" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"url": "https://example.com/"
}
JSONhttps://brainiac.software/api/v1/web-intelligence/sitemap-content-index$0.03 USDCIndex sitemap content
Fetch one public sitemap or sitemap index and return the listed URLs with lastmod, changefreq, and priority when those fields are present. Page URLs are not fetched.
Body
| Field | Required | Notes |
|---|---|---|
sitemapUrl | Yes | string |
Request exampleJSON
{
"sitemapUrl": "https://www.sitemaps.org/sitemap.xml"
}Response exampleJSON
{
"retrievedAt": "2026-11-02T18:00:00.000Z",
"requestedUrl": "https://www.sitemaps.org/sitemap.xml",
"finalUrl": "https://www.sitemaps.org/sitemap.xml",
"httpStatus": 200,
"contentType": "application/xml",
"warnings": [
"Only the first 100 URLs are returned."
],
"sources": [
{
"source": "Public HTTP response",
"url": "https://www.sitemaps.org/sitemap.xml",
"retrievedAt": "2026-11-02T18:00:00.000Z"
}
],
"limitations": [
"Listed page URLs are not fetched. Metadata is only what each sitemap entry contained."
],
"kind": "urlset",
"entryKind": "page",
"truncated": false,
"entries": [
{
"loc": "https://example.com/",
"lastmod": "2026-11-01",
"changefreq": "weekly",
"priority": "0.8"
}
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/web-intelligence/sitemap-content-index" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"sitemapUrl": "https://www.sitemaps.org/sitemap.xml"
}
JSON