Skip to main content

Broker API Getting Started

The Broker API lets institutional partners open and manage customer accounts, fund accounts, place orders, and receive asynchronous events.

Prerequisites​

Before integrating, contact your Webull Account Relationship Manager to obtain an App Key and App Secret and confirm that your application has the required Broker API permissions.

Each API call requires authentication using the App Key and a signature generated using the App Secret. Include all required authentication headers described in Signature.

Choose an Environment​

Confirm the correct base URL before testing. See SDKs and Tools for the current Sandbox and Production hosts.

Make Your First Request​

Start by retrieving an enumeration used by account-opening forms:

GET /broker/master-data/enums/list

This endpoint requires the data_type query parameter and returns the available values for that type. See List Enums.

Example response when data_type=INVESTMENT_EXPERIENCE:

[
{ "id": "1", "code": "NONE", "name": "0", "parent_code": null },
{ "id": "2", "code": "GENERAL", "name": "1–3 years", "parent_code": null },
{ "id": "3", "code": "LONG", "name": "4+ years", "parent_code": null }
]

1. Account Opening​

The required forms depend on the account type.

  1. Retrieve available forms: GET /broker/forms/list — Get a List of Forms
  2. Select the required forms:
    • Brokerage Account: NEW_ACCOUNT_BASIC_FORM and BROKERAGE_ADDITIONAL_FORM
    • Event Contract Account: NEW_ACCOUNT_BASIC_FORM and EVENT_CONTRACT_ADDITIONAL_FORM
  3. Retrieve the applicable form version: GET /broker/forms/versions/list — Get a List of Form Versions
  4. Retrieve the form fields: GET /broker/forms/get — Get Form Content
  5. Assemble and submit the forms: POST /broker/accounts/create — Create an Account

2. Funding​

Wire withdrawals require a bank relationship. Wire deposits are not currently supported.

POST /broker/funding/bank-relationships/create

See Create Bank Relationship.

Create an ACH Relationship​

Webull integrates with Plaid for ACH account linking.

POST /broker/funding/ach-relationships/create

See Create ACH Relationship.

Initiate a Transfer​

Use the same endpoint for ACH and wire transfer requests:

POST /broker/funding/transfers/create

  • ACH supports DEPOSIT and WITHDRAWAL.
  • Wire currently supports WITHDRAWAL only.

See Create Transfer.

3. Journal Between Accounts​

To transfer cash between eligible accounts owned by the same customer, such as a brokerage account and an event contract account, call:

POST /broker/journals/cash-journals/create

See Create Cash Journal.

4. Trading​

To place an order, call:

POST /broker/orders/place

See Place Order.

5. Events​

Broker events use a persistent gRPC server-streaming connection for real-time updates across account opening, funding, journals, trading, and other asynchronous workflows.

See Subscribe Events for connection and subscription instructions.

Event Types​

Event TypeDescription
Application EventsAccount application status changes
Account EventsAccount status and configuration changes
Funding EventsDeposit, withdrawal, ACH, wire, fee, and credit updates
Journal EventsJournal status changes
Master Data EventsReference-data changes such as trading calendar updates
Instrument EventsInstrument attribute changes
Trade EventsOrder status and execution updates
Corporate Actions EventsDividends, splits, mergers, and other corporate actions
Position EventsPosition changes
SOD EventsStart-of-day files or data becoming available

What's Next​