> ## Documentation Index
> Fetch the complete documentation index at: https://docs.b3os.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Kalshi Get Portfolio Fills

Get trade fill history from your Kalshi portfolio. Returns details for each fill including price, side, taker status, and timestamps. Supports filtering by ticker, order, and time range. Ideal for: trade history analysis, execution quality review, P&L reconciliation, tax reporting.

![Kalshi Get Portfolio Fills logo](https://cdn.b3.fun/kalshi-logo.png)
Catalog action Utility kalshi

Get trade fill history from your Kalshi portfolio. Returns details for each fill including price, side, taker status, and timestamps. Supports filtering by ticker, order, and time range. Ideal for: trade history analysis, execution quality review, P&amp;L reconciliation, tax reporting.


## At a Glance

| Field | Value |
| --- | --- |
| Action ID | `kalshi-get-portfolio-fills` |
| Category | Utility |
| Connector | `kalshi` |
| Requires gas | No |
| Funds movement | None declared |
| Tags | `kalshi`, `prediction-market`, `fills`, `trading`, `read` |

## Payload Schema

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ticker` | `string` | No | Filter by market ticker |
| `orderId` | `string` | No | Filter by order ID |
| `limit` | `number` | No | Maximum number of fills to return \(default: 100, max: 1000\) |
| `cursor` | `string` | No | Cursor for pagination |
| `minTs` | `number` | No | Minimum timestamp \(Unix seconds\) to filter fills |
| `maxTs` | `number` | No | Maximum timestamp \(Unix seconds\) to filter fills |
| `subaccount` | `number` | No | Subaccount number \(0 = primary, 1-32 = subaccounts\) |

## Result Schema

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `fills` | `array` | Yes | List of trade fills |
| `cursor` | `string` | Yes | Cursor for fetching the next page |

## Examples

**Workflow node**

```json
{
  "type": "kalshi-get-portfolio-fills",
  "payload": {
    "ticker": "example-ticker",
    "orderId": "example-orderId",
    "limit": 100,
    "cursor": "example-cursor",
    "minTs": 1
  },
  "children": [],
  "connector": {
    "type": "kalshi",
    "id": "conn_kalshi"
  }
}
```
  **Test with API**

```bash
curl -X POST "https://api.b3os.org/v1/actions/kalshi-get-portfolio-fills/test" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "inputs": {
    "ticker": "example-ticker",
    "orderId": "example-orderId",
    "limit": 100,
    "cursor": "example-cursor",
    "minTs": 1
  }
}'
```

**Use expressions for dynamic values**

Payload fields can use workflow expressions such as `{{$trigger.body.amount}}`, `{{$nodes.fetch.result.price}}`, and `{{$props.asset}}` when the value should come from a trigger, prior node, or reusable workflow prop.