TanitFolio
← AI assistantRaw Markdown (TOOLS.md)

TanitFolio MCP — tool reference

Generated by backend/scripts/export_mcp_tools.py from the API's routes — do not edit by hand.

Server tanitfolio 0.1.0, Streamable HTTP on /mcp, 112 tools.

Each tool calls the route shown, with the caller's own identity (a personal API key).

The JSON Schema of every tool, as the server lists it, is served by GET /api/mcp/tools.

Reading this file

  • role — who sees and may call the tool: public, user, admin, super admin. The server lists only the tools of the caller's role; the API refuses the others with 403.
  • read-only — a GET: nothing changes. destructive — a DELETE: the API deletes for good (an archived portfolio stays readable; a journal entry does not).
  • Argument location — path and query are URL parts, body is a field of the JSON body. One flat object on the wire of MCP, whatever the location.
  • Types — JSON Schema rendered: integer or null is an optional field; enum: a \| b lists the accepted values; object {…} names the fields of a nested object (the full schema is in GET /api/mcp/tools).
  • Results — the JSON the route returns, as text and as structuredContent; a 4xx/5xx becomes an error result carrying HTTP <status>: <detail>.

Routes that are not tools: create_api_key, decide_oauth_request, download_portfolio_import_template, export_analysis, forgot_password, get_oauth_request, list_api_keys, list_mcp_tools, list_oauth_connections, login, merge_guest, parse_portfolio, register, resend_verification, reset_password, revoke_api_key, revoke_oauth_connection, session_ping, start_guest_session, update_me, verify_email (credentials, key management, the catalog itself, a multipart upload and two binary downloads).

Domains

portfolios

create_sample_portfolio — Create a sample portfolio: 20 S&P 500 stocks opened a year ago, whole shares (BE-217)

POST /api/portfolios/sample · role: user

Create a sample portfolio: 20 S&P 500 stocks opened a year ago, whole shares (BE-217).

ArgumentTypeRequiredDefaultDescription
variant (body)enum: market_cap | equal_weightyes

get_favorites — The user's favorites watchlist, or null before the first star

GET /api/portfolios/favorites · role: user · read-only

The user's favorites watchlist, or null before the first star. The user's favorites: one special watchlist (is_favorites), or null before the first star. Use its id like any watchlist id (analysis scope, backtests, history).

No arguments.

add_favorite — Star a ticker: add it to the favorites watchlist, created at the first star

POST /api/portfolios/favorites/items · role: user

Star a ticker: add it to the favorites watchlist, created at the first star. The star: adds a ticker to the favorites without choosing a list — the list is created at the first star. Already a favorite answers 200, not an error.

ArgumentTypeRequiredDefaultDescription
ticker (body)stringyes
platform (body)string or nullno

remove_favorite — Unstar a ticker: remove it from the favorites watchlist

DELETE /api/portfolios/favorites/items/{ticker} · role: user · destructive

Unstar a ticker: remove it from the favorites watchlist. Removes a ticker from the favorites (204 even when absent); the list stays and its history keeps the dates.

ArgumentTypeRequiredDefaultDescription
ticker (path)stringyes

create_portfolio_from_json — Register a portfolio from JSON (manual input)

POST /api/portfolios/from-json · role: user

Register a portfolio from JSON (manual input). Accepts a list of assets in JSON format (no Excel required). Returns the same structure as POST /portfolios/parse. Quantity, Price and Amount are all optional — assets with zero Amount are treated as watchlist entries. Parses a list of assets into a temporary analysis input (30 min) and returns a string portfolio_id for create_analysis's legacy portfolio_id field. Nothing is saved: to keep a portfolio, use create_or_replace_portfolio.

ArgumentTypeRequiredDefaultDescription
assets (body)array of object {ticker, type, asset_name, platform, quantity, price, amount, manual_target_price}yes

preview_portfolio — Preview portfolio composition with asset enrichment (no persistence)

POST /api/portfolios/preview · role: user

Preview portfolio composition with asset enrichment (no persistence). Enriches a list of assets (names, prices, weights) without saving anything: use it to check tickers before create_or_replace_portfolio.

ArgumentTypeRequiredDefaultDescription
kind (body)enum: portfolio | watchlistyes
name (body)stringyes
assets (body)array of object {ticker, quantity, amount}yes

create_or_replace_portfolio — Create or replace a portfolio or watchlist

POST /api/portfolios · role: user

Create or replace a portfolio or watchlist. Creates a portfolio or a watchlist (kind) with its assets; with an id, replaces that one. A portfolio needs at least one asset (400 otherwise); a watchlist may start empty. Positions are opened in the journal at creation. To add a trade later, prefer create_transaction.

ArgumentTypeRequiredDefaultDescription
id (body)integer or nullno
kind (body)enum: portfolio | watchlistyes
name (body)stringyes
status (body)enum: draft | validated | simulatednodraft
assets (body)array of object {ticker, asset_type, asset_name, platform, quantity, price, amount, manual_target_price, acquisition_price, acquisition_date}no

list_portfolios — List the authenticated user's portfolios and watchlists

GET /api/portfolios · role: user · read-only

List the authenticated user's portfolios and watchlists. Every portfolio and watchlist of the user with its id, kind (portfolio | watchlist), status (draft | validated | simulated), name and totals. Use the id with the other portfolio tools.

ArgumentTypeRequiredDefaultDescription
kind (query)enum: portfolio | watchlist or nullnoFilter by kind

get_portfolio_detail — Get a single portfolio or watchlist with all assets

GET /api/portfolios/{portfolio_id} · role: user · read-only

Get a single portfolio or watchlist with all assets. The portfolio with its assets as held today (quantities, prices, cost basis, PnL). For prices, sparklines and indicators per position call get_portfolio_composition.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes

patch_portfolio — Update name and/or status of a portfolio or watchlist

PATCH /api/portfolios/{portfolio_id} · role: user

Update name and/or status of a portfolio or watchlist. Renames a portfolio or changes its status (draft | validated | simulated).

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
name (body)string or nullno
status (body)enum: draft | validated | simulated or nullno
tax_residence (body)enum: FR | DE | US | or nullno
display_currency (body)string or nullno
opening_date (body)string (date) or nullno

delete_portfolio — Archive a portfolio or watchlist (soft delete)

DELETE /api/portfolios/{portfolio_id} · role: user · destructive

Archive a portfolio or watchlist (soft delete). Archives the portfolio (soft delete): it leaves the lists but its data stays.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes

patch_portfolio_status — Change the status of a portfolio or watchlist (legacy endpoint)

PATCH /api/portfolios/{portfolio_id}/status · role: user

Change the status of a portfolio or watchlist (legacy endpoint).

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
status (body)enum: draft | validated | simulatedyes

get_portfolio_composition — Get enriched composition: latest prices, PnL, sparklines (BE-25)

GET /api/portfolios/{portfolio_id}/composition · role: user · read-only

Get enriched composition: latest prices, PnL, sparklines (BE-25). Latest prices, weights, PnL, sparklines, momentum and fundamentals per position, plus the cash line (USD=X). Window: 1W | 1M | 3M | 1Y | YTD.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
window (query)enum: 1W | 1M | 3M | 1Y | YTDno1MSparkline time window
currency (query)string or nullnoBE-101: display currency of the *_display fields (default: the portfolio's)

get_portfolio_sparklines — Refresh portfolio sparklines for a given time window (BE-25)

GET /api/portfolios/{portfolio_id}/composition/sparklines · role: user · read-only

Refresh portfolio sparklines for a given time window (BE-25).

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
window (query)enum: 1W | 1M | 3M | 1Y | YTDno1MSparkline time window

get_portfolio_performance — Backcast performance of the current allocation vs a benchmark (BE-40)

GET /api/portfolios/{portfolio_id}/performance · role: user · read-only

Backcast performance of the current allocation vs a benchmark (BE-40). Time-weighted performance of the actual holdings versus a benchmark (^GSPC by default), from the journal; a curve of dated values in USD.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
window (query)enum: 1M | 3M | YTD | MTD | 1Y | 2Yno1YBackcast time window
benchmark (query)string or nullno^GSPCBenchmark ticker, omit for none
currency (query)string or nullnoBE-101: currency the curves are measured in (default: the portfolio's)
allow_projection (query)booleannoFalseBE-74 §mod: when the journal has fewer than two priced days, chart the current composition over the window instead of no curve (a labelled what-if, e.g. the welcome summary). Off: a portfolio's curve never shows a past it did not live.

get_portfolio_pnl — PnL since inception (USD) and annualised XIRR of this portfolio (BE-143)

GET /api/portfolios/{portfolio_id}/pnl · role: user · read-only

PnL since inception (USD) and annualised XIRR of this portfolio (BE-143). PnL since inception in USD, split by price, FX and dividends, and the annualised XIRR.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes

refresh_portfolio_scorecard — Recompute the 'current' scorecard row — no optimizer solve (BE-76)

POST /api/portfolios/{portfolio_id}/scorecard/refresh · role: user

Recompute the 'current' scorecard row — no optimizer solve (BE-76). Recomputes the 'current' scorecard row with the latest prices, without running any optimiser.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes

clone_portfolio — Clone a portfolio (full journal) or a watchlist (current members)

POST /api/portfolios/{portfolio_id}/clone · role: user

Clone a portfolio (full journal) or a watchlist (current members). Copies a portfolio with its whole journal, or a watchlist with its current members.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
body (body)object {name, status} or nullnoThe JSON request body

create_transaction — Record a buy, a sell, a deposit or a withdrawal on a portfolio

POST /api/portfolios/{portfolio_id}/transactions · role: user

Record a buy, a sell, a deposit or a withdrawal on a portfolio. side: buy | sell | deposit | withdraw. A buy or sell needs ticker, quantity and price (native currency of the ticker); transaction_date defaults to today; fx_rate, payment_currency and payment_amount are optional. A deposit or withdraw needs amount (USD unless payment_currency is given). The position and the cash are replayed at once.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
ticker (body)string or nullno
side (body)enum: buy | sell | deposit | withdrawyes
transaction_date (body)string (date) or nullno
quantity (body)number or nullno
amount (body)number or nullno
price (body)number or nullno
fx_rate (body)number or nullno
note (body)string or nullno
payment_currency (body)string or nullno
payment_amount (body)number or nullno
payment_price (body)number or nullno
payment_fx_rate (body)number or nullno
commission_usd (body)number or nullno

list_transactions — List the transaction journal of a portfolio

GET /api/portfolios/{portfolio_id}/transactions · role: user · read-only

List the transaction journal of a portfolio. The journal: every buy, sell, deposit, withdraw, dividend, open and adjust entry, oldest first.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
ticker (query)string or nullnoFilter by ticker

update_transaction — Correct a transaction and replay the position

PATCH /api/portfolios/{portfolio_id}/transactions/{tx_id} · role: user

Correct a transaction and replay the position. Corrects one journal entry (same fields as create_transaction) and replays the position.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
tx_id (path)integeryes
transaction_date (body)string (date) or nullno
quantity (body)number or nullno
amount (body)number or nullno
price (body)number or nullno
fx_rate (body)number or nullno
note (body)string or nullno
payment_currency (body)string or nullno
payment_amount (body)number or nullno
payment_price (body)number or nullno
payment_fx_rate (body)number or nullno
commission_usd (body)number or nullno

delete_transaction — Delete a transaction and replay the position

DELETE /api/portfolios/{portfolio_id}/transactions/{tx_id} · role: user · destructive

Delete a transaction and replay the position. Removes one journal entry and replays the position. Irreversible.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
tx_id (path)integeryes

get_watchlist_history — List the membership history (added/removed dates) of a watchlist

GET /api/portfolios/{portfolio_id}/watchlist-history · role: user · read-only

List the membership history (added/removed dates) of a watchlist.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
ticker (query)string or nullnoFilter by ticker

add_watchlist_item — Add one ticker to a watchlist

POST /api/portfolios/{portfolio_id}/watchlist-items · role: user

Add one ticker to a watchlist. Adds a ticker to a watchlist (added_date optional, defaults to today).

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
ticker (body)stringyes
platform (body)string or nullno
manual_target_price (body)number or nullno

delete_watchlist_item — Remove one ticker from a watchlist

DELETE /api/portfolios/{portfolio_id}/watchlist-items/{ticker} · role: user · destructive

Remove one ticker from a watchlist. Removes a ticker from a watchlist; the membership history keeps the dates.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
ticker (path)stringyes

update_watchlist_item — Change the date a ticker was added to a watchlist (BE-95)

PATCH /api/portfolios/{portfolio_id}/watchlist-items/{ticker} · role: user

Change the date a ticker was added to a watchlist (BE-95). Backdate the current membership period — the only way a watchlist can say it was following an asset before the app recorded it, which a point-in-time backtest (BE-95) reads as "known since". A date before the watchlist's own creation is the normal case, not an error.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
ticker (path)stringyes
added_date (body)string (date)yes

update_asset_discovery_date — Set or reset the discovery date of a portfolio asset

PATCH /api/portfolios/{portfolio_id}/assets/{ticker} · role: user

Set or reset the discovery date of a portfolio asset.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
ticker (path)stringyes
discovery_date (body)string (date) or nullyes

set_asset_analysis_exclusion — Exclude a position from the analyses, or bring it back

PATCH /api/portfolios/{portfolio_id}/assets/{ticker}/analysis-exclusion · role: user

Exclude a position from the analyses, or bring it back. BE-255: an excluded position gets a target of 0 in every analysis, backtest and strategy that reads this portfolio (the analysis proposes to sell it, its value is reallocated); the current portfolio keeps it. The flag stays until it is removed. Portfolios only: on a watchlist, remove the asset instead.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
ticker (path)stringyes
is_excluded (body)booleanyes

add_observation — Track an asset in a portfolio without holding it

POST /api/portfolios/{portfolio_id}/observations · role: user

Track an asset in a portfolio without holding it.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
ticker (body)stringyes
discovery_date (body)string (date) or nullno
platform (body)string or nullno
manual_target_price (body)number or nullno

delete_observation — Stop observing an asset

DELETE /api/portfolios/{portfolio_id}/observations/{ticker} · role: user · destructive

Stop observing an asset.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
ticker (path)stringyes

get_strategy_runs — The decisions of the portfolio's strategy, newest first (BE-198)

GET /api/portfolios/{portfolio_id}/strategy/runs · role: user · read-only

The decisions of the portfolio's strategy, newest first (BE-198). The decisions log of a portfolio's automatic strategy (BE-198).

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
limit (query)integerno50

get_strategy_settings — The settings the strategy's next decision will use, and which of them can be edited (BE-208)

GET /api/portfolios/{portfolio_id}/strategy/parameters · role: user · read-only

The settings the strategy's next decision will use, and which of them can be edited (BE-208).

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes

update_strategy — Edit the strategy's settings: forward-only, the decisions already written never change (BE-208)

PATCH /api/portfolios/{portfolio_id}/strategy · role: user

Edit the strategy's settings: forward-only, the decisions already written never change (BE-208).

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes
method (body)string or nullno
rebalance_frequency (body)enum: weekly | monthly | quarterly | yearly or nullno
transaction_cost_rate (body)number or nullno
fee_per_buy_usd (body)number or nullno
fee_per_sell_usd (body)number or nullno
parameters (body)object or nullno

suspend_strategy — Pause the strategy: nothing is traded until it is resumed (BE-198)

POST /api/portfolios/{portfolio_id}/strategy/suspend · role: user

Pause the strategy: nothing is traded until it is resumed (BE-198). Pauses a portfolio's automatic strategy; resume_strategy restarts it, disable_strategy ends it.

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes

resume_strategy — Resume the strategy from the next decision; the missed ones are not replayed (BE-198 A4)

POST /api/portfolios/{portfolio_id}/strategy/resume · role: user

Resume the strategy from the next decision; the missed ones are not replayed (BE-198 A4).

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes

disable_strategy — Stop the strategy for good: the portfolio becomes manual, its trades stay (BE-198)

POST /api/portfolios/{portfolio_id}/strategy/disable · role: user

Stop the strategy for good: the portfolio becomes manual, its trades stay (BE-198).

ArgumentTypeRequiredDefaultDescription
portfolio_id (path)integeryes

analyses

create_analysis — Start a full optimisation in the background (BE-202)

POST /api/analyses · role: user

Start a full optimisation in the background (BE-202). Launches an optimisation in the background and answers 202 with analysis_id. Select the universe with portfolio_ids_persistent and/or watchlist_ids_persistent (ids from list_portfolios), or scope = all_assets with optional scope_filters. parameters: get the defaults from get_parameter_defaults and override what the user asks (methods, constraints, return estimation, quantity_mode). Then poll fetch_analysis_status every few seconds until status is completed or failed, and read the results with fetch_analysis. The 202 answer's warnings list settings that cannot act (parameter_ignored: e.g. the momentum filter with composite_score, or a setting no chosen method reads) and a noisy EWMA half-life (short_halflife_noise): tell the user about each of them.

ArgumentTypeRequiredDefaultDescription
portfolio_id_persistent (body)integer or nullno
watchlist_id_persistent (body)integer or nullno
portfolio_ids_persistent (body)array of integerno
watchlist_ids_persistent (body)array of integerno
scope (body)enum: portfolio_only | watchlist_only | both | all_assets or nullno
scope_filters (body)object {asset_types, markets} or nullno
portfolio_id (body)string or nullno
parameters (body)object {risk_aversion_lambda, risk_free_rate, risk_measure, mar_sortino, max_weight_per_asset, optimization_methods, max_weight_equity, min_weight_equity, max_weight_crypto, max_weight_currency, bl_market_weights_mode, bl_tau, momentum_filter_enabled, target_decay_enabled, return_estimation, aggregated_target_statistic, synthetic_target_horizon, synthetic_target_fallback, synthetic_target_ma_window, blend_alpha, ewma_halflife_years, quantity_mode, quantity_capital_usd, max_expected_return, composite_k, composite_preset, composite_family_weights, composite_trend_filter, composite_min_dollar_volume_usd, composite_max_amihud, profile, relax_infeasible_asset_cap}yesSubset of optimizer parameters validated for the REST API.
bl_views (body)array of object {view_id, view_type, asset_1, asset_2, expected_return, confidence}no
sparkline_window (body)enum: 1W | 1M | 3M | 1Y | YTDno1M

list_analyses — Paginated analyses for the authenticated user

GET /api/analyses · role: user · read-only

Paginated analyses for the authenticated user. The user's analyses, newest first, with status, best method and best Sharpe. Filter by linked portfolio or watchlist.

ArgumentTypeRequiredDefaultDescription
limit (query)integerno20
offset (query)integerno0
sort (query)enum: created_at_desc | created_at_asc | sharpe_desc | sharpe_ascnocreated_at_descSorting mode for analyses
linked_portfolio_id (query)integer or nullnoFilter analyses linked to this persistent portfolio id
linked_watchlist_id (query)integer or nullnoFilter analyses linked to this persistent watchlist id

get_all_assets_facets — Asset classes and markets of the referential, with counts (BE-180)

GET /api/analyses/all-assets-facets · role: user · read-only

Asset classes and markets of the referential, with counts (BE-180). The asset classes and markets available as scope_filters for an all_assets analysis.

No arguments.

fetch_analysis_status — Status of a background optimisation (BE-202)

GET /api/analyses/{analysis_id}/status · role: user · read-only

Status of a background optimisation (BE-202). pending | running | completed | failed, with elapsed_seconds and the error when failed.

ArgumentTypeRequiredDefaultDescription
analysis_id (path)integeryes

fetch_analysis — Fetch Analysis

GET /api/analyses/{analysis_id} · role: user · read-only

Fetch Analysis. The full results of a completed analysis: per method, the weights, the metrics (return, volatility, Sharpe) and the scorecard; best_method names the winner. A 409 analysis_not_completed means it is still running. The payload is large: summarise it.

ArgumentTypeRequiredDefaultDescription
analysis_id (path)integeryes

delete_analysis — Delete Analysis

DELETE /api/analyses/{analysis_id} · role: user · destructive

Delete Analysis. Deletes an analysis and its links. Irreversible.

ArgumentTypeRequiredDefaultDescription
analysis_id (path)integeryes

fetch_analysis_sparklines — Sparkline price series for an analysis portfolio

GET /api/analyses/{analysis_id}/sparklines · role: user · read-only

Sparkline price series for an analysis portfolio.

ArgumentTypeRequiredDefaultDescription
analysis_id (path)integeryes
window (query)enum: 1W | 1M | 3M | 1Y | YTDno1MSparkline time window

clone_analysis_method_to_portfolio — Hold one optimiser's allocation in a new simulated portfolio (BE-190)

POST /api/analyses/{analysis_id}/clone-portfolio · role: user

Hold one optimiser's allocation in a new simulated portfolio (BE-190). Creates a simulated portfolio holding one method's allocation; optionally runs it automatically on a schedule (strategy).

ArgumentTypeRequiredDefaultDescription
analysis_id (path)integeryes
method (body)stringyes
name (body)stringyes
capital_usd (body)numberyes
strategy (body)object {rebalance_frequency, transaction_cost_rate, fee_per_buy_usd, fee_per_sell_usd} or nullno

apply_analysis — Apply optimized weights to create or overwrite a portfolio (post-analysis rebalancing)

POST /api/analyses/{analysis_id}/apply · role: user

Apply optimized weights to create or overwrite a portfolio (post-analysis rebalancing). Writes one method's weights into a portfolio: target_portfolio_id overwrites an existing one, new_portfolio_name creates a new one. overrides adjusts quantities per ticker.

ArgumentTypeRequiredDefaultDescription
analysis_id (path)integeryes
method (body)stringyesOptimization method whose weights to apply
overrides (body)array of object {ticker, quantity, amount}noSparse per-ticker quantity/amount edits; replaces method defaults
target_portfolio_id (body)integer or nullno
new_portfolio_name (body)string or nullno

backtests

create_backtest — Create Backtest

POST /api/backtests · role: user

Create Backtest. Replays an analysis's optimisation over start_date..end_date with the chosen method and rebalance_frequency (daily | weekly | monthly | quarterly | yearly). Answers 202 with backtest_id; poll get_backtest until status is completed, then read its summary, curves and decisions. Its warnings (in the 202 answer and the result) include parameter_ignored and short_halflife_noise: relay them to the user.

ArgumentTypeRequiredDefaultDescription
analysis_id (body)integeryes
start_date (body)string (date)yes
end_date (body)string (date)yes
method (body)enum: max_sharpe | max_sortino | max_utility | min_variance | hrp_pragmatic | hrp_strictnomax_sharpe
rebalance_frequency (body)enum: weekly | monthly | quarterly | yearlynoweekly
transaction_cost_rate (body)numberno0.001
fee_per_buy_usd (body)numberno0.0
fee_per_sell_usd (body)numberno0.0
fee_capital_usd (body)numberno100000.0
benchmark (body)string or nullno^GSPC
universe_mode (body)enum: current | point_in_timenocurrent

list_backtests — List Backtests

GET /api/backtests · role: user · read-only

List Backtests. The user's backtests with their status and summary; rows that belong to a batch are hidden.

ArgumentTypeRequiredDefaultDescription
portfolio_id (query)integer or nullno
analysis_id (query)integer or nullno

get_backtest — Get Backtest

GET /api/backtests/{backtest_id} · role: user · read-only

Get Backtest. Status, summary statistics (return, volatility, Sharpe, max drawdown), value curves and per-decision allocations of a backtest.

ArgumentTypeRequiredDefaultDescription
backtest_id (path)integeryes

clone_backtest_to_portfolio — Hold a run's last allocation in a new simulated portfolio (BE-178)

POST /api/backtests/{backtest_id}/clone-portfolio · role: user

Hold a run's last allocation in a new simulated portfolio (BE-178). Creates a simulated portfolio from the last allocation of a completed backtest.

ArgumentTypeRequiredDefaultDescription
backtest_id (path)integeryes
name (body)stringyes
capital_usd (body)numberyes
strategy (body)object {rebalance_frequency, transaction_cost_rate, fee_per_buy_usd, fee_per_sell_usd} or nullno

backtest-batches

create_backtest_batch — Create Backtest Batch

POST /api/backtest-batches · role: user

Create Backtest Batch. One backtest per combination of the grid (optimisers × return sources × decays × momentum × risk measures) over the same window. Answers 202 with batch_id and deduplicated_count, the ticked combinations not run because they could not differ from another (e.g. momentum on/off with composite_score); poll get_backtest_batch. Relay each run's parameter_ignored and short_halflife_noise warnings to the user.

ArgumentTypeRequiredDefaultDescription
analysis_id (body)integeryes
start_date (body)string (date)yes
end_date (body)string (date)yes
rebalance_frequency (body)enum: weekly | monthly | quarterly | yearlynoweekly
transaction_cost_rate (body)numberno0.001
fee_per_buy_usd (body)numberno0.0
fee_per_sell_usd (body)numberno0.0
fee_capital_usd (body)numberno100000.0
benchmark (body)string or nullno^GSPC
universe_mode (body)enum: current | point_in_timenocurrent
grid (body)object {methods, return_estimations, target_decay, momentum_filter, risk_measures, consensus_statistics, composite_k, composite_presets, composite_trend_filter, composite_min_dollar_volume_usd, composite_max_amihud}yesValues ticked for each dimension. Combinations that cannot differ are collapsed by `expand_grid` (see the service), never run twice.

list_backtest_batches — List Backtest Batches

GET /api/backtest-batches · role: user · read-only

List Backtest Batches. The user's batches, newest first.

ArgumentTypeRequiredDefaultDescription
analysis_id (query)integer or nullno

extend_backtest_batch — Extend Backtest Batch

POST /api/backtest-batches/{batch_id}/runs · role: user

Extend Backtest Batch. Adds the ticked combinations a finished batch does not hold yet, and runs them. Adds combinations to a finished batch.

ArgumentTypeRequiredDefaultDescription
batch_id (path)integeryes
grid (body)object {methods, return_estimations, target_decay, momentum_filter, risk_measures, consensus_statistics, composite_k, composite_presets, composite_trend_filter, composite_min_dollar_volume_usd, composite_max_amihud}yesValues ticked for each dimension. Combinations that cannot differ are collapsed by `expand_grid` (see the service), never run twice.

get_backtest_batch — Get Backtest Batch

GET /api/backtest-batches/{batch_id} · role: user · read-only

Get Backtest Batch. The batch's runs with their summaries and the reference curves (1/N, S&P 500, static t0, actual portfolio, market cap).

ArgumentTypeRequiredDefaultDescription
batch_id (path)integeryes
include_series (query)booleannoTrue

dashboard

get_dashboard_performance — Performance of every validated portfolio, their combined value, and a benchmark (BE-80)

GET /api/dashboard/performance · role: user · read-only

Performance of every validated portfolio, their combined value, and a benchmark (BE-80). Every validated portfolio's curve, the value-weighted aggregate and the S&P 500, as on the dashboard.

ArgumentTypeRequiredDefaultDescription
window (query)enum: 1M | 3M | YTD | MTD | 1Y | 2YnoYTDBackcast time window
benchmark (query)string or nullno^GSPCBenchmark ticker, omit for none

get_dashboard_totals — Cross-portfolio totals (validated portfolios only), cached prices only (BE-138)

GET /api/dashboard/totals · role: user · read-only

Cross-portfolio totals (validated portfolios only), cached prices only (BE-138). Total value, cash and invested amount across the validated portfolios, in USD.

No arguments.

get_dashboard_pnl — PnL since inception and annualised XIRR across every validated portfolio (BE-141)

GET /api/dashboard/pnl · role: user · read-only

PnL since inception and annualised XIRR across every validated portfolio (BE-141). PnL since inception and YTD across the validated portfolios.

No arguments.

portfolio-comparison

get_portfolio_comparison — Two to four portfolios over their common period, in one currency (BE-192)

GET /api/portfolio-comparison · role: user · read-only

Two to four portfolios over their common period, in one currency (BE-192). Two to four portfolios (ids) compared over their common period: curves and statistics.

ArgumentTypeRequiredDefaultDescription
ids (query)stringyesPortfolio ids, comma-separated; the first is the reference
window (query)enum: 1M | 3M | YTD | MTD | 1Y | 2Yno1Y
benchmark (query)string or nullno^GSPCBenchmark ticker, empty for none
currency (query)string or nullno

portfolio-strategies

run_due_strategies — Run every active strategy that has a decision due (admins; the scheduled job does the same)

POST /api/portfolio-strategies/run-due · role: admin

Run every active strategy that has a decision due (admins; the scheduled job does the same).

No arguments.

assets

get_assets_overview — Every referential asset with price, sparkline, momentum and fundamentals (BE-176)

GET /api/assets/overview · role: user · read-only

Every referential asset with price, sparkline, momentum and fundamentals (BE-176). The referential is shared and its data public: only `memberships is the user's. The whole asset referential with price, sparkline, momentum, short-term signals, fundamentals and which portfolios hold each ticker. fields` picks the short-term codes (V1 by default). Large: filter on the client side.

ArgumentTypeRequiredDefaultDescription
window (query)enum: 1W | 1M | 3M | 1Y | YTDno1MSparkline time window
fields (query)array of string or nullnoBE-221 — short-term indicator codes to return in each row's short_term (repeat the parameter, or comma-separate); the V1 indicators when absent. Codes: GET /api/indicators/catalog, family short_term.

get_assets_overview_sparklines — Referential sparklines for a given window (BE-176)

GET /api/assets/overview/sparklines · role: user · read-only

Referential sparklines for a given window (BE-176).

ArgumentTypeRequiredDefaultDescription
window (query)enum: 1W | 1M | 3M | 1Y | YTDno1MSparkline time window

search_assets — Search the referential by ticker or name, short answers (BE-210)

GET /api/assets/search · role: user · read-only

Search the referential by ticker or name, short answers (BE-210). The referential is shared and public (BE-176): no `user_id` filter.

ArgumentTypeRequiredDefaultDescription
q (query)stringyesWhat the user typed
limit (query)integerno8
types (query)array of string or nullnoRestrict to these stored asset types

get_asset_markets — The markets and asset classes an asset can be added on (BE-210)

GET /api/assets/markets · role: user · read-only

The markets and asset classes an asset can be added on (BE-210).

No arguments.

lookup_asset — Add an asset to the referential from its ticker and market (BE-210)

POST /api/assets/lookup · role: user

Add an asset to the referential from its ticker and market (BE-210).

ArgumentTypeRequiredDefaultDescription
ticker (body)stringyes
market (body)string or nullno
asset_class (body)stringnoEquity
quote (body)string or nullno

get_asset_profile — Profile of one ticker: identity, last price, depth, holdings, sections (BE-186)

GET /api/assets/{ticker} · role: user · read-only

Profile of one ticker: identity, last price, depth, holdings, sections (BE-186). The referential is shared and its data public: only `memberships` is the user's. Name, sector, market, currency and memberships of one ticker.

ArgumentTypeRequiredDefaultDescription
ticker (path)stringyes

get_asset_prices — Quoted price and total return of every stored bar, in columns (BE-186)

GET /api/assets/{ticker}/prices · role: user · read-only

Quoted price and total return of every stored bar, in columns (BE-186). Daily closes of one ticker over a window.

ArgumentTypeRequiredDefaultDescription
ticker (path)stringyes
start (query)string (date) or nullnoFirst date, inclusive (ISO)
end (query)string (date) or nullnoLast date, inclusive (ISO)

get_asset_momentum — Momentum and trend indicators of every bar, each with its status (BE-186)

GET /api/assets/{ticker}/momentum · role: user · read-only

Momentum and trend indicators of every bar, each with its status (BE-186). Trend & momentum family (1–12 months) of one ticker: 12-1 momentum, residual momentum, trend slopes, trend divergence and breaking-trend flag, volatility, beta.

ArgumentTypeRequiredDefaultDescription
ticker (path)stringyes
start (query)string (date) or nullnoFirst date, inclusive (ISO)
end (query)string (date) or nullnoLast date, inclusive (ISO)

get_asset_short_term — Short-term technical indicators of every bar, each with its status (BE-221)

GET /api/assets/{ticker}/short-term · role: user · read-only

Short-term technical indicators of every bar, each with its status (BE-221). Short-term signals family (2 to 20 trading days), in columns: one value and one `*_status per indicator code of GET /api/indicators/catalog. Without start, the last 252 bars up to end`. Short-term signals family (2–20 trading days) of one ticker: returns, MACD, ADX, RSI, stochastic, Bollinger, ATR, volatility regime, volume and liquidity, each with its status. Default window: the last 252 bars.

ArgumentTypeRequiredDefaultDescription
ticker (path)stringyes
start (query)string (date) or nullnoFirst date, inclusive (ISO)
end (query)string (date) or nullnoLast date, inclusive (ISO)

get_asset_financials — Amounts of each period as first published, dated by availability (BE-186)

GET /api/assets/{ticker}/financials · role: user · read-only

Amounts of each period as first published, dated by availability (BE-186). Point-in-time financial statements and fundamental indicators of one ticker (as published, dated by publication).

ArgumentTypeRequiredDefaultDescription
ticker (path)stringyes
start (query)string (date) or nullnoFirst date, inclusive (ISO)
end (query)string (date) or nullnoLast date, inclusive (ISO)

get_asset_insiders — Daily insider indicators and the latest Form 4 lines, bounded on filing date (BE-186)

GET /api/assets/{ticker}/insiders · role: user · read-only

Daily insider indicators and the latest Form 4 lines, bounded on filing date (BE-186). Form 4 insider transactions of one ticker, dated by filing date.

ArgumentTypeRequiredDefaultDescription
ticker (path)stringyes
start (query)string (date) or nullnoFirst date, inclusive (ISO)
end (query)string (date) or nullnoLast date, inclusive (ISO)
limit (query)integerno50Number of rows, newest first
include_holdings (query)booleannoFalseAlso list the holding lines (a position, no trade)

get_asset_analysts — Consensus target history and the latest analyst actions (BE-186)

GET /api/assets/{ticker}/analysts · role: user · read-only

Consensus target history and the latest analyst actions (BE-186). Analyst actions (ratings, targets) and the rebuilt consensus of one ticker.

ArgumentTypeRequiredDefaultDescription
ticker (path)stringyes
start (query)string (date) or nullnoFirst date, inclusive (ISO)
end (query)string (date) or nullnoLast date, inclusive (ISO)
limit (query)integerno50Number of rows, newest first

get_asset_corporate_actions — Dividends and splits of the ticker, newest first (BE-186)

GET /api/assets/{ticker}/corporate-actions · role: user · read-only

Dividends and splits of the ticker, newest first (BE-186). Splits and dividends of one ticker.

ArgumentTypeRequiredDefaultDescription
ticker (path)stringyes

market-data

list_market_data_jobs — List Market Data Jobs

GET /api/market-data/jobs · role: user · read-only

List Market Data Jobs.

No arguments.

create_market_data_job — Create Market Data Job

POST /api/market-data/jobs · role: user

Create Market Data Job. Fetches price history (and optionally fundamentals, insiders, analyst targets, splits/dividends) for tickers; answers with job_id, poll get_market_data_job.

ArgumentTypeRequiredDefaultDescription
start_date (body)string (date)yes
end_date (body)string (date)yes
job_type (body)enum: market_data | analyst_targets | analyst_actions | synthetic_targets | corporate_actions | insider_transactions | financial_statements | valuation_reconstructionnomarket_data
job_types (body)array of enum: market_data | analyst_targets | analyst_actions | synthetic_targets | corporate_actions | insider_transactions | financial_statements | valuation_reconstruction or nullno
tickers (body)array of string or nullno

get_market_data_job — Get Market Data Job

GET /api/market-data/jobs/{job_id} · role: user · read-only

Get Market Data Job.

ArgumentTypeRequiredDefaultDescription
job_id (path)integeryes

search_market_data_tickers — Search Market Data Tickers

GET /api/market-data/tickers · role: user · read-only

Search Market Data Tickers. BE-188 §6 — the referential is shared (BE-176): any signed-in user may search it. Finds tickers by symbol or name — use it before adding an unknown asset.

ArgumentTypeRequiredDefaultDescription
q (query)stringyes
limit (query)integerno20

fx

get_fx_rates — Get Fx Rates

GET /api/fx/rates · role: user · read-only

Get Fx Rates. USD rates of one or several currencies, latest or as of a date.

ArgumentTypeRequiredDefaultDescription
currencies (query)stringyesComma-separated ISO codes, e.g. EUR,GBP
as_of (query)string (date) or nullnoBounded read when given
convention (query)enum: close | tradenocloseBE-101: 'trade' = the rate a buy/sell/deposit on that date is recorded with

valuation

get_valuation_screening — Get Valuation Screening

GET /api/valuation/screening · role: user · read-only

Get Valuation Screening. Score the referential's equities against their sector peers. The response always carries `not_scored and disclaimer: an asset that could not be scored is listed with its reason rather than quietly dropped, and the caveat text is produced here so the frontend never has to restate it. No user_id` filtering: valuation data is public and the referential is shared. Sector-relative valuation screening of the referential (live reader).

ArgumentTypeRequiredDefaultDescription
tickers (query)string or nullnoComma-separated; defaults to every Equity in the referential
limit (query)integer or nullno
min_sector_size (query)integerno5

fundamentals

get_fundamentals_history — The latest fundamental states of a ticker, newest first (BE-157)

GET /api/fundamentals/{ticker}/history · role: user · read-only

The latest fundamental states of a ticker, newest first (BE-157). Each state with its valuation at the report-day close (`valuation_current is null). Fundamentals are public data: no user_id` filtering. An unknown ticker, or one without any state, returns an empty list. Dated history of the fundamental indicators of one ticker (newest first, limit 1–120).

ArgumentTypeRequiredDefaultDescription
ticker (path)stringyes
limit (query)integerno8Number of states
eps_quarters (query)booleannoTrueRead each state's eight quarterly EPS (off: the field is null)

analyst-consensus

get_analyst_consensus — Rebuilt analyst consensus per ticker — mean and median side by side (BE-145)

GET /api/analyst-consensus · role: user · read-only

Rebuilt analyst consensus per ticker — mean and median side by side (BE-145). The consensus rebuilt from each firm's last target (BE-113). Without as_of: the latest strict point, what a live analysis reads. With as_of: the last extended point at or before that date, what a backtest reads on that day. A ticker with no point is absent from items. Analyst consensus (target, rating) of tickers as of a day.

ArgumentTypeRequiredDefaultDescription
tickers (query)stringyesComma-separated tickers, e.g. AAPL,MSFT (max 50)
as_of (query)string (date) or nullnoHistorical read when given

parameters

get_parameter_defaults — Default analysis parameters

GET /api/parameters/defaults · role: user · read-only

Default analysis parameters. Returns metadata (labels, bounds, widgets) for the parameters exposed to the UI, including defaults. The default optimisation parameters with their bounds and options — the base to build create_analysis's parameters. applies_to says when a parameter can act: estimators (the return_estimation modes, null = all), methods (at least one chosen method listed, null = all), requires (a condition on another parameter), any_of (alternatives); null = always. Do not set a parameter that cannot act with the user's choices.

No arguments.

list_parameter_profiles — Investment profiles

GET /api/parameters/profiles · role: user · read-only

Investment profiles. The three questions of an investment profile (horizon, risk, spread) with their answers, and the named cards that answer them in one click. The three questions of an investment profile — horizon (short | medium | long), risk (low | medium | high), spread (diversified | balanced | concentrated) — and six named cards that answer them. Use it to help a user who does not know which parameters to set.

No arguments.

compose_parameter_profile — Compose an investment profile

GET /api/parameters/profiles/compose · role: user · read-only

Compose an investment profile. The full analysis parameters of three answers, without any setting that has no effect: a main and a comparison method, a suggested rebalancing frequency, a label and a plain-English summary. The parameters of three answers: pass them as create_analysis's parameters, with profile = {horizon, risk, spread, shortcut, primary_method, customised: false} and the user's quantity_mode. Also gives the main method to read first, the comparison method, the rebalancing frequency to suggest for a backtest and a summary to show the user.

ArgumentTypeRequiredDefaultDescription
horizon (query)enum: short | medium | longyes
risk (query)enum: low | medium | highyes
spread (query)enum: diversified | balanced | concentratedyes

auth

get_current_user — Me

GET /api/auth/me · role: user · read-only

Me. Start here: the user behind the key, with the email and the admin flags.

No arguments.

admin

list_admin_users — The admins and super admins (BE-163)

GET /api/admin/users · role: super admin · read-only

The admins and super admins (BE-163).

No arguments.

add_admin_user — Promote an account, or create it without a password (BE-163)

POST /api/admin/users · role: super admin

Promote an account, or create it without a password (BE-163). Never demotes: an account that already has this role or a higher one is returned unchanged. No email is sent; the person sets a password through "forgot password".

ArgumentTypeRequiredDefaultDescription
email (body)string (email)yes
role (body)enum: admin | super_adminyes

set_admin_user_role — Set the role of an account (BE-163)

PATCH /api/admin/users/{user_id} · role: super admin

Set the role of an account (BE-163).

ArgumentTypeRequiredDefaultDescription
user_id (path)integeryes
role (body)enum: user | admin | super_adminyes

list_accounts — Every account, with its number of portfolios and watchlists (BE-213)

GET /api/admin/accounts · role: super admin · read-only

Every account, with its number of portfolios and watchlists (BE-213).

No arguments.

list_account_portfolios — An account's portfolios and watchlists (BE-213)

GET /api/admin/accounts/{user_id}/portfolios · role: super admin · read-only

An account's portfolios and watchlists (BE-213).

ArgumentTypeRequiredDefaultDescription
user_id (path)integeryes

copy_portfolios — Copy portfolios and watchlists into another account (BE-213)

POST /api/admin/portfolios/copy · role: super admin

Copy portfolios and watchlists into another account (BE-213).

ArgumentTypeRequiredDefaultDescription
target_user_id (body)integeryes
portfolio_ids (body)array of integeryes
portfolio_status (body)enum: validated | simulated | draftnosimulated
include_journal (body)booleannoFalse
include_strategies (body)booleannoFalse

list_data_quality_alerts — List Alerts

GET /api/data-links/alerts · role: admin · read-only

List Alerts.

ArgumentTypeRequiredDefaultDescription
status (query)enum: open | resolved | dismissed or nullno
code (query)string or nullno
ticker (query)string or nullno
limit (query)integerno50
offset (query)integerno0

detect_data_quality_alerts — Detect Alerts

POST /api/data-links/alerts/detect · role: admin

Detect Alerts.

ArgumentTypeRequiredDefaultDescription
body (body)object {ticker} or nullnoThe JSON request body

resolve_data_quality_alert — Resolve Alert

POST /api/data-links/alerts/{alert_id}/resolve · role: admin

Resolve Alert.

ArgumentTypeRequiredDefaultDescription
alert_id (path)integeryes
body (body)object {note} or nullnoThe JSON request body

dismiss_data_quality_alert — Dismiss Alert

POST /api/data-links/alerts/{alert_id}/dismiss · role: admin

Dismiss Alert.

ArgumentTypeRequiredDefaultDescription
alert_id (path)integeryes
note (body)stringyes

GET /api/data-links/summary · role: admin · read-only

Summary.

No arguments.

list_share_class_listings — List Listings

GET /api/data-links/share-class-listings · role: admin · read-only

List Listings.

ArgumentTypeRequiredDefaultDescription
cik (query)string or nullno
ticker (query)string or nullno

create_share_class_listing — Create Listing

POST /api/data-links/share-class-listings · role: admin

Create Listing.

ArgumentTypeRequiredDefaultDescription
cik (body)stringyes
ticker (body)stringyes
share_class_member (body)stringyes
is_confirmed (body)boolean or nullno
note (body)string or nullno

update_share_class_listing — Update Listing

PATCH /api/data-links/share-class-listings/{listing_id} · role: admin

Update Listing.

ArgumentTypeRequiredDefaultDescription
listing_id (path)integeryes
cik (body)string or nullno
ticker (body)string or nullno
share_class_member (body)string or nullno
is_confirmed (body)boolean or nullno
note (body)string or nullno

list_share_class_conversions — List Conversions

GET /api/data-links/share-class-conversions · role: admin · read-only

List Conversions.

ArgumentTypeRequiredDefaultDescription
cik (query)string or nullno

create_share_class_conversion — Create Conversion

POST /api/data-links/share-class-conversions · role: admin

Create Conversion.

ArgumentTypeRequiredDefaultDescription
cik (body)stringyes
share_class_member (body)stringyes
conversion_rate (body)numberyes
valid_from_date (body)string (date) or nullno
valid_until_date (body)string (date) or nullno
document_url (body)stringyes
document_date (body)string (date)yes

preview_share_class_conversion — Preview Conversion

GET /api/data-links/share-class-conversions/preview · role: admin · read-only

Preview Conversion.

ArgumentTypeRequiredDefaultDescription
cik (query)stringyes
share_class_member (query)stringyes
conversion_rate (query)numberyes

update_share_class_conversion — Update Conversion

PATCH /api/data-links/share-class-conversions/{conversion_id} · role: admin

Update Conversion.

ArgumentTypeRequiredDefaultDescription
conversion_id (path)integeryes
cik (body)string or nullno
share_class_member (body)string or nullno
conversion_rate (body)number or nullno
valid_from_date (body)string (date) or nullno
valid_until_date (body)string (date) or nullno
document_url (body)stringyes
document_date (body)string (date)yes

list_debt_line_exceptions — List Exceptions

GET /api/data-links/debt-exceptions · role: admin · read-only

List Exceptions.

ArgumentTypeRequiredDefaultDescription
ticker (query)string or nullno
status (query)enum: active | disabled or nullno

create_debt_line_exception — Create Exception

POST /api/data-links/debt-exceptions · role: admin

Create Exception.

ArgumentTypeRequiredDefaultDescription
ticker (body)stringyes
cik (body)string or nullno
rule_code (body)stringyes
valid_from_date (body)string (date) or nullno
valid_until_date (body)string (date) or nullno
document_url (body)stringyes
note (body)string or nullno
exception_status (body)enum: active | disablednoactive

preview_debt_line_exception — Preview Exception

GET /api/data-links/debt-exceptions/preview · role: admin · read-only

Preview Exception.

ArgumentTypeRequiredDefaultDescription
ticker (query)stringyes
rule_code (query)stringyes

update_debt_line_exception — Update Exception

PATCH /api/data-links/debt-exceptions/{exception_id} · role: admin

Update Exception.

ArgumentTypeRequiredDefaultDescription
exception_id (path)integeryes
ticker (body)string or nullno
cik (body)string or nullno
rule_code (body)string or nullno
valid_from_date (body)string (date) or nullno
valid_until_date (body)string (date) or nullno
document_url (body)string or nullno
note (body)string or nullno
exception_status (body)enum: active | disabled or nullno

create_reprocess_job — Create Reprocess Job

POST /api/data-links/reprocess/{ticker} · role: admin

Create Reprocess Job.

ArgumentTypeRequiredDefaultDescription
ticker (path)stringyes

list_reprocess_jobs — List Reprocess Jobs

GET /api/data-links/reprocess · role: admin · read-only

List Reprocess Jobs.

ArgumentTypeRequiredDefaultDescription
ticker (query)string or nullno

get_reprocess_job — Get Reprocess Job

GET /api/data-links/reprocess/{job_id} · role: admin · read-only

Get Reprocess Job.

ArgumentTypeRequiredDefaultDescription
job_id (path)integeryes

meta

get_health — Health

GET /health · role: public · read-only

Health. Liveness of the API and of its database.

No arguments.

get_api_version — Version

GET /api/version · role: public · read-only

Version. Version of the API.

No arguments.

indicators

get_indicator_catalog — Catalogue of the technical indicators: two families, sub-groups, labels, readings (BE-221)

GET /api/indicators/catalog · role: public · read-only

Catalogue of the technical indicators: two families, sub-groups, labels, readings (BE-221). Trend & momentum (1 to 12 months, `/assets/{ticker}/momentum) and Short-term signals (2 to 20 trading days, /assets/{ticker}/short-term`): each indicator's code, family, sub-group, label, formula, reading, unit and reference lines. Public: the same for every user. Labels, formulas, readings and sub-groups of every technical indicator, both families (Trend & momentum, Short-term signals): read it to name and interpret the codes of get_asset_momentum and get_asset_short_term.

No arguments.

recompute_short_term_indicators — Recompute the short-term indicators of one ticker or of the whole referential (BE-221, admin)

POST /api/indicators/short-term/recompute · role: admin

Recompute the short-term indicators of one ticker or of the whole referential (BE-221, admin). One ticker is recomputed in the request; the whole referential in the background (one commit per ticker, a few minutes). Admin: recompute the short-term indicators of one ticker (in the request) or of the whole referential (in the background).

ArgumentTypeRequiredDefaultDescription
ticker (body)string or nullno