Skip to content
Back to Pictomancer.ai

Card snapshot

api.pictomancer.ai · 2026-07-09 04:48:10 UTC · e51c7551ecec8cc5e8e0d96c4946cbed91bc67641f4cbe3b3f3491e2604efadc

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "protocolVersion": "1.0",
  "name": "Pictomancer.ai",
  "description": "Agent-to-agent image processing service. Resize, convert, compress, and pipeline images via REST, MCP, or A2A.",
  "version": "0.1.0",
  "url": "https://api.pictomancer.ai/a2a",
  "preferredTransport": "JSONRPC",
  "interfaces": [
    {
      "url": "https://api.pictomancer.ai/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://api.pictomancer.ai",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://api.pictomancer.ai/mcp",
      "protocolBinding": "MCP",
      "protocolVersion": "1.0"
    }
  ],
  "supportedInterfaces": [
    {
      "url": "https://api.pictomancer.ai/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://api.pictomancer.ai",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://api.pictomancer.ai/mcp",
      "protocolBinding": "MCP",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "Pictomancer.ai",
    "url": "https://pictomancer.ai"
  },
  "securitySchemes": {},
  "security": [],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": true,
    "extensions": [
      {
        "uri": "https://x402.org",
        "description": "Pay-per-request in USDC on Base L2. First 50 requests free per agent.",
        "required": false,
        "params": {
          "chain": "base",
          "token": "USDC",
          "freeTier": 50
        }
      }
    ]
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "image/jpeg",
    "image/png",
    "image/webp"
  ],
  "skills": [
    {
      "id": "analyze_image",
      "name": "Analyze image",
      "description": "Fetch an image and return metadata (file size in bytes). Accepts a public URL or base64-encoded image.",
      "tags": [
        "image",
        "metadata",
        "analyze",
        "size"
      ],
      "examples": [
        "How big is this image? https://example.com/photo.jpg",
        "Get the file size of this PNG"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "resize_image",
      "name": "Resize image",
      "description": "Scale an image by a factor. Supports uniform scaling (scale) or independent axes (scale_x, scale_y). Output formats: jpeg, png, webp, tiff, gif.",
      "tags": [
        "image",
        "resize",
        "scale",
        "dimensions"
      ],
      "examples": [
        "Resize this image to half size: https://example.com/photo.jpg",
        "Scale this image by 0.25 in both axes"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "image/jpeg",
        "image/png",
        "image/webp"
      ]
    },
    {
      "id": "compress_image",
      "name": "Compress image",
      "description": "Re-encode an image with q (1-100) and format options to reduce file size. Supports q (quality), strip, compression. Formats: jpeg, png, webp, tiff, gif.",
      "tags": [
        "image",
        "compress",
        "optimize",
        "quality",
        "file-size"
      ],
      "examples": [
        "Compress this JPEG to q=60: https://example.com/photo.jpg",
        "Optimize this image for web, strip metadata"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "image/jpeg",
        "image/png",
        "image/webp"
      ]
    },
    {
      "id": "convert_image",
      "name": "Convert image format",
      "description": "Convert an image to a different format. Supports: jpeg, png, webp, tiff, gif. Options: q (quality), strip metadata, lossless (webp only).",
      "tags": [
        "image",
        "convert",
        "format",
        "webp",
        "png",
        "jpeg"
      ],
      "examples": [
        "Convert this PNG to WebP: https://example.com/image.png",
        "Convert to JPEG with q=85, strip EXIF"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "image/jpeg",
        "image/png",
        "image/webp",
        "image/tiff",
        "image/gif"
      ]
    },
    {
      "id": "image_pipeline",
      "name": "Image processing pipeline",
      "description": "Chain multiple image operations in sequence (max 10). Operations: resize, compress, convert, crop. Each step receives the output of the previous one.",
      "tags": [
        "image",
        "pipeline",
        "batch",
        "chain",
        "multi-step"
      ],
      "examples": [
        "Resize to 50% then convert to WebP: https://example.com/photo.jpg",
        "Crop, resize, and compress this image in one call"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "image/jpeg",
        "image/png",
        "image/webp"
      ]
    }
  ],
  "pricing": {
    "model": "pay-per-request",
    "currency": "USDC",
    "network": "base",
    "free_tier": "50 requests per agent",
    "base_prices": {
      "analyze": "$0.0",
      "resize": "$0.001",
      "compress": "$0.001",
      "convert": "$0.002",
      "crop": "$0.001"
    },
    "size_multipliers": {
      "under_1MB": "1.0x",
      "1MB_5MB": "1.5x",
      "5MB_10MB": "2.0x",
      "10MB_50MB": "3.0x"
    },
    "payment_protocol": "x402"
  }
}