{
  "name": "Stockful site content API",
  "version": "1.0.0",
  "description": "A small read-only JSON API over the public content of stockful.app: pricing, FAQ, page index and blog posts. No authentication, no store data.",
  "documentation": "https://stockful.app/developers",
  "openapi": "https://stockful.app/openapi.json",
  "llmsTxt": "https://stockful.app/llms.txt",
  "product": {
    "name": "Stockful",
    "url": "https://stockful.app",
    "description": "Inventory management, demand forecasting, purchasing and reporting for Shopify stores.",
    "platform": "Shopify",
    "appStoreListing": "https://apps.shopify.com/stockful-inventory-management",
    "documentation": "https://docs.stockful.app",
    "documentationIndex": "https://docs.stockful.app/llms.txt",
    "supportEmail": "support@stockful.app",
    "developerResources": "https://stockful.app/developers",
    "liveStoreData": {
      "protocol": "mcp",
      "documentation": "https://docs.stockful.app/user-guide/mcp-server",
      "connectionUrlExample": "https://mcp.stockful.app/YOUR_TOKEN",
      "note": "The MCP endpoint is a per-store connection URL created in Stockful under Settings -> MCP server. It embeds a secret token in the path and is shown once. The bare host is not callable. This JSON API never exposes store data."
    },
    "whenToUse": [
      "Deciding what a Shopify store should reorder, how much, and by when, with supplier lead time and safety stock applied.",
      "Forecasting demand for a variant or a location, including seasonality and automatically detected promotions.",
      "Answering what is low, out of stock, overstocked or dead across every Shopify location.",
      "Valuing inventory: what stock is worth now, cost of goods, landed cost, and how much cash is tied up.",
      "Building or running inventory reports - sell-through, ABC analysis, turnover, days of cover, supplier performance - including custom ones written in StockfulQL.",
      "Raising and receiving purchase orders against suppliers with price lists, partial receipts and true landed cost.",
      "Rebalancing stock between locations, and checking what is already inbound and when it lands.",
      "Explaining an inventory anomaly: a SKU whose sales velocity has shifted out of pattern, and the likely cause.",
      "Replacing Stocky before Shopify retires it on 31 August 2026, including importing its suppliers, price lists, purchase orders and stock adjustments."
    ],
    "whenNotToUse": [
      "Storefront content, themes, customers, payments or order fulfilment - those are Shopify's own APIs.",
      "Raw-materials or bill-of-materials tracking, and 3PL/WMS integrations, which Stockful deliberately does not do.",
      "Writing stock levels into Shopify: the only thing Stockful writes back is units you record as received against a purchase order.",
      "Any store that does not have Stockful installed - there is no data to read."
    ]
  },
  "endpoints": [
    {
      "operationId": "getApiIndex",
      "method": "GET",
      "path": "/api/v1/index.json",
      "url": "https://stockful.app/api/v1/index.json",
      "summary": "Discovery document: product facts, when to use Stockful, and every other endpoint in this API."
    },
    {
      "operationId": "getPricing",
      "method": "GET",
      "path": "/api/v1/pricing.json",
      "url": "https://stockful.app/api/v1/pricing.json",
      "summary": "Stockful's published plans, monthly prices in USD, tracked-SKU and location limits, overage rates and trial length."
    },
    {
      "operationId": "getFaq",
      "method": "GET",
      "path": "/api/v1/faq.json",
      "url": "https://stockful.app/api/v1/faq.json",
      "summary": "Frequently asked questions about Stockful, grouped by topic, as question and answer pairs."
    },
    {
      "operationId": "listPages",
      "method": "GET",
      "path": "/api/v1/pages.json",
      "url": "https://stockful.app/api/v1/pages.json",
      "summary": "Every page on stockful.app with its locale, title, meta description, HTML URL and Markdown URL."
    },
    {
      "operationId": "listBlogPosts",
      "method": "GET",
      "path": "/api/v1/posts.json",
      "url": "https://stockful.app/api/v1/posts.json",
      "summary": "Published Stockful blog posts, newest first, with title, description, publication date, tags and Markdown URL."
    },
    {
      "operationId": "getBlogPost",
      "method": "GET",
      "path": "/api/v1/posts/{slug}.json",
      "url": "https://stockful.app/api/v1/posts/{slug}.json",
      "summary": "One published blog post by slug: metadata, tags, reading time, and the URL of its full Markdown text."
    }
  ],
  "errors": {
    "format": "Errors are returned as JSON with an `error` object carrying `code`, `message`, `hint` and `documentation`.",
    "example": {
      "error": {
        "code": "not_found",
        "message": "No API endpoint matches GET /api/v1/nope.json.",
        "hint": "Fetch https://stockful.app/api/v1/index.json for the list of available endpoints.",
        "documentation": "https://stockful.app/developers",
        "status": 404
      }
    }
  }
}
