# State-by-State Automation Status — 52 Jurisdictions (50 States + DC + BC Canada) **Last updated:** 2026-04-05 This document tracks the implementation status of name search and entity filing automation for all 52 jurisdictions (50 states + DC + BC Canada). ## Status Legend | Symbol | Meaning | |--------|---------| | WORKING | Tested and functional | | READY | Selectors verified, needs Playwright testing | | BLOCKED-CAPTCHA | Portal has CAPTCHA, needs solving service or manual step | | BLOCKED-LOGIN | Portal requires account/login before search or filing | | BLOCKED-WAF | Portal has Web Application Firewall blocking automation | | BLOCKED-PAYMENT | Automation works up to payment step | | NEEDS-RESEARCH | Portal not yet inspected | | API | Uses REST API, no browser needed | --- ## Tier 1: API-Based Name Search (No Browser Needed) | State | Code | Name Search | Filing | Portal | Notes | |-------|------|-------------|--------|--------|-------| | **Colorado** | CO | **WORKING (API)** | NEEDS-RESEARCH | data.colorado.gov | Socrata SODA API. Dataset 4ykn-tg5h. Free, no auth. Confirmed working with live test. | ### Other Potential Socrata States (Untested) These states have open data portals that MAY have business entity datasets: | State | Code | Socrata Domain | Dataset ID | Status | |-------|------|---------------|------------|--------| | Alaska | AK | data.alaska.gov | Unknown | NEEDS-RESEARCH | | Connecticut | CT | data.ct.gov | Unknown | NEEDS-RESEARCH | | Illinois | IL | data.illinois.gov | Unknown | NEEDS-RESEARCH | | Iowa | IA | data.iowa.gov | Unknown | NEEDS-RESEARCH | | Michigan | MI | data.michigan.gov | Unknown | NEEDS-RESEARCH | | New York | NY | data.ny.gov | Unknown | NEEDS-RESEARCH | | Oregon | OR | data.oregon.gov | Unknown | NEEDS-RESEARCH | | Pennsylvania | PA | data.pa.gov | Unknown | NEEDS-RESEARCH | | Vermont | VT | data.vermont.gov | Unknown | NEEDS-RESEARCH | | Washington | WA | data.wa.gov | Unknown | NEEDS-RESEARCH | **Action needed:** Search each Socrata domain for business entity datasets. If found, these states can use API-based name search like Colorado. --- ## Tier 2: Selectors Verified (Ready for Playwright Testing) | State | Code | Name Search | Filing | Portal | Key Selectors | Barriers | |-------|------|-------------|--------|--------|---------------|----------| | **Wyoming** | WY | **READY** | NEEDS-RESEARCH | wyobiz.wyo.gov | Name: `#MainContent_txtFilingName`, Search: `#MainContent_cmdSearch`, Contains: `#MainContent_chkSearchIncludes` | ASP.NET WebForms postback. No CAPTCHA on name search. | | **Delaware** | DE | **BLOCKED-CAPTCHA** | BLOCKED-CAPTCHA | icis.corp.delaware.gov | Name: `#ctl00_ContentPlaceHolder1_frmEntityName`, FileNo: `#ctl00_ContentPlaceHolder1_frmFileNumber`, Submit: `#ctl00_ContentPlaceHolder1_btnSubmit`, CAPTCHA panel: `#ctl00_ContentPlaceHolder1_pnlCaptcha` | **CAPTCHA on every search.** Anti-scraping warning: "Use of automated tools may result in suspension." CAPTCHA image at `/Ecorp/CaptchaHandler.ashx`. Solving service (2captcha/anticaptcha) needed. | | **Utah** | UT | **READY** | BLOCKED-LOGIN | secure.utah.gov | Entity search at `/EntitySearch/OnlineEntitySearch` (no login). Name availability at `/NameAvailabilitySearch` (no login). Filing requires UtahID login (OAuth). | Name search accessible without login. Modern web app (not ASP.NET). Filing requires UtahID OAuth. | --- ## Tier 3: Portal Requires Account/Login | State | Code | Portal | Login Type | What's Needed | |-------|------|--------|------------|---------------| | **Texas** | TX | direct.sos.state.tx.us | SOSDirect account (client_id + password) | Regular subscription for filing. Temporary login available for searches (credit card required). Need to create SOSDirect account. Password expires every 90 days. | | **Utah** | UT | secure.utah.gov | UtahID (OAuth) | Filing requires creating a UtahID account. Name search works without login. | --- ## Tier 4: Portal Blocks Non-Browser Requests (Need Playwright) These portals returned 403 or similar when fetched without a real browser. Playwright with stealth settings should work for these. | State | Code | Portal URL | HTTP Status | Notes | |-------|------|-----------|-------------|-------| | **Florida** | FL | search.sunbiz.org | 403 | Blocks curl/fetch. Playwright should work. | | **Ohio** | OH | businesssearch.ohiosos.gov | 403 | Same — blocks non-browser requests. | | **California** | CA | businesssearch.sos.ca.gov | Connection refused | URL may have changed. Try bizfileonline.sos.ca.gov. | --- ## Tier 5: WAF/Anti-Bot Protection | State | Code | Portal | Protection | What's Needed | |-------|------|--------|-----------|---------------| | **Nevada** | NV | esos.nv.gov | Incapsula/Imperva WAF | Returns Incapsula challenge page. Need Playwright with advanced stealth (random delays, mouse movements, browser fingerprint randomization). May need residential proxy. | --- ## Tier 6: Not Yet Researched (37 States) | State | Code | Known Portal URL | Priority | |-------|------|-----------------|----------| | Alabama | AL | sos.alabama.gov | Low | | Alaska | AK | commerce.alaska.gov | Medium (check Socrata) | | Arizona | AZ | ecorp.azcc.gov | Medium | | Arkansas | AR | biz.sos.arkansas.gov | Low | | Connecticut | CT | service.ct.gov | Medium (check Socrata) | | Georgia | GA | ecorp.sos.ga.gov | Medium | | Hawaii | HI | hbe.ehawaii.gov | Low | | Idaho | ID | sosbiz.idaho.gov | Low | | Illinois | IL | apps.ilsos.gov | Medium (check Socrata) | | Indiana | IN | bsd.sos.in.gov | Low | | Iowa | IA | sos.iowa.gov | Medium (check Socrata) | | Kansas | KS | kansas.gov/bess | Low | | Kentucky | KY | app.sos.ky.gov | Low | | Louisiana | LA | coraweb.sos.la.gov | Low | | Maine | ME | icrs.informe.org | Low | | Maryland | MD | egov.maryland.gov | Low | | Massachusetts | MA | corp.sec.state.ma.us | Low | | Michigan | MI | cofs.lara.state.mi.us | Medium (check Socrata) | | Minnesota | MN | mblsportal.sos.state.mn.us | Low | | Mississippi | MS | corp.sos.ms.gov | Low | | Missouri | MO | bsd.sos.mo.gov | Low | | Montana | MT | biz.sosmt.gov | Low | | Nebraska | NE | sos.nebraska.gov | Low | | New Hampshire | NH | quickstart.sos.nh.gov | Low | | New Jersey | NJ | njportal.com/dor | Low | | New Mexico | NM | portal.sos.state.nm.us | Medium | | New York | NY | appext20.dos.ny.gov | Medium (check Socrata) | | North Carolina | NC | sosnc.gov | Low | | North Dakota | ND | firststop.sos.nd.gov | Low | | Oklahoma | OK | sos.ok.gov | Low | | Oregon | OR | egov.sos.state.or.us | Medium (check Socrata) | | Pennsylvania | PA | file.dos.pa.gov | Medium (check Socrata) | | Rhode Island | RI | business.sos.ri.gov | Low | | South Carolina | SC | businessfilings.sc.gov | Low | | South Dakota | SD | sosenterprise.sd.gov | Low | | Tennessee | TN | tnbear.tn.gov | Low | | Vermont | VT | bizfilings.vermont.gov | Medium (check Socrata) | | Virginia | VA | cis.scc.virginia.gov | Medium | | Washington | WA | ccfs.sos.wa.gov | Medium (check Socrata) | | West Virginia | WV | apps.wv.gov | Low | | Wisconsin | WI | apps.dfi.wi.gov | Low | | DC | DC | corponline.dcra.dc.gov | Low | --- ## BC (British Columbia, Canada) | State | Code | Name Search | Filing | Portal | Notes | |-------|------|-------------|--------|--------|-------| | **BC** | BC | Stubbed | Stubbed | corporateonline.gov.bc.ca | Part of Canada CRTC Carrier Package ($3,899). BC Registry uses Corporate Online portal (anonymous — no login required). Name reservation via bcregistrynames.gov.bc.ca. COLIN selectors need live session verification (Steps 5-12). | BC adapter also handles (14-step pipeline in `services/canada_crtc.py`): - Anytime Mailbox setup (329 Howe St, Vancouver) — implemented (Playwright + IMAP OTP) - .ca domain provisioning via HestiaCP (cp.carrierone.com) — implemented - Canadian DID via Flowroute — implemented - CRTC registration letter — implemented (DOCX → MinIO → DocServer PDF) - eSign portal — implemented (canvas signature, JWT auth, 72h expiry) - BITS registration — implemented (Step 11: GCKey provisioning + admin ToDo) - CCTS membership — implemented (Step 12: admin ToDo + client obligations email) - Compliance calendar — implemented (Step 13: 17 entries — regulatory + tax + ATS) - Corporate binder compilation — implemented (pikepdf + reportlab) - GCKey provisioning — implemented (Playwright 5-step wizard, hCaptcha handling) - Renewal lifecycle — implemented (renewal_worker.py daily cron) ### GCKey Automation Details | Step | Status | Notes | |------|--------|-------| | Step 1 — Terms | **Verified** | `input[name=_eventId_accept]`, no CAPTCHA | | Step 2 — Username | **Verified** | `input[name=uid][id=userID]`, hCaptcha invisible (sitekey mapped) | | Step 3 — Password | Inferred | `input[type=password]` fields, hCaptcha likely | | Step 4 — Security Q&A | Inferred | `select` dropdowns + text answer fields | | Step 5 — Email/Confirm | Inferred | email field + submit | hCaptcha solver integration stubbed — needs 2captcha/CapSolver API key for production. --- ## Filing Barriers (Universal) These barriers apply to ALL states once name search is working: 1. **Payment processing** — Every state requires payment for filing. Most accept credit card via web form. Automating credit card entry requires PCI considerations. Options: - Pre-funded SOSDirect-style accounts (TX, some others) - Credit card entry via Playwright (risky, PCI compliance concern) - Manual payment step (admin enters card in browser, automation fills rest) 2. **Document upload** — Some states require uploading signed Articles of Organization as PDF. Others have online forms that generate the document. 3. **Registered agent acceptance** — Some states require the RA to accept/confirm before filing completes. NW RA may handle this automatically for their wholesale partners. 4. **Publication requirements** — AZ and NY require newspaper publication after filing. This is a manual/semi-manual step that cannot be fully automated. --- ## Priority Implementation Order Based on formation volume and customer demand: 1. **Wyoming** (WY) — Selectors verified, highest priority. No CAPTCHA. 2. **Colorado** (CO) — API working for name search. Need filing automation. 3. **Delaware** (DE) — Selectors verified but CAPTCHA blocks automation. Need solving service. 4. **Florida** (FL) — High demand. Needs Playwright (403 from curl). No CAPTCHA expected. 5. **Texas** (TX) — High demand. Need SOSDirect account. Temporary login for searches. 6. **Nevada** (NV) — High demand for privacy. WAF blocks. Need stealth Playwright. 7. **Utah** (UT) — Name search without login. Cheapest state. Filing needs UtahID. 8. **New Mexico** (NM) — Cheap, no annual fees. Untested portal. 9. **Ohio** (OH) — No annual fees. Needs Playwright (403). 10. **Montana** (MT) — Cheapest LLC ($35). Untested portal. --- ## Next Steps ### Immediate (this session) - [x] Verify Colorado Socrata API (CONFIRMED WORKING) - [x] Extract Delaware selectors from live HTML - [x] Extract Texas login requirements - [x] Document Utah portal structure - [ ] Test Wyoming name search via Playwright - [ ] Search Socrata domains for more API-accessible states ### Short-term (next session) - [ ] Set up 2captcha or anticaptcha integration for Delaware - [ ] Create SOSDirect account for Texas - [ ] Create UtahID account for Utah - [ ] Fetch and extract selectors for FL, NV, CA, OH via Playwright - [ ] Test name search on WY, UT, FL, OH via Playwright ### Medium-term - [ ] Implement filing automation for WY (first state to go live) - [ ] Implement filing automation for CO (second, API head start) - [ ] Set up CAPTCHA solving for DE - [ ] Research and extract selectors for remaining 37 states ### Long-term - [ ] Complete all 52 jurisdiction name search implementations (50 states + DC + BC) - [ ] Complete all 52 jurisdiction filing implementations - [ ] Handle payment step for each state - [ ] Set up monitoring for portal changes (selectors break when states update their sites)