Skip to main content

Get Profit & Loss (PNL) Report in Graphql

This query returns a pnl report for selected portfolios on a given date.


Screenshot 2026-01-13 at 20.47.48.png


GraphQL Query

query GetPLReport {
  pl_report(
    input: {
      report_date: "2024-05-01"
      pricing_policy: "com.finmars.standard-pricing:standard"
      portfolios: ["Commodity Portfolio"]
    }
  ) {
    items {
      id
      item_type
      item_type_name
      name
      market_value
      position_size
    }
  }
}

Input Highlights

Report Date

report_date: "2024-05-01"
  • Snapshot date
  • ISO date format
  • Required field

PL First Date

pl_first_date: "2024-01-01"
  • Snapshot date
  • ISO date format
  • Required field
  • Basically its a "date from"

Report Currency

report_currency: "USD"
  • Output currency
  • Must exist in the system

Pricing Policy

pricing_policy: "com.finmars.standard-pricing:standard"
  • Defines valuation rules
  • Uses pricing engine configuration
  • Required for valuation

Portfolios

portfolios: ["Commodity Portfolio"]
  • List of portfolio user codes
  • Supports multiple portfolios

Python Code

import requests

url = "https://<domain_name>/<realm_code>/<space_code>/graphql/"

headers = {
    "Authorization": "Bearer <access_token>",
    "Content-Type": "application/json"
}

payload = {
    "query": """
query GetPLReport {
  pl_report(
    input: {
      report_date: "2024-05-01"
      pricing_policy: "com.finmars.standard-pricing:standard"
      portfolios: ["Commodity Portfolio"]
    }
  ) {
    items {
      id
      item_type
      item_type_name
      name
      market_value
      position_size
    }
  }
}
    """
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())



Notes

  • This is not a list query.
  • No pagination.
  • Uses input instead of filters.
  • Report queries execute calculations.