{
  "openapi": "3.0.1",
  "info": {
    "title": "Supplier Below Cost Review",
    "description": "Compare supplied supplier unit costs and store selling prices by exact SKU, with exact decimal differences and explicit unknown or ambiguous rows.",
    "version": "1.1",
    "x-build-id": "J68aAqEUmKHAQzoRz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/remarkable_whipscorpion~supplier-below-cost-review/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-remarkable_whipscorpion-supplier-below-cost-review",
        "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/remarkable_whipscorpion~supplier-below-cost-review/runs": {
      "post": {
        "operationId": "runs-sync-remarkable_whipscorpion-supplier-below-cost-review",
        "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/remarkable_whipscorpion~supplier-below-cost-review/run-sync": {
      "post": {
        "operationId": "run-sync-remarkable_whipscorpion-supplier-below-cost-review",
        "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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "demo",
              "review"
            ],
            "type": "string",
            "description": "demo uses only the bundled original CC0 fixture and accepts no custom fields. review uses your CSV text and charges once if at least one price can be compared.",
            "default": "demo"
          },
          "supplierCsv": {
            "title": "Supplier CSV text",
            "type": "string",
            "description": "Required in review mode. Paste CSV contents, including headers, rather than a URL or file path. Maximum 5 MiB UTF-8, 5,000 data rows and 200 columns. A SKU and unit-cost column are needed."
          },
          "storeCsv": {
            "title": "Store CSV text",
            "type": "string",
            "description": "Required in review mode. Paste CSV contents, including headers, rather than a URL or file path. Maximum 5 MiB UTF-8, 5,000 data rows and 200 columns. A SKU and selling-price column are needed."
          },
          "supplierColumns": {
            "title": "Supplier column names",
            "type": "object",
            "description": "Required in review mode: declare exact case-sensitive headers, for example {\"sku\":\"sku\",\"unitCost\":\"unit_cost\"}. No header aliases or automatic column guessing.",
            "properties": {
              "sku": {
                "title": "Supplier SKU header",
                "type": "string",
                "description": "Exact header of the supplier SKU column.",
                "editor": "textfield"
              },
              "unitCost": {
                "title": "Supplier unit-cost header",
                "type": "string",
                "description": "Exact header of the supplier cost for one declared selling unit.",
                "editor": "textfield"
              }
            },
            "additionalProperties": false
          },
          "storeColumns": {
            "title": "Store column names",
            "type": "object",
            "description": "Required in review mode: declare exact case-sensitive headers, for example {\"sku\":\"sku\",\"price\":\"price\"}. No header aliases or automatic column guessing.",
            "properties": {
              "sku": {
                "title": "Store SKU header",
                "type": "string",
                "description": "Exact header of the store SKU column.",
                "editor": "textfield"
              },
              "price": {
                "title": "Store selling-price header",
                "type": "string",
                "description": "Exact header of the store price for one declared selling unit.",
                "editor": "textfield"
              }
            },
            "additionalProperties": false
          },
          "currency": {
            "title": "Common declared currency",
            "type": "string",
            "description": "In review mode, declare one uppercase three-letter currency such as USD for both price columns. This is your assertion; the Actor does not detect actual currency differences or convert currencies. Missing or invalid currency disables arithmetic and returns diagnostics."
          },
          "comparableUnitAndTaxBasisConfirmed": {
            "title": "Same selling unit and tax basis confirmed",
            "type": "boolean",
            "description": "Set true in review mode only after confirming supplier cost and store price use the same selling unit and tax basis. Missing or false disables arithmetic. The Actor does not infer units, pack sizes or tax treatment."
          },
          "rightsConfirmed": {
            "title": "Permission to use supplied data",
            "type": "boolean",
            "description": "Required as true in review mode: you own or are authorized to process both supplied exports. Missing or false rejects custom input. No data is fetched from suppliers or stores. The original demo fixture has its own CC0 permission."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}