← Health board

ND SOS

North Dakota Contractor License Lookup & Leads Scraper (ND SOS)

Every active North Dakota contractor licence from the Secretary of State: class, renewal and insurance dates, standing, phone and mailing address. Filter by city or class, or check a licence.

83%golden-diff pass
Run it on Apify → verified nightly

Verification

83%golden-diff success
6canary runs
0days since last canary run

Output fields

Authoritative field set from the dataset schema.

FieldType
source_urlstring|number|array|object|null
listing_idstring|number|array|object|null
namestring|number|array|object|null
phonestring|number|array|object|null
phone_e164string|number|array|object|null
emailstring|number|array|object|null
websitestring|number|array|object|null
streetstring|number|array|object|null
citystring|number|array|object|null
regionstring|number|array|object|null
postal_codestring|number|array|object|null
countrystring|number|array|object|null
categorystring|number|array|object|null
categoriesstring|number|array|object|null
latstring|number|array|object|null
lngstring|number|array|object|null
sourcestring|number|array|object|null
extrasstring|number|array|object|null
noticestring|null

Sample row

{
  "listing_id": "000055711",
  "name": "A to Z Professional Services, LLC",
  "phone": "(701) 220-7269",
  "phone_e164": "+17012207269",
  "street": "3730 W REGENT DR",
  "city": "BISMARCK",
  "region": "ND",
  "postal_code": "58504-7516",
  "country": "US",
  "category": "contractor",
  "categories": [
    "contractor"
  ],
  "source": "snapshot",
  "source_url": "https://firststop.sos.nd.gov/search/contractor#0007587022",
  "extras": {
    "status": "Active",
    "licence_class": "A",
    "standing": "Good Standing",
    "sos_control_id": "0007587022",
    "registered": "2026-09-11",
    "expires": "2027-03-01",
    "insurance_expires": "2027-02-15",
    "standing_business": "Good",
    "standing_wsi": "Good",
    "standing_job_service": "Good",
    "standing_other": "Good"
  }
}

Inputs

FieldTypeReqDefaultDescription
mode string no "auto" export: no names, just filters; returns the whole matching list. lookup / verify: put company names (matched if contained in the company name) or licence numbers (exact) in 'queries'. auto picks the mode for you.
query string no — A business name (or listing number) to look up in the stored copy of the directory. Kept alongside 'queries' for saved tasks.
queries array no [] A business name (or listing number) to look up in the stored copy of the directory. Several values in one run; combined with 'query'.
status string no — Only listings in this status. Kept alongside 'statuses' for saved tasks.
statuses array no [] Only listings in this status. Several values in one run; combined with 'status'.
city string no — Only listings in this city. Kept alongside 'cities' for saved tasks.
cities array no [] Only listings in this city. Several values in one run; combined with 'city'.
class string no — Only listings in this class. Kept alongside 'classes' for saved tasks.
classes array no [] Only listings in this class. Several values in one run; combined with 'class'.
categories array no [] Only rows from this name initial (one or more). Available: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z.
maxResults integer no 500 Per query in lookup mode; per run in export mode.
proxyConfiguration object no {"useApifyProxy":false} Used only for live lookups; exports read the stored snapshot.

Pricing

Pay per result (dataset-item) — no charge for empty runs.
Example: 1000 contractor licences at $0.004/result ≈ $4.00.

FAQ

Where does the data come from?

The North Dakota Secretary of State's FirstStop contractor search (firststop.sos.nd.gov): each active licence's search result joined to its detail record (phone, mailing address, renewal, insurance and standing).

Does it include inactive or expired licences?

No. It holds the licences FirstStop lists as active. A licence that lapses drops out at the next refresh.

What do the licence classes mean?

North Dakota licenses contractors for jobs over $4,000 by the largest job they may take: Class A over $500,000 per job, Class B up to $500,000, Class C up to $300,000, Class D up to $100,000. Filter with class (one letter, or several in classes).

How do I get one city?

Set city (or cities). It matches the mailing address on the licence, so an out-of-state contractor licensed in North Dakota appears under its home city.

What is the name-initial filter?

The stored copy is kept in 36 parts by the first letter or digit of the company name (a to z, 0 to 9). Leave it empty for everything; set it only to split a big export into smaller runs.

Can I verify a licence number?

Yes. Put one or more licence numbers (e.g. 55711) or company names in queries. Type a number as the state prints it, leading zeros included: 43881 and 000043881 are two different licences, and an exact match wins. A few numbers belong to two firms in different classes (Class A 2174 and Class B 2174 are two companies). A number alone then returns one free notice saying so; add class (e.g. B) to get the one you mean.

Is there an email address?

No. The Secretary of State publishes a business phone and mailing address, not an email.

How current is it?

The roster was read on October 28–29, 2026. The stored copy is refreshed when it is older than a month and the actor is in use. The run log states the date of the copy, and a run served from a copy older than 45 days returns one free notice saying so.

How am I charged?

One event per licence returned. Notices are free.

Guides & use cases