ToolAssay

PDF Extract ($0.04)

PDF Extract ($0.04): deterministic PDF -> per-page plain text + metadata, no OCR, no table extraction, no third-party PDF/OCR vendor -- text pulled directly from the PDF's own embedded text objects via pdfjs-dist (Mozilla's own PDF.js, Apache-2.0) running in this process. Body { url } (public http(s) PDF link, SSRF-hardened fetch) OR { pdf_base64 } (raw base64 bytes), not both. Max 10 MiB, max 40 pages. Check free /v1/pdf_extract/availability first.

Answeringour last check, 2026-10-10
1 of 1checks answered this week
184 msmedian answer time
$0.04listed price per call
$0.04price 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://draconic21-x402-api.onrender.com/v1/pdf_extract

CategorySearch and research
Provider hostdraconic21-x402-api.onrender.com
Networkseip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Payment schemesexact
Self-reported calls, 30 days2 from 2 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-10 valid payment request 402$0.04 184 ms

Example input (from the provider)

{
  "body": {
    "url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"
  },
  "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": {
          "additionalProperties": true,
          "properties": {
            "max_pages": {
              "description": "Optional; defaults to 40 (the route's own cap). Capped at 40 regardless of the value passed.",
              "type": "integer"
            },
            "pdf_base64": {
              "description": "Raw PDF bytes, base64-encoded. Mutually exclusive with url. Max 10 MiB decoded.",
              "type": "string"
            },
            "url": {
              "description": "Public http(s) link to a PDF. Mutually exclusive with pdf_base64.",
              "type": "string"
            }
          },
          "required": [],
          "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": {
            "caveats": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "document_sha256": {
              "type": "string"
            },
            "engine": {
              "type": "string"
            },
            "metadata": {
              "properties": {
                "author": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "creation_date": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "creator": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "pdf_version": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "producer": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "title": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "type": "object"
            },
            "page_count": {
              "type": "integer"
            },
            "pages": {
              "items": {
                "properties": {
                  "char_count": {
                    "type": "integer"
                  },
                  "has_text": {
                    "type": "boolean"
                  },
                  "page": {
                    "type": "integer"
                  },
                  "text": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "pages_read": {
              "type": "integer"
            },
            "warnings": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "word_count": {
              "type": "integer"
            }
          },
          "required": [
            "document_sha256",
            "page_count",
            "pages",
            "caveats"
          ],
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON