{
  "openapi": "3.0.1",
  "info": {
    "title": "Supplier CSV & Shopify Import Checker",
    "description": "Review supplier price and stock changes or Shopify CSV blank overwrites, missing option dependencies and variant recreation risks. Upload files; get HTML, CSV and JSON.",
    "version": "0.0",
    "x-build-id": "dqv1w5pDWQ4ghtP2b"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fluffy_ingot~supplier-catalog-preflight/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fluffy_ingot-supplier-catalog-preflight",
        "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/fluffy_ingot~supplier-catalog-preflight/runs": {
      "post": {
        "operationId": "runs-sync-fluffy_ingot-supplier-catalog-preflight",
        "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/fluffy_ingot~supplier-catalog-preflight/run-sync": {
      "post": {
        "operationId": "run-sync-fluffy_ingot-supplier-catalog-preflight",
        "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": "What are you checking?",
            "enum": [
              "supplier",
              "shopify"
            ],
            "type": "string",
            "description": "Supplier mode matches SKUs with configurable headers. Shopify mode uses native current/legacy headers, product handles and option values. Supply a current export and proposed import; no Shopify login is needed and no store is changed.",
            "default": "supplier"
          },
          "columnPreset": {
            "title": "Supplier column preset",
            "enum": [
              "standard",
              "wholesale"
            ],
            "type": "string",
            "description": "Supplier mode only. The wholesale preset also maps Available and Pack when present. Explicit mappings below override this preset. Shopify headers are mapped automatically.",
            "default": "standard"
          },
          "shopifyOverwriteExisting": {
            "title": "Shopify: will you overwrite matching handles?",
            "type": "boolean",
            "description": "Model the overwrite choice you intend to select in Shopify. True checks clearing/reset risks for existing handles. False reports matching handles as skipped. This only changes the report; it does not configure Shopify.",
            "default": true
          },
          "oldCsv": {
            "title": "Previous CSV text",
            "maxLength": 2000000,
            "type": "string",
            "description": "Paste CSV text OR use the file upload below. Replace the synthetic supplier example with your data; clear it when uploading. Shopify: current export here for Previous, proposed import for New. Maximum 2 million characters, 10,000 rows, 40 supplier columns or 200 Shopify columns."
          },
          "oldFileUrl": {
            "title": "Previous CSV upload",
            "type": "string",
            "description": "Upload UTF-8 CSV to Apify storage. Only api.apify.com key-value-store record URLs (unsigned or signature links) are supported. Maximum 2 MB. Clear the CSV text above first."
          },
          "oldColumns": {
            "title": "Previous column names",
            "type": "object",
            "description": "Supplier mode only: optional explicit mapping, case-sensitive. Leave empty in Shopify mode; native current/legacy headers are mapped automatically.",
            "properties": {
              "sku": {
                "title": "Sku column",
                "type": "string",
                "editor": "textfield",
                "description": "Exact source header. Omit to use \"sku\". Required column."
              },
              "price": {
                "title": "Price column",
                "type": "string",
                "editor": "textfield",
                "description": "Exact source header. Omit to use \"price\". Required column."
              },
              "currency": {
                "title": "Currency column",
                "type": "string",
                "editor": "textfield",
                "description": "Exact source header. Omit to use \"currency\". Required column."
              },
              "stock": {
                "title": "Stock column",
                "type": "string",
                "editor": "textfield",
                "description": "Exact source header. Omit to use \"stock\". Optional unless explicitly mapped."
              },
              "unit": {
                "title": "Unit column",
                "type": "string",
                "editor": "textfield",
                "description": "Exact source header. Omit to use \"unit\". Optional unless explicitly mapped."
              }
            },
            "additionalProperties": false
          },
          "newCsv": {
            "title": "New CSV text",
            "maxLength": 2000000,
            "type": "string",
            "description": "Paste CSV text OR use the file upload below. Replace the synthetic supplier example with your data; clear it when uploading. Shopify: current export here for Previous, proposed import for New. Maximum 2 million characters, 10,000 rows, 40 supplier columns or 200 Shopify columns."
          },
          "newFileUrl": {
            "title": "New CSV upload",
            "type": "string",
            "description": "Upload UTF-8 CSV to Apify storage. Only api.apify.com key-value-store record URLs (unsigned or signature links) are supported. Maximum 2 MB. Clear the CSV text above first."
          },
          "newColumns": {
            "title": "New column names",
            "type": "object",
            "description": "Supplier mode only: optional explicit mapping, case-sensitive. Leave empty in Shopify mode; native current/legacy headers are mapped automatically.",
            "properties": {
              "sku": {
                "title": "Sku column",
                "type": "string",
                "editor": "textfield",
                "description": "Exact source header. Omit to use \"sku\". Required column."
              },
              "price": {
                "title": "Price column",
                "type": "string",
                "editor": "textfield",
                "description": "Exact source header. Omit to use \"price\". Required column."
              },
              "currency": {
                "title": "Currency column",
                "type": "string",
                "editor": "textfield",
                "description": "Exact source header. Omit to use \"currency\". Required column."
              },
              "stock": {
                "title": "Stock column",
                "type": "string",
                "editor": "textfield",
                "description": "Exact source header. Omit to use \"stock\". Optional unless explicitly mapped."
              },
              "unit": {
                "title": "Unit column",
                "type": "string",
                "editor": "textfield",
                "description": "Exact source header. Omit to use \"unit\". Optional unless explicitly mapped."
              }
            },
            "additionalProperties": false
          },
          "sourceStores": {
            "title": "Uploaded file stores (read access)",
            "maxItems": 2,
            "type": "array",
            "description": "When using private uploads, select the temporary stores created by the upload dialogs. The Actor receives read access only to the stores you select. Unneeded for pasted CSV or valid signed file URLs."
          },
          "priceChangePercent": {
            "title": "Price change threshold (%)",
            "minimum": 0,
            "maximum": 1000,
            "type": "number",
            "description": "Flag changes at or above this percentage. Zero-to-nonzero prices are always flagged.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}