Portfolio management
POST /portfolio
Creates a new empty portfolio under your account. Auth: API key requiredRequest body
string
required
Display name for the portfolio.
GET /portfolio
Returns all saved portfolios for your account. Auth: API key requiredstring
Set to
value to add total_value and change_24h_pct to every portfolio in the response. Omitted by default, since valuing every portfolio costs an extra lookup per portfolio.string
default:"USD"
Portfolio base currency (ISO 4217). Values are returned in this currency.
string | null
Pinned pricing provider key, or
null when the portfolio is valued at the best ask across all providers.integer | null
Current total value in minor units of the base currency. Present only with
include=value.number | null
Percent change against the previous daily close. Present only with
include=value, and null until a previous close exists.DELETE /portfolio/:id
Permanently deletes a portfolio and all of its saved items and transactions. Auth: API key requiredstring
required
UUID of the portfolio to delete.
Valuation
POST /portfolio/value
Values a user-supplied item list using the current best ask across the selected providers. Use this for one-off valuations without creating a saved portfolio. Tiers: Free, Starter, Pro, Quantarray
required
Array of objects, each with
item_id (integer) and quantity (integer). Maximum 100 items per request.string[]
Optional provider filter. Omit to use all available providers.
string
default:"USD"
Target output currency (ISO 4217).
Request body
Response example
array
Per-item valuation results.
number
Sum of all
item_value entries.integer
Number of items successfully priced.
array
Item IDs from the request that could not be matched in the catalog.
GET /portfolio/:id/value
Values all items currently in a saved portfolio using live market prices. Auth: API key requiredstring
required
UUID of the portfolio to value.
string
default:"USD"
Target output currency (ISO 4217).
string[]
Optional provider filter. Repeat to pass multiple values.
This is a live valuation based on current indexed prices, not a historical replay.
Import and export
POST /portfolio/:id/import
Imports items from your linked Steam inventory into a saved portfolio. If you omitasset_ids, the full inventory is imported.
Auth: API key required + linked Steam account
string
required
UUID of the destination portfolio.
Request body (optional asset filter and cost basis)
object
Optional per-unit purchase price in minor units, keyed by Steam asset ID. Every imported asset with a price also gets a matching
buy transaction — dated today, marketplace steam, in the portfolio’s base currency — so the import carries cost basis. Assets you leave out are imported without one.Items already saved under the same Steam asset ID are skipped automatically. Items that cannot be matched to a catalog entry are returned in
unresolved and are not stored.POST /portfolio/:id/import/csv
Uploads a CSV file to bulk import transactions or snapshot-style holdings into a portfolio. Auth: API key requiredstring
required
UUID of the destination portfolio.
Both ledger and snapshot CSV formats are supported. The format is detected automatically from the CSV headers. Buy transactions imported from CSV can create missing portfolio items automatically.
GET /portfolio/:id/export
Downloads portfolio data as a CSV file. Auth: API key requiredstring
required
UUID of the portfolio to export.
string
default:"transactions"
Export format. One of:
transactions, items.Portfolio items
GET /portfolio/:id/items
Returns the items currently stored in a portfolio. Auth: API key requiredstring
required
UUID of the portfolio.
POST /portfolio/:id/items
Manually adds one item to a portfolio. Auth: API key requiredstring
required
UUID of the portfolio.
integer
Catalog item ID. Provide either
item_id or market_hash_name.integer
required
Number of units to add.
string
Phase variant for Doppler/Gamma items, or
null.Request body
DELETE /portfolio/:id/items/:entry_id
Removes a saved portfolio entry. Auth: API key requiredstring
required
UUID of the portfolio.
string
required
Portfolio entry UUID. This is the UUID assigned to the portfolio entry — it is not the catalog
item_id.entry_id is the portfolio entry UUID, not the catalog item_id. You can retrieve it from GET /portfolio/:id/items.Transactions
GET /portfolio/:id/transactions
Returns the portfolio’s buy/sell ledger, newest first. Auth: API key requiredstring
required
UUID of the portfolio.
POST /portfolio/:id/transactions
Records a buy or sell transaction for an item in the portfolio. Auth: API key requiredstring
required
UUID of the portfolio.
integer
Catalog item ID. Provide either
item_id or market_hash_name.string
required
Transaction direction. One of:
buy, sell.integer
required
Number of units transacted.
number
required
Price per unit in the specified currency.
string
required
Transaction date in
YYYY-MM-DD format.string
Marketplace where the transaction occurred (e.g.,
skinport).string
required
Currency for the price (ISO 4217).
Request body
Buy transactions can automatically create portfolio items for items not yet tracked in the portfolio.
PATCH /portfolio/:id/transactions/:tx_id
Partially updates an existing transaction. Auth: API key requiredstring
required
UUID of the portfolio.
string
required
UUID of the transaction to update.
integer
Updated unit count.
number
Updated price per unit.
string
Updated date in
YYYY-MM-DD format.number
Absolute fee paid, in the transaction currency.
number
Fee as a percentage of the transaction total.
string
Updated marketplace name.
string
Free-text note for this transaction.
string
Updated transaction currency (ISO 4217).
DELETE /portfolio/:id/transactions/:tx_id
Permanently deletes a transaction from the portfolio ledger. Auth: API key requiredstring
required
UUID of the portfolio.
string
required
UUID of the transaction to delete.
Historical valuation
GET /portfolio/:id/history
Rebuilds daily portfolio values from the transaction ledger. Returns a time series of portfolio worth over the selected date range. Auth: API key requiredstring
required
UUID of the portfolio.
string
Inclusive start date in
YYYY-MM-DD format.string
Inclusive end date in
YYYY-MM-DD format. Defaults to today.string
Optional window such as
30d. When provided, it overrides start_date.string
default:"USD"
Target output currency (ISO 4217).
string[]
Optional provider filter. Repeat to pass multiple values.
integer
Maximum number of daily data points to return.
string
Opaque cursor from the previous page for cursor-based pagination.
Historical valuation is daily only. Each day’s value uses the best available price across your selected providers. If no price update exists for a given day, the most recent available price is used.
pagination.total is always -1 — use next_cursor to paginate.