Skip to main content
Two REST endpoints return historical maker trades.
Only orders created after November 1st, 2024 are returned.

Endpoints

GET https://api.bebop.xyz/pmm/{chain}/v3/maker-history
Returns a MakerTradesResponse: array of trades plus pagination cursor and summary.Refer to Trade status for the list of trade statuses returned by this endpoint.

Query parameters

NameTypeRequiredDefaultDescription
makerstringYesN/AMaker ID whose trade history is requested.
startintegerNo0Start timestamp in Unix nanoseconds to begin retrieving trades from.
endintegerNo0End timestamp in Unix nanoseconds to stop retrieving trades at.
limitintegerNo0Limit the number of trades returned.

Headers

NameTypeRequiredDescription
AuthorizationstringYesAPI key as a Bearer token.

Request example

GET /pmm/ethereum/v3/maker-history?maker=makerName&start=1622505600000000000&end=1625097600000000000&limit=100 HTTP/1.1
Host: api.bebop.xyz
Authorization: Bearer AUTH_TOKEN

Response example

{
  "trades": [
    {
      "quote_id": "121-234598771984853436077504008287419953391",
      "tx_hash": "0xfdc16867ab5a6d8005bce6658d38381ecb6896515658ea39d09dd7631b64b471",
      "executor": "bebop",
      "event_id": "234598771984853444832104850055495680000",
      "status": "CONFIRMED",
      "order_time": 1728037974722622500,
      "fee_native": 0.0013478235,
      "fee_usd": 4.044,
      "surplus": 0.001,
      "surplus_usd": 3.0,
      "surplus_recipient": "user",
      "quotes": [
        {
          "taker_token": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84",
          "taker_amount": "444046242643985429",
          "maker_token": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
          "maker_amount": "442583265934509972",
          "filled_taker_amount": "444046242643985408",
          "filled_maker_amount": "442583265934509952"
        }
      ],
      "taker_address": "0xbeb0b0623f66bE8cE162EbDfA2ec543A522F4ea6",
      "receiver_address": "0x5Bad996643a924De21b6b2875c85C33F3c5bBcB6",
      "origin_address": "0x5Bad996643a924De21b6b2875c85C33F3c5bBcB6"
    },
    {
      "quote_id": "121-224367292945131620896814991973444873413",
      "tx_hash": "0x131ba4ec5dff49fd6ce966ca4763193c30fdb7151432d12ac287391169a59caf",
      "executor": "bebop",
      "event_id": "224367292945131621105892337654746316801",
      "status": "CONFIRMED",
      "order_time": 1728037915682171000,
      "fee_native": 0.0009320953,
      "fee_usd": 2.797,
      "surplus": 0.001,
      "surplus_usd": 3.0,
      "surplus_recipient": "bebop",
      "quotes": [
        {
          "taker_token": "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3",
          "taker_amount": "471376871109481743791",
          "maker_token": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
          "maker_amount": "468832042",
          "filled_taker_amount": "471376871109481725952",
          "filled_maker_amount": "468832042"
        }
      ],
      "taker_address": "0xbeb0b0623f66bE8cE162EbDfA2ec543A522F4ea6",
      "receiver_address": "0x5Bad996643a924De21b6b2875c85C33F3c5bBcB6",
      "origin_address": "0x5Bad996643a924De21b6b2875c85C33F3c5bBcB6"
    }
  ],
  "summary": {
    "num_trades": 2,
    "fee_currency": "ETH",
    "total_fees_native": 0.0022799188,
    "total_fees_usd": 6.841,
    "total_surplus_bebop": 0.001,
    "total_surplus_bebop_usd": 3.0,
    "total_surplus_user": 0.001,
    "total_surplus_user_usd": 3.0,
    "first_trade_ts": "2024-10-04 10:31:55.682171+00:00",
    "last_trade_ts": "2024-10-04 10:32:54.722622+00:00"
  },
  "next_ts": 1728037585453515000
}
Trades are returned in descending chronological order.If next_ts is 0, all trades in the requested time interval have been returned. Otherwise, pass next_ts as the next request’s end to page backward.

Types

MakerTrade

The MakerTrade object represents a single maker-side trade.

Fields

FieldTypeRequiredDescription
quote_idstrYesUnique identifier of the quote associated with the trade.
tx_hashstrYesTransaction hash for the trade.
executorstrYesEntity responsible for sending the order on-chain: bebop (gasless) or user (self-executed).
event_idstrYesIdentifier for finding the order on-chain. Emitted by the contract, found in the transaction event logs.
statusstrYesStatus of the trade. See Trade status for possible values.
order_timeintYesTimestamp of when the order was mined (Unix nanoseconds).
surplus_recipientstrYesEntity receiving any surplus (user or bebop).
surplus_usdfloatYesSurplus in USD, rounded up to a $0.001 minimum.
surplusfloatYesSurplus in native token, at the native price at time of request. Deprecated - removed 31 Aug 2026; use surplus_usd.
fee_usdfloatYesFee in USD, rounded up to a $0.001 minimum.
fee_nativefloatYesFee in native token. Deprecated - removed 31 Aug 2026; use fee_usd.
reference_quote_idstr | nullNoIdentifier of the reference quote, if any. Whale-mode only.
quoteslist[MakerQuote]YesList of quotes filled in the trade.
reference_quoteslist[MakerQuote] | nullNoList of reference quotes. Whale-mode only.
taker_addressstrYesAddress of the user sending the taker tokens.
receiver_addressstrYesAddress that received the tokens.
origin_addressstrYesOrigin address that requested the quote, passed down by partners for cases when the taker and receiver are the partner’s Router or Settlement contracts.

MakerQuote

The MakerQuote object is returned inside quotes and reference_quotes of MakerTrade.
FieldTypeRequiredDescription
taker_tokenstrYesAddress of the taker token.
taker_amountstrYesAmount of taker token.
maker_tokenstrYesAddress of the maker token.
maker_amountstrYesAmount of maker token.
filled_taker_amountstrNoAmount of taker token actually filled (when order is partially filled at execution time).
filled_maker_amountstrNoAmount of maker token actually filled (when order is partially filled at execution time).
onchain_maker_amountstrNoRFQA only. Maker token that left your wallet, net of the oracle slippage refund.
refunded_maker_amountstrNoRFQA only. Maker’s share of the recovered slippage. Satisfies onchain_maker_amount + refunded_maker_amount == filled_maker_amount.
For RFQA trades, responses are anonymized: taker_address and receiver_address are the BebopRouter and no end-user address is exposed.

MakerTradesResponse

Returned by the “By time range” endpoint. Contains trades, pagination, and summary.

Fields

FieldTypeRequiredDescription
tradeslist[MakerTrade]YesList of trades matching the request.
next_tsintYesPagination timestamp. 0 means all trades in the range have been returned. Otherwise, use this value as the new end parameter to fetch the next page.
summaryMakerSummaryResponseYesAggregated statistics across all returned trades.

MakerSummaryResponse

Aggregated information about a set of maker trades. Returned in the summary field of MakerTradesResponse.

Fields

FieldTypeRequiredDescription
num_tradesintYesNumber of trades in the response.
fee_currencystrYesSymbol of the native fee currency (e.g. ETH).
total_fees_usdfloatYesTotal fees in USD.
total_fees_nativefloatYesTotal fees in native token. Deprecated - removed 31 Aug 2026; use total_fees_usd.
total_surplus_bebop_usdfloatYesTotal surplus captured by Bebop, in USD (0 if none).
total_surplus_bebopfloatYesTotal surplus captured by Bebop, native token (0 if none). Deprecated - removed 31 Aug 2026.
total_surplus_user_usdfloatYesTotal surplus captured by users, in USD (0 if none).
total_surplus_userfloatYesTotal surplus captured by users, native token (0 if none). Deprecated - removed 31 Aug 2026.
first_trade_tsdatetime | nullNoTimestamp of the earliest trade in the response.
last_trade_tsdatetime | nullNoTimestamp of the latest trade in the response.

How this differs from the Trades WebSocket

The Trades WebSocket streams MakerTrade objects in real time as they are detected on-chain (self-exec) or sent on-chain by Bebop’s executors (gasless). These historical endpoints let you query past activity or a specific transaction.