Endpoints

🔐 — requires authentication 🪙 — cost of calling in request tokens (see Rate Limits)

Companies

GET /v1/companies

🔐 🪙 1

Fetches all companies registered on the platform.

Parameters:

  • id: Uuid (optional) — filters output by company ID

  • limit: int (optional, max=10,000) — used for pagination

  • offset: int (optional) — used for pagination

Output type: ApiPage[Company]

Example output
{
  "result": [
    {
      "created_at": "2024-01-01T18:44:33.846999Z",
      "id": "bdd68c99-65fe-4500-baae-5bc09b4af183",
      "is_lp": true,
      "legal_name": "Example company",
      "short_name": "EXMPL"
    },
    {
      "created_at": "2024-02-01 18:44:51.817012Z",
      "id": "af13119d-4ed1-4718-aea3-fecee4764837",
      "is_lp": false,
      "legal_name": "Another company",
      "short_name": "ANTHR"
    }
  ],
  "pagination": {
    "next_page": null
  }
}

Python SDK:

def get_companies(self, id: Optional[str] = None,
                  page: Optional[Dict] = None) -> ApiPage[Company]
SDK examples

Portfolio

GET /v1/portfolio/assets

🔐 🪙 1

Fetches current asset balances for the authenticated user.

Parameters:

  • pool: Uuid (optional) — filters output by settlement pool; if not specified, a summary across all settlement pools is returned

  • limit: int (optional, max=10,000) — used for pagination

  • offset: int (optional) — used for pagination

Output type: ApiPage[Asset]

Example output

Python SDK:

SDK examples

GET /v1/portfolio/positions

🔐 🪙 1

Fetches current position balances for the authenticated user.

Parameters:

  • pool: Uuid (optional) — filters output by settlement pool; if not specified, a summary across all settlement pools is returned

  • limit: int (optional, max=10,000) — used for pagination

  • offset: int (optional) — used for pagination

Output type: ApiPage[Position]

Example output

Python SDK:

SDK examples

GET /v1/portfolio/positions/aggregated

🔐 🪙 10

Fetches aggregated positions for the authenticated user.

Parameters:

  • limit: int (optional, max=10,000) — used for pagination

  • offset: int (optional) — used for pagination

Output type: ApiPage[AggregatedPosition]

Example output

Python SDK:

SDK examples

GET /v1/portfolio/trades

🔐 🪙 1

Fetches trades for the authenticated user.

Parameters:

  • pool: Uuid (optional) — filters output by settlement pool

  • id: Uuid (optional) — filters output by trade ID

  • limit: int (optional, max=10,000) — used for pagination

  • offset: int (optional) — used for pagination

Output type: ApiPage[Trade]

Example output

Python SDK:

SDK examples

GET /v1/portfolio/summary

🔐 🪙 10

Fetches the aggregated summary of the authenticated user's positions: balance, uPNL and the Greeks (risk).

Parameters: None.

Output type: ApiSingle[PortfolioSummary]

Example output

Python SDK:

SDK examples

Quotes

GET /v1/quotes, GET /v1/quotes/sent and GET /v1/quotes/received

🔐 🪙 1

Fetches quotes sent or received by the authenticated user.

Parameters:

  • id: Uuid (optional) — filters output by quote ID

  • limit: int (optional, max=1,000) — used for pagination

  • offset: int (optional) — used for pagination

Output type: ApiPage[Quote]

Example output

Python SDK:

SDK examples

POST /v1/quotes/new

🔐 🪙 20

Used to submit a quote in response to a particular RFQ as a maker.

JSON payload keys:

  • rfq_id: Uuid — ID of the target RFQ

  • expires_at: DateTimeRFC3339 — expiration time

  • leg_quotes: List[LegQuote] — quotes for individual RFQ legs

  • pool_strategy: PoolStrategy — reuse an existing pool or create a new one

  • client_quote_id: str (optional, max length: 50 characters) — arbitrary string for your internal reference

Example input

Output type: ApiSingle[Quote]

Example output

Python SDK:

SDK examples

POST /v1/quotes/cancel

🔐 🪙 20

Cancels a previously created quote.

JSON payload keys:

  • id: Uuid — ID of the quote to cancel

Example input

Output type: ApiSingle[bool]

Example output

Python SDK:

SDK example

POST /v1/quotes/cancel_all

🔐 🪙 20

Cancels all of the authenticated user's outstanding quotes.

Output type: ApiSingle[bool]

Example output

Python SDK:

SDK examples

POST /v1/quotes/replace

🔐 🪙 20

Used to cancel an existing quote and submit a new one for the same particular RFQ.

JSON payload keys:

  • parent_quote_id: Uuid — ID of the existing quote to cancel

  • rfq_id: Uuid — ID of the target RFQ

  • expires_at: DateTimeRFC3339 — expiration time

  • leg_quotes: List[LegQuote] — quotes for individual RFQ legs

  • pool_strategy: PoolStrategy — reuse an existing pool or create a new one

  • client_quote_id: str (optional) — arbitrary string for your internal reference

Example input

Output type: ApiSingle[Quote]

Example output

Python SDK:

SDK examples

POST /v1/quotes/accept

🔐 🪙 20

Used to accept a quote and create a trade as a taker.

JSON payload keys:

  • parent_quote_id: Uuid — ID of the quote to accept

  • rfq_id: Uuid — ID of the target RFQ

  • side: TradeSide — "buy" or "sell"

Example input

Output type: ApiSingle[QuoteAcceptResponse]

Example output

Python SDK:

SDK examples

Notes On Clearing Status:

Depending on the quote parameters and prior on-chain calls, the trade can be created in one of three distinct clearing states:

  • pending_pool_creation: a new settlement pool needs to be created on-chain; this will progress automatically to one of the following statuses

  • pending_taker_deposit_approval: taker must use the Permit endpoint to allow spending of the amount equal to or greater than pending_deposits_sum_qty by the settlement pool address

  • pending_maker_last_look: the maker is responsible for progressing the trade further by submitting a final "last look" approval

POST /v1/quotes/maker_last_look

🔐 🪙 20

Used by the maker to finalize a trade or cancel it, in response to taker acceptance. The trade must be in pending_maker_last_look clearing status.

JSON payload keys:

  • parent_quote_id: Uuid — ID of the quote

  • rfq_id: Uuid — ID of the RFQ

  • action: RequestAction — "accept" or "reject"

Example input

Output Type: ApiSingle[MakerLastLookResponse]

Example output

Python SDK:

SDK examples

Notes On Clearing Status:

Depending on the current settlement pool margin usage and prior on-chain calls, the trade can end up in one of three distinct clearing states:

  • pending_maker_deposit_approval: taker must use the Permit endpoint to allow spending of the amount equal to or greater than pending_deposits_sum_qty by the settlement pool address

  • pending_atomic_deposit: this will progress automatically to the following status

  • success_trades_booked_into_pool: no additional deposits were necessary for initial margin and the trade has successfully cleared

RFQs

GET /v1/rfqs/sent and GET /v1/rfqs/received

🔐 🪙 10

Fetches RFQs sent or received by the authenticated user.

Parameters:

  • id: Uuid (optional) — filters output by quote ID

  • limit: int (optional, max=1,000) — used for pagination

  • offset: int (optional) — used for pagination

Output type: ApiPage[RFQ]

Example output

Python SDK:

SDK examples

POST /v1/rfqs/new

🔐 🪙 20

Used to create a new RFQ as a taker.

JSON payload keys:

  • structure: Structure — what is being traded

  • qty: DecimalStr — quantity in units of the structure (multiplied by ratio per leg)

  • expires_at: DateTimeRFC3339 — expiration time

  • target_companies: List of Uuid — specific companies that will see the request

Example input

Output type: ApiSingle[RFQ]

Example output

Python SDK:

SDK examples

POST /v1/rfqs/cancel

🔐 🪙 20

Cancels a previously created RFQ.

JSON payload keys:

  • id: Uuid — ID of the RFQ to cancel

Example input

Output type: ApiSingle[bool]

Example output

Python SDK:

SDK examples

Settlement Pools

GET /v1/settlement_pools

🔐 🪙 10

Fetches settlement pools related to the currently authenticated user.

Parameters:

  • id: Uuid (optional) — filters output by settlement pool ID

  • limit: int (optional, max=1,000) — used for pagination

  • offset: int (optional) — used for pagination

Output type: ApiPage[SettlementPool]

Example output

Python SDK:

SDK examples

POST /v1/settlement_pools/new

🔐 🪙 20

Creates a new settlement pool between the authenticated user and a specific counterparty.

JSON payload keys:

  • pool_name: str (max length: 50 characters) — name for the new settlement pool

  • company_other: Uuid — counterparty company ID

  • creator_params: MarginParams — margin parameters for your company

  • other_params: MarginParams — margin parameters for the counterparty

Example input

Output type: ApiSingle[SettlementPool]

Example output

Python SDK:

SDK examples

Transfers

GET /v1/transfers

🔐 🪙 1

Fetches transfers for the authenticated user.

Parameters:

  • pool: Uuid (optional) — filters output by settlement pool

  • id: Uuid (optional) — filters output by transfer ID

  • limit: int (optional, max=10,000) — used for pagination

  • offset: int (optional) — used for pagination

Output type: ApiPage[Transfer]

Example output

Python SDK:

SDK examples

POST /v1/transfers/new

🔐 🪙 20

Initiates a new deposit or withdrawal.

JSON payload keys:

  • asset: str — asset to transfer (must be USDC)

  • qty: StrDecimal — transfer amount

  • target_pool_location: Uuid — settlement pool ID

  • counterparty: Uuid — company ID of another company in the pool

  • transfer_type: TransferType — deposit or withdrawal

Example input

Output type: ApiSingle[Transfer]

Example output

Python SDK:

SDK examples

POST /v1/transfers/permit/template

🔐 🪙 1

Generates a ERC-2612 spending permit message. To take effect, it needs to be signed by the company wallet's private key and submitted via POST /v1/transfers/permit.

JSON payload keys:

  • pool_address: H160 — address of the settlement pool

  • allowance: Allowance — unit and value of the spending allowance

  • seconds_until_expiry: int (default: 60) — for how long the permit will be effective

Example input

Output type: ApiSingle[dict]

Example output

Python SDK:

SDK examples

POST /v1/transfers/permit

🔐 🪙 20

Submits a signed ERC-2612 spending permit on-chain, allowing transfer of the signer's funds into the settlement pool.

JSON payload keys:

  • message: dict — permit in EIP-712 format generated by /v1/transfers/permit/template

  • signature: str — produced using message and the company wallet's private key

Example input

Output type: ApiSingle[bool]

Example output

Python SDK:

SDK examples

Utility

GET /v1/status

Returns current authentication information and server time in milliseconds. This endpoint can be used to check connectivity liveness and measure latency.

Output type: ApiSingle[Status]

Example output

Python SDK:

SDK examples

GET /v1/metadata/supported_assets

Returns tokens supported by the platform, their metadata, and funding rate parameters.

Parameters:

  • verified: boolean (optional) — ensures only verified assets are returned

Output type: ApiSingle[Dict[AssetToken, List[SupportedAssetDetails]]]

Example output

Python SDK:

SDK examples

Last updated