{
  "openapi": "3.0.1",
  "info": {
    "title": "Xero Advisor Scraper - Accountant & Bookkeeper Leads",
    "description": "Scrape the Xero advisor directory: accounting & bookkeeping firms with partner tier, location, industries served, specialties, website, socials and staff. Filter by country, location & tier. Optional email enrichment & monitoring. No login or API key.",
    "version": "0.1",
    "x-build-id": "TECfvTcJ1TIKGEEpM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~xero-advisor-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-xero-advisor-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/scrapesage~xero-advisor-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-xero-advisor-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/scrapesage~xero-advisor-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-xero-advisor-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": {
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Countries to pull Xero-certified accountants & bookkeepers from (ISO codes). US is the default. The Xero advisor directory is global — biggest in AU, GB (UK), NZ, US and CA. Leave a single country for a fast, focused run.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "GB",
                "AU",
                "NZ",
                "CA",
                "IE",
                "ZA",
                "SG",
                "HK",
                "AE",
                "MY",
                "IN",
                "PH",
                "ID",
                "MT",
                "TH",
                "LK",
                "PK",
                "NL",
                "JE",
                "FJ",
                "KW",
                "NA",
                "GH",
                "CN"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "Australia",
                "New Zealand",
                "Canada",
                "Ireland",
                "South Africa",
                "Singapore",
                "Hong Kong",
                "United Arab Emirates",
                "Malaysia",
                "India",
                "Philippines",
                "Indonesia",
                "Malta",
                "Thailand",
                "Sri Lanka",
                "Pakistan",
                "Netherlands",
                "Jersey",
                "Fiji",
                "Kuwait",
                "Namibia",
                "Ghana",
                "China"
              ]
            },
            "default": [
              "US"
            ]
          },
          "locations": {
            "title": "Locations (optional)",
            "type": "array",
            "description": "Optional city or state/region filters within the selected countries — e.g. \"Texas\", \"Austin\", \"California\", \"New York\", \"London\". Matched against each firm's city and its state/region. Leave empty for the whole country.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "Search terms (optional)",
            "type": "array",
            "description": "Optional keywords to match firm name, description, services or specialties — e.g. \"ecommerce\", \"construction\", \"payroll\", \"CFO\". One per row. Leave empty to list every advisor.",
            "items": {
              "type": "string"
            }
          },
          "partnerTiers": {
            "title": "Xero partner tiers",
            "type": "array",
            "description": "Keep only firms at these Xero partner-program tiers (a strong buying / size signal). Leave empty for all tiers.",
            "items": {
              "type": "string",
              "enum": [
                "PLATINUM",
                "GOLD",
                "SILVER",
                "BRONZE"
              ],
              "enumTitles": [
                "Platinum",
                "Gold",
                "Silver",
                "Bronze"
              ]
            },
            "default": []
          },
          "industries": {
            "title": "Industries served (optional)",
            "type": "array",
            "description": "Keep only firms that list one of these client industries. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Accommodation and hospitality",
                "Administration and support services",
                "Agriculture",
                "Arts and recreation",
                "Construction and trades",
                "Education",
                "Finance and insurance",
                "Healthcare and social services",
                "Information media and telecommunications",
                "Manufacturing",
                "Marketing",
                "Mining",
                "Not for profit",
                "Professional services",
                "Real estate",
                "Retail trade",
                "Transport and storage",
                "Utilities",
                "Wholesale trade"
              ]
            },
            "default": []
          },
          "maxItems": {
            "title": "Max results (advisors)",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Cap on advisor records across the whole run.",
            "default": 100
          },
          "includeStaff": {
            "title": "Include staff profiles",
            "type": "boolean",
            "description": "Include the firm's listed staff members (name, job title, bio, photo) when present on the listing.",
            "default": true
          },
          "enrichEmails": {
            "title": "Enrich emails from firm website",
            "type": "boolean",
            "description": "Opt-in: visit each firm's website (home + a contact/about page) to extract public email addresses. Adds one or two requests per firm. Xero does not publish phone or email on the listing, so this is the way to obtain direct contact details.",
            "default": false
          },
          "maxEmailPagesPerSite": {
            "title": "Max website pages per firm (email enrichment)",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "How many pages of each firm's website to scan for emails when enrichment is on (home page plus likely contact/about pages).",
            "default": 3
          },
          "monitorMode": {
            "title": "Monitoring mode — only new advisors",
            "type": "boolean",
            "description": "Remember which advisor firms were already returned and emit ONLY firms not seen (or changed) since previous runs. Pairs with Apify Schedules to track new Xero partners and listing changes in a market over time.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Named key-value store that holds the 'already seen' advisor ids for monitoring mode. Use a different name per tracked market to keep histories separate.",
            "default": "xero-advisor-monitor"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. The Xero advisor directory and its search API are served cleanly over datacenter IPs, so Apify Proxy (automatic) is the default. Blocked requests retry automatically on a fresh IP.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}