{
  "openapi": "3.0.1",
  "info": {
    "title": "QBCC Licence Search Scraper - Queensland Builders & Trades",
    "description": "Every QBCC-licensed Queensland builder and trade contractor: ABN, ACN, business address, licence classes, status, trading names, revenue category - plus optional directors, licensed-since date and insured building-work record. 111,000+ licensees. $0.0016 per licensee.",
    "version": "0.1",
    "x-build-id": "jptsc4fxLYBe6vNHo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~qbcc-qld-licensee-register-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-qbcc-qld-licensee-register-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~qbcc-qld-licensee-register-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-qbcc-qld-licensee-register-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~qbcc-qld-licensee-register-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-qbcc-qld-licensee-register-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": {
          "licenceClasses": {
            "title": "Licence classes (trades)",
            "type": "array",
            "description": "QBCC licence class names, matched on any part of the name and case-insensitive: \"Plumbing\" matches Plumbing and Drainage AND Mechanical Services - Plumbing; \"Builder - Low Rise\", \"Carpentry\", \"Roof and Wall Cladding\", \"Gasfitting\", \"Concreting\", \"Waterproofing\", \"Air-conditioning\", \"Swimming Pool\", \"Termite\", \"Fire Protection\". A licensee matches if it holds ANY listed class. Empty = every class.",
            "items": {
              "type": "string"
            }
          },
          "licenceGrades": {
            "title": "Licence grades",
            "type": "array",
            "description": "Licence grade as QBCC records it. Contractors who can be hired are Builder Licence and Trade Contractor Licence; supervisors and occupational licences are individuals working under a contractor. Empty = all grades.",
            "items": {
              "type": "string",
              "enum": [
                "Builder Licence",
                "Builder Licence - EAT",
                "Trade Contractor Licence",
                "Trade Contractor Licence - EAT",
                "Trade Contractor Licence - Fire Certifier",
                "Nominee Supervisor",
                "Nominee Supervisor - Fire Certifier",
                "Site Supervisor",
                "Building Designer Licence",
                "Building Designer Licence - EAT",
                "Mechanical Services Occupational",
                "Fire Occupational"
              ]
            }
          },
          "licenseeTypes": {
            "title": "Licensee type",
            "type": "array",
            "description": "Company (Pty Ltd, with ACN) or Individual (sole trader). Empty = both.",
            "items": {
              "type": "string",
              "enum": [
                "Company",
                "Individual"
              ]
            }
          },
          "postcodes": {
            "title": "Postcodes",
            "type": "array",
            "description": "4-digit postcodes of the licensee's business address, e.g. 4000 (Brisbane City), 4217 (Surfers Paradise), 4870 (Cairns). Empty = anywhere.",
            "items": {
              "type": "string"
            }
          },
          "suburbs": {
            "title": "Suburbs",
            "type": "array",
            "description": "Suburb names, e.g. Toowoomba, Sunnybank Hills. Matched as whole words anywhere in the business address, so a street of the same name also matches - use postcodes for an exact area. Empty = anywhere.",
            "items": {
              "type": "string"
            }
          },
          "queenslandOnly": {
            "title": "Queensland addresses only",
            "type": "boolean",
            "description": "About 9% of QBCC licensees (10,347 of 111,853 on 2026-09-23) have an interstate business address (NSW border towns, national firms). Tick to keep only Queensland addresses.",
            "default": false
          },
          "financialCategories": {
            "title": "Financial category (Maximum Revenue band)",
            "type": "array",
            "description": "QBCC's Maximum Revenue category - the most revenue the licensee may turn over in a year, set from its net tangible assets. A size signal: Category 3 and above = $12M+ builders. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "SCT1",
                "SC2",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "EMRSC1",
                "EMRSC2",
                "EMR1-2",
                "EMR3-7",
                "N/A"
              ],
              "enumTitles": [
                "Self-Certification 1 - up to $200,000",
                "Self-Certification 2 - up to $800,000",
                "Category 1 - $800,001 to $3M",
                "Category 2 - $3M to $12M",
                "Category 3 - $12M to $30M",
                "Category 4 - $30M to $60M",
                "Category 5 - $60M to $120M",
                "Category 6 - $120M to $240M",
                "Category 7 - over $240M",
                "Estimated MR - Self-Certification 1",
                "Estimated MR - Self-Certification 2",
                "Estimated MR - Category 1-2",
                "Estimated MR - Category 3-7",
                "No financials required (supervisors, occupational)"
              ]
            }
          },
          "nameContains": {
            "title": "Licensee name contains",
            "type": "string",
            "description": "Keep licensees whose name contains this text (case-insensitive), e.g. \"plumbing\" or \"homes\"."
          },
          "withAbnOnly": {
            "title": "Only licensees with an ABN",
            "type": "boolean",
            "description": "Keep only licensees for which QBCC publishes an ABN (59,295 of 111,853 licensees, 53%, on 2026-09-23).",
            "default": false
          },
          "licenceNumbers": {
            "title": "Licence numbers (lookup mode)",
            "type": "array",
            "description": "Look up specific QBCC licence numbers, e.g. 1000004. Other filters still apply. Empty = search the register.",
            "items": {
              "type": "string"
            }
          },
          "sortOrder": {
            "title": "Order",
            "enum": [
              "newest",
              "oldest"
            ],
            "type": "string",
            "description": "QBCC licence numbers rise over time, so \"newest\" returns the most recently licensed businesses first (a licensee licensed last week is at the top), \"oldest\" the longest-standing.",
            "default": "newest"
          },
          "includeRegisterDetail": {
            "title": "Live register detail (trading names, status, conditions)",
            "type": "boolean",
            "description": "Look each licensee up on QBCC's live licensee register: trading names, per-class status (Active / Suspended), condition flags, class codes, suburb, and the individual's given names / surname. Two small requests per licensee; no extra charge.",
            "default": true
          },
          "includeSuspended": {
            "title": "Include suspended licensees",
            "type": "boolean",
            "description": "QBCC's open data includes licensees whose licence is SUSPENDED (cancelled licences are not published). By default a licensee whose every class is suspended is skipped and not charged. Needs live register detail on.",
            "default": false
          },
          "includeLicenceHistory": {
            "title": "Licence history certificate (directors, licensed since, work record)",
            "type": "boolean",
            "description": "Download and parse each licensee's QBCC licence search certificate (\"full history\", s.99 of the QBCC Act): company directors / secretaries and nominee supervisor, licensed-since date per class, the six disciplinary answers, conditions with their text, direction orders, and the record of insured residential construction work (jobs and value per financial year). About 1-2 seconds per licensee; no extra charge.",
            "default": false
          },
          "onlyNewSinceLastRun": {
            "title": "Only new licensees since my last run (monitor)",
            "type": "boolean",
            "description": "Deliver only licence numbers that were not on the register at your previous run with the same state key. The first run saves the baseline (and delivers up to Max results). Schedule it daily or weekly for a new-licensee feed.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor state key",
            "type": "string",
            "description": "Name for the saved monitor baseline. Use a different key per saved search.",
            "default": "default"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Maximum licensees to deliver (and be charged for). The register holds about 112,000.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: QBCC's open-data API and live register answer Apify's servers directly. Leave off (direct). If you set a proxy that cannot start, the run falls back to direct.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}