builderApprovedFillsByTime
Fills that occurred while a user had an active builder-fee approval for your builder address.
Why you need this
Some fills can never carry a builder code, so they are invisible to builderFillsByTime no matter how the user trades:
Liquidations — the fill is generated by the protocol, not by an order the user signed, so there is no builder to attach.
TWAP sub-fills — the individual slices carry no builder code.
Attributing by approval rather than by routing captures both, so activity from your users stops disappearing from your numbers the moment it takes one of these paths.
The flip side: approval-based attribution reflects what a user could route through you, not what they did. A user who holds their own private key can trade directly or through another builder while your approval is still active, and those fills appear here. Treat this endpoint as "activity by users who approved me", not as "revenue routed through me" — for the latter, use builderFillsByTime.
POST Request
type
string
Required. "builderApprovedFillsByTime"
builder
string
Required. Builder address, 42-char hex.
startTime
number
Required unless cursor is given. Inclusive, milliseconds.
endTime
number
Optional. Inclusive, milliseconds.
cursor
string
Optional. Continue from a previous page. Format "{time}_{txIndex}".
limit
number
Optional. Default and maximum 2000.
Results are returned oldest-first, ordered by (time, txIndex).
Pagination
Take the last returned fill and build cursor as "{time}_{txIndex}", then repeat the request with that cursor instead of startTime. A page shorter than limit means you have reached the end of the range.
Semantics
An approval applies from the block it lands in, and a revocation likewise. A fill that happened while an approval was active stays attributed permanently — revoking does not remove past fills from this endpoint.
Response Fields
An array of fill objects, each including the user that made the fill — the same shape as builderFillsByTime, plus a builder field.
The builder field is the builder the fill was routed through, which is a separate question from why the fill is in this response. It is usually null: liquidations and TWAP sub-fills carry no builder code, and a user who approved you can trade through anyone. builderFillsByTime does not return this field, because there every fill is routed through the builder you asked for.
Last updated