{
  "openapi": "3.0.1",
  "info": {
    "title": "NFA BASIC Futures Broker, CTA, CPO & Swap Dealer Scraper",
    "description": "Scrape CFTC-registered futures firms and individuals from NFA BASIC: FCM, IB, CPO, CTA, swap dealer and forex dealer records with office address, phone, principals, 10% owners, disciplinary actions with fine amounts, funds and net-capital figures. Export to JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "5e0DMVvLgCnZg9IsY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~nfa-basic-futures-registrants-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-nfa-basic-futures-registrants-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/scrapers_lat~nfa-basic-futures-registrants-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-nfa-basic-futures-registrants-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/scrapers_lat~nfa-basic-futures-registrants-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-nfa-basic-futures-registrants-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": {
          "recordType": {
            "title": "What To Scrape",
            "enum": [
              "firms",
              "individuals",
              "pools"
            ],
            "type": "string",
            "description": "Firms = CFTC-registered companies (futures commission merchants, introducing brokers, commodity pool operators, commodity trading advisors, swap dealers, forex dealers). Individuals = associated persons and listed principals. Pools = commodity pools / managed futures funds together with the operator (CPO) that runs them.",
            "default": "firms"
          },
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "Firm, fund or person name keywords, one search per item (for example 'capital', 'Goldman Sachs', 'grain'). Matching is on word starts, so 'trading' finds 'HJS TRADING INC'. For Individuals, use 'Lastname' or 'Lastname, Firstname'. Leave empty to sweep the whole registry alphabetically.",
            "items": {
              "type": "string"
            }
          },
          "nfaIds": {
            "title": "NFA IDs",
            "type": "array",
            "description": "Optional. Look up exact NFA ID numbers directly (for example '0002014'). Leading zeros are added automatically. When given, these are fetched instead of running searches.",
            "items": {
              "type": "string"
            }
          },
          "registrationTypes": {
            "title": "Registration Types",
            "type": "array",
            "description": "Keep only registrants currently holding these CFTC registrations. Leave empty for every type.",
            "items": {
              "type": "string",
              "enum": [
                "Futures Commission Merchant",
                "Notice Futures Commission Merchant",
                "Introducing Broker",
                "Notice Introducing Broker",
                "Commodity Pool Operator",
                "Exempt Commodity Pool Operator",
                "Commodity Trading Advisor",
                "Exempt Commodity Trading Advisor",
                "Swap Dealer",
                "Retail Foreign Exchange Dealer",
                "Floor Trader Firm",
                "Exempt Foreign Firm"
              ]
            }
          },
          "membershipStatuses": {
            "title": "NFA Membership Status",
            "type": "array",
            "description": "Keep only registrants with these NFA membership statuses. 'NFA Member Approved' means an active, in-good-standing member. Leave empty for all statuses.",
            "items": {
              "type": "string",
              "enum": [
                "NFA Member Approved",
                "Pending NFA Member",
                "Not an NFA Member",
                "Permanent Withdrawal",
                "Permanent Bar",
                "Shall Not Reapply for NFA Membership Status",
                "Temporary - Shall Not Be Listed or Act as a Principal of an NFA Member"
              ]
            }
          },
          "onlyWithRegulatoryActions": {
            "title": "Only With Regulatory Actions",
            "type": "boolean",
            "description": "Return only registrants carrying at least one NFA, CFTC, exchange or foreign-regulator disciplinary action. Useful for AML, KYC and counterparty risk screening.",
            "default": false
          },
          "usStates": {
            "title": "US States",
            "type": "array",
            "description": "Optional. Keep only registrants whose business address is in these two-letter states (for example 'NY', 'IL', 'TX'). Requires full profiles to be fetched.",
            "items": {
              "type": "string"
            }
          },
          "requirePhone": {
            "title": "Only With A Phone Number",
            "type": "boolean",
            "description": "Return only registrants that have a business phone number on record. Requires full profiles to be fetched.",
            "default": false
          },
          "fetchProfiles": {
            "title": "Fetch Full Profiles",
            "type": "boolean",
            "description": "Fetch the full profile for every match: business address and phone, DBAs and former names, listed principals and 10% owners, registration history, commodity pools and CFTC exemptions. Turn off for a faster, lighter run with name and status only.",
            "default": true
          },
          "fetchRegulatoryActions": {
            "title": "Fetch Disciplinary Actions",
            "type": "boolean",
            "description": "Fetch every NFA, CFTC, exchange and foreign-regulator case on record, with case reference, effective date, violations, outcome and the total fine amount imposed.",
            "default": true
          },
          "fetchFinancials": {
            "title": "Fetch Financial Filings",
            "type": "boolean",
            "description": "For futures commission merchants, fetch the latest monthly financial figures: adjusted net capital, required net capital, excess net capital and segregated, secured and cleared-swaps customer funds.",
            "default": true
          },
          "maxRegistrants": {
            "title": "Max Registrants To Scrape",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of registrant records to return across all searches."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}