WellMarked Docs
API referenceCrawl

Crawl a site starting from a root URL

Follow links from a starting URL and extract every page reached, up to max_depth and max_pages. Returns a job_id immediately; crawling is asynchronous.

POST
/crawl

Follow links from a starting URL and extract every page reached, up to max_depth and max_pages. Returns a job_id immediately; crawling is asynchronous.

Poll GET /crawl/{job_id} or supply webhook_url. The crawler stays on the starting host, honours robots.txt, and applies your key's domain policy to every link it follows — not just the root.

A crawl stops early rather than failing when it hits a ceiling: truncated is set with a truncated_reason of page_cap_reached or quota_exhausted, and the pages gathered so far are still returned. max_depth is capped by plan.

Metered per page extracted, not per page discovered.

Authorization

BearerAuth
AuthorizationBearer <token>

Your API key, sent as Authorization: Bearer wm_.... Keys are wm_ followed by 40 hex characters. Create one with POST /register (free, no auth) or POST /keys.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.wellmarked.io/crawl" \  -H "Authorization: Bearer wm_your_api_key_here" \  -H "Content-Type: application/json" \  -d '{    "url": "http://example.com"  }'
{  "completed": 0,  "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",  "job_token": "string",  "kind": "crawl",  "results": [    {      "blocks": [        {          "level": 0,          "text": "string",          "type": "heading"        }      ],      "chunks": [        {          "end_token": 0,          "start_token": 0,          "text": "string"        }      ],      "depth": 0,      "error": "string",      "html": "string",      "links": [        "string"      ],      "markdown": "string",      "metadata": {        "author": "string",        "date": "string",        "retrieved_at": "2019-08-24T14:15:22Z",        "title": "string",        "url": "string"      },      "metrics": {        "content_bytes": 0,        "input_tokens": 0,        "output_tokens": 0,        "reduction_pct": 0,        "tokens_saved": 0      },      "url": "string"    }  ],  "status": "string",  "total": 0,  "truncated": false,  "truncated_reason": "string",  "webhook_signing_secret": "string"}