ToolAssay

Read up to 10 public web pages as clean Markdown in one call, $0.002 a page, set

Read up to 10 public web pages as clean Markdown in one call, $0.002 a page, settled as one payment: each page's main article text or whole page, with title, author, site name, publish date, language and word count. For feeding several pages to LLM, RAG and research pipelines. All or nothing: if any page can't be fetched or read, nothing is charged and each failure is named.

Not tested: has real-world effectsour last check, 2026-10-26
0 of 0checks answered this week
n/amedian answer time
$0.004listed price per call
n/aprice it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://jotowl.com/v1/web/read/batch

CategorySearch and research
Provider hostjotowl.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

We never call tools that send, buy, move money or file anything, not even without paying.

Example input (from the provider)

{
  "body": {
    "urls": [
      "https://en.wikipedia.org/wiki/List_of_HTTP_status_codes",
      "https://en.wikipedia.org/wiki/Markdown"
    ]
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "properties": {
            "links": {
              "description": "Also return the links in the content",
              "type": "boolean"
            },
            "maxChars": {
              "description": "Default 40000",
              "maximum": 200000,
              "minimum": 500,
              "type": "integer"
            },
            "mode": {
              "description": "article (default): the main text only; page: everything but scripts, navigation and footers",
              "enum": [
                "article",
                "page"
              ],
              "type": "string"
            },
            "urls": {
              "description": "1 to 10 items, $0.002 each, settled as one payment",
              "items": {
                "type": "string"
              },
              "maxItems": 10,
              "minItems": 1,
              "type": "array"
            }
          },
          "required": [
            "urls"
          ],
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "properties": {
            "count": {
              "type": "integer"
            },
            "results": {
              "items": {
                "properties": {
                  "byline": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "description": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "fetched_at": {
                    "description": "When the page was fetched (ISO 8601, UTC)",
                    "format": "date-time",
                    "type": "string"
                  },
                  "issues": {
                    "description": "What could not be read in full, e.g. a page over 1.5 MB",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "lang": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "links": {
                    "items": {
                      "properties": {
                        "href": {
                          "type": "string"
                        },
                        "text": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "markdown": {
                    "description": "JSON pages as a fenced json block",
                    "type": "string"
                  },
                  "mode": {
                    "description": "page when no article was found or the page is too big to look (see issues), and for text, Markdown and JSON pages",
                    "enum": [
                      "article",
                      "page"
                    ],
                    "type": "string"
                  },
                  "published": {
                    "description": "As the page states it",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "siteName": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "title": {
                    "type": "string"
                  },
                  "truncated": {
                    "description": "Part of the page is not in markdown",
                    "type": "boolean"
                  },
                  "url": {
                    "description": "The page read, after redirects",
                    "type": "string"
                  },
                  "words": {
                    "type": "integer"
                  }
                },
                "required": [
                  "url",
                  "title",
                  "mode",
                  "markdown",
                  "words",
                  "truncated",
                  "issues",
                  "fetched_at"
                ],
                "type": "object"
              },
              "type": "array"
            }
          },
          "required": [
            "count",
            "results"
          ],
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON