Skip to Content
BlitzPulse docs are live. Looking for Blitz Global? Visit https://blitzglobalcapital.com.
Api ReferenceBrokers Unified API

Brokers Unified API

Auto-generated from openapi-snapshot.json. Do not edit by hand — changes are overwritten by scripts/docs/generate_api_reference.py.

17 endpoints in this group.

GET /api/brokers/manual/positions

Manual Positions List

List latest manual positions persisted into portfolio snapshots (#629).

Parameters

NameInTypeRequiredDescription
account_idqueryoptionalManual broker_accounts.id

Responses

CodeDescription
200Successful Response
422Validation Error

POST /api/brokers/manual/positions

Manual Positions Create

Create or replace one manual holding snapshot (#629).

Request body: application/json

Responses

CodeDescription
201Successful Response
422Validation Error

DELETE /api/brokers/manual/positions/{position_id}

Manual Positions Delete

Soft-delete a manual position snapshot (#629).

Parameters

NameInTypeRequiredDescription
position_idpathintegerrequired

Responses

CodeDescription
204Successful Response
422Validation Error

PATCH /api/brokers/manual/positions/{position_id}

Manual Positions Patch

Patch a manual position snapshot by id (#629).

Parameters

NameInTypeRequiredDescription
position_idpathintegerrequired

Request body: application/json

Responses

CodeDescription
200Successful Response
422Validation Error

GET /api/brokers/manual/transactions

Manual Transactions List

List manual transaction rows from realized_trades (#629).

Parameters

NameInTypeRequiredDescription
account_idqueryoptionalManual broker_accounts.id
yearqueryoptional

Responses

CodeDescription
200Successful Response
422Validation Error

POST /api/brokers/manual/transactions

Manual Transactions Create

Create a manual transaction in realized_trades (#629).

Request body: application/json

Responses

CodeDescription
201Successful Response
422Validation Error

DELETE /api/brokers/manual/transactions/{transaction_id}

Manual Transactions Delete

Soft-delete a manual transaction by id (#629).

Parameters

NameInTypeRequiredDescription
transaction_idpathintegerrequired

Responses

CodeDescription
204Successful Response
422Validation Error

PATCH /api/brokers/manual/transactions/{transaction_id}

Manual Transactions Patch

Patch a manual transaction by id (#629).

Parameters

NameInTypeRequiredDescription
transaction_idpathintegerrequired

Request body: application/json

Responses

CodeDescription
200Successful Response
422Validation Error

GET /api/brokers/snaptrade/callback

Snaptrade Callback

Hosted SnapTrade redirect target.

Parameters

NameInTypeRequiredDescription
subbroker_slugquerystringrequired
external_connection_idqueryoptional
connection_idqueryoptional
brokerage_authorization_idqueryoptional
brokerageAuthorizationIdqueryoptional

Responses

CodeDescription
200Successful Response
422Validation Error

GET /api/brokers/{broker_type}/accounts

Broker Accounts

Return account list — shape varies per broker today.

Schwab: list of {accountNumber, hashValue}. Alpaca/Tradier: broker-specific shapes.

Parameters

NameInTypeRequiredDescription
broker_typepathstringrequired

Responses

CodeDescription
200Successful Response
422Validation Error

POST /api/brokers/{broker_type}/connect

Broker Connect

Exchange auth payload for tokens via adapter.

Body shape is broker-specific (e.g. {"auth_code": "..."} for OAuth code-flow brokers). Phase E unifies once frontend lands.

Parameters

NameInTypeRequiredDescription
broker_typepathstringrequired

Responses

CodeDescription
200Successful Response
402Payment Required
422Validation Error

POST /api/brokers/{broker_type}/disconnect

Broker Disconnect

Parameters

NameInTypeRequiredDescription
broker_typepathstringrequired

Responses

CodeDescription
200Successful Response
422Validation Error

GET /api/brokers/{broker_type}/positions

Broker Positions

Parameters

NameInTypeRequiredDescription
broker_typepathstringrequired
account_idqueryoptionalOptional account scope (broker-specific id)

Responses

CodeDescription
200Successful Response
422Validation Error

GET /api/brokers/{broker_type}/quotes

Broker Quotes

Parameters

NameInTypeRequiredDescription
broker_typepathstringrequired
symbolsquerystringrequiredComma-separated tickers

Responses

CodeDescription
200Successful Response
422Validation Error

POST /api/brokers/{broker_type}/refresh

Broker Refresh

Parameters

NameInTypeRequiredDescription
broker_typepathstringrequired

Responses

CodeDescription
200Successful Response
422Validation Error

GET /api/brokers/{broker_type}/status

Broker Status

Return canonical BrokerConnectionStatus (#650).

Strategy:

  1. If the adapter exposes status_struct() — broker provides a fully-populated model. Adapters that expose this win the contract.
  2. Else fall back to get_token_status() (Schwab/Tradier shape) + opportunistically populate expires_at via _db_load if reachable. Adapters without get_token_status report connected=False with a hint in extra.

Errors during status reads never raise — operators see connected: False plus the error string in extra.error so the frontend banner stays informative.

Parameters

NameInTypeRequiredDescription
broker_typepathstringrequired

Responses

CodeDescription
200Successful Response
422Validation Error

GET /api/brokers/{broker_type}/transactions

Broker Transactions

Parameters

NameInTypeRequiredDescription
broker_typepathstringrequired
account_hashquerystringrequiredBroker-specific account id
yearquerystringrequired4-digit tax year

Responses

CodeDescription
200Successful Response
422Validation Error