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.

POSThttps://brainiac.software/api/v1/web-intelligence/url-to-markdown$0.04 USDC

Convert 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

FieldRequiredNotes
urlYesstring

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/"
}
JSON
POSThttps://brainiac.software/api/v1/web-intelligence/structured-page-extract$0.05 USDC

Extract 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

FieldRequiredNotes
urlYesstring
schemaYesarray; 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"
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/web-intelligence/page-change-detect$0.05 USDC

Detect 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

FieldRequiredNotes
urlYesstring
previousMarkdownYesstring
previousRetrievedAtNostring; 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"
}
JSON
POSThttps://brainiac.software/api/v1/web-intelligence/website-metadata-extract$0.02 USDC

Extract 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

FieldRequiredNotes
urlYesstring

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/"
}
JSON
POSThttps://brainiac.software/api/v1/web-intelligence/website-contact-extract$0.04 USDC

Extract 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

FieldRequiredNotes
urlYesstring

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/"
}
JSON
POSThttps://brainiac.software/api/v1/web-intelligence/sitemap-content-index$0.03 USDC

Index 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

FieldRequiredNotes
sitemapUrlYesstring

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