{
  "service": "Agent Outposts",
  "logging": "Intent registrations are logged in aggregate (brand, intent, result counts, hashed caller id) for demand statistics. No raw IP addresses are stored; free-text fields are stored only as provided.",
  "disclaimer": "Agent Outposts is not affiliated with Kroger. This Outpost is a demand registry operated by Agent Outposts; door-state data is compiled from public sources (evidence linked per claim) and is not provided, reviewed, or endorsed by Kroger.",
  "outpost": "kroger",
  "brand": "Kroger",
  "category": "Grocery & warehouse",
  "status": "industry_leader",
  "headline": "Best-in-class grocer door: a free self-serve public API for products, prices and availability plus add-to-cart, but checkout is human and full cart/delivery APIs are partner-gated.",
  "wall_summary": "Kroger runs the best-in-class grocer door: a free, self-serve public API — after account and app registration — for products, prices and availability, plus add-to-cart, with no partner agreement needed for the public tier. Checkout stays human, the full cart and Seamless Delivery APIs are partner-gated, and no tracking API was identified: that cell is carried unverified, and Kroger's portal could not be fetched directly during the census, so these scores rest on its indexed official documentation.",
  "door_state_version": "census-2026-11-01",
  "door_state": {
    "inventory": {
      "state": "open_api",
      "via": "Kroger Public Products API",
      "evidence_url": "https://developer.kroger.com",
      "checked_at": "2026-11-01",
      "note": "Products API returns fulfillment availability / aisle data per location; this is availability signalling, not a guaranteed live stock count."
    },
    "menu_browse": {
      "state": "open_api",
      "via": "Kroger Developer Portal - Public Products API (developer.kroger.com)",
      "evidence_url": "https://developer.kroger.com",
      "checked_at": "2026-11-01",
      "note": "Public, self-service tier after account/app registration: Products, Locations, Identity and Cart APIs at api.kroger.com with OAuth 2.0; product search/detail confirmed via portal product listings referenced in search. Direct portal fetch failed (network error in browser tool), corroborated by multiple independent implementations citing the official portal. Coordinator spot-check 2026-11-01: direct fetch of developer.kroger.com failed again (network/DNS error); scores retained on the strength of the portal's indexed official documentation plus multiple independent implementations, and flagged for re-verification."
    },
    "ordering": {
      "state": "partner_gated",
      "via": "Kroger Partner Cart / Seamless Delivery APIs; public Cart API only adds items",
      "evidence_url": "https://developer.kroger.com",
      "checked_at": "2026-11-01",
      "note": "Public Cart API can only add items to a customer's cart - no checkout/payment endpoint, so the human checks out in Kroger's app. Full cart CRUD and Seamless Delivery are partner-tier and require a signed agreement; Kroger states partner APIs are not open for public consumption."
    },
    "prices": {
      "state": "open_api",
      "via": "Kroger Public Products API",
      "evidence_url": "https://developer.kroger.com",
      "checked_at": "2026-11-01",
      "note": "Products API returns regular and promo price when filter.locationId (from Locations API) is supplied - prices are store-specific."
    },
    "tracking": {
      "state": "unverified",
      "via": "No tracking API identified",
      "evidence_url": "https://developer.kroger.com",
      "checked_at": "2026-11-01",
      "note": "Checked public and partner API product lists (Products, Locations, Identity, Cart, Catalog, Seamless Delivery, Locker) surfaced from the portal - no order-tracking API was listed; consumer tracking appears to be in Kroger's app/web only, so scored unverified rather than human_only."
    }
  },
  "official_channels": [
    {
      "covers": [
        "menu_browse",
        "prices",
        "inventory",
        "ordering"
      ],
      "evidence_url": "https://developer.kroger.com",
      "gate": "Free self-serve public tier after account/app registration, OAuth 2.0, served at api.kroger.com: Products returns prices and fulfillment availability per location, and the public Cart API can add items to a customer's cart. Checkout and payment are human, in Kroger's app.",
      "kind": "sanctioned_channel",
      "name": "Kroger Public APIs — Products, Locations, Identity, Cart (developer.kroger.com)"
    },
    {
      "covers": [
        "ordering"
      ],
      "evidence_url": "https://developer.kroger.com",
      "gate": "Full cart CRUD and Seamless Delivery are partner-tier and require a signed agreement; Kroger states partner APIs are not open for public consumption.",
      "kind": "partner_program",
      "name": "Kroger Partner Cart / Seamless Delivery APIs"
    }
  ],
  "agent_native": {
    "api_catalog": "unverified",
    "llms_txt": "unverified",
    "mcp_server": false
  },
  "bot_posture": {
    "summary": "unverified - robots.txt fetch failed with browser service 429 rate limit on 2026-11-01; no inference drawn",
    "evidence_url": "https://www.kroger.com/robots.txt"
  },
  "alternatives": {
    "menu_browse": {
      "count": 2,
      "access": "register_intent"
    },
    "prices": {
      "count": 2,
      "access": "register_intent"
    },
    "inventory": {
      "count": 2,
      "access": "register_intent"
    },
    "ordering": {
      "count": 1,
      "access": "register_intent"
    },
    "tracking": {
      "count": 1,
      "access": "register_intent"
    }
  },
  "alternatives_policy": "Ranked by fit only. Placement is never sold.",
  "register_intent": {
    "method": "POST",
    "url": "https://api.agentoutposts.com/outposts/kroger/intent",
    "body": {
      "intent": "one of: menu_browse | prices | inventory | ordering | tracking"
    },
    "returns": "No registration is taken at an Industry Leader — the door is open, so there is nothing to register. A POST to this URL records nothing (no ticket, no queue) and returns status door_open with the brand's official channels and the alternatives for your intent. Go straight to the brand's own door (see official_channels).",
    "limits": "No intent registrations are recorded at Industry Leaders; the demand ledger counts demand only at walled brands."
  }
}