{
  "openapi": "3.0.1",
  "info": {
    "title": "ServiceSeeking Scraper - Australian Tradie Leads with ABN",
    "description": "From $3.50 per 1,000 businesses, no start fee. Australian tradies and service businesses from ServiceSeeking.com.au: ABN with ATO checksum, website, suburb, state, postcode, coordinates, licences, rating, reviews, times hired, last quoted and services. By trade, state or whole directory.",
    "version": "0.1",
    "x-build-id": "elcsxiU9w1YOanvIv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~serviceseeking-au-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-serviceseeking-au-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/scrapersdelight~serviceseeking-au-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-serviceseeking-au-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/scrapersdelight~serviceseeking-au-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-serviceseeking-au-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": "Trade categories",
            "type": "array",
            "description": "ServiceSeeking category pages to pull, by name or URL slug: plumbers, electricians, cleaners, builders, painters, gardeners, handymen, removalists, tilers, roofers, carpenters, concreters, fencing, pest-control, locksmiths, air-conditioner-installation and so on. A full category URL works too. Every business ServiceSeeking lists under the category is returned, deduplicated across categories. Ignored when 'Whole directory' or 'Profile URLs' is used.",
            "default": [
              "plumbers"
            ],
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "States / territories",
            "type": "array",
            "description": "Keep only businesses based in these states or territories. In category mode the state printed on each listing card is checked before the profile is even fetched. Empty = all of Australia.",
            "items": {
              "type": "string",
              "enum": [
                "NSW",
                "VIC",
                "QLD",
                "WA",
                "SA",
                "TAS",
                "ACT",
                "NT"
              ],
              "enumTitles": [
                "New South Wales",
                "Victoria",
                "Queensland",
                "Western Australia",
                "South Australia",
                "Tasmania",
                "Australian Capital Territory",
                "Northern Territory"
              ]
            },
            "default": []
          },
          "wholeDirectory": {
            "title": "Whole directory (every profile in the sitemap)",
            "type": "boolean",
            "description": "Ignore categories and walk every business profile in ServiceSeeking's own profile sitemap (10,312 profiles on 2026-09-23), most recently updated first. Combine with 'Service keywords' and 'States' to cut it down. Set 'Max businesses' to 0 for all of them.",
            "default": false
          },
          "profileUrls": {
            "title": "Profile URLs or IDs",
            "type": "array",
            "description": "Specific profiles to fetch, e.g. https://www.serviceseeking.com.au/profile/249077 or just 249077. When filled, categories and the whole-directory switch are ignored.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "serviceKeywords": {
            "title": "Service keywords",
            "type": "array",
            "description": "Keep businesses whose listed services or service categories contain ANY of these words, e.g. hot water, solar, gas fitter, strata. Case is ignored and 'plumbers' also matches 'Plumber'. Most useful with 'Whole directory'. Empty = all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "requireWebsite": {
            "title": "Require a website",
            "type": "boolean",
            "description": "Keep only businesses with a website delivered in the row.",
            "default": false
          },
          "requireAbn": {
            "title": "Require an ABN",
            "type": "boolean",
            "description": "Keep only businesses that publish an Australian Business Number.",
            "default": false
          },
          "requireContact": {
            "title": "Require a contact",
            "type": "boolean",
            "description": "Keep only businesses with at least one delivered phone, website, or phone/e-mail written in their own About text.",
            "default": false
          },
          "minReviews": {
            "title": "Minimum reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only businesses with at least this many ServiceSeeking reviews. 0 = no minimum.",
            "default": 0
          },
          "quotedWithinDays": {
            "title": "Quoted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only businesses that sent a quote on ServiceSeeking within roughly this many days - a liveness filter. ServiceSeeking prints only a phrase such as 'About 1 month ago', so this is approximate (a month counts as 30 days, a year as 365). Businesses that never quoted are excluded. 0 = off.",
            "default": 0
          },
          "memberSinceFrom": {
            "title": "Member since (year, from)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only businesses that joined ServiceSeeking in this year or later, e.g. 2025 for newly listed businesses. 0 = off.",
            "default": 0
          },
          "includeUndisplayedContacts": {
            "title": "Include contacts the site does not display",
            "type": "boolean",
            "description": "Off by default: rows follow ServiceSeeking's own display rule, so the phone is returned only when the profile shows it (none of 55 sampled did), and the website and licences only on full profiles. Price: $0.0035 per business. Turn this on to also receive the phone number (filled on 150 of 150 live rows) and website that the page data carries but the site does not display. Price with this on: $0.0035 per business plus $0.001 for each row that actually carries such a phone or website ($0.0045 total), shown in the row as undisplayedContactIncluded=true. Rows without one cost only $0.0035.",
            "default": false
          },
          "maxResults": {
            "title": "Max businesses",
            "minimum": 0,
            "type": "integer",
            "description": "Cap on businesses delivered - and charged. Businesses excluded by your filters, profiles that no longer exist and duplicates are never delivered and never charged. 0 = no cap.",
            "default": 50
          },
          "maxPagesPerCategory": {
            "title": "Max listing pages per category",
            "minimum": 0,
            "type": "integer",
            "description": "Stop each category after this many listing pages (10 businesses per page). 0 = every page ServiceSeeking has for the category.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Off by default: ServiceSeeking runs no anti-bot and every page is served whole over a direct connection. Turn on Apify Proxy (e.g. Residential, Australia) only if your direct requests start failing. Every page is still checked for its closing tag and its own data markers before it is parsed.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}