{
  "openapi": "3.0.1",
  "info": {
    "title": "Feed Delta Guard — Product Feed Regression Audit",
    "description": "Compare product-feed snapshots to flag price changes, missing products, duplicate IDs and availability changes. Supply JSON, CSV or TSV and get English or Japanese reports in JSON, CSV, HTML and dataset output.",
    "version": "0.1",
    "x-build-id": "58IZ56HuAcRtEuhuz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/passionate_legacy_pev~feed-delta-guard/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-passionate_legacy_pev-feed-delta-guard",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/passionate_legacy_pev~feed-delta-guard/runs": {
      "post": {
        "operationId": "runs-sync-passionate_legacy_pev-feed-delta-guard",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/passionate_legacy_pev~feed-delta-guard/run-sync": {
      "post": {
        "operationId": "run-sync-passionate_legacy_pev-feed-delta-guard",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "currentRows": {
            "title": "Current JSON rows",
            "type": "array",
            "description": "Use currentRows OR currentCsv, not both. At most 5,000 flat records. IDs must be strings.",
            "items": {
              "type": "object"
            }
          },
          "previousRows": {
            "title": "Previous JSON rows",
            "type": "array",
            "description": "Optional baseline. Omit for a first audit. An explicit empty array is a real empty baseline.",
            "items": {
              "type": "object"
            }
          },
          "currentCsv": {
            "title": "Current CSV or TSV",
            "type": "string",
            "description": "Use instead of currentRows. UTF-8 text with a header. Total input is limited to 4 MiB."
          },
          "previousCsv": {
            "title": "Previous CSV or TSV",
            "type": "string",
            "description": "Optional baseline. Use instead of previousRows."
          },
          "delimiter": {
            "title": "CSV delimiter",
            "enum": [
              "auto",
              "comma",
              "tab"
            ],
            "type": "string",
            "description": "Auto detection, or choose explicitly.",
            "default": "auto"
          },
          "idField": {
            "title": "Product ID column",
            "type": "string",
            "description": "Exact source header name. Column mappings must be distinct.",
            "default": "id"
          },
          "priceField": {
            "title": "Price column",
            "type": "string",
            "description": "Exact source header name. Column mappings must be distinct.",
            "default": "price"
          },
          "currencyField": {
            "title": "Currency column",
            "type": "string",
            "description": "Exact source header name. Column mappings must be distinct.",
            "default": "currency"
          },
          "availabilityField": {
            "title": "Availability column",
            "type": "string",
            "description": "Exact source header name. Column mappings must be distinct.",
            "default": "availability"
          },
          "gtinField": {
            "title": "GTIN column",
            "type": "string",
            "description": "Exact source header name. Column mappings must be distinct.",
            "default": "gtin"
          },
          "defaultCurrency": {
            "title": "Default currency",
            "type": "string",
            "description": "Optional uppercase three-letter currency code for bare prices. Syntax only; no currency registry or FX conversion."
          },
          "priceDropPercent": {
            "title": "Price drop alert (%)",
            "minimum": 0.000001,
            "maximum": 100,
            "type": "number",
            "description": "Inclusive threshold. A change exactly at the threshold is reported.",
            "default": 20
          },
          "priceIncreasePercent": {
            "title": "Price increase alert (%)",
            "minimum": 0.000001,
            "maximum": 1000000,
            "type": "number",
            "description": "Inclusive threshold. A change exactly at the threshold is reported.",
            "default": 50
          },
          "removalPercent": {
            "title": "Product removal alert (%)",
            "minimum": 0.000001,
            "maximum": 100,
            "type": "number",
            "description": "Inclusive threshold. A change exactly at the threshold is reported.",
            "default": 20
          },
          "maxFindings": {
            "title": "Maximum returned findings",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Full totals remain available when details are capped. Errors are retained before warnings and information.",
            "default": 2000
          },
          "reportLanguage": {
            "title": "Report language",
            "enum": [
              "en",
              "ja"
            ],
            "type": "string",
            "description": "Messages in English or Japanese.",
            "default": "en"
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}