> For the complete documentation index, see [llms.txt](https://lambdaplex-labs.gitbook.io/lambdaplex/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lambdaplex-labs.gitbook.io/lambdaplex/for-developers/api/fee-collector.md).

# Fee Collector

Public fee collector sweep outcome tracking

## Get fee collector sweep by run id

> \*\*Weight:\*\* 1

```json
{"openapi":"3.1.0","info":{"title":"Lambdaplex API","version":"1.0"},"tags":[{"name":"Fee collector","description":"Public fee collector sweep outcome tracking"}],"servers":[{"url":"https://api.lambdaplex.io","description":"Generated server url"}],"security":[],"paths":{"/api/v1/feeCollector/sweeps/{runId}":{"get":{"tags":["Fee collector"],"summary":"Get fee collector sweep by run id","description":"**Weight:** 1","operationId":"getFeeCollectorSweep","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Sweep detail","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeeCollectorSweepDetail"}}}},"404":{"description":"Sweep run not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}},"components":{"schemas":{"FeeCollectorSweepDetail":{"type":"object","description":"Fee collector sweep run with tracked actions","properties":{"run":{"$ref":"#/components/schemas/FeeCollectorSweepRun"},"actions":{"type":"array","items":{"$ref":"#/components/schemas/FeeCollectorSweepAction"}}}},"FeeCollectorSweepRun":{"type":"object","description":"Fee collector sweep run summary","properties":{"runId":{"type":"string","format":"uuid","description":"Sweep run id"},"status":{"type":"string","description":"Run status"},"feeCollectorAccount":{"type":"string","description":"Fee collector Hedera account id"},"feeCollectorAccountId":{"type":"integer","format":"int64","description":"Raw fee collector account number"},"targetToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"usdToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"startedAt":{"type":"string","format":"date-time","description":"Run start time"},"finishedAt":{"type":"string","format":"date-time","description":"Run finish time"},"skipReason":{"type":"string","description":"Skip reason for skipped runs"},"failureClass":{"type":"string","description":"Failure class for failed runs"},"failureMessage":{"type":"string","description":"Failure message for failed runs"},"sellActionsPlanned":{"type":"integer","format":"int32"},"sellActionsSubmitted":{"type":"integer","format":"int32"},"buyActionsSubmitted":{"type":"integer","format":"int32"},"terminalActions":{"type":"integer","format":"int32"},"failedActions":{"type":"integer","format":"int32"},"timedOutActions":{"type":"integer","format":"int32"}}},"FeeCollectorSweepToken":{"type":"object","description":"Token identity shown in fee collector sweep responses","properties":{"tokenId":{"type":"integer","format":"int64","description":"Raw Hedera entity number used internally"},"entityId":{"type":"string","description":"Hedera entity id"},"symbol":{"type":"string","description":"Token symbol"},"name":{"type":"string","description":"Token name"},"decimals":{"type":"integer","format":"int32","description":"Token decimals"}}},"FeeCollectorSweepAction":{"type":"object","description":"A single action planned or submitted by a fee collector sweep","properties":{"actionIndex":{"type":"integer","format":"int32","description":"Zero-based action index within the sweep run"},"kind":{"type":"string","description":"Action kind"},"status":{"type":"string","description":"Action status"},"feeCollectorAccount":{"type":"string","description":"Fee collector Hedera account id"},"symbol":{"type":"string","description":"Trading symbol, if a market was resolved"},"symbolId":{"type":"integer","format":"int64","description":"Internal symbol id, if a market was resolved"},"baseToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"quoteToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"side":{"type":"string","description":"Order side"},"orderId":{"type":"string","format":"uuid","description":"Exchange-assigned order id, if an order was submitted"},"requestedQuantity":{"type":"number","description":"Requested base quantity for base-sized market orders"},"requestedQuoteBudget":{"type":"number","description":"Requested quote budget for quote-budget market buys"},"orderStatus":{"type":"string","description":"Terminal order status, if known"},"filled":{"type":"number","description":"Executed base quantity, if known"},"exchangedValue":{"type":"number","description":"Cumulative quote amount exchanged, if known"},"failureCode":{"type":"string","description":"Failure or skip code, if any"},"failureMessage":{"type":"string","description":"Failure or skip message, if any"},"failureTxId":{"type":"string","description":"Failure transaction id, if the order failed on-chain"},"failureEventId":{"type":"integer","format":"int64","description":"Failure event id, if the failure was persisted as an event"},"submittedAt":{"type":"string","format":"date-time","description":"When the order submission succeeded"},"terminalAt":{"type":"string","format":"date-time","description":"When the action reached a terminal tracked state"},"fills":{"type":"array","items":{"$ref":"#/components/schemas/FeeCollectorSweepFill"}}}},"FeeCollectorSweepFill":{"type":"object","description":"Fill associated with a sweep-submitted order","properties":{"id":{"type":"integer","format":"int64","description":"Public fill id"},"cursorId":{"type":"integer","format":"int64","description":"Durable fill cursor id"},"txId":{"type":"string","description":"Settlement transaction id"},"fillTime":{"type":"string","format":"date-time","description":"Fill time"},"bidOrderId":{"type":"string","format":"uuid","description":"Bid-side order id"},"askOrderId":{"type":"string","format":"uuid","description":"Ask-side order id"},"symbolId":{"type":"integer","format":"int64","description":"Internal symbol id"},"price":{"type":"number","description":"Execution price"},"volume":{"type":"number","description":"Base quantity filled"},"quoteVolume":{"type":"number","description":"Quote quantity exchanged"},"usdVolume":{"type":"number","description":"USD notional volume"},"buyerFee":{"type":"number","description":"Buyer fee in base token units"},"sellerFee":{"type":"number","description":"Seller fee in quote token units"},"makerIsBid":{"type":"boolean","description":"Whether the maker was the bid order"}}},"ProblemDetail":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","format":"int32"},"detail":{"type":"string"},"instance":{"type":"string","format":"uri"},"properties":{"type":"object","additionalProperties":{}}}},"RateLimitError":{"type":"object","description":"Error response returned when a request is rate limited (HTTP 429)","properties":{"code":{"type":"string","description":"Error code indicating rate limiting"},"status":{"type":"integer","format":"int32","description":"HTTP status code"},"scope":{"type":"string","description":"Scope of the rate limit: 'rest' for HTTP endpoints, 'ws' for WebSocket handshake","enum":["rest","ws"]},"bucket":{"type":"string","description":"Bucket that triggered the limit (e.g. 'rest_weight', 'orders', 'ws_handshake')"},"keyType":{"type":"string","description":"Key type that was rate limited: 'ip' or 'api'","enum":["ip","api"]},"retryAfterSec":{"type":"number","format":"double","description":"Seconds until enough tokens are available to retry this request"}},"required":["bucket","code","keyType","retryAfterSec","scope","status"]}},"responses":{"RateLimited":{"description":"Too Many Requests - Rate limit exceeded.","headers":{"X-PLEX-USED-WEIGHT-API":{"description":"Current used weight for your API key this minute (if authenticated)","schema":{}},"Retry-After":{"description":"Number of seconds to wait before retrying","schema":{}},"X-PLEX-ORDER-COUNT":{"description":"Current order count for your API key (for order endpoints)","schema":{}},"X-PLEX-USED-WEIGHT-IP":{"description":"Current used weight for your IP this minute","schema":{}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}},"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}}
```

## Get latest fee collector sweep

> \*\*Weight:\*\* 1

```json
{"openapi":"3.1.0","info":{"title":"Lambdaplex API","version":"1.0"},"tags":[{"name":"Fee collector","description":"Public fee collector sweep outcome tracking"}],"servers":[{"url":"https://api.lambdaplex.io","description":"Generated server url"}],"security":[],"paths":{"/api/v1/feeCollector/sweeps/latest":{"get":{"tags":["Fee collector"],"summary":"Get latest fee collector sweep","description":"**Weight:** 1","operationId":"getLatestFeeCollectorSweep","responses":{"200":{"description":"Latest sweep detail","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeeCollectorSweepDetail"}}}},"404":{"description":"No sweep has been recorded","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}},"components":{"schemas":{"FeeCollectorSweepDetail":{"type":"object","description":"Fee collector sweep run with tracked actions","properties":{"run":{"$ref":"#/components/schemas/FeeCollectorSweepRun"},"actions":{"type":"array","items":{"$ref":"#/components/schemas/FeeCollectorSweepAction"}}}},"FeeCollectorSweepRun":{"type":"object","description":"Fee collector sweep run summary","properties":{"runId":{"type":"string","format":"uuid","description":"Sweep run id"},"status":{"type":"string","description":"Run status"},"feeCollectorAccount":{"type":"string","description":"Fee collector Hedera account id"},"feeCollectorAccountId":{"type":"integer","format":"int64","description":"Raw fee collector account number"},"targetToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"usdToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"startedAt":{"type":"string","format":"date-time","description":"Run start time"},"finishedAt":{"type":"string","format":"date-time","description":"Run finish time"},"skipReason":{"type":"string","description":"Skip reason for skipped runs"},"failureClass":{"type":"string","description":"Failure class for failed runs"},"failureMessage":{"type":"string","description":"Failure message for failed runs"},"sellActionsPlanned":{"type":"integer","format":"int32"},"sellActionsSubmitted":{"type":"integer","format":"int32"},"buyActionsSubmitted":{"type":"integer","format":"int32"},"terminalActions":{"type":"integer","format":"int32"},"failedActions":{"type":"integer","format":"int32"},"timedOutActions":{"type":"integer","format":"int32"}}},"FeeCollectorSweepToken":{"type":"object","description":"Token identity shown in fee collector sweep responses","properties":{"tokenId":{"type":"integer","format":"int64","description":"Raw Hedera entity number used internally"},"entityId":{"type":"string","description":"Hedera entity id"},"symbol":{"type":"string","description":"Token symbol"},"name":{"type":"string","description":"Token name"},"decimals":{"type":"integer","format":"int32","description":"Token decimals"}}},"FeeCollectorSweepAction":{"type":"object","description":"A single action planned or submitted by a fee collector sweep","properties":{"actionIndex":{"type":"integer","format":"int32","description":"Zero-based action index within the sweep run"},"kind":{"type":"string","description":"Action kind"},"status":{"type":"string","description":"Action status"},"feeCollectorAccount":{"type":"string","description":"Fee collector Hedera account id"},"symbol":{"type":"string","description":"Trading symbol, if a market was resolved"},"symbolId":{"type":"integer","format":"int64","description":"Internal symbol id, if a market was resolved"},"baseToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"quoteToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"side":{"type":"string","description":"Order side"},"orderId":{"type":"string","format":"uuid","description":"Exchange-assigned order id, if an order was submitted"},"requestedQuantity":{"type":"number","description":"Requested base quantity for base-sized market orders"},"requestedQuoteBudget":{"type":"number","description":"Requested quote budget for quote-budget market buys"},"orderStatus":{"type":"string","description":"Terminal order status, if known"},"filled":{"type":"number","description":"Executed base quantity, if known"},"exchangedValue":{"type":"number","description":"Cumulative quote amount exchanged, if known"},"failureCode":{"type":"string","description":"Failure or skip code, if any"},"failureMessage":{"type":"string","description":"Failure or skip message, if any"},"failureTxId":{"type":"string","description":"Failure transaction id, if the order failed on-chain"},"failureEventId":{"type":"integer","format":"int64","description":"Failure event id, if the failure was persisted as an event"},"submittedAt":{"type":"string","format":"date-time","description":"When the order submission succeeded"},"terminalAt":{"type":"string","format":"date-time","description":"When the action reached a terminal tracked state"},"fills":{"type":"array","items":{"$ref":"#/components/schemas/FeeCollectorSweepFill"}}}},"FeeCollectorSweepFill":{"type":"object","description":"Fill associated with a sweep-submitted order","properties":{"id":{"type":"integer","format":"int64","description":"Public fill id"},"cursorId":{"type":"integer","format":"int64","description":"Durable fill cursor id"},"txId":{"type":"string","description":"Settlement transaction id"},"fillTime":{"type":"string","format":"date-time","description":"Fill time"},"bidOrderId":{"type":"string","format":"uuid","description":"Bid-side order id"},"askOrderId":{"type":"string","format":"uuid","description":"Ask-side order id"},"symbolId":{"type":"integer","format":"int64","description":"Internal symbol id"},"price":{"type":"number","description":"Execution price"},"volume":{"type":"number","description":"Base quantity filled"},"quoteVolume":{"type":"number","description":"Quote quantity exchanged"},"usdVolume":{"type":"number","description":"USD notional volume"},"buyerFee":{"type":"number","description":"Buyer fee in base token units"},"sellerFee":{"type":"number","description":"Seller fee in quote token units"},"makerIsBid":{"type":"boolean","description":"Whether the maker was the bid order"}}},"ProblemDetail":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","format":"int32"},"detail":{"type":"string"},"instance":{"type":"string","format":"uri"},"properties":{"type":"object","additionalProperties":{}}}},"RateLimitError":{"type":"object","description":"Error response returned when a request is rate limited (HTTP 429)","properties":{"code":{"type":"string","description":"Error code indicating rate limiting"},"status":{"type":"integer","format":"int32","description":"HTTP status code"},"scope":{"type":"string","description":"Scope of the rate limit: 'rest' for HTTP endpoints, 'ws' for WebSocket handshake","enum":["rest","ws"]},"bucket":{"type":"string","description":"Bucket that triggered the limit (e.g. 'rest_weight', 'orders', 'ws_handshake')"},"keyType":{"type":"string","description":"Key type that was rate limited: 'ip' or 'api'","enum":["ip","api"]},"retryAfterSec":{"type":"number","format":"double","description":"Seconds until enough tokens are available to retry this request"}},"required":["bucket","code","keyType","retryAfterSec","scope","status"]}},"responses":{"RateLimited":{"description":"Too Many Requests - Rate limit exceeded.","headers":{"X-PLEX-USED-WEIGHT-API":{"description":"Current used weight for your API key this minute (if authenticated)","schema":{}},"Retry-After":{"description":"Number of seconds to wait before retrying","schema":{}},"X-PLEX-ORDER-COUNT":{"description":"Current order count for your API key (for order endpoints)","schema":{}},"X-PLEX-USED-WEIGHT-IP":{"description":"Current used weight for your IP this minute","schema":{}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}},"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}}
```

## List fee collector sweep runs

> Returns durable fee collector sweep run summaries, newest first. This endpoint is public and intended for\
> third-party tracking of fee collector rebalancing outcomes.\
> \
> \
> \*\*Weight:\*\* 1

```json
{"openapi":"3.1.0","info":{"title":"Lambdaplex API","version":"1.0"},"tags":[{"name":"Fee collector","description":"Public fee collector sweep outcome tracking"}],"servers":[{"url":"https://api.lambdaplex.io","description":"Generated server url"}],"security":[],"paths":{"/api/v1/feeCollector/sweeps":{"get":{"tags":["Fee collector"],"summary":"List fee collector sweep runs","description":"Returns durable fee collector sweep run summaries, newest first. This endpoint is public and intended for\nthird-party tracking of fee collector rebalancing outcomes.\n\n\n**Weight:** 1","operationId":"listFeeCollectorSweeps","parameters":[{"name":"status","in":"query","description":"Filter by run status","required":false,"schema":{"type":"string","enum":["RUNNING","SKIPPED","COMPLETED","FAILED"]}},{"name":"targetTokenId","in":"query","description":"Filter by target token id","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"from","in":"query","description":"Inclusive lower bound for run start time","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","description":"Exclusive upper bound for run start time","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"cursor","in":"query","description":"Opaque cursor returned by the previous page","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Page size, clamped to 1..200","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Sweep run page","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeeCollectorSweepPage"}}}},"400":{"description":"Invalid query parameter","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}},"components":{"schemas":{"FeeCollectorSweepPage":{"type":"object","description":"Cursor-paginated fee collector sweep runs","properties":{"sweeps":{"type":"array","items":{"$ref":"#/components/schemas/FeeCollectorSweepRun"}},"nextCursor":{"type":"string","description":"Cursor for the next page, if another page is available"}}},"FeeCollectorSweepRun":{"type":"object","description":"Fee collector sweep run summary","properties":{"runId":{"type":"string","format":"uuid","description":"Sweep run id"},"status":{"type":"string","description":"Run status"},"feeCollectorAccount":{"type":"string","description":"Fee collector Hedera account id"},"feeCollectorAccountId":{"type":"integer","format":"int64","description":"Raw fee collector account number"},"targetToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"usdToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"startedAt":{"type":"string","format":"date-time","description":"Run start time"},"finishedAt":{"type":"string","format":"date-time","description":"Run finish time"},"skipReason":{"type":"string","description":"Skip reason for skipped runs"},"failureClass":{"type":"string","description":"Failure class for failed runs"},"failureMessage":{"type":"string","description":"Failure message for failed runs"},"sellActionsPlanned":{"type":"integer","format":"int32"},"sellActionsSubmitted":{"type":"integer","format":"int32"},"buyActionsSubmitted":{"type":"integer","format":"int32"},"terminalActions":{"type":"integer","format":"int32"},"failedActions":{"type":"integer","format":"int32"},"timedOutActions":{"type":"integer","format":"int32"}}},"FeeCollectorSweepToken":{"type":"object","description":"Token identity shown in fee collector sweep responses","properties":{"tokenId":{"type":"integer","format":"int64","description":"Raw Hedera entity number used internally"},"entityId":{"type":"string","description":"Hedera entity id"},"symbol":{"type":"string","description":"Token symbol"},"name":{"type":"string","description":"Token name"},"decimals":{"type":"integer","format":"int32","description":"Token decimals"}}},"ProblemDetail":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","format":"int32"},"detail":{"type":"string"},"instance":{"type":"string","format":"uri"},"properties":{"type":"object","additionalProperties":{}}}},"RateLimitError":{"type":"object","description":"Error response returned when a request is rate limited (HTTP 429)","properties":{"code":{"type":"string","description":"Error code indicating rate limiting"},"status":{"type":"integer","format":"int32","description":"HTTP status code"},"scope":{"type":"string","description":"Scope of the rate limit: 'rest' for HTTP endpoints, 'ws' for WebSocket handshake","enum":["rest","ws"]},"bucket":{"type":"string","description":"Bucket that triggered the limit (e.g. 'rest_weight', 'orders', 'ws_handshake')"},"keyType":{"type":"string","description":"Key type that was rate limited: 'ip' or 'api'","enum":["ip","api"]},"retryAfterSec":{"type":"number","format":"double","description":"Seconds until enough tokens are available to retry this request"}},"required":["bucket","code","keyType","retryAfterSec","scope","status"]}},"responses":{"RateLimited":{"description":"Too Many Requests - Rate limit exceeded.","headers":{"X-PLEX-USED-WEIGHT-API":{"description":"Current used weight for your API key this minute (if authenticated)","schema":{}},"Retry-After":{"description":"Number of seconds to wait before retrying","schema":{}},"X-PLEX-ORDER-COUNT":{"description":"Current order count for your API key (for order endpoints)","schema":{}},"X-PLEX-USED-WEIGHT-IP":{"description":"Current used weight for your IP this minute","schema":{}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}},"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}}
```

## Look up a fee collector sweep action by order id

> Returns the tracked sweep action and parent run for an exchange order submitted by a sweep.\
> \
> \*\*Weight:\*\* 1

```json
{"openapi":"3.1.0","info":{"title":"Lambdaplex API","version":"1.0"},"tags":[{"name":"Fee collector","description":"Public fee collector sweep outcome tracking"}],"servers":[{"url":"https://api.lambdaplex.io","description":"Generated server url"}],"security":[],"paths":{"/api/v1/feeCollector/sweepActions":{"get":{"tags":["Fee collector"],"summary":"Look up a fee collector sweep action by order id","description":"Returns the tracked sweep action and parent run for an exchange order submitted by a sweep.\n\n**Weight:** 1","operationId":"getFeeCollectorSweepActionByOrder","parameters":[{"name":"orderId","in":"query","description":"Exchange-assigned order id","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Sweep action lookup","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeeCollectorSweepActionLookup"}}}},"404":{"description":"No sweep action found for order","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}},"components":{"schemas":{"FeeCollectorSweepActionLookup":{"type":"object","description":"Sweep action and parent run for an order lookup","properties":{"run":{"$ref":"#/components/schemas/FeeCollectorSweepRun"},"action":{"$ref":"#/components/schemas/FeeCollectorSweepAction"}}},"FeeCollectorSweepRun":{"type":"object","description":"Fee collector sweep run summary","properties":{"runId":{"type":"string","format":"uuid","description":"Sweep run id"},"status":{"type":"string","description":"Run status"},"feeCollectorAccount":{"type":"string","description":"Fee collector Hedera account id"},"feeCollectorAccountId":{"type":"integer","format":"int64","description":"Raw fee collector account number"},"targetToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"usdToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"startedAt":{"type":"string","format":"date-time","description":"Run start time"},"finishedAt":{"type":"string","format":"date-time","description":"Run finish time"},"skipReason":{"type":"string","description":"Skip reason for skipped runs"},"failureClass":{"type":"string","description":"Failure class for failed runs"},"failureMessage":{"type":"string","description":"Failure message for failed runs"},"sellActionsPlanned":{"type":"integer","format":"int32"},"sellActionsSubmitted":{"type":"integer","format":"int32"},"buyActionsSubmitted":{"type":"integer","format":"int32"},"terminalActions":{"type":"integer","format":"int32"},"failedActions":{"type":"integer","format":"int32"},"timedOutActions":{"type":"integer","format":"int32"}}},"FeeCollectorSweepToken":{"type":"object","description":"Token identity shown in fee collector sweep responses","properties":{"tokenId":{"type":"integer","format":"int64","description":"Raw Hedera entity number used internally"},"entityId":{"type":"string","description":"Hedera entity id"},"symbol":{"type":"string","description":"Token symbol"},"name":{"type":"string","description":"Token name"},"decimals":{"type":"integer","format":"int32","description":"Token decimals"}}},"FeeCollectorSweepAction":{"type":"object","description":"A single action planned or submitted by a fee collector sweep","properties":{"actionIndex":{"type":"integer","format":"int32","description":"Zero-based action index within the sweep run"},"kind":{"type":"string","description":"Action kind"},"status":{"type":"string","description":"Action status"},"feeCollectorAccount":{"type":"string","description":"Fee collector Hedera account id"},"symbol":{"type":"string","description":"Trading symbol, if a market was resolved"},"symbolId":{"type":"integer","format":"int64","description":"Internal symbol id, if a market was resolved"},"baseToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"quoteToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"side":{"type":"string","description":"Order side"},"orderId":{"type":"string","format":"uuid","description":"Exchange-assigned order id, if an order was submitted"},"requestedQuantity":{"type":"number","description":"Requested base quantity for base-sized market orders"},"requestedQuoteBudget":{"type":"number","description":"Requested quote budget for quote-budget market buys"},"orderStatus":{"type":"string","description":"Terminal order status, if known"},"filled":{"type":"number","description":"Executed base quantity, if known"},"exchangedValue":{"type":"number","description":"Cumulative quote amount exchanged, if known"},"failureCode":{"type":"string","description":"Failure or skip code, if any"},"failureMessage":{"type":"string","description":"Failure or skip message, if any"},"failureTxId":{"type":"string","description":"Failure transaction id, if the order failed on-chain"},"failureEventId":{"type":"integer","format":"int64","description":"Failure event id, if the failure was persisted as an event"},"submittedAt":{"type":"string","format":"date-time","description":"When the order submission succeeded"},"terminalAt":{"type":"string","format":"date-time","description":"When the action reached a terminal tracked state"},"fills":{"type":"array","items":{"$ref":"#/components/schemas/FeeCollectorSweepFill"}}}},"FeeCollectorSweepFill":{"type":"object","description":"Fill associated with a sweep-submitted order","properties":{"id":{"type":"integer","format":"int64","description":"Public fill id"},"cursorId":{"type":"integer","format":"int64","description":"Durable fill cursor id"},"txId":{"type":"string","description":"Settlement transaction id"},"fillTime":{"type":"string","format":"date-time","description":"Fill time"},"bidOrderId":{"type":"string","format":"uuid","description":"Bid-side order id"},"askOrderId":{"type":"string","format":"uuid","description":"Ask-side order id"},"symbolId":{"type":"integer","format":"int64","description":"Internal symbol id"},"price":{"type":"number","description":"Execution price"},"volume":{"type":"number","description":"Base quantity filled"},"quoteVolume":{"type":"number","description":"Quote quantity exchanged"},"usdVolume":{"type":"number","description":"USD notional volume"},"buyerFee":{"type":"number","description":"Buyer fee in base token units"},"sellerFee":{"type":"number","description":"Seller fee in quote token units"},"makerIsBid":{"type":"boolean","description":"Whether the maker was the bid order"}}},"ProblemDetail":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","format":"int32"},"detail":{"type":"string"},"instance":{"type":"string","format":"uri"},"properties":{"type":"object","additionalProperties":{}}}},"RateLimitError":{"type":"object","description":"Error response returned when a request is rate limited (HTTP 429)","properties":{"code":{"type":"string","description":"Error code indicating rate limiting"},"status":{"type":"integer","format":"int32","description":"HTTP status code"},"scope":{"type":"string","description":"Scope of the rate limit: 'rest' for HTTP endpoints, 'ws' for WebSocket handshake","enum":["rest","ws"]},"bucket":{"type":"string","description":"Bucket that triggered the limit (e.g. 'rest_weight', 'orders', 'ws_handshake')"},"keyType":{"type":"string","description":"Key type that was rate limited: 'ip' or 'api'","enum":["ip","api"]},"retryAfterSec":{"type":"number","format":"double","description":"Seconds until enough tokens are available to retry this request"}},"required":["bucket","code","keyType","retryAfterSec","scope","status"]}},"responses":{"RateLimited":{"description":"Too Many Requests - Rate limit exceeded.","headers":{"X-PLEX-USED-WEIGHT-API":{"description":"Current used weight for your API key this minute (if authenticated)","schema":{}},"Retry-After":{"description":"Number of seconds to wait before retrying","schema":{}},"X-PLEX-ORDER-COUNT":{"description":"Current order count for your API key (for order endpoints)","schema":{}},"X-PLEX-USED-WEIGHT-IP":{"description":"Current used weight for your IP this minute","schema":{}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}},"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}}
```

## List fee collector buybacks

> Returns the public cursor-forward feed of fee collector target-token buyback actions. Without a cursor, the\
> endpoint bootstraps from the latest entries and returns them oldest-to-newest. Persist \`nextCursor\` and pass\
> it back on the next polling request to fetch only newer entries.\
> \
> \
> \*\*Weight:\*\* 1

```json
{"openapi":"3.1.0","info":{"title":"Lambdaplex API","version":"1.0"},"tags":[{"name":"Fee collector","description":"Public fee collector sweep outcome tracking"}],"servers":[{"url":"https://api.lambdaplex.io","description":"Generated server url"}],"security":[],"paths":{"/api/v1/feeCollector/buybacks":{"get":{"tags":["Fee collector"],"summary":"List fee collector buybacks","description":"Returns the public cursor-forward feed of fee collector target-token buyback actions. Without a cursor, the\nendpoint bootstraps from the latest entries and returns them oldest-to-newest. Persist `nextCursor` and pass\nit back on the next polling request to fetch only newer entries.\n\n\n**Weight:** 1","operationId":"listFeeCollectorBuybacks","parameters":[{"name":"cursor","in":"query","description":"Opaque cursor returned by a previous buyback feed response","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Page size, clamped to 1..200","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Buyback feed page","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeeCollectorBuybackPage"}}}},"400":{"description":"Invalid query parameter","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}},"components":{"schemas":{"FeeCollectorBuybackPage":{"type":"object","description":"Cursor-forward fee collector buyback feed","properties":{"buybacks":{"type":"array","items":{"$ref":"#/components/schemas/FeeCollectorBuyback"}},"nextCursor":{"type":"string","description":"Cursor to persist for the next polling request. Present whenever at least one entry is returned."}}},"FeeCollectorBuyback":{"type":"object","description":"A fee collector target-token buyback feed entry","properties":{"cursor":{"type":"string","description":"Opaque cursor for this feed entry"},"actionId":{"type":"integer","format":"int64","description":"Durable sweep action row id"},"publicType":{"type":"string","description":"Public feed entry type"},"runId":{"type":"string","format":"uuid","description":"Sweep run id"},"actionIndex":{"type":"integer","format":"int32","description":"Zero-based action index within the sweep run"},"status":{"type":"string","description":"Tracked sweep action status"},"feeCollectorAccount":{"type":"string","description":"Fee collector Hedera account id"},"marketSymbol":{"type":"string","description":"Trading symbol, if a market was resolved"},"symbolId":{"type":"integer","format":"int64","description":"Internal symbol id, if a market was resolved"},"targetToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"quoteToken":{"$ref":"#/components/schemas/FeeCollectorSweepToken"},"side":{"type":"string","description":"Order side"},"orderId":{"type":"string","format":"uuid","description":"Exchange-assigned order id, if an order was submitted"},"requestedQuoteBudget":{"type":"number","description":"Requested quote budget for the buyback"},"orderStatus":{"type":"string","description":"Terminal order status, if known"},"filledQuantity":{"type":"number","description":"Bought target-token quantity, if known"},"quoteSpent":{"type":"number","description":"Quote-token amount spent, if known"},"averagePrice":{"type":"number","description":"Average quote-token price per target-token unit, if known"},"fillCount":{"type":"integer","format":"int32","description":"Number of fills currently attached to the buyback"},"txIds":{"type":"array","description":"Settlement transaction ids observed for fills","items":{"type":"string"}},"failureCode":{"type":"string","description":"Failure or skip code, if any"},"failureMessage":{"type":"string","description":"Failure or skip message, if any"},"submittedAt":{"type":"string","format":"date-time","description":"When the order submission succeeded"},"terminalAt":{"type":"string","format":"date-time","description":"When the action reached a terminal tracked state"},"createdAt":{"type":"string","format":"date-time","description":"When this feed entry was created"},"updatedAt":{"type":"string","format":"date-time","description":"When this feed entry was last updated"}}},"FeeCollectorSweepToken":{"type":"object","description":"Token identity shown in fee collector sweep responses","properties":{"tokenId":{"type":"integer","format":"int64","description":"Raw Hedera entity number used internally"},"entityId":{"type":"string","description":"Hedera entity id"},"symbol":{"type":"string","description":"Token symbol"},"name":{"type":"string","description":"Token name"},"decimals":{"type":"integer","format":"int32","description":"Token decimals"}}},"ProblemDetail":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","format":"int32"},"detail":{"type":"string"},"instance":{"type":"string","format":"uri"},"properties":{"type":"object","additionalProperties":{}}}},"RateLimitError":{"type":"object","description":"Error response returned when a request is rate limited (HTTP 429)","properties":{"code":{"type":"string","description":"Error code indicating rate limiting"},"status":{"type":"integer","format":"int32","description":"HTTP status code"},"scope":{"type":"string","description":"Scope of the rate limit: 'rest' for HTTP endpoints, 'ws' for WebSocket handshake","enum":["rest","ws"]},"bucket":{"type":"string","description":"Bucket that triggered the limit (e.g. 'rest_weight', 'orders', 'ws_handshake')"},"keyType":{"type":"string","description":"Key type that was rate limited: 'ip' or 'api'","enum":["ip","api"]},"retryAfterSec":{"type":"number","format":"double","description":"Seconds until enough tokens are available to retry this request"}},"required":["bucket","code","keyType","retryAfterSec","scope","status"]}},"responses":{"RateLimited":{"description":"Too Many Requests - Rate limit exceeded.","headers":{"X-PLEX-USED-WEIGHT-API":{"description":"Current used weight for your API key this minute (if authenticated)","schema":{}},"Retry-After":{"description":"Number of seconds to wait before retrying","schema":{}},"X-PLEX-ORDER-COUNT":{"description":"Current order count for your API key (for order endpoints)","schema":{}},"X-PLEX-USED-WEIGHT-IP":{"description":"Current used weight for your IP this minute","schema":{}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}},"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}}
```
