Skip to content
Back to Fold Laboratories

Card snapshot

foldlaboratories.com · 2026-10-28 20:01:18 UTC · ac2d8b93e1379b7c1e54660eed33474014c29ec6f2242f83f061e432422e04b8

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": "Fold Laboratories",
  "description": "Original paintings, prints, photographs and sculpture from galleries and independent artists, for a buyer\u2019s assistant: find works that meet what the buyer asked for, read the full record of one, check an impression\u2019s availability, price it to the buyer\u2019s door and look up an order. Every attribute says who stands behind it: the seller, or Fold. A purchase completes on Fold\u2019s checkout page. The same catalogue is served over MCP (https://api.foldlaboratories.com/mcp) and UCP (https://api.foldlaboratories.com/ucp/mcp).",
  "version": "0.2.0",
  "documentationUrl": "https://foldlaboratories.com/agents",
  "supportedInterfaces": [
    {
      "url": "https://api.foldlaboratories.com/a2a/v1",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "Fold Laboratories",
    "url": "https://foldlaboratories.com"
  },
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "securitySchemes": {
    "bearer": {
      "type": "http",
      "scheme": "bearer",
      "description": "Optional. Without it you are served as an unidentified agent: search, detail and availability work, a work\u2019s images are its public copies \u2014 clean display copies where its seller\u2019s agreement provides for them, otherwise one watermarked copy \u2014 and you are limited to 300 requests a minute, shared with Fold\u2019s other agent endpoints. Request a token at https://foldlaboratories.com/agents."
    }
  },
  "securityRequirements": [
    {
      "schemes": {}
    },
    {
      "schemes": {
        "bearer": {
          "list": []
        }
      }
    }
  ],
  "skills": [
    {
      "id": "search-artworks",
      "name": "Search artworks",
      "description": "Use this when someone wants to find original paintings, prints, photographs or sculpture from independent artists by subject, style, colour, size or budget. Send the buyer\u2019s words as text, or a data part {\"skill\":\"search-artworks\",\"query\":\"...\"} with any of minPriceMinor and maxPriceMinor (cents), orientation, subject, style, medium, colors, minHeightIn, maxHeightIn, minWidthIn and maxWidthIn (inches), shipsTo {country, region, postalCode}, framed, readyToHang, signed and edition, and wall {width, height, furnitureWidth, furnitureHeight, unit} for works whose size suits a wall. A budget or size in the words is read and echoed in applied_filters; a filter you send wins over the words. Misspellings, and Spanish, Portuguese, French, Italian and German, are read. A word about the work that names no constraint must appear in its own words; words of mood and of where it will hang (\"hallway\") only order the results, \"to hang\" and \"a gift\" are not used, and a place it ships to with its state or ZIP is read as shipsTo; understood says how each word was read (read_as, corrected). results holds only works that meet everything asked for, each saying what it matched; near_matches are not matches and say what they miss or what their seller left unsaid \u2014 unknown, never a no. The answer reports whether the scan was exhaustive \u2014 do not tell a buyer it is everything unless it says so.",
      "tags": [
        "art",
        "search",
        "discovery",
        "semantic"
      ],
      "examples": [
        "a pale minimal landscape, almost empty",
        "an etching with artist proofs under $5000",
        "something in encaustic with a lot of texture"
      ],
      "inputModes": [
        "text/plain",
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get-artwork",
      "name": "Get artwork detail",
      "description": "Use this when a buyer wants everything about one work: what it is, its size, how it looks, the delivered cost and returns, who made it and the seller\u2019s statement, with every impression as a separately priced listing and each fact labelled with who stands behind it. Send a data part of {\"skill\":\"get-artwork\",\"artworkId\":\"...\"}.",
      "tags": [
        "art",
        "detail",
        "provenance"
      ],
      "examples": [
        "{\"skill\":\"get-artwork\",\"artworkId\":\"6455ec71-5bef-4dd9-b56a-a6c54d2bd7e5\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "check-availability",
      "name": "Check impression availability",
      "description": "Use this right before offering a buyer a specific impression: whether each impression of a work is still available, and its price. An edition sells one impression at a time. Send {\"skill\":\"check-availability\",\"artworkId\":\"...\"}.",
      "tags": [
        "art",
        "availability",
        "editions"
      ],
      "examples": [
        "{\"skill\":\"check-availability\",\"artworkId\":\"6455ec71-5bef-4dd9-b56a-a6c54d2bd7e5\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "find-similar-artworks",
      "name": "Find similar artworks",
      "description": "Use this when a buyer wants more works that look like one they have seen \u2014 a work on Fold, or a photo where this interface takes one. It answers with the works on sale whose images look like it, each with its similarity from 0 to 1, and only those at or above Fold\u2019s threshold, the closest look first. Send {\"skill\":\"find-similar-artworks\",\"artworkId\":\"...\"}, or a photo as an image part, with the buyer\u2019s words in query and any search filter to narrow it. Similarity is how alike the photographs look to an image model \u2014 not a judgement of style or quality, and no claim that the same artist made them.",
      "tags": [
        "art",
        "search",
        "similar",
        "visual"
      ],
      "examples": [
        "{\"skill\":\"find-similar-artworks\",\"artworkId\":\"6455ec71-5bef-4dd9-b56a-a6c54d2bd7e5\"}"
      ],
      "inputModes": [
        "application/json",
        "image/jpeg",
        "image/png",
        "image/webp"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "find-artworks-for-wall",
      "name": "Find artworks for a wall",
      "description": "Use this when a buyer says where a work will hang \u2014 how wide and high the wall is, and the sofa, bed or sideboard below it if any \u2014 and wants to know what size suits it. It answers with the size range that suits the wall by Fold\u2019s rules of thumb (about 60\u201375% of the width of what it hangs over, hung at eye level or a few inches above the furniture, with a foot of wall clear), the reasoning to relay, and the works on sale in that range, each with what it met. Send {\"skill\":\"find-artworks-for-wall\",\"wall\":{\"width\":120,\"height\":96,\"furnitureWidth\":84,\"furnitureHeight\":34,\"unit\":\"in\"}} with the buyer\u2019s words in query and any search filter to narrow it. The range is a rule of thumb, not a measurement of the room; sizes are the works\u2019 own, and a frame adds to them.",
      "tags": [
        "art",
        "search",
        "size",
        "wall",
        "interior"
      ],
      "examples": [
        "{\"skill\":\"find-artworks-for-wall\",\"wall\":{\"width\":120,\"height\":96,\"furnitureWidth\":84}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "save-search-alert",
      "name": "Save a search and alert on new works",
      "description": "Use this when a buyer wants to hear about works listed later that match what they are looking for. It saves the search \u2014 the buyer\u2019s words in query and the same filters as search-artworks \u2014 and tells the buyer by e-mail (\"email\"; they confirm it first, from the one e-mail Fold sends to ask) or your system by webhook (\"webhookUrl\"; it must echo a signed verification event\u2019s challenge), as this interface offers each, when a work that meets everything asked is listed: never near matches, at most one alert a day. Works flagged as mature content are left out unless includeMature is true. Answers with search_alert_id and manage_token, shown once. Ask the buyer before giving Fold their address.",
      "tags": [
        "art",
        "search",
        "alert",
        "saved-search"
      ],
      "examples": [
        "{\"skill\":\"save-search-alert\",\"query\":\"a blue seascape\",\"maxPriceMinor\":200000,\"email\":\"buyer@example.com\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get-search-alert",
      "name": "Read a saved alert",
      "description": "Use this when a buyer asks about an alert they saved: whether it waits for them to confirm it, is active or has ended, what it watches and when it ends. Send searchAlertId and manageToken, as save-search-alert answered.",
      "tags": [
        "alert",
        "saved-search"
      ],
      "examples": [
        "{\"skill\":\"get-search-alert\",\"searchAlertId\":\"\u2026\",\"manageToken\":\"\u2026\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "cancel-search-alert",
      "name": "Stop a saved alert",
      "description": "Use this when a buyer wants to stop an alert. Nothing more is sent, and the saved words, filters and address are erased. Send searchAlertId and manageToken, as save-search-alert answered; every alert e-mail also stops it in one click.",
      "tags": [
        "alert",
        "saved-search"
      ],
      "examples": [
        "{\"skill\":\"cancel-search-alert\",\"searchAlertId\":\"\u2026\",\"manageToken\":\"\u2026\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get-delivered-quote",
      "name": "Price a work to the buyer\u2019s door",
      "description": "Use this when a buyer asks what a work will cost delivered to them: the price, shipping, estimated sales tax and total for a destination, with the ship-by date, the delivery window and the returns that apply. An estimate, labelled as one: the tax is calculated at checkout from the full address. Send {\"skill\":\"get-delivered-quote\",\"listingId\":\"...\",\"destination\":{\"country\":\"US\",\"postalCode\":\"80401\",\"region\":\"CO\"}}; listing ids come from get-artwork.",
      "tags": [
        "art",
        "price",
        "shipping",
        "tax",
        "estimate"
      ],
      "examples": [
        "{\"skill\":\"get-delivered-quote\",\"listingId\":\"7d1c0d2e-0000-4000-8000-000000000001\",\"destination\":{\"country\":\"US\",\"postalCode\":\"80401\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get-order-status",
      "name": "Check an order",
      "description": "Use this when a buyer asks where their order is: its status, tracking, delivery date and the claim windows left. It needs proof the buyer placed it \u2014 the token from the order confirmation ({\"skill\":\"get-order-status\",\"orderToken\":\"...\"}), or the order reference with the buyer\u2019s e-mail ({\"orderReference\":\"...\",\"buyerEmail\":\"...\"}). Without proof no order is shown, or said to exist.",
      "tags": [
        "order",
        "tracking",
        "delivery"
      ],
      "examples": [
        "{\"skill\":\"get-order-status\",\"orderToken\":\"...\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "open-claim",
      "name": "Ask for a return or report a problem",
      "description": "Use this when a buyer wants to return a work, or it arrived damaged or not as described. It records the request for a person at Fold, checked against the returns policy\u2019s deadlines, and gives the buyer a link for photographs; it never approves a refund. Send {\"skill\":\"open-claim\",\"orderToken\":\"...\",\"ground\":\"...\"} with the buyer\u2019s own words in description.",
      "tags": [
        "order",
        "returns",
        "claims"
      ],
      "examples": [
        "{\"skill\":\"open-claim\",\"orderToken\":\"...\",\"ground\":\"damaged_or_not_as_described\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "start-checkout",
      "name": "Get a checkout link",
      "description": "Use this when the buyer has chosen one work and wants to buy it. It answers with checkout_url, a page on Fold\u2019s own site for that one work, where the buyer enters the delivery address, sees the total with sales tax and the terms, and pays. It charges nothing and reserves nothing: the work can still sell to someone else until the buyer presses Pay, and the link works once and lapses at expires_at. Send {\"skill\":\"start-checkout\",\"listing_id\":\"...\"} with ONE listing_id from get-artwork or check-availability, since each work is its own purchase.",
      "tags": [
        "art",
        "checkout",
        "purchase"
      ],
      "examples": [
        "{\"skill\":\"start-checkout\",\"listing_id\":\"7d1c0d2e-0000-4000-8000-000000000001\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}