{
  "openapi": "3.0.1",
  "info": {
    "title": "UK Barrister Register Scraper",
    "description": "Scrape the Bar Standards Board's official Barristers' Register for England & Wales. Search by name or chambers, filter by practising status/area of practice/public access, browse past disciplinary findings and interim suspensions, or enrich barrister URLs directly.",
    "version": "1.0",
    "x-build-id": "cdNe27PuvxvxfEmcx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~uk-barrister-register-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-uk-barrister-register-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/crawlerbros~uk-barrister-register-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-uk-barrister-register-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/crawlerbros~uk-barrister-register-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-uk-barrister-register-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "disciplinaryFindings",
              "interimSuspensions",
              "byUrl",
              "entities"
            ],
            "type": "string",
            "description": "What to fetch from the Bar Standards Board register.",
            "default": "search"
          },
          "searchQuery": {
            "title": "Search query (mode=search, disciplinaryFindings, entities)",
            "type": "string",
            "description": "For mode=search: barrister name or chambers/organisation name (required). For mode=disciplinaryFindings: optional barrister name filter — leave empty to browse all findings. For mode=entities: optional entity/trading name filter — leave empty to include all entities.",
            "default": ""
          },
          "searchField": {
            "title": "Search by (mode=search)",
            "enum": [
              "name",
              "organisation"
            ],
            "type": "string",
            "description": "Whether `searchQuery` matches the barrister's name or their chambers/organisation.",
            "default": "name"
          },
          "registerView": {
            "title": "Register view (mode=search)",
            "enum": [
              "practising",
              "sanctionedNonPractising"
            ],
            "type": "string",
            "description": "`Practising` = currently authorised practising barristers. `Sanctioned non-practising` = barristers disbarred or otherwise sanctioned who are no longer authorised to practise.",
            "default": "practising"
          },
          "practisingStatus": {
            "title": "Practising status filter (mode=search)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict to barristers with these practising statuses. Leave empty for all statuses. Only applies to the Practising register view.",
            "items": {
              "type": "string",
              "enum": [
                "dual-capacity",
                "employed",
                "self-employed"
              ],
              "enumTitles": [
                "Dual Capacity",
                "Employed",
                "Self Employed"
              ]
            },
            "default": []
          },
          "areasOfPractice": {
            "title": "Areas of practice filter (mode=search)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict to barristers practising in ANY of these areas of law. Leave empty for all areas. Only applies to the Practising register view.",
            "items": {
              "type": "string",
              "enum": [
                "admiralty",
                "arbitrator-or-umpire-or-mediator",
                "chancery-contentious",
                "chancery-non-contentious",
                "commercial-and-financial-services-1",
                "competition",
                "construction",
                "crime",
                "defamation",
                "employment",
                "european",
                "family-children",
                "family-other",
                "immigration",
                "insolvency",
                "intellectual-property",
                "international",
                "landlord-tenant-non-residential",
                "landlord-tenant-residential",
                "licensing",
                "other",
                "other-common-law",
                "personal-injury",
                "planning",
                "professional-discipline",
                "professional-negligence",
                "public-law-1",
                "revenue"
              ],
              "enumTitles": [
                "Admiralty",
                "Arbitrator, umpire or mediator",
                "Chancery (contentious)",
                "Chancery (non-contentious)",
                "Commercial and Financial Services",
                "Competition",
                "Construction",
                "Crime",
                "Defamation",
                "Employment",
                "European",
                "Family - children",
                "Family - other",
                "Immigration",
                "Insolvency",
                "Intellectual property",
                "International",
                "Landlord & tenant (non-residential)",
                "Landlord & tenant (residential)",
                "Licensing",
                "Other",
                "Other common law",
                "Personal injury",
                "Planning",
                "Professional discipline",
                "Professional negligence",
                "Public Law",
                "Revenue"
              ]
            },
            "default": []
          },
          "publicAccessRegistered": {
            "title": "Public Access registered (mode=search)",
            "enum": [
              "any",
              "yes",
              "no"
            ],
            "type": "string",
            "description": "Filter by whether the barrister is registered to accept work directly from the public (Public Access scheme).",
            "default": "any"
          },
          "authorisedToConductLitigation": {
            "title": "Authorised to conduct litigation (mode=search)",
            "enum": [
              "any",
              "yes",
              "no"
            ],
            "type": "string",
            "description": "Filter by whether the barrister is authorised to conduct litigation.",
            "default": "any"
          },
          "sortOrder": {
            "title": "Sort order (mode=disciplinaryFindings)",
            "enum": [
              "recent",
              "relevance"
            ],
            "type": "string",
            "description": "How to order the disciplinary findings listing.",
            "default": "recent"
          },
          "findingStatus": {
            "title": "Finding status filter (mode=disciplinaryFindings)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict to disciplinary findings with these statuses. Leave empty for all statuses.",
            "items": {
              "type": "string",
              "enum": [
                "final",
                "openToAppeal",
                "appealPending"
              ],
              "enumTitles": [
                "Final",
                "Open to Appeal",
                "Appeal Pending"
              ]
            },
            "default": []
          },
          "disciplinaryActionType": {
            "title": "Disciplinary action type filter (mode=disciplinaryFindings)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict to findings with ANY of these sanction types. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "disbarment",
                "fine",
                "other",
                "suspension"
              ],
              "enumTitles": [
                "Disbarment",
                "Fine",
                "Other",
                "Suspension"
              ]
            },
            "default": []
          },
          "findingType": {
            "title": "Hearing type filter (mode=disciplinaryFindings)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict to findings from ANY of these hearing types. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "determination-by-consent",
                "disciplinary-tribunal-3-person",
                "disciplinary-tribunal-5-person",
                "visitors-hearing-appeal"
              ],
              "enumTitles": [
                "Determination By Consent",
                "Disciplinary Tribunal (3 person)",
                "Disciplinary Tribunal (5 Person)",
                "Visitors Hearing (appeal)"
              ]
            },
            "default": []
          },
          "findingDateRange": {
            "title": "Finding date range (mode=disciplinaryFindings)",
            "enum": [
              "",
              "pastMonth",
              "pastYear",
              "custom"
            ],
            "type": "string",
            "description": "Restrict findings to a decision-date window. `custom` uses `findingDateFrom`/`findingDateTo`.",
            "default": ""
          },
          "findingDateFrom": {
            "title": "Finding date from (mode=disciplinaryFindings, findingDateRange=custom)",
            "type": "string",
            "description": "Start of the custom decision-date range, format `YYYY-MM-DD` (e.g. `2020-01-01`)."
          },
          "findingDateTo": {
            "title": "Finding date to (mode=disciplinaryFindings, findingDateRange=custom)",
            "type": "string",
            "description": "End of the custom decision-date range, format `YYYY-MM-DD` (e.g. `2020-12-31`)."
          },
          "entityStatus": {
            "title": "Entity status filter (mode=entities)",
            "uniqueItems": true,
            "type": "array",
            "description": "Restrict to BSB-regulated entities with these authorisation statuses. Leave empty for all statuses.",
            "items": {
              "type": "string",
              "enum": [
                "authorised",
                "licensed",
                "previouslyAuthorised"
              ],
              "enumTitles": [
                "Currently authorised (BSB Authorised Body)",
                "Currently licensed (BSB Licensed Body / ABS)",
                "Previously authorised (no longer regulated)"
              ]
            },
            "default": []
          },
          "startUrls": {
            "title": "Barrister / finding URLs (mode=byUrl)",
            "type": "array",
            "description": "Full barstandardsboard.org.uk barrister-register or disciplinary_finding URLs to fetch directly.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "fetchFullProfile": {
            "title": "Fetch full profile details",
            "type": "boolean",
            "description": "For mode=search and mode=disciplinaryFindings: fetch each record's full detail page for additional fields (chambers address, areas of practice, rights of audience, breach/offence details, etc). Uses one extra HTTP request per record.",
            "default": true
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on the number of records emitted in this run.",
            "default": 30
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}