{
  "openapi": "3.1.0",
  "info": {
    "title": "GBOS Commerce API",
    "version": "0.1.0",
    "description": "Supplier-declared discovery and participant-authorized RFQ → quote → order execution. No payment capture."
  },
  "servers": [
    {
      "url": "https://api.gbos.io"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Cognito ID token for people; expiring scoped gbos_ grant for supported agent operations."
      }
    }
  },
  "paths": {
    "/v1/search": {
      "get": {
        "summary": "Search products, services and suppliers",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "manufacturer",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "specKey",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "specValue",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "verified",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "available",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxPrice",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "maxLeadTime",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/products/{id}": {
      "get": {
        "summary": "Get public products details",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/suppliers/{id}": {
      "get": {
        "summary": "Get public suppliers details",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string"
            },
            "description": "Opaque next-page cursor returned by the previous response"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/listings/{id}": {
      "get": {
        "summary": "Get public listings details",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/offers/{id}": {
      "get": {
        "summary": "Get public offers details",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/me": {
      "get": {
        "summary": "Current identity and workspace",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      },
      "put": {
        "summary": "Create or update workspace",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "buyer",
                      "supplier",
                      "both"
                    ]
                  },
                  "domain": {
                    "default": "",
                    "type": "string",
                    "maxLength": 253,
                    "pattern": "^$|^(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z]{2,}$"
                  },
                  "location": {
                    "default": "",
                    "type": "string",
                    "maxLength": 200
                  },
                  "about": {
                    "default": "",
                    "type": "string",
                    "maxLength": 3000
                  },
                  "shippingRegions": {
                    "default": "",
                    "type": "string",
                    "maxLength": 500
                  },
                  "shippingMethods": {
                    "default": "",
                    "type": "string",
                    "maxLength": 500
                  },
                  "leadTimeDays": {
                    "default": 7,
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 365
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "acceptsRfqs": {
                    "default": true,
                    "type": "boolean"
                  },
                  "acceptsOrders": {
                    "default": true,
                    "type": "boolean"
                  },
                  "returnsPolicy": {
                    "default": "",
                    "type": "string",
                    "maxLength": 1500
                  },
                  "priceVisibility": {
                    "default": "public",
                    "type": "string",
                    "enum": [
                      "public",
                      "on_request"
                    ]
                  }
                },
                "required": [
                  "name",
                  "type",
                  "domain",
                  "location",
                  "about",
                  "shippingRegions",
                  "shippingMethods",
                  "leadTimeDays",
                  "acceptsRfqs",
                  "acceptsOrders",
                  "returnsPolicy",
                  "priceVisibility"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/catalog": {
      "get": {
        "summary": "Owned catalog",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string"
            },
            "description": "Opaque next-page cursor returned by the previous response"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      },
      "post": {
        "summary": "Create a listing and separate product/offer",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 220
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "Goods",
                      "Services",
                      "Digital"
                    ]
                  },
                  "category": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "description": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "manufacturer": {
                    "default": "",
                    "type": "string",
                    "maxLength": 150
                  },
                  "partNumber": {
                    "default": "",
                    "type": "string",
                    "maxLength": 150
                  },
                  "specifications": {
                    "default": {},
                    "type": "object",
                    "propertyNames": {
                      "type": "string",
                      "maxLength": 80
                    },
                    "additionalProperties": {
                      "type": "string",
                      "maxLength": 500
                    }
                  },
                  "unit": {
                    "default": "unit",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 40
                  },
                  "price": {
                    "default": null,
                    "anyOf": [
                      {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 10000000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "currency": {
                    "default": "USD",
                    "type": "string",
                    "enum": [
                      "USD",
                      "EUR",
                      "GBP",
                      "CAD",
                      "AED"
                    ]
                  },
                  "minimum": {
                    "default": 1,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  },
                  "leadTimeDays": {
                    "default": 7,
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 365
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "availability": {
                    "default": "unknown",
                    "type": "string",
                    "enum": [
                      "available",
                      "limited",
                      "made_to_order",
                      "unknown",
                      "unavailable"
                    ]
                  },
                  "quantityAvailable": {
                    "default": null,
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100000000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "location": {
                    "default": "",
                    "type": "string",
                    "maxLength": 200
                  },
                  "imageUrl": {
                    "default": "",
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000,
                        "format": "uri"
                      },
                      {
                        "type": "string",
                        "const": ""
                      }
                    ]
                  },
                  "sourceUrl": {
                    "default": "",
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000,
                        "format": "uri"
                      },
                      {
                        "type": "string",
                        "const": ""
                      }
                    ]
                  },
                  "published": {
                    "default": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "title",
                  "type",
                  "category",
                  "description",
                  "manufacturer",
                  "partNumber",
                  "specifications",
                  "unit",
                  "price",
                  "currency",
                  "minimum",
                  "leadTimeDays",
                  "availability",
                  "quantityAvailable",
                  "location",
                  "imageUrl",
                  "sourceUrl",
                  "published"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/catalog/{id}": {
      "put": {
        "summary": "Update an owned listing",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 220
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "Goods",
                      "Services",
                      "Digital"
                    ]
                  },
                  "category": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "description": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  },
                  "manufacturer": {
                    "default": "",
                    "type": "string",
                    "maxLength": 150
                  },
                  "partNumber": {
                    "default": "",
                    "type": "string",
                    "maxLength": 150
                  },
                  "specifications": {
                    "default": {},
                    "type": "object",
                    "propertyNames": {
                      "type": "string",
                      "maxLength": 80
                    },
                    "additionalProperties": {
                      "type": "string",
                      "maxLength": 500
                    }
                  },
                  "unit": {
                    "default": "unit",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 40
                  },
                  "price": {
                    "default": null,
                    "anyOf": [
                      {
                        "type": "number",
                        "minimum": 0,
                        "maximum": 10000000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "currency": {
                    "default": "USD",
                    "type": "string",
                    "enum": [
                      "USD",
                      "EUR",
                      "GBP",
                      "CAD",
                      "AED"
                    ]
                  },
                  "minimum": {
                    "default": 1,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  },
                  "leadTimeDays": {
                    "default": 7,
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 365
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "availability": {
                    "default": "unknown",
                    "type": "string",
                    "enum": [
                      "available",
                      "limited",
                      "made_to_order",
                      "unknown",
                      "unavailable"
                    ]
                  },
                  "quantityAvailable": {
                    "default": null,
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100000000
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "location": {
                    "default": "",
                    "type": "string",
                    "maxLength": 200
                  },
                  "imageUrl": {
                    "default": "",
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000,
                        "format": "uri"
                      },
                      {
                        "type": "string",
                        "const": ""
                      }
                    ]
                  },
                  "sourceUrl": {
                    "default": "",
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000,
                        "format": "uri"
                      },
                      {
                        "type": "string",
                        "const": ""
                      }
                    ]
                  },
                  "published": {
                    "default": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "title",
                  "type",
                  "category",
                  "description",
                  "manufacturer",
                  "partNumber",
                  "specifications",
                  "unit",
                  "price",
                  "currency",
                  "minimum",
                  "leadTimeDays",
                  "availability",
                  "quantityAvailable",
                  "location",
                  "imageUrl",
                  "sourceUrl",
                  "published"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/rfqs": {
      "get": {
        "summary": "List authorized rfqs",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      },
      "post": {
        "summary": "Create a quotation request",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 200
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "listingId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "quantity": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  },
                  "destination": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "neededBy": {
                    "default": "",
                    "type": "string",
                    "maxLength": 30
                  },
                  "notes": {
                    "default": "",
                    "type": "string",
                    "maxLength": 5000
                  }
                },
                "required": [
                  "listingId",
                  "quantity",
                  "destination",
                  "neededBy",
                  "notes"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/rfqs/{id}": {
      "get": {
        "summary": "Read details, messages and immutable audit events",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/rfqs/{id}/status": {
      "post": {
        "summary": "Apply an authorized state transition",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/rfqs/{id}/messages": {
      "post": {
        "summary": "Send a transaction message",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 200
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  }
                },
                "required": [
                  "text"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/orders": {
      "get": {
        "summary": "List authorized orders",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      },
      "post": {
        "summary": "Create order from a current quote with explicit confirmation",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 200
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "quoteId": {
                    "type": "string"
                  },
                  "confirm": {
                    "type": "boolean",
                    "const": true
                  },
                  "revision": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "quoteId",
                  "confirm",
                  "revision"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/orders/{id}": {
      "get": {
        "summary": "Read details, messages and immutable audit events",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/orders/{id}/status": {
      "post": {
        "summary": "Apply an authorized state transition",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/orders/{id}/messages": {
      "post": {
        "summary": "Send a transaction message",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 200
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  }
                },
                "required": [
                  "text"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/quotes": {
      "post": {
        "summary": "Issue or revise a supplier quote",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 200
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "rfqId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "unitPrice": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 10000000
                  },
                  "shipping": {
                    "default": 0,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 10000000
                  },
                  "tax": {
                    "default": 0,
                    "type": "number",
                    "minimum": 0,
                    "maximum": 10000000
                  },
                  "currency": {
                    "default": "USD",
                    "type": "string",
                    "enum": [
                      "USD",
                      "EUR",
                      "GBP",
                      "CAD",
                      "AED"
                    ]
                  },
                  "expiresAt": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                  },
                  "terms": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5000
                  }
                },
                "required": [
                  "rfqId",
                  "unitPrice",
                  "shipping",
                  "tax",
                  "currency",
                  "expiresAt",
                  "terms"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/quotes/{id}/accept": {
      "post": {
        "summary": "Human-confirmed atomic quote acceptance and order creation",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 200
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "confirm": {
                    "type": "boolean",
                    "const": true
                  },
                  "revision": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "confirm",
                  "revision"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/imports": {
      "get": {
        "summary": "List workspace imports",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      },
      "post": {
        "summary": "Create imports",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/agents": {
      "get": {
        "summary": "List workspace agents",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      },
      "post": {
        "summary": "Create agents",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/verification": {
      "post": {
        "summary": "Start DNS TXT business-domain ownership challenge",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/verification/check": {
      "post": {
        "summary": "Verify business DNS TXT record",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/claims/{id}": {
      "post": {
        "summary": "Claim a matching-domain unclaimed supplier; large catalogs transfer asynchronously",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/imports/{id}": {
      "get": {
        "summary": "Read import status, row report and source provenance",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/agents/{id}": {
      "delete": {
        "summary": "Immediately revoke a delegated agent grant",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/analytics": {
      "get": {
        "summary": "Read attributed workspace activity and commerce aggregates",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/saved": {
      "get": {
        "summary": "Read saved listings",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/saved/{id}": {
      "put": {
        "summary": "Save a listing",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      },
      "delete": {
        "summary": "Remove a saved listing",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/admin": {
      "get": {
        "summary": "Operator-only supplier source and index status",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/v1/admin/controls": {
      "put": {
        "summary": "Operator pause for new catalog imports; queued jobs continue",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "importsPaused": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "importsPaused"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/oauth/register": {
      "post": {
        "summary": "Register an OAuth public client with exact redirect URIs and PKCE",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "client_name": {
                    "type": "string"
                  },
                  "redirect_uris": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uri"
                    }
                  },
                  "token_endpoint_auth_method": {
                    "type": "string",
                    "const": "none"
                  }
                },
                "required": [
                  "client_name",
                  "redirect_uris"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/oauth/authorize": {
      "get": {
        "summary": "Validate authorization request and redirect to explicit consent",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/oauth/token": {
      "post": {
        "summary": "Exchange a single-use PKCE authorization code or rotate a refresh token",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/oauth/revoke": {
      "post": {
        "summary": "Revoke an OAuth grant by access or refresh token",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/.well-known/oauth-authorization-server": {
      "get": {
        "summary": "OAuth server metadata",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    },
    "/.well-known/oauth-protected-resource": {
      "get": {
        "summary": "Protected MCP resource metadata",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Validation failed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Participant or scope denied"
          },
          "409": {
            "description": "State conflict or idempotency mismatch"
          }
        }
      }
    }
  }
}