{
  "openapi": "3.0.1",
  "info": {
    "title": "IC24.UK Auto Parts Scraper: Exact Stock & Cross-Reference Data",
    "description": "Scrapes car and motorcycle parts from IC24.UK, Inter Cars' UK storefront: brand, part number, spec attributes, price, and exact live stock quantity in units, not just an in-stock flag. Detail mode adds cross-reference part numbers with brand names. Export JSON, CSV, or Excel. $2 per 1,000 parts.",
    "version": "0.1",
    "x-build-id": "ajgtcrsXe39bJOY0r"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~ic24-uk-auto-parts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-ic24-uk-auto-parts-scraper",
        "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/getascraper~ic24-uk-auto-parts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-ic24-uk-auto-parts-scraper",
        "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/getascraper~ic24-uk-auto-parts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-ic24-uk-auto-parts-scraper",
        "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": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Category pages, manufacturer pages, or faceted-filter URLs on ic24.uk to scrape. Paste any listing URL from the site, including ones you've already narrowed down using the site's own facets (battery capacity, brand, vehicle, etc). A direct product page URL also works and is scraped on its own.",
            "default": [
              {
                "url": "https://www.ic24.uk/car-batteries"
              }
            ],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "manufacturers": {
            "title": "Manufacturers / Brands",
            "type": "array",
            "description": "Only keep products whose manufacturer/brand name contains one of these (case-insensitive), e.g. \"Bosch\" or \"Denso\". Checked against the brand shown on each product's listing card. Leave empty to include every manufacturer. Applied before a product counts toward Max Products, so results always fill up to that cap with matching items.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "inStockOnly": {
            "title": "In Stock Only",
            "type": "boolean",
            "description": "Only keep products with at least 1 unit in stock. Stock data only exists on a product's own page, so this is ignored unless \"Scrape Full Product Details\" below is also enabled -- and since it filters after fetching each product's page, a run may return fewer than Max Products if many candidates are out of stock.",
            "default": false
          },
          "minStockQuantity": {
            "title": "Minimum Stock Quantity",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Only keep products with at least this many units in stock (e.g. 5 to skip listings with just 1-2 left). Same detail-page dependency as \"In Stock Only\" above -- ignored unless \"Scrape Full Product Details\" is enabled. Leave at 0 to disable this filter.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "ic24.uk is behind Cloudflare and blocks plain requests and residential IPs alike with a bot-verification page. This Actor only gets real product data through Apify's UNBLOCKER proxy group, confirmed live, so leave this on the default unless you know what you're changing.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "UNBLOCKER"
              ]
            }
          },
          "scrapeProductDetails": {
            "title": "Scrape Full Product Details",
            "type": "boolean",
            "description": "Visit each product's own page for price, currency, stock status, exact live stock quantity in units (not just an in-stock/out-of-stock flag), cross-reference and equivalent part numbers from other brands, part number (SKU), full description, every product image, and the full category breadcrumb. None of these are available from the listing page alone, which only carries title, brand, image, and spec attributes. Also required for the stock filters above to have any effect. Roughly doubles requests per item, so it defaults off.",
            "default": false
          },
          "maxItems": {
            "title": "Max Products",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum total number of products to scrape across all start URLs combined. Keep this low for a first test run; raise it once you've confirmed the output looks right.",
            "default": 20
          },
          "maxPagesPerSource": {
            "title": "Max Pages Per Source",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of paginated result pages to follow for each start URL. Some categories run 10+ pages; this caps how deep the crawler goes into any single one before moving to the next source.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}