{
  "openapi": "3.0.1",
  "info": {
    "title": "BIStoreEngine",
    "description": "A Business Intelligence MCP-ready scraping engine that extracts structured data from any website, detects articles, tables, lists, metadata, pagination, forms, and links. Includes batch crawling, SEO analysis, change detection, screenshots, and automated navigation.",
    "version": "0.0",
    "x-build-id": "zFEzeMHGXvfIZFpXb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/professional_jostle~BIStoreEngine/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-professional_jostle-BIStoreEngine",
        "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/professional_jostle~BIStoreEngine/runs": {
      "post": {
        "operationId": "runs-sync-professional_jostle-BIStoreEngine",
        "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/professional_jostle~BIStoreEngine/run-sync": {
      "post": {
        "operationId": "run-sync-professional_jostle-BIStoreEngine",
        "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": {
          "operation": {
            "title": "Operation Type",
            "enum": [
              "scrape",
              "scrape_advanced",
              "extract_auto",
              "extract_selector",
              "extract_images",
              "extract_headings",
              "extract_text",
              "navigate",
              "navigate_links",
              "form_submit",
              "form_multi",
              "form_detect",
              "pagination_detect",
              "pagination_crawl",
              "screenshot",
              "screenshot_elements",
              "seo",
              "changes",
              "article",
              "batch",
              "batch_selectors",
              "network",
              "network_api",
              "links_check"
            ],
            "type": "string",
            "description": "Choose the type of operation to perform.",
            "default": "scrape"
          },
          "url": {
            "title": "Target URL",
            "type": "string",
            "description": "Primary URL to process (required for most operations)."
          },
          "urls": {
            "title": "Multiple URLs",
            "type": "array",
            "description": "Array of URLs for batch operations."
          },
          "html": {
            "title": "HTML Content",
            "type": "string",
            "description": "HTML content for HTML-only operations (SEO, Article, Changes) - bypasses browser launch."
          },
          "waitTime": {
            "title": "Wait Time (ms)",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Time to wait for page to load in milliseconds.",
            "default": 2000
          },
          "extractMode": {
            "title": "Extraction Mode",
            "enum": [
              "auto",
              "selector",
              "basic"
            ],
            "type": "string",
            "description": "Choose extraction strategy: auto (intelligent structure detection), selector (custom CSS selectors), or basic.",
            "default": "auto"
          },
          "selectors": {
            "title": "Custom Selectors",
            "type": "object",
            "description": "Custom CSS selectors for extraction (used when extractMode is 'selector')."
          },
          "selector": {
            "title": "Single Selector",
            "type": "string",
            "description": "Single CSS selector for element-specific operations."
          },
          "selectorList": {
            "title": "Selector List",
            "type": "array",
            "description": "Array of CSS selectors for multi-element operations."
          },
          "crawlPagination": {
            "title": "Crawl Pagination",
            "type": "boolean",
            "description": "Automatically detect and crawl through paginated pages.",
            "default": false
          },
          "maxPages": {
            "title": "Max Pages",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of pages to crawl (pagination/navigation).",
            "default": 5
          },
          "maxDepth": {
            "title": "Max Depth",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Maximum depth for link crawling.",
            "default": 2
          },
          "steps": {
            "title": "Navigation Steps",
            "type": "array",
            "description": "Array of navigation steps (click, scroll, wait)."
          },
          "formFields": {
            "title": "Form Fields",
            "type": "array",
            "description": "Array of form field configurations."
          },
          "submitSelector": {
            "title": "Submit Button Selector",
            "type": "string",
            "description": "CSS selector for form submit button."
          },
          "waitForNavigation": {
            "title": "Wait for Navigation",
            "type": "boolean",
            "description": "Wait for page navigation after form submission.",
            "default": true
          },
          "fullPage": {
            "title": "Full Page Screenshot",
            "type": "boolean",
            "description": "Capture full page screenshot (true) or viewport only (false).",
            "default": true
          },
          "format": {
            "title": "Screenshot Format",
            "enum": [
              "png",
              "jpeg"
            ],
            "type": "string",
            "description": "Image format for screenshots.",
            "default": "png"
          },
          "previousHtml": {
            "title": "Previous HTML",
            "type": "string",
            "description": "Previous version of HTML for change detection."
          },
          "currentHtml": {
            "title": "Current HTML",
            "type": "string",
            "description": "Current version of HTML for change detection."
          },
          "oldHtml": {
            "title": "Old HTML",
            "type": "string",
            "description": "Old HTML version (alternative naming for change detection)."
          },
          "newHtml": {
            "title": "New HTML",
            "type": "string",
            "description": "New HTML version (alternative naming for change detection)."
          },
          "parallel": {
            "title": "Parallel Requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Number of concurrent requests for batch operations.",
            "default": 3
          },
          "checkExternal": {
            "title": "Check External Links",
            "type": "boolean",
            "description": "Validate external links (may be slow).",
            "default": false
          },
          "filterApi": {
            "title": "Filter API Requests Only",
            "type": "boolean",
            "description": "Filter only API/XHR requests in network monitoring.",
            "default": false
          },
          "includeMetadata": {
            "title": "Include Metadata",
            "type": "boolean",
            "description": "Include additional metadata in extraction results.",
            "default": true
          },
          "cleanContent": {
            "title": "Clean Content",
            "type": "boolean",
            "description": "Remove scripts, styles, and unnecessary elements.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}