> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneshotagent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Contractor Licence

> Look up Washington State contractor licences by licence number, state business identifier or business name, with status, type, specialties and expiration dates.

Look up a construction contractor in the Washington State contractor licence register, which refreshes daily. `state` is required; currently only WA is covered. Give exactly one of `license_number`, `ubi` (the state business identifier) and `name`. Names are matched ignoring case as a substring of the business name, so a short distinctive fragment works best. Return at most `limit` licences, newest effective date first, each with its type, status, whether it is active, effective, expiration and suspension dates, specialties, business type, principal and address. The phone number is not returned, and the street line is null for an individual (a sole proprietor), whose street may be a home. Missing values are null; dates are YYYY-MM-DD. An empty licenses list is a completed result: no licence was found under that number, identifier or name, not evidence that the contractor never held one.

## Authentication

Requires x402 payment in the `payment-signature` header.

## Request Body

**state** `string` *required*

State whose contractor register is searched. One of `WA`.

**license\_number** `string`

The state contractor licence number, including any asterisks. 1 to 20 characters.

**ubi** `string`

The state business identifier (UBI).

**name** `string`

A fragment of the business name, matched ignoring case. 2 to 100 characters.

**limit** `integer`

Most licences to return. From 1 to 20. Defaults to `5`.

<Snippet file="audit-context-params.mdx" />

## Response (200 OK)

Top-level envelope: `success` (boolean) and `data` (object). All fields below are nested under `data`.

**data.request\_id** `string`

Durable job ID for audit and lookup

**data.status** `string`

Job status: `completed`

**data.tool** `string`

Always `company_contractor_license`

**data.result** `object`

The answer, described under Result below

**data.evidence** `object`

Where the answer came from and when

**data.evidence.source** `string`

The public body the data comes from. Always `Washington State Department of Labor & Industries`.

**data.evidence.source\_kind** `string`

`public` when the data comes from a public body, `commercial` otherwise

**data.evidence.retrieved\_at** `string`

When the lookup was made, as an ISO 8601 UTC time

**data.evidence.as\_of** `string`

When the source says the fact was last updated, or `null` when the source gives no date

## Result

Nested under `data.result`.

**data.result.state** `string`

The state asked for.

**data.result.licenses** `object[]`

Matching licences, newest effective date first; empty when none matched.

**data.result.licenses\[].license\_number** `string`

The state contractor licence number.

**data.result.licenses\[].business\_name** `string`

The business name on the licence. `null` when the source gives no value.

**data.result.licenses\[].license\_type** `string`

The licence type in the state's words, for example CONSTRUCTION CONTRACTOR. `null` when the source gives no value.

**data.result.licenses\[].status** `string`

The licence status in the state's words, for example ACTIVE or RE-LICENSED. `null` when the source gives no value.

**data.result.licenses\[].active** `boolean`

Whether the state marks the licence active.

**data.result.licenses\[].effective\_on** `string`

Licence effective date, YYYY-MM-DD or null.

**data.result.licenses\[].expires\_on** `string`

Licence expiration date, YYYY-MM-DD or null.

**data.result.licenses\[].suspended\_on** `string`

Licence suspension date, YYYY-MM-DD, or null when not suspended.

**data.result.licenses\[].business\_type** `string`

The business structure, for example Corporation or Individual. `null` when the source gives no value.

**data.result.licenses\[].specialties** `string[]`

The licensed specialties, for example GENERAL or HVAC/RFRG; empty when none are stated.

**data.result.licenses\[].ubi** `string`

The state business identifier, for joining with other state records. `null` when the source gives no value.

**data.result.licenses\[].principal\_name** `string`

The primary principal named on the licence. `null` when the source gives no value.

**data.result.licenses\[].address** `object`

The address on the licence; the phone number is not returned.

**data.result.licenses\[].address.street** `string`

Street line, or null for an individual (sole proprietor), whose street may be a home.

**data.result.licenses\[].address.city** `string`

City. `null` when the source gives no value.

**data.result.licenses\[].address.state** `string`

State. `null` when the source gives no value.

**data.result.licenses\[].address.postal\_code** `string`

ZIP code. `null` when the source gives no value.

```bash cURL theme={null}
curl -X POST https://win.oneshotagent.com/v1/tools/lookup/company-contractor-license \
  -H "Content-Type: application/json" \
  -H "payment-signature: <base64 x402 payment>" \
  -d '{
    "state": "WA",
    "license_number": "ABSHEC*345PS"
  }'
```

```javascript JavaScript theme={null}
const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/company-contractor-license", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "payment-signature": paymentProof,
  },
  body: JSON.stringify({
    "state": "WA",
    "license_number": "ABSHEC*345PS"
  }),
});
```

```typescript SDK theme={null}
const result = await agent.tool('lookup/company-contractor-license', {
  state: 'WA',
  license_number: 'ABSHEC*345PS'
});
console.log(result.result);
console.log(result.evidence);
```

```json Response (200) theme={null}
{
  "success": true,
  "data": {
    "request_id": "uuid",
    "receipt_id": "rcpt_...",
    "status": "completed",
    "tool": "company_contractor_license",
    "result": {
      "state": "WA",
      "licenses": [
        {
          "license_number": "ABSHEC*345PS",
          "business_name": "ABSHER CONSTRUCTION CO",
          "license_type": "CONSTRUCTION CONTRACTOR",
          "status": "ACTIVE",
          "active": true,
          "effective_on": "1966-10-10",
          "expires_on": "2027-01-08",
          "suspended_on": null,
          "business_type": "Corporation",
          "specialties": [
            "GENERAL"
          ],
          "ubi": "275003716",
          "principal_name": "ABSHER, THOMAS LOWELL",
          "address": {
            "street": "1001 Shaw Rd",
            "city": "Puyallup",
            "state": "WA",
            "postal_code": "98372"
          }
        }
      ]
    },
    "evidence": {
      "source": "Washington State Department of Labor & Industries",
      "source_kind": "public",
      "retrieved_at": "2026-10-20T22:53:37.000Z",
      "calls": [
        {
          "retrieved_at": "2026-10-20T22:53:37.000Z"
        }
      ],
      "as_of": null
    }
  }
}
```

> [!NOTE]
>
> See [Pricing](https://docs.oneshotagent.com/pricing.md) for this tool's price. A wallet (x402) call receives it in the 402 quote before anything is charged; a call paid from prepaid credits is charged when the API accepts the request and answers `200`.

## Notes

* Results return inline. The finished job stays available at `/v1/requests/{request_id}`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.