{
  "id": "openai.feed.delivery",
  "protocol": "openai-feed",
  "layer": "product-data",
  "role": "merchant",
  "status": "recommended",
  "title": "Deliver full snapshots via SFTP at least daily",
  "description": "File upload is a full snapshot feed pushed to OpenAI via SFTP, at least daily. OpenAI recommends a daily full file plus API updates during the day; promotions only via the API.",
  "goal": "Keeps price and availability in ChatGPT current; stale data hurts how products appear.",
  "note": "Re-verified 2026-10-12. Products missing from a snapshot are retained up to 14 days; set is_eligible_search=false to remove search eligibility at the next processing. OpenAI matches products by item_id, not filename. No completion marker is needed; processing starts once uploads stop changing.",
  "how_to_implement": {
    "steps": [
      "Push a full snapshot via SFTP at least daily, overwriting a stable file name.",
      "Shard at up to 500k items or about 500 MB per file; keep the shard set stable and upload all shards without long pauses.",
      "Start with about 100 sample items, QA the first full snapshot, then automate.",
      "For small feeds or intraday changes, upsert via the API."
    ]
  },
  "resources": [
    {
      "label": "OpenAI file upload overview",
      "url": "https://developers.openai.com/commerce/specs/file-upload/overview",
      "type": "spec",
      "publisher": "OpenAI"
    },
    {
      "label": "OpenAI commerce: get started",
      "url": "https://developers.openai.com/commerce/guides/get-started",
      "type": "docs",
      "publisher": "OpenAI"
    }
  ],
  "audit": {
    "method": "platform_console",
    "automatable": false,
    "human": "SFTP upload timestamps show at least one full snapshot per day; no ingestion failures reported."
  },
  "how_to_verify": "SFTP upload timestamps show at least one full snapshot per day; no ingestion failures reported.",
  "artifacts": [
    "SFTP",
    "parquet",
    "jsonl.gz"
  ],
  "depends_on": [
    "openai.feed.format",
    "openai.onboarding.apply"
  ],
  "status_note": "Re-verified 2026-10-12. Products missing from a snapshot are retained up to 14 days; set is_eligible_search=false to remove search eligibility at the next processing. OpenAI matches products by item_id, not filename. No completion marker is needed; processing starts once uploads stop changing.",
  "verified": true,
  "status_rationale": "OpenAI's recommended cadence, not a hard requirement.",
  "slug": "openai-feed-delivery",
  "category": "product-data",
  "url": "https://vreeman.ai/commerce/checklist#openai.feed.delivery",
  "updated": "2026-10-12",
  "sources": [
    {
      "label": "OpenAI file upload overview",
      "url": "https://developers.openai.com/commerce/specs/file-upload/overview",
      "type": "spec",
      "publisher": "OpenAI"
    },
    {
      "label": "OpenAI commerce: get started",
      "url": "https://developers.openai.com/commerce/guides/get-started",
      "type": "docs",
      "publisher": "OpenAI"
    }
  ],
  "related_slugs": [
    "openai-feed-format",
    "openai-onboarding-apply"
  ]
}