Skip to content
Back to FrameAnyPhoto

Card snapshot

frameanyphoto.com · 2026-10-09 04:29:07 UTC · b2048734631c9983c030468416a50abb97cbbe7833e553fd47e68f4a75812c36

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.

{
  "name": "FrameAnyPhoto",
  "version": "1.1.0",
  "description": "Museum-quality framed prints of public-domain art. Agents can search works, price prints, and create a Stripe checkout link for the buyer to pay.",
  "provider": {
    "organization": "FrameAnyPhoto",
    "url": "https://frameanyphoto.com"
  },
  "documentationUrl": "https://frameanyphoto.com/llms.txt",
  "url": "https://frameanyphoto.com/a2a",
  "protocolVersion": "0.3.0",
  "supportedInterfaces": [
    {
      "url": "https://frameanyphoto.com/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "0.3.0"
    }
  ],
  "preferredTransport": "JSONRPC",
  "additionalInterfaces": [
    {
      "url": "https://frameanyphoto.com/a2a",
      "transport": "JSONRPC"
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "text",
    "application/json"
  ],
  "defaultOutputModes": [
    "text",
    "application/json"
  ],
  "skills": [
    {
      "id": "search-works",
      "name": "Search works",
      "description": "Find works by title, artist, series, or keywords. Send text.",
      "tags": [
        "collection",
        "search"
      ]
    },
    {
      "id": "get-work",
      "name": "Get work",
      "description": "One work\u2019s id, size in pixels, PPI, image URL, and museum record.",
      "tags": [
        "collection"
      ]
    },
    {
      "id": "list-series",
      "name": "List series",
      "description": "Collection rows and work counts.",
      "tags": [
        "collection"
      ]
    },
    {
      "id": "get-print-options",
      "name": "Print options",
      "description": "Sizes, frames, and prices offered for one work.",
      "tags": [
        "order",
        "price"
      ]
    },
    {
      "id": "quote-order",
      "name": "Quote order",
      "description": "Total for a work, size, frame, and quantity, with shipping. Tax is added at checkout.",
      "tags": [
        "order",
        "price"
      ]
    },
    {
      "id": "create-checkout",
      "name": "Create checkout",
      "description": "Stripe Checkout link for the buyer to pay. Never charges a card.",
      "tags": [
        "order",
        "checkout"
      ]
    },
    {
      "id": "get-order-status",
      "name": "Order status",
      "description": "Payment and shipping status for an order_ref from create-checkout. No personal data.",
      "tags": [
        "order"
      ]
    },
    {
      "id": "get-policies",
      "name": "Store policies",
      "description": "Shipping, returns, payment, tax, and contact (ceo@frameanyphoto.com) as JSON. Also at https://frameanyphoto.com/.well-known/policies.json.",
      "tags": [
        "order",
        "policy"
      ]
    }
  ],
  "examples": [
    "Ships to the US. For order skills send a data part: {\"skill\": \"quote-order\", \"arguments\": {\"work\": \"<id>\", \"size\": \"Large\"}}",
    "Store policies: {\"skill\": \"get-policies\"} or https://frameanyphoto.com/.well-known/policies.json"
  ]
}