{
  "openapi": "3.0.1",
  "info": {
    "title": "New York State Bar Attorney Scraper — License Lookup & Leads",
    "description": "Every attorney on the New York bar register: name, bar number, status, firm, firm head-count, phone, business address, county, law school and admission year. Filter to solo and small firms, a county or an admission-year cohort — or look up a registration number to verify a licence. No API key.",
    "version": "0.1",
    "x-build-id": "zhAixDGOulMRek0Dq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~state-bar-attorney-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-state-bar-attorney-scraper",
        "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/scrapersdelight~state-bar-attorney-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-state-bar-attorney-scraper",
        "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/scrapersdelight~state-bar-attorney-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-state-bar-attorney-scraper",
        "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": {
          "statuses": {
            "title": "Registration statuses",
            "type": "array",
            "description": "Which registration statuses to return. Counts are live rows in the New York file. Leave empty for all 432,690 registrations — which includes 49,199 deceased attorneys, so do that deliberately. Ignored when you look up a registration number in Step 2: a licence check always searches every status.",
            "items": {
              "type": "string",
              "enum": [
                "Currently registered",
                "Due to reregister within 30 days of birthday",
                "Deceased",
                "Suspended, delinquent",
                "Delinquent",
                "Resigned",
                "Disbarred",
                "Incapacitated",
                "Suspended, currently registered",
                "Resigned from bar - disciplinary reason",
                "Suspended, due to reregister"
              ],
              "enumTitles": [
                "Currently registered — 293,648 (the sellable population)",
                "Due to reregister within 30 days of birthday — 40,415",
                "Deceased — 49,199 (11.4% of the file)",
                "Suspended, delinquent — 19,097",
                "Delinquent — 16,492",
                "Resigned — 7,136",
                "Disbarred — 2,190",
                "Incapacitated — 1,904",
                "Suspended, currently registered — 1,405",
                "Resigned from bar - disciplinary reason — 718",
                "Suspended, due to reregister — 486"
              ]
            }
          },
          "withContactOnly": {
            "title": "Only attorneys with contact details",
            "type": "boolean",
            "description": "Keep only records that carry a phone number or a street address. 251,320 of the 293,648 currently-registered attorneys (85.6%) do, and within that slice phone fill is 100%. With this off and all statuses on, the first 1,500 rows of a live run came back at 28.2% phone — so leaving it on is worth roughly 3.5x on every contact field. New York publishes NO email address for any attorney; phone and postal mail are the channels here. Ignored during a registration-number lookup.",
            "default": true
          },
          "registrationNumbers": {
            "title": "Registration (bar) numbers",
            "type": "array",
            "description": "New York attorney registration numbers, e.g. 1000629. Non-digits are stripped, so \"No. 1000629\" works. Returns one row per number with status, admission year, firm and address. If a number is not in the registry at all the run finishes with a NOT FOUND status message naming it — that is the verification answer, and you are not charged for it because no row was delivered.",
            "items": {
              "type": "string"
            }
          },
          "lastNames": {
            "title": "Last names",
            "type": "array",
            "description": "Exact surnames as New York publishes them, matched case-insensitively — e.g. BRODY returns 93 registrations across all statuses. Combine with a first-name check after export, or with the county and city filters below to narrow. This is an exact match, not a prefix or fuzzy match: SMITH will not return SMITHERS.",
            "items": {
              "type": "string"
            }
          },
          "counties": {
            "title": "Counties",
            "type": "array",
            "description": "New York counties of the attorney's registered business address. Only 135,579 attorneys have a county — 53.9% of the 251,320-row default slice, and 46.2% of all 293,648 currently-registered attorneys — because the field is only populated for in-state addresses, so a county filter silently excludes every out-of-state attorney. Leave empty for everywhere.",
            "items": {
              "type": "string",
              "enum": [
                "New York",
                "Nassau",
                "Westchester",
                "Kings",
                "Suffolk",
                "Queens",
                "Erie",
                "Albany",
                "Monroe",
                "Bronx",
                "Onondaga",
                "Rockland",
                "Richmond",
                "Orange",
                "Dutchess",
                "Saratoga",
                "Ulster",
                "Oneida",
                "Broome",
                "Schenectady",
                "Rensselaer",
                "Tompkins",
                "Niagara",
                "Putnam",
                "Ontario",
                "Warren",
                "Chautauqua",
                "Columbia",
                "Sullivan",
                "Steuben",
                "Chemung",
                "Jefferson",
                "St. Lawrence",
                "Oswego",
                "Clinton",
                "Cayuga",
                "Otsego",
                "Essex",
                "Genesee",
                "Cattaraugus",
                "Greene",
                "Livingston",
                "Madison",
                "Cortland",
                "Wayne",
                "Montgomery",
                "Delaware",
                "Fulton",
                "Franklin",
                "Washington",
                "Wyoming",
                "Herkimer",
                "Allegany",
                "Chenango",
                "Schoharie",
                "Seneca",
                "Schuyler",
                "Tioga",
                "Orleans",
                "Lewis",
                "Yates",
                "Hamilton"
              ],
              "enumTitles": [
                "New York (Manhattan) — 77,761",
                "Nassau — 9,869",
                "Westchester — 7,469",
                "Kings (Brooklyn) — 6,014",
                "Suffolk — 5,975",
                "Queens — 4,272",
                "Erie (Buffalo) — 4,225",
                "Albany — 3,798",
                "Monroe (Rochester) — 2,513",
                "Bronx — 2,146",
                "Onondaga (Syracuse) — 1,792",
                "Rockland — 997",
                "Richmond (Staten Island) — 915",
                "Orange — 786",
                "Dutchess — 768",
                "Saratoga — 534",
                "Ulster — 435",
                "Oneida — 411",
                "Broome — 386",
                "Schenectady — 348",
                "Rensselaer — 347",
                "Tompkins — 290",
                "Niagara — 288",
                "Putnam — 242",
                "Ontario — 238",
                "Warren — 185",
                "Chautauqua — 176",
                "Columbia — 168",
                "Sullivan — 153",
                "Steuben — 125",
                "Chemung — 123",
                "Jefferson — 114",
                "St. Lawrence — 109",
                "Oswego — 105",
                "Clinton — 102",
                "Cayuga — 97",
                "Otsego — 96",
                "Essex — 84",
                "Genesee — 82",
                "Cattaraugus — 80",
                "Greene — 75",
                "Livingston — 66",
                "Madison — 64",
                "Cortland — 64",
                "Wayne — 64",
                "Montgomery — 60",
                "Delaware — 60",
                "Fulton — 58",
                "Franklin — 57",
                "Washington — 53",
                "Wyoming — 44",
                "Herkimer — 43",
                "Allegany — 40",
                "Chenango — 40",
                "Schoharie — 28",
                "Seneca — 26",
                "Schuyler — 26",
                "Tioga — 24",
                "Orleans — 22",
                "Lewis — 20",
                "Yates — 17",
                "Hamilton — 10"
              ]
            }
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Business-address cities, matched case-insensitively so you do not have to guess the casing New York used (the file holds both NEW YORK and New York). Largest: NEW YORK 73,613 + 3,803 · WASHINGTON 9,252 · BROOKLYN 5,530 · ALBANY 3,027 · BUFFALO 2,783 · WHITE PLAINS 2,646. Free text because there are thousands. Empty = all cities.",
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "States (business address)",
            "type": "array",
            "description": "Two-letter state of the attorney's registered business address — New York attorneys practise everywhere. Currently-registered counts: NY 135,581 · NJ 12,834 · DC 10,557 · CA 10,119 · FL 6,222 · MA 4,318 · CT 4,315. 81,354 currently-registered rows carry no state at all, so this filter drops them. Empty = all states.",
            "items": {
              "type": "string",
              "enum": [
                "NY",
                "NJ",
                "DC",
                "CA",
                "FL",
                "MA",
                "CT",
                "TX",
                "PA",
                "VA",
                "IL",
                "MD",
                "GA",
                "CO",
                "WA",
                "AZ",
                "NC",
                "OH",
                "MI",
                "MN",
                "TN",
                "MO",
                "IN",
                "WI",
                "OR",
                "SC",
                "LA",
                "KY",
                "OK",
                "AL",
                "UT",
                "NV",
                "KS",
                "IA",
                "AR",
                "MS",
                "NE",
                "NM",
                "NH",
                "ME",
                "RI",
                "VT",
                "DE",
                "WV",
                "HI",
                "ID",
                "MT",
                "ND",
                "SD",
                "AK",
                "WY",
                "PR",
                "VI",
                "GU"
              ],
              "enumTitles": [
                "NY — New York (135,581)",
                "NJ — New Jersey (12,834)",
                "DC — District of Columbia (10,557)",
                "CA — California (10,119)",
                "FL — Florida (6,222)",
                "MA — Massachusetts (4,318)",
                "CT — Connecticut (4,315)",
                "TX — Texas (3,526)",
                "PA — Pennsylvania (3,310)",
                "VA — Virginia (2,634)",
                "IL — Illinois (2,304)",
                "MD — Maryland",
                "GA — Georgia",
                "CO — Colorado",
                "WA — Washington",
                "AZ — Arizona",
                "NC — North Carolina",
                "OH — Ohio",
                "MI — Michigan",
                "MN — Minnesota",
                "TN — Tennessee",
                "MO — Missouri",
                "IN — Indiana",
                "WI — Wisconsin",
                "OR — Oregon",
                "SC — South Carolina",
                "LA — Louisiana",
                "KY — Kentucky",
                "OK — Oklahoma",
                "AL — Alabama",
                "UT — Utah",
                "NV — Nevada",
                "KS — Kansas",
                "IA — Iowa",
                "AR — Arkansas",
                "MS — Mississippi",
                "NE — Nebraska",
                "NM — New Mexico",
                "NH — New Hampshire",
                "ME — Maine",
                "RI — Rhode Island",
                "VT — Vermont",
                "DE — Delaware",
                "WV — West Virginia",
                "HI — Hawaii",
                "ID — Idaho",
                "MT — Montana",
                "ND — North Dakota",
                "SD — South Dakota",
                "AK — Alaska",
                "WY — Wyoming",
                "PR — Puerto Rico",
                "VI — U.S. Virgin Islands",
                "GU — Guam"
              ]
            }
          },
          "maxFirmSize": {
            "title": "Max attorneys at the firm",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Keep only attorneys whose firm has at most this many currently-registered New York attorneys. 1 = solo practitioners · 5 = solo and small firms, the ICP for every practice-management SaaS (115,242 attorneys measured 2026-08-12) · 20 = boutiques and below. Attorneys who list no firm at all are always kept — they are typically solos or in-house counsel. Leave empty to include BigLaw: Kirkland & Ellis alone has 1,242 registered New York attorneys."
          },
          "admittedFromYear": {
            "title": "Admitted from year",
            "minimum": 1898,
            "maximum": 2100,
            "type": "integer",
            "description": "Only attorneys admitted in or after this year. Set it to the current year for the newly-admitted cohort — currently-registered counts are 2026: 4,988 · 2025: 9,763 · 2024: 7,117. Costs nothing extra: the filter runs server-side, so you fetch only the rows you are billed for."
          },
          "admittedToYear": {
            "title": "Admitted to year",
            "minimum": 1898,
            "maximum": 2100,
            "type": "integer",
            "description": "Only attorneys admitted in or before this year. Use with the field above for a cohort (e.g. 2018-2020), or alone to find long-tenured attorneys for succession, retirement and law-firm M&A outreach. The registry goes back to 1898."
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many attorneys. 1,000 = $3.00. The whole default slice (251,320 currently-registered attorneys with contact details) = $753.96. Rows dropped by your filters are never delivered and never charged.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave this off. data.ny.gov is New York's public open-data API: no key, no login, no anti-bot and no geo gate, measured at 16/16 requests OK direct from an Apify container. A proxy here only adds a failure mode. Set it only if your account needs a fixed egress IP."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}