{
  "serviceId": "image-transform",
  "displayName": "ImageOps Image Processing API",
  "description": "Inspect, analyze or transform a public HTTPS image: metadata, resize, crop, rotate, convert, compress, color and filter adjustments, masks, composition, text annotation and tile packages. POST /v1/image with image_url, operation and params. Transforms answer a temporary HTTPS URL to the result, kept one hour, never image bytes. Pay per request in USDC; no account, no API key.",
  "category": "documents",
  "resourceUrl": "https://agent.pocket.network/v1/image-transform",
  "priceUsd": "0.005000",
  "priceVersion": 1,
  "rails": [
    {
      "id": "base",
      "network": "eip155:8453",
      "chainId": 8453,
      "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "tokenDecimals": 6,
      "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
    }
  ],
  "paymentNetworks": [
    "eip155:8453",
    "eip155:4217"
  ],
  "paymentProtocols": [
    "x402",
    "mpp"
  ],
  "protocols": [
    "rest"
  ],
  "inputSchema": {
    "type": "object",
    "description": "The body of POST /v1/image. Each operation has its own params schema, with ranges and examples, in https://image.pokt.online/openapi.json. Inputs must be public HTTPS URLs; limits are 50 MB download, 50 MP decoded and 25 MB output, and multi-input operations take up to eight images, 20 MP combined.",
    "properties": {
      "image_url": {
        "type": "string",
        "maxLength": 8192,
        "description": "The public HTTPS image to read."
      },
      "operation": {
        "type": "string",
        "enum": [
          "adaptive_threshold",
          "add_background",
          "animation_info",
          "apply_mask",
          "auto_orient",
          "blur",
          "brightness",
          "colorspace",
          "compare",
          "composite",
          "compress",
          "contact_sheet",
          "contrast",
          "convert",
          "convolve",
          "crop",
          "deepzoom",
          "detect_format",
          "difference",
          "dilate",
          "dominant_color",
          "draw_circle",
          "draw_line",
          "draw_rect",
          "draw_text",
          "edge_detect",
          "emboss",
          "entropy",
          "erode",
          "extract_alpha",
          "extract_channel",
          "extract_frame",
          "extract_page",
          "flatten",
          "flip",
          "gamma",
          "grayscale",
          "grid",
          "hist_equalize",
          "histogram",
          "hue",
          "inspect",
          "invert",
          "join",
          "laplacian",
          "local_equalize",
          "median",
          "merge_channels",
          "metadata",
          "morphology",
          "normalize",
          "optimize",
          "overlay",
          "pad",
          "page_info",
          "pdf_to_image",
          "pixel_sample",
          "pyramid",
          "rank_filter",
          "resize",
          "rotate",
          "saturation",
          "sharpen",
          "smartcrop",
          "stats",
          "strip_metadata",
          "threshold",
          "thumbnail",
          "tile",
          "tint",
          "trim",
          "watermark"
        ],
        "description": "What to do with the image (default inspect)."
      },
      "params": {
        "type": "object",
        "description": "The operation's parameters, e.g. {width, height, fit, format} for resize. Operations that need none take {}."
      }
    },
    "required": [
      "image_url"
    ]
  },
  "outputSchema": {
    "type": "object",
    "description": "For POST /v1/image, a JSON object with ok, operation and input (width, height, format, source_bytes). Analyses add their data; transforms add output with width, height, format, bytes, url and expires_in_seconds. A refused request answers ok false with a failure code, e.g. UNSAFE_URL."
  },
  "methods": {
    "GET /": "read",
    "GET /v1/health": "read",
    "GET /v1/identity": "read",
    "GET /v1/version": "read",
    "POST /v1/image": "read",
    "POST /v1/self-test": "read"
  },
  "firstParty": true,
  "networks": [
    "eip155:8453",
    "eip155:4217"
  ],
  "serving": true,
  "page": "https://agent.pocket.network/services/image-transform",
  "descriptor": "https://agent.pocket.network/services/image-transform/descriptor.json"
}