{
  "openapi": "3.1.0",
  "info": {
    "title": "Sitka Seafood Market Storefront Support API",
    "version": "1.0.0",
    "description": "Tracer-bullet API description for the external Vercel API currently used by the Shopify storefront."
  },
  "servers": [
    {
      "url": "https://sitka-seafood-market-vercel-functio.vercel.app"
    }
  ],
  "paths": {
    "/api/reviews": {
      "get": {
        "summary": "List product reviews",
        "description": "Returns review summary data and review items for a product handle.",
        "parameters": [
          {
            "name": "handle",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "take",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Review payload returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/add-ons": {
      "get": {
        "summary": "List Recharge add-on products",
        "description": "Returns add-on products used by the customer portal widget.",
        "responses": {
          "200": {
            "description": "Add-on catalog returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/onetimes": {
      "post": {
        "summary": "Create a one-time add-on purchase",
        "description": "Creates a one-time Recharge add-on for the current subscription context.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "One-time add-on created successfully."
          }
        }
      }
    },
    "/api/maps/autocomplete": {
      "get": {
        "summary": "Autocomplete street addresses",
        "description": "Returns address suggestions for storefront address entry.",
        "responses": {
          "200": {
            "description": "Autocomplete suggestions returned successfully."
          }
        }
      }
    },
    "/api/maps/place-details": {
      "get": {
        "summary": "Fetch place details",
        "description": "Returns structured address details for a selected autocomplete result.",
        "responses": {
          "200": {
            "description": "Place details returned successfully."
          }
        }
      }
    },
    "/api/maps/address-validation": {
      "post": {
        "summary": "Validate shipping address",
        "description": "Validates a shipping address before it is written back into cart flow state.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Validation result returned successfully."
          }
        }
      }
    },
    "/api/shipping-options": {
      "post": {
        "summary": "Fetch shipping date options",
        "description": "Returns shipping option metadata used by the cart delivery options widget.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Shipping option metadata returned successfully."
          }
        }
      }
    }
  }
}
