80trust / 100

Pdf Pipeline

by Tanod pdfpeek in Documents & files

x402 APIPassing, checked 3 h ago

pdfpeek (Tanod) PDF pipeline: up to 10 PDF operations run in sequence on one PDF in one call. Use when several PDF edits (up to 10) should run in sequence on one file in a single call.

POST https://tanod.dev/v1/pdf/pipeline

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
288 ms typical, 1.1 s slowest 5%
Last check
3 h ago
Next check
any minute now

How to call it

# bash or zsh: see the payment challenge (nothing is charged)
curl -g -i -X POST 'https://tanod.dev/v1/pdf/pipeline' \
  -H 'content-type: application/json' \
  --data-raw '{"steps":[{"op":"extract-pages","params":{"pages":"1-3"}},{"op":"resize","params":{"size":"a4"}},{"op":"set-outline","params":{"outline":[{"page":1,"title":"Cover"}]}}],"url":"https://www.irs.gov/pub/irs-pdf/fw9.pdf"}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Ftanod.dev%2Fv1%2Fpdf%2Fpipeline
const res = await pay("https://tanod.dev/v1/pdf/pipeline", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: "{\"steps\":[{\"op\":\"extract-pages\",\"params\":{\"pages\":\"1-3\"}},{\"op\":\"resize\",\"params\":{\"size\":\"a4\"}},{\"op\":\"set-outline\",\"params\":{\"outline\":[{\"page\":1,\"title\":\"Cover\"}]}}],\"url\":\"https://www.irs.gov/pub/irs-pdf/fw9.pdf\"}",
});
console.log(await res.json());

Example input

{
  "steps": [
    {
      "op": "extract-pages",
      "params": {
        "pages": "1-3"
      }
    },
    {
      "op": "resize",
      "params": {
        "size": "a4"
      }
    },
    {
      "op": "set-outline",
      "params": {
        "outline": [
          {
            "page": 1,
            "title": "Cover"
          }
        ]
      }
    }
  ],
  "url": "https://www.irs.gov/pub/irs-pdf/fw9.pdf"
}

Example output

{
  "active_content_removed": {},
  "file": {
    "bytes": 53412,
    "content_type": "application/pdf",
    "data_base64": "JVBERi0xLjcKJb/3... (trimmed: 71,216 base64 characters in the reply)",
    "name": "bookmarked.pdf",
    "pages": 3
  },
  "input_bytes": 140815,
  "input_pages": 6,
  "operation": "pipeline",
  "output_bytes": 53412,
  "steps": [
    {
      "active_content_removed": {},
      "op": "extract-pages",
      "output_bytes": 52010,
      "pages": 3,
      "step": 1
    },
    {
      "active_content_removed": {},
      "mode": "fit",
      "op": "resize",
      "output_bytes": 52960,
      "pages": 3,
      "resized_pages": 3,
      "size": "a4",
      "sizes_truncated": false,
      "step": 2
    },
    {
      "active_content_removed": {},
      "op": "set-outline",
      "outline_depth": 1,
      "outline_items": 1,
      "output_bytes": 53412,
      "pages": 3,
      "replaced": false,
      "step": 3
    }
  ],
  "steps_run": 3,
  "untrusted_content": true
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
3 h agoPassed4021.1 s$0.01
7 h agoPassed402528 ms$0.01
11 h agoPassed4021.1 s$0.01
15 h agoPassed402945 ms$0.01
19 h agoPassed4021.1 s$0.01
22 h agoPassed402284 ms$0.01
26 h agoPassed402413 ms$0.01
30 h agoPassed402899 ms$0.01
33 h agoPassed402262 ms$0.01
37 h agoPassed402288 ms$0.01
40 h agoPassed402289 ms$0.01
44 h agoPassed402276 ms$0.01
2 days agoPassed402279 ms$0.01
2 days agoPassed4022.5 s$0.01
2 days agoPassed402270 ms$0.01