{
  "openapi": "3.0.1",
  "info": {
    "title": "Washington L&I Contractor & License Scraper",
    "description": "Washington State L&I contractor license scraper & API: search registrations and export license number, status, business name, owner, bond, insurance and expiry. Contractor verification, compliance and B2B lead generation — fast, no login.",
    "version": "1.0",
    "x-build-id": "8HqKRTn1U1Go8cKwu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/haketa~washington-li-contractor-license-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-haketa-washington-li-contractor-license-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/haketa~washington-li-contractor-license-scraper/runs": {
      "post": {
        "operationId": "runs-sync-haketa-washington-li-contractor-license-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/haketa~washington-li-contractor-license-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-haketa-washington-li-contractor-license-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": {
          "statuses": {
            "title": "License status",
            "type": "array",
            "description": "Choose which license statuses to include. Leave empty to include every status.",
            "items": {
              "type": "string",
              "enum": [
                "ACTIVE",
                "EXPIRED",
                "SUSPENDED",
                "RE-LICENSED",
                "OUT OF BUSINESS",
                "INACTIVE",
                "SUPERCEDED",
                "PASSED AWAY"
              ],
              "enumTitles": [
                "Active",
                "Expired",
                "Suspended",
                "Re-licensed",
                "Out of business",
                "Inactive",
                "Superseded",
                "Deceased owner"
              ]
            },
            "default": []
          },
          "licenseTypes": {
            "title": "License type",
            "type": "array",
            "description": "Choose which kinds of contractor licenses to include. Leave empty to include every type.",
            "items": {
              "type": "string",
              "enum": [
                "CC",
                "EC",
                "PC",
                "LC"
              ],
              "enumTitles": [
                "Construction Contractor",
                "Electrical Contractor",
                "Plumbing Contractor",
                "Elevator Contractor"
              ]
            },
            "default": []
          },
          "specialties": {
            "title": "Trade / specialty",
            "type": "array",
            "description": "Filter to specific trades such as roofing, plumbing or HVAC. Leave empty to include every trade.",
            "items": {
              "type": "string",
              "enum": [
                "01",
                "02",
                "AD",
                "CD",
                "SM",
                "6A",
                "CB",
                "SK",
                "BW",
                "RE",
                "SB",
                "BI",
                "HM",
                "RF",
                "SL",
                "BK",
                "SW",
                "SI",
                "BZ",
                "PW",
                "BN",
                "RI",
                "BP",
                "SS",
                "RH",
                "03",
                "SO",
                "CV",
                "RG",
                "OG",
                "SE",
                "SX",
                "BG",
                "SQ",
                "CG",
                "SY",
                "SU"
              ],
              "enumTitles": [
                "General",
                "Residential",
                "Plumbing",
                "Roofing",
                "HVAC / Refrigeration",
                "HVAC / Refrigeration (6A)",
                "Painting / Wallcovering",
                "Floor Covering & Countertops",
                "Landscaping",
                "Tile, Ceramic & Stone",
                "Cabinets, Millwork & Finish Carpentry",
                "Concrete",
                "Handyman",
                "Tree Removal Service",
                "Framing & Rough Carpentry",
                "Drywall",
                "Siding",
                "Excavation, Grading & Land Clearing",
                "Masonry",
                "Pressure Washing",
                "Fencing",
                "Welding & Ornamental Metal",
                "Glazing / Glass",
                "Paving / Striping / Seal Coating",
                "Window Coverings",
                "Pump & Irrigation",
                "Insulation & Acoustical",
                "Gutters / Downspouts",
                "Utilities & Telecommunications",
                "Overhead / Garage Doors",
                "Construction Clean-up",
                "Signs",
                "Appliances / Equipment",
                "Locks, Security & Alarm",
                "Metal Fabrication",
                "Steel Erectors",
                "Sanitation / Side Sewers"
              ]
            },
            "default": []
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Limit results to specific Washington cities. Leave empty to include the whole state.",
            "items": {
              "type": "string",
              "enum": [
                "SEATTLE",
                "VANCOUVER",
                "SPOKANE",
                "TACOMA",
                "EVERETT",
                "KENT",
                "AUBURN",
                "RENTON",
                "OLYMPIA",
                "PUYALLUP",
                "BELLINGHAM",
                "FEDERAL WAY",
                "LYNNWOOD",
                "BELLEVUE",
                "KENNEWICK",
                "YAKIMA",
                "SNOHOMISH",
                "PASCO",
                "BOTHELL",
                "MARYSVILLE",
                "SPOKANE VALLEY",
                "KIRKLAND",
                "MOUNT VERNON",
                "WENATCHEE",
                "ARLINGTON",
                "LAKE STEVENS",
                "BREMERTON",
                "BATTLE GROUND",
                "PORT ORCHARD",
                "GIG HARBOR",
                "REDMOND",
                "PORT ANGELES",
                "EDMONDS",
                "SHELTON"
              ]
            },
            "default": []
          },
          "citiesCustom": {
            "title": "Other cities (advanced)",
            "type": "array",
            "description": "Optional. Add any Washington city not shown in the dropdown above. Type the city name, one per entry.",
            "items": {
              "type": "string"
            }
          },
          "effectiveAfter": {
            "title": "Licensed on or after",
            "type": "string",
            "description": "Optional. Only include licenses that became effective on or after this date (YYYY-MM-DD). Great for finding newly licensed contractors. Leave empty for no lower bound."
          },
          "effectiveBefore": {
            "title": "Licensed on or before",
            "type": "string",
            "description": "Optional. Only include licenses that became effective on or before this date (YYYY-MM-DD). Leave empty for no upper bound."
          },
          "enrichInsurance": {
            "title": "Include insurance details",
            "type": "boolean",
            "description": "Add liability insurance company, policy number, coverage amount and dates to each record.",
            "default": true
          },
          "enrichBond": {
            "title": "Include bond details",
            "type": "boolean",
            "description": "Add surety bond firm, bond amount and impaired status to each record.",
            "default": true
          },
          "enrichPrincipal": {
            "title": "Include owner / officer names",
            "type": "boolean",
            "description": "Add the company's owners and officers to each record - useful for lead generation.",
            "default": true
          },
          "maxRecords": {
            "title": "Maximum results",
            "minimum": 0,
            "type": "integer",
            "description": "How many contractor records to return. Set to 0 for unlimited (the full matching set).",
            "default": 0
          },
          "pageSize": {
            "title": "Page size (advanced)",
            "minimum": 100,
            "maximum": 50000,
            "type": "integer",
            "description": "Records fetched per request. The default works well; only change if you know you need to.",
            "default": 1000
          },
          "requestDelay": {
            "title": "Request delay in milliseconds (advanced)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Pause between requests. The default is a good balance of speed and politeness.",
            "default": 200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}