{
  "openapi": "3.0.1",
  "info": {
    "title": "AvtoPro.ua Competitor Price Checker",
    "description": "Know what every seller on avtopro.ua charges for the parts you sell. Give it a list of part numbers and get back the lowest price, the average, and every individual offer with the seller's name, rating, delivery time and the country the stock ships from.",
    "version": "0.0",
    "x-build-id": "m3RmbVQaNDFtlCsVz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/climond~avtopro-ua-competitor-price-checker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-climond-avtopro-ua-competitor-price-checker",
        "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/climond~avtopro-ua-competitor-price-checker/runs": {
      "post": {
        "operationId": "runs-sync-climond-avtopro-ua-competitor-price-checker",
        "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/climond~avtopro-ua-competitor-price-checker/run-sync": {
      "post": {
        "operationId": "run-sync-climond-avtopro-ua-competitor-price-checker",
        "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",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "title": "Parts to look up",
            "type": "array",
            "description": "One entry per part: item_id (AvtoPro's part code, required), description (free text, carried through to output), origin_price (your own price, carried through for reference), maker (your catalog's brand/make for this part - the strongest signal for picking the right search suggestion when a part code is ambiguous). Example: [{\"item_id\": \"620939134R\", \"description\": \"Rear bumper absorber\", \"origin_price\": 950, \"maker\": \"Renault\"}] The prefilled basket is 10 real parts, all verified live, deliberately spanning small result sets (15 rows) to large ones (611 rows) - cost per part scales with how many sellers a part has, so a mixed basket is the honest way to see what a run costs. 'origin_price' is your own price for comparison and is passed through untouched; replace it with real figures."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "A residential proxy is required: avtopro.ua blocks datacenter addresses even at low request rates. AvtoPro quotes prices in hryvnia, dollars or euros depending on the exit IP's country, and the Actor reports which currency each result came back in rather than assuming one, so any residential exit works. Set the country to UA if you want the figures in hryvnia - the same offers converted, comparable against your own 'origin_price'. If Apify Proxy gets blocked, switch to Custom proxies and supply your own.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "siteUrl": {
            "title": "Site URL",
            "type": "string",
            "description": "Defaults to https://avtopro.ua, the only domain this Actor has been proven against. AvtoPro also runs country-specific sites (avto.pro, avtopro.es, avtopro.pl, avtopro.pt) on what looks like the same platform, but their markup, WAF behavior, and login flow are UNTESTED here - pointing this elsewhere is a starting point, not a guarantee.",
            "default": "https://avtopro.ua"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 32,
            "type": "integer",
            "description": "How many parts are fetched at once, default 8. Each part gets its own proxy session, so this is I/O-bound rather than memory-bound, and a faster run is also a cheaper one because compute is billed on wall-clock time. Measured on a 50-part basket: concurrency 16 finished in 140s but lost 2 parts of 50 to rate limiting and a dropped connection, so raising this trades a few percent of parts for speed. Lower it to 2 if you would rather have every part than a fast run."
          },
          "useBrowser": {
            "title": "Use the browser fetcher (slow fallback)",
            "type": "boolean",
            "description": "Off by default. The Actor normally fetches over plain HTTP with no browser, which returns identical prices and seller counts (verified against the browser path on four reference parts, same minute) while being ~3.5x faster and ~35% cheaper per part. Turn this on only if AvtoPro changes its markup and the fast path starts under-reporting: it runs the original Playwright fetcher, which renders the page and clicks the expand buttons like a real browser. Measured cost of doing so on a 20-part run at the default 1024MB: 295s and $0.0021/part, versus 86s and $0.0014/part on the fast path. It also drops to 1 concurrent browser at 1024MB, so raise the run's memory to 4096MB if you enable this for a large batch.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}