{"query":"extract article","count":5,"results":[{"slug":"extract","name":"Extract article","route":"POST /api/extract","price":"$0.005","category":"web","description":"Extract the main article content from any public URL as clean markdown. Returns title, byline, excerpt, word count, and markdown.","score":16,"computePayable":false,"inputSchema":{"properties":{"url":{"type":"string","description":"Public http(s) URL to extract"}},"required":["url"]},"example":{"url":"https://example.com/article"},"docs":"https://agent402.tools/tools/extract"},{"slug":"openapi-extract","name":"OpenAPI endpoint extractor","route":"POST /api/openapi-extract","price":"$0.002","category":"conversion","description":"Flatten an OpenAPI 3.x or Swagger 2.x spec into a structured list of callable endpoints — one row per operation with method, path, operationId, summary, tags, parameters (name / in / required / type), JSON-body flag, and documented response codes. Includes per-method and per-tag counts so an agent can pick what to call next without parsing the full spec. Output is sorted by path then method for stable, agent-friendly grouping. Pure CPU — deterministic, no network, no $ref dereferencing.","score":10,"computePayable":true,"inputSchema":{"properties":{"spec":{"description":"OpenAPI/Swagger document (object or JSON string)"}},"required":["spec"]},"example":{"spec":{"openapi":"3.0.0","paths":{"/users":{"get":{"operationId":"listUsers","summary":"List users","tags":["users"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"description":"ok"},"400":{"description":"bad"}}}},"/users/{id}":{"delete":{"operationId":"deleteUser","summary":"Delete user","tags":["users"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"gone"}}}}}}},"docs":"https://agent402.tools/tools/openapi-extract"},{"slug":"extract-entities","name":"Extract entities","route":"POST /api/extract-entities","price":"$0.002","category":"text","description":"Pull emails, URLs, IPv4s, @mentions, and #hashtags out of free text. Returns deduped lists.","score":10,"computePayable":true,"inputSchema":{"properties":{"text":{"type":"string"}},"required":["text"]},"example":{"text":"ping @ada at ada@x.com see https://x.com #news"},"docs":"https://agent402.tools/tools/extract-entities"},{"slug":"pdf-extract-pages","name":"Extract / split PDF pages","route":"POST /api/pdf-extract-pages","price":"$0.003","category":"web","description":"Pull a subset of pages into a new PDF (split). Body: {\"url\":\"https://…/file.pdf\",\"pages\":\"1-3,5\"}. Returns the new PDF as base64.","score":10,"computePayable":false,"inputSchema":{"properties":{"url":{"type":"string","description":"Public URL of the PDF"},"pages":{"type":"string","description":"Page selector, 1-based, e.g. \"1-3,5,8-10\""}},"required":["url","pages"]},"example":{"url":"https://arxiv.org/pdf/1706.03762","pages":"1-2"},"docs":"https://agent402.tools/tools/pdf-extract-pages"},{"slug":"json-query","name":"JSON query","route":"POST /api/json-query","price":"$0.001","category":"conversion","description":"Extract a value from JSON by dot/bracket path, e.g. \"items[2].name\".","score":4,"computePayable":true,"inputSchema":{"properties":{"json":{"description":"JSON value (or a JSON string of one)"},"path":{"type":"string","description":"Path like \"a.b[0].c\""}},"required":["json","path"]},"example":{"json":{"items":[{"name":"a"},{"name":"b"}]},"path":"items[1].name"},"docs":"https://agent402.tools/tools/json-query"}]}