{"openapi":"3.1.0","info":{"title":"Uncommon Artwork public resources","description":"Uncommon Artwork builds websites for artists and galleries, with inventory, shop, letters, and exhibitions on the artist's own domain, plus a discovery network for collectors. This description covers the public, mostly read-only documents agents should fetch. Authenticated studio APIs are not published here. Public discovery tools are on the Streamable HTTP MCP server at /mcp.","version":"1.0.0","contact":{"name":"Uncommon Artwork","email":"hello@uncommonartwork.com","url":"https://uncommonartwork.com/contact"}},"servers":[{"url":"https://uncommonartwork.com"}],"paths":{"/llms.txt":{"get":{"summary":"Agent catalog","description":"Plain-text index of when to use Uncommon Artwork, public browse URLs, trust pages, and developer resources.","operationId":"getLlmsTxt","responses":{"200":{"description":"Plain-text catalog of public pages and when to use Uncommon.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms-full.txt":{"get":{"summary":"Expanded agent catalog","description":"Longer catalog including trust pages, developer URLs, and a larger featured-work list.","operationId":"getLlmsFullTxt","responses":{"200":{"description":"Longer catalog including trust and developer URLs.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"summary":"Public sitemap","description":"XML sitemap of indexable platform URLs with lastmod dates.","operationId":"getSitemap","responses":{"200":{"description":"XML sitemap of public platform URLs.","content":{"application/xml":{"schema":{"type":"string"}}}}}}},"/robots.txt":{"get":{"summary":"Robots allowlist","description":"Crawler rules that allow major AI user agents and point at the sitemap.","operationId":"getRobots","responses":{"200":{"description":"Crawler rules, including AI user agents.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/openapi.json":{"get":{"summary":"This OpenAPI document","description":"OpenAPI 3.1 description of public Uncommon Artwork resources.","operationId":"getOpenApi","responses":{"200":{"description":"OpenAPI 3.1 description of public resources.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/openapi.json":{"get":{"summary":"This OpenAPI document (API path)","description":"Alias of /openapi.json for agents that only probe /api paths.","operationId":"getOpenApiAlias","responses":{"200":{"description":"Same OpenAPI 3.1 document as /openapi.json.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api":{"get":{"summary":"Public API index","description":"JSON index of public Uncommon Artwork resources. Unknown /api paths return structured JSON errors.","operationId":"getApiIndex","responses":{"200":{"description":"Links to OpenAPI, developer resources, contact, and llms.txt.","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"openapi":{"type":"string","format":"uri"},"docs":{"type":"string","format":"uri"},"contact":{"type":"string","format":"uri"},"llms":{"type":"string","format":"uri"}}}}}}}}},"/mcp":{"post":{"summary":"MCP Streamable HTTP endpoint","description":"Public Uncommon Artwork MCP server. JSON-RPC initialize, tools/list, and tools/call over Streamable HTTP. Does not advertise a resources capability.","operationId":"postMcp","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"JSON-RPC response.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"JSON-RPC notification accepted."}}}},"/.well-known/mcp.json":{"get":{"summary":"MCP server card","description":"Discovery document for the Streamable HTTP MCP server.","operationId":"getMcpServerCard","responses":{"200":{"description":"MCP server URL and transport.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/.well-known/api-catalog":{"get":{"summary":"RFC 9727 API catalog","description":"Linkset that points agents at the OpenAPI document.","operationId":"getApiCatalog","responses":{"200":{"description":"Linkset pointing at the OpenAPI document.","content":{"application/linkset+json":{"schema":{"type":"object"}}}}}}},"/api/platform/contact":{"post":{"summary":"Send a platform contact message","description":"Public contact inbox for product questions, press, partnerships, and studio photography. This is the only public write operation.","operationId":"postPlatformContact","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","email","message"],"properties":{"name":{"type":"string","description":"Sender name."},"email":{"type":"string","format":"email","description":"Reply address."},"message":{"type":"string","description":"Message body."}}}}}},"responses":{"200":{"description":"Message accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"400":{"description":"Invalid JSON or missing fields.","content":{"application/json":{"schema":{"type":"object","required":["status","code","message","error"],"properties":{"status":{"type":"integer"},"title":{"type":"string"},"detail":{"type":"string"},"message":{"type":"string"},"code":{"type":"string"},"resolution":{"type":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"resolution":{"type":"string"}}}}}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"type":"object","required":["status","code","message","error"],"properties":{"status":{"type":"integer"},"title":{"type":"string"},"detail":{"type":"string"},"message":{"type":"string"},"code":{"type":"string"},"resolution":{"type":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"resolution":{"type":"string"}}}}}}}},"503":{"description":"Email is not configured.","content":{"application/json":{"schema":{"type":"object","required":["status","code","message","error"],"properties":{"status":{"type":"integer"},"title":{"type":"string"},"detail":{"type":"string"},"message":{"type":"string"},"code":{"type":"string"},"resolution":{"type":"string"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"resolution":{"type":"string"}}}}}}}}}}}}}