{
  "name": "Closient",
  "description": "GS1 Digital Link resolver and product data platform for CPG brands, retailers, and consumers. Provides Sunrise 2027-ready GS1 Digital Link resolution of GTIN, serial, and batch/lot identifiers into product information, regulatory content, and brand experiences, with QR code generation, EPCIS 2.0 traceability, and compliance tooling. Also powers local product discovery ranked by geographic proximity.",
  "url": "https://www.closient.com",
  "documentationUrl": "https://www.closient.com/llms.txt",
  "version": "1.0.0",
  "protocolVersion": "0.3.0",
  "provider": {
    "organization": "Closient",
    "url": "https://www.closient.com"
  },
  "preferredTransport": "JSONRPC",
  "supportedInterfaces": [
    {
      "url": "https://www.closient.com/agent/a2a/v1",
      "protocolBinding": "HTTP+JSON",
      "protocolVersion": "0.3.0",
      "transport": "JSONRPC"
    }
  ],
  "capabilities": {
    "streaming": true,
    "pushNotifications": false
  },
  "relatedResources": {
    "llmsTxt": "https://www.closient.com/llms.txt",
    "llmsFullTxt": "https://www.closient.com/llms-full.txt",
    "mcpServer": "https://www.closient.com/.well-known/mcp.json",
    "mcpServerCard": "https://www.closient.com/.well-known/mcp/server-card.json",
    "aiAgentManifest": "https://www.closient.com/.well-known/ai-agent.json",
    "mcpEndpoint": "https://www.closient.com/mcp/http",
    "openaiPlugin": "https://www.closient.com/.well-known/ai-plugin.json",
    "apiCatalog": "https://www.closient.com/.well-known/api-catalog",
    "agentSkills": "https://www.closient.com/.well-known/agent-skills/index.json",
    "agentApiOpenapi": "https://www.closient.com/agent/api/v1/openapi.json",
    "agentApiDocs": "https://docs.closient.com",
    "nlwebAsk": "https://www.closient.com/search/api/v1/ask",
    "nlwebAskAlias": "https://www.closient.com/ask",
    "a2aEndpoint": "https://www.closient.com/agent/a2a/v1"
  },
  "interfaces": [
    {
      "protocol": "a2a",
      "url": "https://www.closient.com/agent/a2a/v1",
      "transport": "JSONRPC",
      "streaming": true,
      "description": "A2A (Agent2Agent) JSON-RPC endpoint. POST message/send, message/stream (SSE), tasks/get, or tasks/cancel to delegate a task to one of the published skills (local_search, lookup_product, check_product_availability)."
    },
    {
      "protocol": "openapi",
      "url": "https://www.closient.com/agent/api/v1/openapi.json",
      "description": "Agentic Commerce API \u2014 structured endpoints for resolve, product detail, and store availability. Primary tool-use surface for AI shopping assistants."
    },
    {
      "protocol": "nlweb",
      "url": "https://www.closient.com/search/api/v1/ask",
      "aliasUrl": "https://www.closient.com/ask",
      "streaming": true,
      "description": "NLWeb natural-language ask endpoint. POST a plain-language product question and receive schema.org-typed answers (SearchResultsPage of Product items). Set ``streaming: true`` for an SSE stream (schema.org items as they rank, then the summary). Also reachable at the NLWeb-convention root alias /ask, and as an MCP server at /mcp/http."
    },
    {
      "protocol": "mcp",
      "url": "https://www.closient.com/.well-known/mcp.json",
      "endpoint": "https://www.closient.com/mcp/http",
      "transport": "streamable-http",
      "description": "Model Context Protocol server for Claude, Cursor, and other MCP-aware agents. Connect to the endpoint via Streamable HTTP; the url is the discovery descriptor."
    },
    {
      "protocol": "openai-plugin",
      "url": "https://www.closient.com/.well-known/ai-plugin.json",
      "description": "OpenAI GPT Actions / ChatGPT plugin manifest."
    },
    {
      "protocol": "llms-txt",
      "url": "https://www.closient.com/llms.txt",
      "description": "llms.txt content index for LLM ingestion."
    }
  ],
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/html",
    "text/markdown"
  ],
  "skills": [
    {
      "id": "local_search",
      "name": "Local Product Search",
      "description": "Resolves a natural-language product query to ranked products with real-time availability at nearby stores, sorted by proximity. Supports optional constraints (certifications, allergens, substances, price). Backed by POST /agent/api/v1/resolve.",
      "tags": [
        "search",
        "local",
        "products",
        "stores",
        "proximity",
        "inventory"
      ],
      "endpoint": {
        "method": "POST",
        "url": "https://www.closient.com/agent/api/v1/resolve"
      },
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "location": {
            "type": "object",
            "properties": {
              "latitude": {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              "longitude": {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              }
            },
            "required": [
              "latitude",
              "longitude"
            ]
          },
          "radius_km": {
            "type": "number",
            "default": 10.0,
            "exclusiveMinimum": 0,
            "maximum": 100
          },
          "limit": {
            "type": "integer",
            "default": 5,
            "minimum": 1,
            "maximum": 25
          },
          "constraints": {
            "type": "object",
            "description": "Optional product filters (certifications, allergens, substances, price)."
          }
        },
        "required": [
          "query",
          "location"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "product": {
                  "type": "object",
                  "description": "Summary product info (gtin, name, brand, image, category, certifications, claims, net_content)."
                },
                "availability": {
                  "type": "array",
                  "description": "Nearby store availability sorted by distance.",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          }
        }
      },
      "examples": [
        "POST /agent/api/v1/resolve {\"query\": \"organic almond milk\", \"location\": {\"latitude\": 48.4284, \"longitude\": -123.3656}} \u2014 find organic almond milk near Victoria, BC"
      ]
    },
    {
      "id": "lookup_product",
      "name": "Product Information Lookup",
      "description": "Returns full product detail (substances, certifications, claims, allergens, country of origin) for a known GTIN. Backed by GET /agent/api/v1/products/{gtin}. Accepts GTIN-8, GTIN-12, GTIN-13, or GTIN-14.",
      "tags": [
        "product",
        "brand",
        "regulatory",
        "compliance",
        "gtin"
      ],
      "endpoint": {
        "method": "GET",
        "url": "https://www.closient.com/agent/api/v1/products/{gtin}"
      },
      "inputSchema": {
        "type": "object",
        "properties": {
          "gtin": {
            "type": "string",
            "description": "GTIN identifier (8, 12, 13, or 14 digits)."
          }
        },
        "required": [
          "gtin"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "Full product detail.",
        "properties": {
          "gtin": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "brand": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "image_url": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "net_content": {
            "type": "string"
          },
          "country_of_origin": {
            "type": "string"
          },
          "certifications": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "claims": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "substances": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "examples": [
        "GET /agent/api/v1/products/00614141123452 \u2014 return full product detail for GTIN 00614141123452"
      ]
    },
    {
      "id": "check_product_availability",
      "name": "Check Store Availability",
      "description": "Lists nearby store availability for a known product, sorted by distance (closest first). Backed by GET /agent/api/v1/products/{gtin}/availability.",
      "tags": [
        "availability",
        "stores",
        "inventory",
        "proximity",
        "gtin"
      ],
      "endpoint": {
        "method": "GET",
        "url": "https://www.closient.com/agent/api/v1/products/{gtin}/availability"
      },
      "inputSchema": {
        "type": "object",
        "properties": {
          "gtin": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "radius_km": {
            "type": "number",
            "default": 10.0,
            "exclusiveMinimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "gtin",
          "latitude",
          "longitude"
        ]
      },
      "outputSchema": {
        "type": "array",
        "description": "Store availability records sorted by distance.",
        "items": {
          "type": "object",
          "properties": {
            "store": {
              "type": "string"
            },
            "address": {
              "type": "string"
            },
            "distance_km": {
              "type": "number"
            },
            "stock_status": {
              "type": "string"
            },
            "stock_confidence": {
              "type": "string"
            },
            "price": {
              "type": [
                "string",
                "null"
              ]
            },
            "last_verified": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        }
      },
      "examples": [
        "GET /agent/api/v1/products/00614141123452/availability?latitude=48.4284&longitude=-123.3656&radius_km=10 \u2014 list stores carrying GTIN 00614141123452 within 10 km of Victoria, BC"
      ]
    },
    {
      "id": "resolve_gtin",
      "name": "Resolve GTIN (GS1 Digital Link)",
      "description": "Resolves a GTIN via GS1 Digital Link to product information, brand content, regulatory disclosures, or operational data. Supports AI 01 (GTIN), 21 (Serial), 10 (Batch/Lot).",
      "tags": [
        "gs1",
        "gtin",
        "product",
        "barcode",
        "qr",
        "digital-link",
        "resolver"
      ],
      "examples": [
        "GET /01/00614141123452 \u2014 resolve a GTIN to product data (Accept: application/json for structured data, text/html for consumer page)",
        "GET /01/00614141123452/10/LOT123 \u2014 resolve with batch/lot identifier",
        "GET /01/00614141123452/21/SERIAL456 \u2014 resolve with serial number",
        "GET /01/00614141123452?linkType=gs1:pip \u2014 request product information page"
      ]
    },
    {
      "id": "generate_qr",
      "name": "Generate GS1 Digital Link QR Code",
      "description": "Generates an optimized QR code encoding a GS1 Digital Link URI for a given GTIN, with optional serial or batch identifiers.",
      "tags": [
        "qr-code",
        "gs1",
        "digital-link",
        "packaging"
      ],
      "examples": [
        "GET /01/00614141123452?qr \u2014 generate a QR code for a GTIN",
        "GET /01/00614141123452?fmt=svg \u2014 generate QR code as SVG"
      ]
    },
    {
      "id": "capture_epcis_events",
      "name": "Capture EPCIS 2.0 Events",
      "description": "Captures EPCIS 2.0 supply chain events (ObjectEvent, AggregationEvent, TransactionEvent, TransformationEvent) for product traceability and FSMA 204 compliance. Requires API key authentication.",
      "tags": [
        "epcis",
        "traceability",
        "supply-chain",
        "fsma",
        "capture"
      ],
      "examples": [
        "POST /api/epcis/2.0/capture \u2014 submit EPCIS events as JSON-LD"
      ]
    },
    {
      "id": "query_epcis_events",
      "name": "Query EPCIS 2.0 Events",
      "description": "Queries EPCIS 2.0 events with filters for event type, time range, business step, disposition, EPC, and location. Returns JSON-LD EPCISQueryDocument with cursor-based pagination. Requires API key authentication.",
      "tags": [
        "epcis",
        "traceability",
        "supply-chain",
        "query",
        "events"
      ],
      "examples": [
        "GET /api/epcis/2.0/events \u2014 list events with optional filters",
        "GET /api/epcis/2.0/events/{eventId} \u2014 retrieve a single event",
        "GET /api/epcis/2.0/eventTypes \u2014 list supported EPCIS event types"
      ]
    }
  ]
}