{
  "openapi": "3.0.1",
  "info": {
    "title": "FCA Register Scraper - UK Firms with Phone, Email & Website",
    "description": "Export UK FCA-authorised firms and appointed representatives from the Financial Services Register with phone, email and website, status, FRN, Companies House number, permissions and AR network. No FCA API key needed. $0.013 per firm with contact details.",
    "version": "0.1",
    "x-build-id": "r1nrNGRkNMFKoG56j"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~fca-register-firms-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-fca-register-firms-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~fca-register-firms-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-fca-register-firms-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~fca-register-firms-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-fca-register-firms-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": {
          "searchTerms": {
            "title": "Search terms (firm name keywords)",
            "type": "array",
            "description": "Words the FCA register's own search matches against firm names, e.g. mortgage, insurance, wealth, credit, payments, pensions, or a brand. Every matching firm is read, page by page, until Max firms is reached. The register searches NAMES (and FRNs), not postcodes or permissions — use the permission filters below for that. A word matching more than ~50,000 register rows (e.g. financial) is refused by the register itself and reported in RUN_SUMMARY.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "frns": {
            "title": "FRNs (Firm Reference Numbers)",
            "type": "array",
            "description": "Exact FCA Firm Reference Numbers to look up, e.g. 122702. Each is delivered whatever its status (the status is in the row). FRNs not on the register are reported in RUN_SUMMARY and never charged.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "principalFrns": {
            "title": "Principal firm FRNs (map their appointed-representative network)",
            "type": "array",
            "description": "FRNs of principal firms (networks such as mortgage or insurance networks). Every CURRENT appointed representative of each principal is returned as its own row, with its own phone, website and email and a link back to the principal. The permission filters do not apply here (ARs hold no permissions of their own).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "statusFilter": {
            "title": "Status",
            "enum": [
              "current",
              "former",
              "all"
            ],
            "type": "string",
            "description": "<b>current</b> keeps firms the register shows as Authorised, Registered, EEA Authorised, Authorised - applied to cancel or a current appointed representative. <b>former</b> keeps No longer authorised / Revoked / Cancelled / Unauthorised. <b>all</b> keeps both (entries with no status, e.g. 'No Status', only appear under all).",
            "default": "current"
          },
          "includeAppointedRepresentatives": {
            "title": "Include appointed representatives found by search",
            "type": "boolean",
            "description": "Appointed representatives (ARs) trade under a principal firm's authorisation and outnumber principals on the register. Off = search terms return directly authorised/registered firms only. On = ARs matching your terms are returned too. Principal FRNs above always return ARs.",
            "default": false
          },
          "permissionCategories": {
            "title": "Permission categories",
            "type": "array",
            "description": "Keep only firms holding a permission in one of these register categories, e.g. Consumer Credit, Insurance Distribution, Regulated Home Finance, Designated Investment Business, CBTL, Payment Services Directive, Second Electronic Money Directive, Claims Management, Accepting deposits, CryptoAssets. Case-insensitive, part of a name matches. Applied before any firm page is fetched, so it costs nothing. Empty = no filter.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "permissionContains": {
            "title": "Permitted activity contains",
            "type": "array",
            "description": "Keep only firms with a permitted activity whose name contains one of these words, e.g. mortgage, Credit Broking, Debt-counselling, pension, Arranging deals in investments, Managing investments. Combined with the categories above by AND. Empty = no filter.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "requireContact": {
            "title": "Required contact",
            "enum": [
              "any",
              "phone",
              "email",
              "website",
              "none"
            ],
            "type": "string",
            "description": "<b>any</b> = only firms that publish a phone, website or email on the register (the only rows ever charged). <b>phone</b> / <b>email</b> / <b>website</b> = only firms with that one. <b>none</b> = also deliver firms with no published contact, free of charge.",
            "default": "any"
          },
          "maxResults": {
            "title": "Max firms",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after delivering this many firms. 0 = no limit.",
            "default": 25
          },
          "includePermissions": {
            "title": "Include the full permissions list",
            "type": "boolean",
            "description": "Every permitted activity with its category. The categories list and permission count are always included.",
            "default": true
          },
          "includeTradingNames": {
            "title": "Include current and previous names",
            "type": "boolean",
            "description": "Registered and trading names with effective dates, and previous names with end dates. The current trading names list is always included.",
            "default": true
          },
          "includeAppointedRepresentativeList": {
            "title": "List a principal's appointed representatives on its row",
            "type": "boolean",
            "description": "On a principal firm's row, list its current ARs (name, FRN, type, effective date; up to 500). The AR count is always included.",
            "default": true
          },
          "includeDisciplinaryHistory": {
            "title": "Include disciplinary history details",
            "type": "boolean",
            "description": "Date, type and published text of each disciplinary action. The count is always included.",
            "default": false
          },
          "includeComplaintsContact": {
            "title": "Include the named complaints contact",
            "type": "boolean",
            "description": "The complaints contact the firm registered (name, job title, phone, email).",
            "default": false
          },
          "includeApprovedIndividuals": {
            "title": "Include approved individuals",
            "type": "boolean",
            "description": "Current approved/certified individuals (name, IRN, status, controlled functions; up to 500). The count is always included.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Firm pages fetched in parallel. The register is a shared public service; 4 is polite and fast.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "The register answers Apify's own network directly (measured 2026-09-23), so no proxy is needed. If the direct connection fails, the run escalates to Apify RESIDENTIAL (GB) once by itself.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}