{
  "openapi": "3.0.1",
  "info": {
    "title": "Retail Price Intelligence API - Competitor Prices, Matching",
    "description": "Read retail price intelligence: competitor price and discount statistics by site and category, keyword search statistics, SKU price history, similar product matches, competitor matches for uploaded SKUs, Google rank checks, MAP violation checks and attribute coverage. Bring your own key.",
    "version": "0.1",
    "x-build-id": "Tk0ElVGXPXI05gp1F"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~retail-price-intelligence-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-retail-price-intelligence-api",
        "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/nabeelbaghoor~retail-price-intelligence-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-retail-price-intelligence-api",
        "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/nabeelbaghoor~retail-price-intelligence-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-retail-price-intelligence-api",
        "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": {
          "service": {
            "title": "What to read",
            "enum": [
              "categoryList",
              "googleRank",
              "similarProducts",
              "priceHistory",
              "matchResults",
              "categoryStatistics",
              "keywordStatistics",
              "attributeCoverage",
              "mapViolationCheck",
              "descriptionBuilder"
            ],
            "type": "string",
            "description": "One service per run. Match services answer with many records for one input line: Google results, similar products, price history days and uploaded SKU matches. Analysis services answer with one computed record per line: statistics, attribute coverage, a MAP violation check or a built description. The category list is the provider's own taxonomy, which is where the exact category breadcrumbs the statistics service expects come from, and it needs no identifiers, so it is the default.",
            "default": "categoryList"
          },
          "identifiers": {
            "title": "Identifiers",
            "type": "array",
            "description": "One per line. What a line means depends on the service: a search keyword for keyword statistics; a search query for the Google rank check; a product name for similar products; a product name or a product URL for attribute coverage, where a line starting with http is sent as the URL and anything else as the name; a category breadcrumb such as \"Home > Fashion > Apparel > Dress > Dresses\" for category statistics; the provider's oid of a SKU for price history; an item id for the MAP violation check; and a line of product text for the description builder. The category list and match results services read no identifiers.",
            "items": {
              "type": "string"
            }
          },
          "host": {
            "title": "Host",
            "type": "string",
            "description": "One site, as the provider names it, for example www.hm.com.us. Required by category statistics, and accepted by similar products, keyword statistics and the Google rank check to restrict the answer to that site."
          },
          "hosts": {
            "title": "Hosts",
            "type": "array",
            "description": "Several sites for the Google rank check, one per line. Each is sent as its own host parameter, which is how the provider documents asking for more than one site's rank in a single call. Other services take a single host, so this is left off for them.",
            "items": {
              "type": "string"
            }
          },
          "googleDomain": {
            "title": "Google domain",
            "type": "string",
            "description": "Which Google to rank against, for the Google rank check: google.com, google.co.uk, google.de and so on.",
            "default": "google.com"
          },
          "size": {
            "title": "Matches per product",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many similar products the provider should return for each product name."
          },
          "stockStatus": {
            "title": "Stock status",
            "type": "string",
            "description": "Restrict keyword statistics to products with this stock status, as the provider names it."
          },
          "perPage": {
            "title": "Products per page",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many products the keyword statistics service should list per page."
          },
          "page": {
            "title": "Page",
            "minimum": 1,
            "type": "integer",
            "description": "Which page to read. For keyword statistics this is the one page returned. For match results it is the page to start from, and the actor keeps reading later pages until the provider runs out or the maximum results is reached."
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "The country the SKUs were uploaded for, as the provider names it. Required by the match results service."
          },
          "mapPrice": {
            "title": "MAP price",
            "minimum": 0,
            "type": "number",
            "description": "The minimum advertised price to check each item against. Required by the MAP violation check: every competitor below it is reported as a violation."
          },
          "imageUrl": {
            "title": "Image URL",
            "type": "string",
            "description": "A product image for the description builder to read alongside each line of text."
          },
          "breadcrumbPrefix": {
            "title": "Breadcrumb prefix",
            "type": "string",
            "description": "The breadcrumb parameter the provider documents for the category list, for example \"Home > Fashion\". Left blank, it is not sent and the whole list is returned."
          },
          "extraParameters": {
            "title": "Extra query parameters",
            "type": "object",
            "description": "Any other parameter the provider documents for the selected service that this actor does not have its own field for. Given as a JSON object and passed to the provider exactly as written. Category statistics takes attribute filters this way, for example {\"fabric_tag\": \"[* TO *]\"} to break the statistics down by fabric. Nothing here is invented, so check the name against the provider's own documentation first."
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stop after this many rows. The match services can return dozens of records for one line and the match results service pages through every uploaded SKU, so this is what bounds a long run.",
            "default": 500
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Pacing ceiling. The provider allows 60 requests per minute per key, so the default sits at half that to leave room for anything else calling the same key. Raise it up to 60 if nothing else is.",
            "default": 30
          },
          "apiKey": {
            "title": "App key",
            "type": "string",
            "description": "Your own app key from your provider account. This actor is bring-your-own-key and never ships a key of its own. Leave blank to use the DATA_API_KEY environment secret instead. The provider only documents the key as a query parameter, so that is how it travels."
          },
          "baseUrl": {
            "title": "API base URL",
            "type": "string",
            "description": "Override the host the actor calls. Only useful for testing against a different environment."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}