Skip to content
Get started

Get Portfolio History

client.V1.Accounts.GetPortfolioHistory(ctx, accountID, query) (*V1AccountGetPortfolioHistoryResponse, error)
GET/v1/accounts/{account_id}/portfolio-history

Retrieves daily portfolio history for the specified account.

ParametersExpand Collapse
accountID int64
query V1AccountGetPortfolioHistoryParams
StartDate param.Field[Time]

Start date for the portfolio history range, in YYYY-MM-DD format.

formatdate
EndDate param.Field[Time]Optional

Defaults to today in America/New_York when omitted.

formatdate
ReturnsExpand Collapse
type V1AccountGetPortfolioHistoryResponse struct{…}
Date Time

The date for this segment

formatdate
EodEquity string

The equity at the end of the trading day.

RealizedPnl string

Sum of the profit and loss realized from position closing trading activity.

SodEquity string

The equity at the start of the trading day.

UnrealizedPnl string

Sum of the profit and loss from market changes.

BoughtNotional stringOptional

Amount bought MTM

DayPnl stringOptional

Sum of the profit and loss from intraday trading activities for the trading day.

NetPnl stringOptional

P&L after netting all realized and unrealized P&L, adjustments, dividends, change in accruals, income and expenses

PositionPnl stringOptional

P&L attributable to start-of-day (carried) positions from market movement during this trading day.

SoldNotional stringOptional

Amount sold MTM

Get Portfolio History

package main

import (
  "context"
  "fmt"
  "time"

  "github.com/clear-street/clear-street-go"
  "github.com/clear-street/clear-street-go/option"
)

func main() {
  client := clearstreet.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.V1.Accounts.GetPortfolioHistory(
    context.TODO(),
    0,
    clearstreet.V1AccountGetPortfolioHistoryParams{
      StartDate: time.Now(),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response)
}
{
  "data": {
    "segments": [
      {
        "bought_notional": "39800.00",
        "date": "2026-04-15",
        "day_pnl": "850.25",
        "eod_equity": "100850.25",
        "net_pnl": "850.25",
        "position_pnl": "-350.25",
        "realized_pnl": "1200.50",
        "sod_equity": "100000.00",
        "sold_notional": "42500.00",
        "unrealized_pnl": "-350.25"
      }
    ]
  },
  "error": null,
  "metadata": {
    "request_id": "f076d6f6-10c9-42a0-98c5-18cebc427e80"
  }
}
{
  "data": {
    "segments": [
      {
        "bought_notional": null,
        "date": "2026-05-12",
        "day_pnl": null,
        "eod_equity": "100009.00",
        "net_pnl": null,
        "position_pnl": null,
        "realized_pnl": "12.00",
        "sod_equity": "100000.00",
        "sold_notional": null,
        "unrealized_pnl": "-3.00"
      }
    ]
  },
  "error": {
    "code": 500,
    "message": "upstream calc-engine returned an error"
  },
  "metadata": {
    "request_id": "2f3d7b0a-1111-4a4b-9e1f-8c4e5d3a9f12"
  }
}
{
  "error": {
    "code": 403,
    "message": "The caller does not have permission to execute the specified operation"
  },
  "metadata": {
    "request_id": "5518f0c6-58ff-4b4a-81a5-701556d41206"
  }
}
Returns Examples
{
  "data": {
    "segments": [
      {
        "bought_notional": "39800.00",
        "date": "2026-04-15",
        "day_pnl": "850.25",
        "eod_equity": "100850.25",
        "net_pnl": "850.25",
        "position_pnl": "-350.25",
        "realized_pnl": "1200.50",
        "sod_equity": "100000.00",
        "sold_notional": "42500.00",
        "unrealized_pnl": "-350.25"
      }
    ]
  },
  "error": null,
  "metadata": {
    "request_id": "f076d6f6-10c9-42a0-98c5-18cebc427e80"
  }
}
{
  "data": {
    "segments": [
      {
        "bought_notional": null,
        "date": "2026-05-12",
        "day_pnl": null,
        "eod_equity": "100009.00",
        "net_pnl": null,
        "position_pnl": null,
        "realized_pnl": "12.00",
        "sod_equity": "100000.00",
        "sold_notional": null,
        "unrealized_pnl": "-3.00"
      }
    ]
  },
  "error": {
    "code": 500,
    "message": "upstream calc-engine returned an error"
  },
  "metadata": {
    "request_id": "2f3d7b0a-1111-4a4b-9e1f-8c4e5d3a9f12"
  }
}
{
  "error": {
    "code": 403,
    "message": "The caller does not have permission to execute the specified operation"
  },
  "metadata": {
    "request_id": "5518f0c6-58ff-4b4a-81a5-701556d41206"
  }
}