{
  "openapi": "3.0.1",
  "info": {
    "title": "Contractor License Scraper - Texas TDLR, Washington, Oregon",
    "description": "For contractor lead lists, insurance and supplier sales teams: licensed trade contractors in Texas, Washington and Oregon in one schema. Texas alone is 996,129 official rows, Washington 45,508 licence numbers, all read live on every run. Filter by city, trade or expiring soon. No API key.",
    "version": "0.1",
    "x-build-id": "fo0WJf6A7cfeEuzkl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~contractor-license-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-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/neverempty~contractor-license-scraper/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-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/neverempty~contractor-license-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-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": {
          "states": {
            "title": "States",
            "type": "array",
            "description": "Which state license files to search. Texas is the TDLR file (electricians, A/C, elevators, cosmetology, barbers, tow operators and more); Washington is L&I contractor registration (construction, electrical, plumbing, elevator); Oregon is the Construction Contractors Board. None chosen means all three.",
            "items": {
              "type": "string",
              "enum": [
                "tx",
                "wa",
                "or"
              ],
              "enumTitles": [
                "Texas (TDLR)",
                "Washington (L&I)",
                "Oregon (CCB)"
              ]
            }
          },
          "name": {
            "title": "Name contains",
            "type": "string",
            "description": "Keep licenses whose licensee, business or principal name contains this text. Case does not matter."
          },
          "licenseNumber": {
            "title": "License number",
            "type": "string",
            "description": "Exact license number, for example 17000 (Texas), ECOSTSC758NN (Washington) or 100215 (Oregon). Texas numbers repeat across license types, so a number alone can return several Texas licenses."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "Exact city name, such as Houston, Spokane or Portland. Case does not matter. Texas business licenses use the business city; Texas individual licenses have a city only when TDLR lists a mailing address."
          },
          "county": {
            "title": "County",
            "type": "string",
            "description": "Exact county name, such as Harris or Multnomah. Washington does not publish a county, so Washington is left out (with a row saying so) when this is set."
          },
          "zip": {
            "title": "ZIP code (or its first digits)",
            "type": "string",
            "description": "Keep licenses whose business ZIP code starts with these 3 to 5 digits. Individual licensees carry no ZIP code here."
          },
          "licenseType": {
            "title": "License type contains",
            "type": "string",
            "description": "Keep licenses whose type, endorsement, specialty or subtype contains this text, such as electrical, plumbing, roofing, A/C, residential or elevator. If no name, number, city, county, ZIP, type or expiry window is given, CONTRACTOR is used and every row says so in its query column."
          },
          "onlyActive": {
            "title": "Only active licenses",
            "type": "boolean",
            "description": "Keep only licenses that are not past their expiration date (and, in Washington, whose status is ACTIVE). Turn off to include expired, suspended and closed licenses - for example when checking one license by number.",
            "default": true
          },
          "expiringWithinDays": {
            "title": "Expiring within N days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep licenses whose expiration date is between today and N days from today (0-365), soonest first. Leave empty to ignore expiration."
          },
          "maxResultsPerState": {
            "title": "Maximum licenses per state",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "The most licenses returned for each state. A license that the source lists on several records (one per Oregon endorsement) counts once.",
            "default": 100
          },
          "includeBondsAndInsurance": {
            "title": "Include Washington bonds and insurance",
            "type": "boolean",
            "description": "Look up each Washington contractor's current surety bonds and liability insurance in L&I's bond and insurance files (one extra request per 100 licenses). Oregon's bond and insurance come with the license; Texas does not publish them.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}