{
  "openapi": "3.0.1",
  "info": {
    "title": "Puerto Rico Business Directory Scraper",
    "description": "Scrapes business directory data from PuertoRicoIndex (puertoricoindex.com) including company information, reviews, products, and more",
    "version": "1.0",
    "x-build-id": "0cUmKLQBOJ1LTA1KR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nickslam~puertoricoindex-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nickslam-puertoricoindex-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/nickslam~puertoricoindex-scraper/runs": {
      "post": {
        "operationId": "runs-sync-nickslam-puertoricoindex-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/nickslam~puertoricoindex-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-nickslam-puertoricoindex-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": {
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Optional: Filter by business categories.\n\nExample: For category page like `https://www.puertoricoindex.com/category/estate_agents` enter only the final segment.",
            "items": {
              "type": "string"
            }
          },
          "searchKeywords": {
            "title": "Search Keywords ($$)",
            "type": "string",
            "description": "Optional: Search for specific companies or keywords. Enables premium pricing."
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Optional: Filter by cities/regions. If not provided, browse modes use the full directory or your other filters.",
            "items": {
              "type": "string",
              "enum": [
                "Adjuntas",
                "Aguadilla",
                "Aibonito",
                "Añasco",
                "Arecibo",
                "Arroyo",
                "Bayamon",
                "Cabo_Rojo",
                "Caguas",
                "Campanilla",
                "Camuy",
                "Candelaria",
                "Candelaria_Arenas",
                "Canóvanas",
                "Carolina",
                "Cataño",
                "Cayey",
                "Ceiba",
                "Cidra",
                "Coamo",
                "Corozal",
                "Dorado",
                "Fajardo",
                "Florida",
                "Guánica",
                "Guayama",
                "Guayanilla",
                "Guaynabo",
                "Gurabo",
                "Hatillo",
                "Hato_Rey",
                "Hormigueros",
                "Humacao",
                "Isabela",
                "Juana_Díaz",
                "Juncos",
                "Lajas",
                "Lares",
                "Las_Piedras",
                "Levittown",
                "Luquillo",
                "Manatí",
                "Maunabo",
                "Mayaguez",
                "Naguabo",
                "Naranjito",
                "Orocovis",
                "Peñuelas",
                "Ponce",
                "Puerto_Real",
                "Punta_Santiago",
                "Quebradillas",
                "Rincon",
                "Río_Grande",
                "Rio_Piedras",
                "Sabana_Grande",
                "Sabana_Seca",
                "Salinas",
                "San_Antonio",
                "San_Germán",
                "San_Juan",
                "San_Lorenzo",
                "San_Sebastián",
                "Santa_Barbara",
                "Santa_Isabel",
                "Trujillo_Alto",
                "Utuado",
                "Vega_Alta",
                "Vega_Baja",
                "Vieques",
                "Yabucoa",
                "Yauco"
              ],
              "enumTitles": [
                "Adjuntas",
                "Aguadilla",
                "Aibonito",
                "Añasco",
                "Arecibo",
                "Arroyo",
                "Bayamón",
                "Cabo Rojo",
                "Caguas",
                "Campanilla",
                "Camuy",
                "Candelaria",
                "Candelaria Arenas",
                "Canóvanas",
                "Carolina",
                "Cataño",
                "Cayey",
                "Ceiba",
                "Cidra",
                "Coamo",
                "Corozal",
                "Dorado",
                "Fajardo",
                "Florida",
                "Guánica",
                "Guayama",
                "Guayanilla",
                "Guaynabo",
                "Gurabo",
                "Hatillo",
                "Hato Rey",
                "Hormigueros",
                "Humacao",
                "Isabela",
                "Juana Díaz",
                "Juncos",
                "Lajas",
                "Lares",
                "Las Piedras",
                "Levittown",
                "Luquillo",
                "Manatí",
                "Maunabo",
                "Mayaguez",
                "Naguabo",
                "Naranjito",
                "Orocovis",
                "Peñuelas",
                "Ponce",
                "Puerto Real",
                "Punta Santiago",
                "Quebradillas",
                "Rincon",
                "Río Grande",
                "Rio Piedras",
                "Sabana Grande",
                "Sabana Seca",
                "Salinas",
                "San Antonio",
                "San Germán",
                "San Juan",
                "San Lorenzo",
                "San Sebastián",
                "Santa Barbara",
                "Santa Isabel",
                "Trujillo Alto",
                "Utuado",
                "Vega Alta",
                "Vega Baja",
                "Vieques",
                "Yabucoa",
                "Yauco"
              ]
            }
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of companies to scrape",
            "default": 20
          },
          "startPage": {
            "title": "Start Page",
            "minimum": 1,
            "type": "integer",
            "description": "Page number to start scraping from. Useful for resuming previous searches.",
            "default": 1
          },
          "maxPages": {
            "title": "Max Pages",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of pages to scrape. Each page usually contains around 20 companies.",
            "default": 5
          },
          "enableRateLimiting": {
            "title": "Enable Rate Limiting",
            "type": "boolean",
            "description": "Enable rate limiting (2 seconds delay) or disable (0.5 seconds delay)",
            "default": true
          },
          "hybridStrategy": {
            "title": "Strategy",
            "type": "string",
            "description": "`fast` = Cheerio + Impit HTTP (default). `browser` = Playwright (fallback).",
            "default": "fast"
          },
          "includeContactDetails": {
            "title": "Include Contact & Details ($)",
            "type": "boolean",
            "description": "Include business hours, year established, employees, contact person",
            "default": false
          },
          "includeExtendedCompanyInfo": {
            "title": "Include Extended Company Information ($)",
            "type": "boolean",
            "description": "Include website, description, and maps coordinates",
            "default": false
          },
          "includeRegistrationLegal": {
            "title": "Include Registration & Legal ($)",
            "type": "boolean",
            "description": "Include registration number and VAT number",
            "default": false
          },
          "includeMetadata": {
            "title": "Include Metadata ($)",
            "type": "boolean",
            "description": "Include listing type, verified status, years with platform, tags",
            "default": false
          },
          "includeMediaContent": {
            "title": "Include Media & Product Information ($)",
            "type": "boolean",
            "description": "Include photos, logo, products",
            "default": false
          },
          "includeReviewSummary": {
            "title": "Include Review Summary ($)",
            "type": "boolean",
            "description": "Include review summary (rating and count) - Fast extraction",
            "default": false
          },
          "includeIndividualReviews": {
            "title": "Include Individual Reviews ($$)",
            "type": "boolean",
            "description": "Include individual reviews - Slower (requires additional pages). Enables premium pricing.",
            "default": false
          },
          "proxy": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Select proxies to be used by the crawler. Recommended: Use Apify Proxy with Residential proxies for better Cloudflare bypass."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}