Parqet Connect API

Changelog

Track every change to the Parqet Connect API — new endpoints, breaking changes, deprecations and fixes.

Delete activities

Activities can now be deleted from a portfolio, e.g. to clean up incorrectly synced data. Up to 100 activities can be deleted per request.

DELETE/portfolios/{portfolioId}/activities
  • Added

    New endpoint to delete activities of a portfolio. Activities that do not exist or do not belong to the portfolio are ignored and not included in deletedActivities.

Portfolio calculation method

Integrations can now choose the calculation method when creating a portfolio and read it from the portfolio list. The calculation method determines how the cost basis, realized gains and performance of the portfolio are calculated. It therefore changes the values returned by the API, such as the realized gains, unrealized gains and performance metrics returned by POST /performance, as well as the figures shown to the user in Parqet. See Choosing a calculation method for how the methods differ.

POST/portfolios
  • Added

    Portfolio creation now accepts an optional calculationMethod (fifo, lifo or moving_average). If omitted, Parqet selects the default calculation method based on the user's locale.

GET/portfolios
  • Added

    Portfolio responses now include the calculationMethod of each portfolio.

Sub-account identifier on activities

Activity responses now reference the sub-account they belong to, and activities can be assigned to a sub-account on creation. Both use the same identifier as the subAccounts entries in portfolio responses and the subAccount field on holdings.

POST/portfolios/{portfolioId}/activities
  • Added

    Activity creation now accepts an optional subAccountId to assign the activity to a specific sub-account. If omitted, the activity is assigned to the default sub-account.

GET/portfolios/{portfolioId}/activities
  • Added

    Activity responses now include a subAccount identifier referencing the sub-account the activity belongs to. Activities not assigned to a specific sub-account reference the default sub-account.

New supported currencies

The currencies AED, BHD, QAR, RON, and RSD are now supported wherever a currency can be provided. The pseudo-currency USDC is no longer supported.

GET/portfolios
  • Changed

    The currency field now accepts AED, BHD, QAR, RON, and RSD. The USDC currency is no longer supported.

POST/performance
  • Changed

    The currency field now accepts AED, BHD, QAR, RON, and RSD. The USDC currency is no longer supported.

P2P holdings support

Parqet Connect now supports dedicated P2P holdings. Integrations can create P2P holdings and create activities for them.

POST/portfolios/{portfolioId}/activities
  • Added

    Activity creation now accepts the assetIdentifierType value p2p with holding_id and amount. P2P payouts use dividend.

  • Changed

    Cash activities now accept amount directly.

  • Changed

    Insurance activities now require amount instead of shares and price.

    Breaking
POST/performance
  • Changed

    Performance responses can now contain P2P holdings (asset type p2p).

FX information on activities and holding currencies

Activity responses now include an fx object for activities that were executed in a different currency than the portfolio currency. It contains the FX rate, the originalCurrency, and the original values (originalPrice, originalTax, originalFee, originalAmount, originalAmountNet). For activities executed in the portfolio currency, fx is null.

In addition, holdings now expose their currency in both the holdings and performance responses.

GET/portfolios/{portfolioId}/activities
  • Added

    Activity responses now include an fx object with the FX rate, original currency, and original values (originalPrice, originalTax, originalFee, originalAmount, originalAmountNet) — null if the activity was executed in the portfolio currency.

POST/performance
  • Added

    Holdings in the performance response now include their currency.

Sub-account support

Portfolio responses now include the sub-accounts of a portfolio, holdings responses reference the sub-account they belong to, and performance requests can be filtered by sub-accounts.

Sub-accounts represent separate securities accounts that a broker manages within a single brokerage connection — for example, multiple depots at the same bank that are imported into one Parqet portfolio. A common example are junior depots: a parent's own depot and the depots of their children live under the same bank login, but each is tracked as its own sub-account. Holdings and activities of a portfolio can belong to a specific sub-account.

Each portfolio lists its sub-accounts with a stable identifier that integrations can persist and use to distinguish data per sub-account. In addition, every portfolio contains one default sub-account entry (isDefault: true) that groups everything not assigned to a specific sub-account. Portfolios without explicit sub-accounts therefore return a subAccounts array containing only the default entry.

Performance requests accept an optional filter.subAccountIds array to calculate performance only for the given sub-accounts. If no filter is provided, the performance is calculated across the entire portfolio as before.

GET/portfolios
  • Added

    Portfolio responses now include a subAccounts array. Each entry contains an id, an isDefault flag, and a name (for non-default sub-accounts).

POST/performance
  • Added

    POST /performance now accepts an optional filter.subAccountIds array to restrict the performance calculation to specific sub-accounts.

Insurance holdings support

Parqet Connect now supports insurance holdings. Integrations can create insurance holdings and create activities for them.

POST/performance
  • Changed

    Performance responses can now contain insurance holdings (asset type insurance).

Custom holding initial quote import and user-managed quote upserts

Custom holding creation now supports importing an initial set of quotes. User-managed quote imports can now overwrite existing quotes for the same datetime, simplifying idempotent sync runs.

User-managed quotes for custom holdings can be created via external identifiers

User-managed quote creation now supports a structured identifier for both Parqet holding IDs and external source IDs. Source-system IDs are useful when syncing from external brokers, because they provide stable cross-system mapping of resources.

The pre-existing holdingId property is now deprecated

POST/portfolios/{portfolioId}/quotes/user-managed
  • Added

    POST /portfolios/{portfolioId}/quotes/user-managed now accepts identifier: { type: "holdingId" | "externalId", value } to target holdings by Parqet or source-system IDs.

  • Deprecated

    The pre-existing holdingId field is still accepted for backward compatibility, but it is deprecated; migrate to identifier (for example, holdingId: "abc123" -> identifier: { type: "holdingId", value: "abc123" }).

External holding IDs for reconciliation

Holding creation endpoints now support source-system reconciliation IDs consistently. Custom holdings also accept an optional image payload to align with other holding types that already support logos.

POST/performance
  • Added

    Performance responses now include externalId on holdings, allowing source-system reconciliation across read and write flows.

Reference account validation tightened for cash holdings

Sending cash in referenceAccountFor was previously accepted by the request schema but still failed during processing. The API now rejects this input during validation, which also results in improved type safety for clients.

POST/portfolios/{portfolioId}/holdings/cash
  • Fixed

    POST /portfolios/{portfolioId}/holdings/cash now returns a validation error when referenceAccountFor contains cash (previously this also errored later in processing).

External activity IDs for reconciliation and deduplication

Activities now support an optional externalId so integrations can map Parqet activities to source-system records (for example, broker transaction IDs). Use a stable ID per source activity to prevent duplicates and simplify sync logic.

Chart Support

Performance responses now include chart series and richer commodity metadata.

POST/performance
  • Added

    Response now includes a charts array with mark, date, and time-series values (history, capitalHistory, perfHistory, perfHistoryUnrealized, ttwror, drawdown).

  • Added

    Commodity holdings in the performance response now expose an identifier field (gold, silver, platinum, palladium).

  • Removed

    the currency RMB is no longer supported (use CNY instead).

    Breaking

New holding asset classes 🚀

Parqet Connect now supports creating cash, commodity, and real estate holdings, and posting activities against those holdings.

POST/performance
  • Fixed

    A 400 response is returned if absolute intervals have an end date before the start date.