# Louisiana Contractor License Status (`anderson-data-tools/glacier-lean-1`) Actor

Look up Louisiana contractor licenses by license number or company name. Export status, expiration and source-linked results for vendor screening. Unavailable data is flagged for review; results are not a licensing or legal determination.

- **URL**: https://apify.com/anderson-data-tools/glacier-lean-1.md
- **Developed by:** [Benjamin Anderson](https://apify.com/anderson-data-tools) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$20.00 / 1,000 license lookups

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Louisiana Contractor License Status

Look up Louisiana contractor license status and expiration from public Louisiana State Licensing Board for Contractors records. Search by license number or company name and export source-linked results.

Search Louisiana State Licensing Board for Contractors (LSLBC) public records by license number or business name. Get source-linked JSON with the reported status, expiration date and UTC check time. Use one lookup or a batch of up to 100 queries.

### Use cases

- Add a dated license-record check to subcontractor onboarding.
- Refresh a list of known license numbers for human review.
- Feed source links and expiry fields into a procurement spreadsheet or internal workflow.

This tool reports what the source says; the board remains the authority.

### Input example

```json
{
  "license_number": "CL.68755"
}
```

Use `name` instead of `license_number` for a business-name substring search. Set `max_results` from 1 to 10 (default 1) for name searches. Louisiana names require at least three characters. For batches, use `{"queries": [{"license_number": "CL.68755"}]}`, up to 100 objects. Each object supplies a license number or name. A batch overrides the top-level single query. Do not treat a truncated name search as a complete roster.

### Output example

Recorded local Actor output from 2026-10-11 UTC (October 10 in Alabama); historical example, not a statement of current status.

```json
{
  "outcome": "match",
  "verification_state": "verified",
  "license_number": "CL.68755",
  "business_name": "09 Construction Services, LLC",
  "license_type": "Commercial License Certificate",
  "status": "Active",
  "effective_date": "07/19/2026",
  "expiration_date": "2029-07-18",
  "source_url": "https://arlspublic.lslbc.louisiana.gov/Public/_DisplayOnlineDetails/?key=R6DulTdQAO08c2WY3yqQKg%3d%3d&Source=DetailedSearch",
  "checked_at": "2026-10-11T01:14:40+00:00"
}
```

The default dataset contains one row per returned record, or a dated no-match/uncertain row. Matches include `business_name`, `license_number`, `status`, `expiration_date`, `source_url` and `checked_at`; Louisiana may also include `license_type` and `effective_date`. Export the dataset as JSON or CSV in Apify.

`verification_state: verified` means the source was readable, not that a contractor is approved or suitable. Missing fields can produce `uncertain`; source access failure produces `unverifiable`. A no-match is limited to the search and time shown.

### Pricing

The `license-lookup` event costs **$0.02 per completed readable lookup**, with platform usage included. One input query incurs one event even if a company-name search returns multiple records. A readable no-match is charged; an `uncertain` or `unverifiable` result is not.

The maximum charge for a run of 100 input queries is **$2.00**. For a smaller batch, choose a lower run cap if desired. Each new run can incur new event charges.

### Limitations and legal notes

Only Louisiana is covered. Source records may be stale, incomplete or unavailable, and a name match may refer to another business. Verify directly with the [official board source](https://arlspublic.lslbc.louisiana.gov/Public/DetailedSearch/ByNumber) before an important decision. This is not a certified license report, insurance check, eligibility decision or legal advice, and is not affiliated with the board.

Requests are rate-limited; login/CAPTCHA or access restrictions must not be bypassed. Automated access permission must remain valid. Do not use this Actor to evade source terms or collect unrelated personal information. No state-wide completeness or uptime guarantee is made.

For a technical problem, use this Actor's Apify Issues tab and share the input and run ID without credentials or private customer data.

# Actor input Schema

## `license_number` (type: `string`):

Louisiana contractor license number, such as CL.68755 or RL.883684. Use this or Company name for one lookup.

## `name` (type: `string`):

Search for a company-name substring in Louisiana contractor records (at least 3 characters).

## `max_results` (type: `integer`):

Maximum license records returned for a company-name search; capped at 10.

## `queries` (type: `array`):

Optional batch of up to 100 JSON search objects, each with license_number or name and optional max_results. Each input object is one billed lookup.

## Actor input object example

```json
{
  "license_number": "CL.68755",
  "max_results": 1
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "license_number": "CL.68755"
};

// Run the Actor and wait for it to finish
const run = await client.actor("anderson-data-tools/glacier-lean-1").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "license_number": "CL.68755" }

# Run the Actor and wait for it to finish
run = client.actor("anderson-data-tools/glacier-lean-1").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "license_number": "CL.68755"
}' |
apify call anderson-data-tools/glacier-lean-1 --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,anderson-data-tools/glacier-lean-1"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kzpMSf5BYHjaIDWTt/builds/W4N1dVfkM5ROc2cVy/openapi.json
