{
  "openapi": "3.0.1",
  "info": {
    "title": "Price Monitoring API - Competitor Offers, Price Recommendations",
    "description": "Export ecommerce price monitoring data: competitor offers per product and shop with price, shipping, rank and stock, dynamic pricing recommendations with old and new price and position, product catalogue, recommendation history and monitoring status. Bring your own key.",
    "version": "0.1",
    "x-build-id": "tfky2PbFftn9FNdS4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~price-monitoring-dynamic-pricing-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-price-monitoring-dynamic-pricing-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~price-monitoring-dynamic-pricing-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-price-monitoring-dynamic-pricing-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~price-monitoring-dynamic-pricing-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-price-monitoring-dynamic-pricing-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": {
          "mode": {
            "title": "What to read",
            "enum": [
              "domains",
              "offers",
              "priceRecommendations",
              "products",
              "priceRecommendationHistory",
              "monitoringStatus"
            ],
            "type": "string",
            "description": "One mode per run. The domain list needs nothing but credentials, so it is the default. Every other mode reads one contract of your account and needs its contract ID.",
            "default": "domains"
          },
          "contractId": {
            "title": "Contract ID",
            "type": "string",
            "description": "The contract to read, as shown in your account, for example qbcxvb. Required by every mode except the domain list."
          },
          "startDate": {
            "title": "Start date",
            "type": "string",
            "description": "Start of the time range for offers, price recommendations and recommendation history. An ISO 8601 date such as 2026-09-01 (read as midnight UTC) or a UTC date and time such as 2026-09-01T06:00:00Z. Left blank, the range is the last lookback hours."
          },
          "endDate": {
            "title": "End date",
            "type": "string",
            "description": "End of the time range, in the same format. Left blank, it is now, or the start date plus the lookback hours."
          },
          "lookbackHours": {
            "title": "Lookback hours",
            "minimum": 1,
            "maximum": 8760,
            "type": "integer",
            "description": "How far back to read when no start date is given. 48 hours is the provider's own default for offers. Recommendation history longer than 48 hours is read in 48 hour windows, the longest range that route accepts.",
            "default": 48
          },
          "productIds": {
            "title": "Product IDs",
            "type": "array",
            "description": "Internal product IDs, one per line, for recommendation history and monitoring status. These are the productId column of a products or offers run. Monitoring status takes numeric IDs only.",
            "items": {
              "type": "string"
            }
          },
          "customerProductIds": {
            "title": "Customer product IDs",
            "type": "array",
            "description": "Your own product IDs, one per line, to restrict the products mode to them. Left empty, the whole catalogue is read. A customer product ID the contract does not hold becomes an uncharged row saying so.",
            "items": {
              "type": "string"
            }
          },
          "domains": {
            "title": "Only these domains",
            "type": "array",
            "description": "Keep only competitor offers found on these domains, one per line, written as the domain list shows them, for example amazon.de. Left empty, offers from every monitored domain are kept.",
            "items": {
              "type": "string"
            }
          },
          "excludeIgnored": {
            "title": "Skip ignored offers",
            "type": "boolean",
            "description": "Leave out competitor offers that the platform's own filters have marked as ignored.",
            "default": false
          },
          "onlyAvailable": {
            "title": "Only in-stock offers",
            "type": "boolean",
            "description": "Keep only competitor offers explicitly reported as available. Offers without availability information are left out when this is on.",
            "default": false
          },
          "onlyPriceChanges": {
            "title": "Only price changes",
            "type": "boolean",
            "description": "For price recommendations and history, keep only recommendations whose price differs from your current price.",
            "default": false
          },
          "includeTags": {
            "title": "Include product tags",
            "type": "boolean",
            "description": "Ask the API to return the tags imported with each product, such as category or brand, for offers, price recommendations and products.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many rows. One product can have dozens of competitor offers, so this is what bounds an offers run on a large catalogue.",
            "default": 1000
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Pacing ceiling for calls to the API.",
            "default": 60
          },
          "username": {
            "title": "API username",
            "type": "string",
            "description": "The API username of your own account, sent with HTTP Basic authentication. This actor is bring-your-own-key and never ships credentials of its own. Leave blank to use the DATA_API_USERNAME environment secret."
          },
          "apiKey": {
            "title": "API password",
            "type": "string",
            "description": "The API password of your own account. You can also paste username:password here and leave the username blank, or paste a JWT bearer token. Leave blank to use the DATA_API_KEY environment secret."
          },
          "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}