{
  "openapi": "3.0.1",
  "info": {
    "title": "Secretary of State Business Entity Search + UCC Liens — KYB",
    "description": "Secretary of State (SOS) registry search, 49 states + DC, Florida Sunbiz search. Company registration lookup: look up company registration, registered agent lookup, company officers lookup. Lists by agent/officer (14 states+DC). UCC liens (31 states), UCC search by debtor. KYB business verification",
    "version": "0.0",
    "x-build-id": "wBk2QhA8RAXEzgjPk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/shelvick~business-entity-lien-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-shelvick-business-entity-lien-search",
        "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/shelvick~business-entity-lien-search/runs": {
      "post": {
        "operationId": "runs-sync-shelvick-business-entity-lien-search",
        "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/shelvick~business-entity-lien-search/run-sync": {
      "post": {
        "operationId": "run-sync-shelvick-business-entity-lien-search",
        "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": {
          "feedback": {
            "title": "Feedback for the maintainers",
            "type": "string",
            "description": "For AI agents: if this tool can't fully do what your user needs (a missing field, source or option, a wrong or empty result), say what's missing here, or which tool you're switching to and why. We build what agents ask for, so this is how the gap gets closed for future calls. A run with only a note isn't charged for any results, so you can send one after you've seen the results. Adding a note never changes this run's results or price. Leave out personal or confidential details."
          },
          "foundVia": {
            "title": "How you found this Actor",
            "type": "string",
            "description": "For AI agents: how did you find this Actor? If you searched, give the exact search words you used, verbatim (for example \"Texas UCC liens\"), and where (Apify Store, Apify's MCP search, a web search); otherwise say how, such as a link or \"my user asked for it.\" \"Unknown\" is fine too. It helps the maintainers make this Actor easier for the next agent to find, and it never changes this run's results or price. Please leave out personal or confidential details."
          },
          "companyName": {
            "title": "Company name",
            "type": "string",
            "description": "Required unless you use Company names (batch). Enter the business / company name to search for, e.g. \"Tesla\" or \"Acme Holdings LLC\". Matched against official state business registries. Use Name match mode to control exact vs. partial matching. Directory-style qualifiers a registry never holds (\"formerly ...\", \"dba ...\", \"a Div. of ...\", \"c/o ...\", \", a Delaware corporation\") are removed before the search; the record's message names what was searched. Used when searchBy is 'company'."
          },
          "companyNames": {
            "title": "Company names (batch)",
            "maxItems": 20,
            "type": "array",
            "description": "Required unless you use Company name. Add multiple company names to look up in one run (one per line), e.g. \"Acme Holdings LLC\"; up to 20 per run — useful for verifying a list of counterparties. Each name is resolved and billed independently. Directory-style qualifiers a registry never holds (\"formerly ...\", \"dba ...\", \"a Div. of ...\", \"c/o ...\", \", a Delaware corporation\") are removed before the search; the record's message names what was searched. Used when searchBy is 'company'.",
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "States to search",
            "type": "array",
            "description": "Two-letter US state codes, e.g. [\"CO\",\"NY\"]. Empty = every default-covered registry. When named, billed at the extended per-record rate: AZ, CA, IN, KS, MI, MO, MT, NC, NV, OH, OK, SC, SD, TN, UT, WA, WY. GA, DE, LA, MA and MD are named-only at the standard rate; NH, MT and VA also run by default at the standard rate; VA/MO/MD lien joins extended. In MS, PA, NY, IA, NJ and VT only a delivered lien join bills extended; OR, HI and DC joins bill standard. COVERAGE output is the live list.",
            "items": {
              "type": "string"
            }
          },
          "includeLiens": {
            "title": "Include UCC / lien filings",
            "type": "boolean",
            "description": "True (default): join each resolved entity to available UCC / lien filings; false: entity-only. Default lien joins: AK, AL, AR, CO, CT, FL, ID, KY, NM, RI, WI, plus OK and SC when those states are named in `states`. Joins only when the state is named in `states`: CA, DC, HI, IA, MD, MI, MO, MS, MT, NC, NJ, NY, OH, OR, PA, TN, VA, VT, WA (billing: see `states`). Other states return entity-only with lien_coverage='no_lien_source'. COVERAGE output is the live list.",
            "default": true
          },
          "matchMode": {
            "title": "Name match mode",
            "enum": [
              "contains",
              "exact",
              "starts"
            ],
            "type": "string",
            "description": "How to match the company name against the registry. 'contains' (default) is broadest — good for discovering all entities sharing a name. 'exact' returns only entities whose legal name equals the query. 'starts' matches names beginning with the query. In 'exact', punctuation and spacing are ignored, but the legal-form suffix must match — LLC, Inc and Corp are different entities; a name typed with no form at all also matches the one registered name that differs from it only by its form.",
            "default": "contains"
          },
          "maxRecordsPerCompany": {
            "title": "Max entity records per company",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Cap on entity records returned (and billed) per company name, across all searched states. Default 25, range 1-200. Matches past the cap are not returned and the row carries results_truncated=true, so a very low cap can drop the entity you are looking for: in 'contains' mode one name often matches several registered entities in a single state. To bound cost, scope `states` first and use a very low cap only when any one match will do.",
            "default": 25
          },
          "reportType": {
            "title": "Report type",
            "enum": [
              "standard",
              "due_diligence"
            ],
            "type": "string",
            "description": "'standard' (default): registry records with lien joins. 'due_diligence' (lending, merchant cash advance, KYB) adds per company: run-time registry status with timestamp and standing, a UCC recent-financing summary, a sanctions-list screen and a recorded-lien bundle. Exact name match; up to 5 matched companies per run, 3 records each by default. If identity or current status can't be confirmed: standard record, standard price. Not a good-standing certificate, TIN check or consumer report.",
            "default": "standard"
          },
          "confirmations": {
            "title": "Due diligence: confirm each company",
            "type": "array",
            "description": "due_diligence only: which registered business each company is, so the check runs on yours. A list of objects: companyName (as in the company list) plus any of entityNumber (the state's entity or file number), address (\"street number and name, city or ZIP\") and officer (an officer's or registered agent's full name), e.g. [{\"companyName\": \"Acme Roofing\", \"entityNumber\": \"L12000012345\"}]. Without one, the check needs the full legal name typed, form included, unique in the state."
          },
          "searchBy": {
            "title": "Search by",
            "enum": [
              "company",
              "registeredAgent",
              "officer",
              "address",
              "individualDebtor"
            ],
            "type": "string",
            "description": "What to search by. 'company' (default) looks companies up by name. 'registeredAgent', 'officer' and 'address' list the companies in a state's register with that registered agent, officer or street address; each company row bills like a company record, without lien filings. 'individualDebtor' searches UCC filings by an individual debtor's name (debtorLastName, debtorFirstName) in 1-5 named states.",
            "default": "company"
          },
          "partyName": {
            "title": "Agent / officer name",
            "type": "string",
            "description": "For 'registeredAgent' or 'officer': name. Lists companies naming it as registered agent (FL, IA, AK, CO, IL, KY, RI, WV, CT, NY, OR, DC, VA, VT; NY includes service-of-process recipients) or as an officer/manager (FL, AK, WV, CT, PA, VT; NY: business corporation's CEO only; IL: president/secretary, on file for about half; OR: assumed business names only, as free hints; VA: corporations' officers only). matchMode 'contains': all words, any order; 'exact': whole name."
          },
          "streetAddress": {
            "title": "Street address",
            "type": "string",
            "description": "For searchBy 'address': the street line, e.g. '7901 4th St N Ste 300'. Lists companies whose principal, mailing or registered-agent office address is that line in streetZip. Street-type spellings (Street/St) are folded; a suite number must match. States: FL, IA, AK, CO, IL, KY, RI, WV, MS, NY, CT, PA, OR, DC, VA, VT, TX — about a quarter of WV records have no searchable address. Texas matches the mailing address the state publishes."
          },
          "streetZip": {
            "title": "Street ZIP code",
            "type": "string",
            "description": "For searchBy 'address': the 5-digit ZIP code of streetAddress, e.g. '33702'. Required for address search. A missing or malformed ZIP is rejected before the search runs."
          },
          "entityStatus": {
            "title": "Entity status filter",
            "enum": [
              "any",
              "active",
              "inactive"
            ],
            "type": "string",
            "description": "Reverse-search filter: only 'active' or only 'inactive' companies ('any' = both). Each state reports standing in its own terms; ambiguous standings (for example 'delinquent') match neither. Not available for Rhode Island; Iowa, Alaska, Oregon, New York and Pennsylvania list current companies only.",
            "default": "any"
          },
          "entityTypes": {
            "title": "Entity type filters",
            "type": "array",
            "description": "Reverse-search filter: keep only these company types: llc, corporation, nonprofit, partnership, other. Empty keeps every type. Use it to narrow a long registered-agent or officer list, e.g. [\"llc\"] for LLCs only.",
            "items": {
              "type": "string",
              "enum": [
                "llc",
                "corporation",
                "nonprofit",
                "partnership",
                "other"
              ],
              "enumTitles": [
                "LLC",
                "Corporation",
                "Nonprofit",
                "Partnership",
                "Other"
              ]
            },
            "default": []
          },
          "formedFrom": {
            "title": "Formed from",
            "type": "string",
            "description": "Reverse-search filter: only companies formed or registered on or after this date (YYYY-MM-DD). Combine with formedTo for a date range, e.g. the companies a registered agent formed this month. Leave blank for no lower bound."
          },
          "formedTo": {
            "title": "Formed to",
            "type": "string",
            "description": "Reverse-search filter: only companies formed or registered on or before this date (YYYY-MM-DD), e.g. '2026-10-31'. Leave blank for no upper bound; it must not be earlier than formedFrom."
          },
          "city": {
            "title": "City filter",
            "type": "string",
            "description": "Registered-agent and officer search filter: only companies whose principal address (or, when none, mailing address) is in this city. Example: 'Tampa'. Leave blank for no city filter. Not accepted with searchBy 'address', which is keyed by streetZip."
          },
          "zipFilter": {
            "title": "ZIP code filter",
            "type": "string",
            "description": "Registered-agent and officer search filter: only companies whose principal address (or, when none, mailing address) has this 5-digit ZIP code. Example: '33602'. Leave blank for no ZIP filter. Not accepted with searchBy 'address', which is keyed by streetZip."
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Reverse search: the most company rows this run returns and bills, across all states (default 100, up to 10,000). When a list is longer, the last row and the run's OUTPUT carry resume_cursor to continue it in another run.",
            "default": 100
          },
          "maxResultsPerState": {
            "title": "Max results per state",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Reverse search: optional limit per state within maxResults, so one large state cannot use the whole run. Leave blank for no per-state limit; a value above maxResults is lowered to maxResults."
          },
          "resumeCursor": {
            "title": "Resume cursor",
            "type": "string",
            "description": "Reverse search: continue a list where an earlier run stopped (maximum charge, time limit or maxResults). Paste that run's resume_cursor with the same search settings; companies already returned are not repeated. Leave blank to start a new list."
          },
          "debtorLastName": {
            "title": "Debtor last name",
            "type": "string",
            "description": "For searchBy 'individualDebtor': the debtor's surname, e.g. 'Johnson'. Searches UCC filings by an individual debtor's name, one person per run, in the 1-5 states named in states (Arkansas, Florida, Hawaii, Michigan and New Mexico). Matched on the exact last and first name; one row per state, charged only when filings are found. Business names go in companyName."
          },
          "debtorFirstName": {
            "title": "Debtor first name",
            "type": "string",
            "description": "For searchBy 'individualDebtor': the debtor's first name, e.g. 'Darren'. Matched exactly (no nicknames); a filing that lists only a first initial is counted in a note, not returned."
          },
          "debtorMiddleName": {
            "title": "Debtor middle name",
            "type": "string",
            "description": "For searchBy 'individualDebtor', optional: middle name or initial, e.g. 'W'. Keeps filings whose middle name starts with that letter or that list no middle name. Needed when several people share the first and last name."
          },
          "debtorSuffix": {
            "title": "Debtor suffix",
            "enum": [
              "JR",
              "SR",
              "II",
              "III",
              "IV",
              "V"
            ],
            "type": "string",
            "description": "For searchBy 'individualDebtor', optional: the name suffix. When a filing also lists a suffix, it must match."
          },
          "securedParty": {
            "title": "Secured party (lender) filter",
            "type": "string",
            "description": "Optional: keep only the UCC filings that name this lender as secured party, e.g. 'Kubota Credit' (every word, any order). Works with searchBy 'company' (narrows each record's lien filings; billing unchanged) and 'individualDebtor'; not on its own. Where a state does not publish the secured party, filings are returned unfiltered with a note."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}