{
  "openapi": "3.0.1",
  "info": {
    "title": "NFA BASIC Futures Registration & Disciplinary Scraper",
    "description": "Search NFA BASIC - the free, CFTC-mandated registry of futures industry firms, associated persons, and commodity pools. Look up by name or NFA ID for membership status, registered categories, addresses, and disciplinary action history. No login required.",
    "version": "1.0",
    "x-build-id": "awHEPSfsEQPJRHelB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~nfa-basic-futures-registration-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-nfa-basic-futures-registration-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~nfa-basic-futures-registration-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-nfa-basic-futures-registration-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~nfa-basic-futures-registration-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-nfa-basic-futures-registration-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": [
              "searchFirms",
              "searchIndividuals",
              "searchPools",
              "entityProfile"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "searchFirms"
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Firm or pool name (mode=searchFirms/searchPools, required).",
            "default": "Merrill"
          },
          "lastName": {
            "title": "Last name (mode=searchIndividuals)",
            "type": "string",
            "description": "Individual's last name — required for mode=searchIndividuals.",
            "default": "Smith"
          },
          "firstName": {
            "title": "First name (mode=searchIndividuals)",
            "type": "string",
            "description": "Optional first-name refinement for mode=searchIndividuals."
          },
          "firmCategory": {
            "title": "Firm registration category (mode=searchFirms)",
            "enum": [
              "",
              "Futures Commission Merchant",
              "Introducing Broker",
              "Notice Introducing Broker",
              "Commodity Pool Operator",
              "Exempt Commodity Pool Operator",
              "Commodity Trading Advisor",
              "Exempt Commodity Trading Advisor",
              "Retail Foreign Exchange Dealer",
              "Swap Dealer",
              "Exempt Foreign Firm",
              "Exempt Foreign Firm Regulator",
              "Commodity Exchange"
            ],
            "type": "string",
            "description": "Only return firms currently holding this NFA registration category. Applied server-side by NFA BASIC's own search API.",
            "default": ""
          },
          "individualCategory": {
            "title": "Individual registration category (mode=searchIndividuals)",
            "enum": [
              "",
              "Associated Person Registered",
              "Principal Approved",
              "Branch Manager Approved",
              "Floor Broker Registered",
              "Floor Trader Registered",
              "Commodity Trading Advisor Registered",
              "NFA Associate Member Approved"
            ],
            "type": "string",
            "description": "Only return individuals currently holding this NFA registration category. Applied server-side by NFA BASIC's own search API.",
            "default": ""
          },
          "poolStatus": {
            "title": "Pool status (mode=searchPools)",
            "enum": [
              "",
              "CURRENT",
              "CEASED"
            ],
            "type": "string",
            "description": "Only return commodity pools with this current status. Applied server-side by NFA BASIC's own search API.",
            "default": ""
          },
          "state": {
            "title": "Firm state (mode=searchFirms)",
            "enum": [
              "",
              "AL",
              "AK",
              "AZ",
              "AR",
              "CA",
              "CO",
              "CT",
              "DE",
              "FL",
              "GA",
              "HI",
              "ID",
              "IL",
              "IN",
              "IA",
              "KS",
              "KY",
              "LA",
              "ME",
              "MD",
              "MA",
              "MI",
              "MN",
              "MS",
              "MO",
              "MT",
              "NE",
              "NV",
              "NH",
              "NJ",
              "NM",
              "NY",
              "NC",
              "ND",
              "OH",
              "OK",
              "OR",
              "PA",
              "RI",
              "SC",
              "SD",
              "TN",
              "TX",
              "UT",
              "VT",
              "VA",
              "WA",
              "WV",
              "WI",
              "WY",
              "DC",
              "PR",
              "VI",
              "GU",
              "AS",
              "MP"
            ],
            "type": "string",
            "description": "Only return firms whose registered business address is in this US state/territory. Only applies when NFA has an address on file for the firm.",
            "default": ""
          },
          "nfaIds": {
            "title": "NFA IDs / Pool IDs (mode=entityProfile)",
            "type": "array",
            "description": "One or more NFA IDs (e.g. `0186926`) or Pool IDs (e.g. `P207559`) to fetch full profiles for.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "membershipStatus": {
            "title": "Membership status filter",
            "enum": [
              "",
              "NFA Member Approved",
              "Not an NFA Member",
              "Pending NFA Member",
              "Permanent Bar",
              "Permanent Withdrawal",
              "Temporary Withdrawal",
              "Shall Not Reapply for NFA Membership Status",
              "Shall Not Be Listed Or Act as a Principal of an NFA Member",
              "Temporary - Shall Not Be Listed or Act as a Principal of an NFA Member"
            ],
            "type": "string",
            "description": "Only emit records matching this NFA membership status (search modes only).",
            "default": ""
          },
          "hasRegulatoryActionsOnly": {
            "title": "Only records with regulatory actions on file",
            "type": "boolean",
            "description": "When on, only emit firms/individuals flagged as having a disciplinary or regulatory action on file. Not supported for mode=searchPools — NFA's own pool-search results don't carry a regulatory-actions flag on pool rows; use mode=entityProfile with the pool's ID instead, which does report it. Does not apply to mode=entityProfile (a byId lookup always returns the requested ID's profile).",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}