Api Endpoint

Pocket Network

Scan a dependency manifest for known-vulnerable and confirmed-malicious packages. POST /v1/scan with a link to a lockfile on GitHub, GitLab or Bitbucket, the file pasted in, or a components array, and get per-dependency verdicts (malicious, vulnerable, suspicious, clean) from OSV.dev and the OpenSSF Malicious Packages feed. Pay per request in USDC; no account, no API key.

Open interactive test console

Offering

Provider
agent.pocket.network
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Security
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://agent.pocket.network/v1/taint-check
MIME type
application/json
First seen
2026-10-16T01:50:19.913Z
Last seen
Tags
Security, taint-check, rest

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.005 USDC
Atomic price: 5000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "5000",
    "payTo": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
  }
]

Observed health

Status
Reachable
Latest latency
1272 ms
Average latency
1126 ms
HTTP status
405
Last checked
Reachability
100% over 13 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "POST",
        "PUT",
        "PATCH"
      ]
    },
    "bodyType": {
      "type": "string",
      "enum": [
        "json",
        "form-data",
        "text"
      ]
    },
    "body": {
      "type": "object",
      "description": "Provide either a lockfile (a link to it, or its content) or a pre-parsed components array; body size, component limits and the allowed link hosts come from GET /v1/capabilities.",
      "properties": {
        "lockfile": {
          "type": "object",
          "description": "A lockfile, linked (url) or pasted (format plus content). Send url or content, not both. package.json lists version ranges, so only exact pins are scanned; link the lockfile to scan installed versions.",
          "properties": {
            "url": {
              "type": "string",
              "description": "Link to one public file on github.com (the page link works), raw.githubusercontent.com, gist.githubusercontent.com, gitlab.com or bitbucket.org. The format is taken from the filename unless format is given."
            },
            "format": {
              "type": "string",
              "enum": [
                "package.json",
                "package-lock.json",
                "pnpm-lock.yaml",
                "yarn.lock",
                "requirements.txt",
                "poetry.lock",
                "uv.lock",
                "Pipfile.lock",
                "Cargo.lock",
                "go.sum"
              ],
              "description": "Lockfile format. Required with content; optional with url."
            },
            "content": {
              "type": "string",
              "description": "Raw lockfile content, as a string."
            }
          }
        },
        "components": {
          "type": "array",
          "description": "Pre-parsed dependencies.",
          "items": {
            "type": "object",
            "properties": {
              "ecosystem": {
                "type": "string",
                "description": "e.g. npm, pypi, go, cargo."
              },
              "name": {
                "type": "string",
                "description": "Package name."
              },
              "version": {
                "type": "string",
                "description": "Package version."
              }
            }
          }
        },
        "options": {
          "type": "object",
          "description": "Scan options.",
          "properties": {
            "since": {
              "type": "string",
              "description": "Only advisories newer than this timestamp (monitor mode)."
            },
            "heuristics": {
              "type": "boolean",
              "description": "Add typosquat, install-script and dormancy signals."
            }
          }
        }
      },
      "required": []
    }
  },
  "required": [
    "type",
    "method",
    "bodyType",
    "body"
  ],
  "additionalProperties": false
}

Output schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string"
    },
    "example": {
      "type": "object",
      "properties": {
        "portal": {
          "type": "object",
          "properties": {
            "provenance": {
              "const": "third-party-supplier"
            },
            "serviceId": {
              "const": "taint-check"
            },
            "schemaCheck": {
              "enum": [
                "passed",
                "undeclared",
                "unchecked"
              ]
            }
          },
          "required": [
            "provenance",
            "serviceId",
            "schemaCheck"
          ]
        },
        "data": {
          "type": "object",
          "description": "For POST /v1/scan, a JSON object with a `findings` array — each dependency's verdict (malicious, vulnerable, suspicious, clean), a summary, and a data_as_of timestamp. Findings vary by each supplier's snapshot freshness and converge as mirrors sync. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
        }
      },
      "required": [
        "portal",
        "data"
      ]
    }
  },
  "required": [
    "type"
  ]
}