{
  "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. Independent tool, not affiliated with Xero.",
    "version": "0.1",
    "x-build-id": "FFERjq0xI8oD3gqwj"
  },
  "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). With none selected the run searches the United States (a call with no input at all runs a 25-row United States sample). 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"
              ]
            }
          },
          "locations": {
            "title": "Locations (optional)",
            "type": "array",
            "description": "Optional city or state/region filters within the selected countries, e.g. \"Texas\", \"Austin\", \"Austin, TX\", \"New York, NY\", \"Sydney, NSW\", \"London\". Matched against each firm's office towns and states/regions; a town with its state (\"Portland, OR\") keeps only that one. The office that matches heads the row. 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 (Xero's own list). Leave empty for all. The last five choices are Xero's former names, kept so saved inputs still work: each searches its new name.",
            "items": {
              "type": "string",
              "enum": [
                "Accommodation and hospitality",
                "Administration and support services",
                "Advertising and consulting",
                "Agriculture",
                "Arts and recreation",
                "Construction and trades",
                "E-commerce",
                "Education",
                "Finance and insurance",
                "Healthcare and social services",
                "Manufacturing",
                "Marketing",
                "Media and communications",
                "Mining",
                "Not for profit",
                "Professional services",
                "Public administration",
                "Real estate and hiring services",
                "Repairs and personal services",
                "Retail",
                "Transportation and storage",
                "Utilities",
                "Wholesale",
                "Information media and telecommunications",
                "Real estate",
                "Retail trade",
                "Transport and storage",
                "Wholesale trade"
              ],
              "enumTitles": [
                "Accommodation and hospitality",
                "Administration and support services",
                "Advertising and consulting",
                "Agriculture",
                "Arts and recreation",
                "Construction and trades",
                "E-commerce",
                "Education",
                "Finance and insurance",
                "Healthcare and social services",
                "Manufacturing",
                "Marketing",
                "Media and communications",
                "Mining",
                "Not for profit",
                "Professional services",
                "Public administration",
                "Real estate and hiring services",
                "Repairs and personal services",
                "Retail",
                "Transportation and storage",
                "Utilities",
                "Wholesale",
                "Information media and telecommunications (former name of Media and communications)",
                "Real estate (former name of Real estate and hiring services)",
                "Retail trade (former name of Retail)",
                "Transport and storage (former name of Transportation and storage)",
                "Wholesale trade (former name of Wholesale)"
              ]
            },
            "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 page plus likely contact/about pages) to find public email addresses. Most listings carry a phone but few carry an email, so this is the way to get one. Charged as the email enrichment add-on only when the crawl finds an email the listing did not already show.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}