Utviklere og API

Koble Paperball til AI-assistenter og dine egne verktøy. Programmatisk tilgang går via MCP-serveren — med OAuth (f.eks. claude.ai) eller med en personlig API-nøkkel.

Hva du kan gjøre med det

  • Liste opp backtestsettene og porteføljene dine og lese dem i detalj
  • Starte backtester (simuleringer) og hente eller sammenligne resultater
  • Spørre etter offentlige Community-Backtests og gjeldende valutakurser
  • Spørre etter kontoen din og abonnementsgrensene (whoami)
  • Opprette backtestsett, lagre porteføljer fra resultater, kjøre Monte Carlo-simuleringer og administrere maler, lister og mapper
  • Liste opp verdipapirene dine, supplere kurser fra filer som slettbare pakker og sette stamdata (f.eks. TER) manuelt
  • Slette bare med tillatelsen «Slette» (delete), bare som eier eller kontoadministrator og bare hvis det er slått på for kontoen under Innstillinger → API-nøkler – ellers ser assistenten ikke engang sletteverktøyene

Hver nøkkel er knyttet til kontoen din og handler på dine vegne. Tilgjengelige scopes: lese (read), kjøre simuleringer (run_simulation), administrere verdipapirer (watchlist:write — laste opp kurser, sette stamdata) og slette (delete — gis bare av eiere og kontoadministratorer, se «Sletting»). Backtester, Monte Carlo-simuleringer og oppdateringer bruker kreditter fra saldoen din.

Hurtigstart: opprett en nøkkel

Opprett en personlig API-nøkkel i kontoinnstillingene under «API-nøkler». Nøkkelen starter med sk_ppf_ og vises nøyaktig én gang — kopier den med en gang.

Til nøkkeladministrasjon

Koble til claude.ai (OAuth)

I claude.ai går du til Innstillinger → Connectors og legger til en egendefinert connector med denne MCP-URL-en. La OAuth-feltene stå tomme — registreringen skjer automatisk (Dynamic Client Registration). Ved første tilkobling bekrefter du tilgangen til kontoen din.

https://www.paperball.finance/mcp

Ingen API-nøkkel nødvendig — tilkoblingen opprettes via OAuth 2.1 med PKCE og vises deretter under «Tilkoblede apper».

Koble til Claude Desktop (nøkkel)

Legg til følgende blokk i claude_desktop_config.json og bytt ut sk_ppf_… med nøkkelen din. mcp-remote bygger bro mellom den lokale stdio-transporten og HTTP-MCP-serveren.

{
  "mcpServers": {
    "paperball": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.paperball.finance/mcp",
               "--header", "Authorization: Bearer ${PAPERBALL_API_KEY}"],
      "env": { "PAPERBALL_API_KEY": "sk_ppf_..." }
    }
  }
}

n8n, Make og egne skript

Enhver MCP-kompatibel HTTP-klient kan snakke direkte med endepunktet — via Streamable HTTP med nøkkelen din i Authorization-headeren.

# n8n / Make / eigener MCP-Client (Streamable HTTP, JSON-RPC 2.0)
MCP-Endpoint:  https://www.paperball.finance/mcp
Auth:          Header  ->  Authorization: Bearer sk_ppf_...
Tools:         tools/list zeigt, was dein Schlüssel darf (Scope).
Backtest-Sets: list_my_tables · get_table_detail · create_table
               add_to_table · create_table_from_result
               create_table_from_portfolio_list · rename_table · copy_table
               set_table_client_tag · update_table_security
               link_table_securities_to_funds · validate_table
               get_table_data_status · set_table_distribution
Backtest:      run_simulation · wait_for_simulation · cancel_simulation
               list_recent_simulations · get_simulation_result
               rename_simulation_result · get_result_wealth
               filter_simulation_portfolios · compare_simulations
Vorlagen:      list_simulation_presets · create_simulation_preset
               update_simulation_preset · list_current_portfolio_templates
               create_current_portfolio_template
               update_current_portfolio_template · list_withdrawal_templates
               create_withdrawal_template · update_withdrawal_template
Portfolios:    list_portfolio_lists · create_portfolio_list
               update_portfolio_list · list_my_favorite_portfolios
               save_portfolio_from_result · update_saved_portfolio
               get_saved_portfolio_price_start · start_saved_portfolio_earlier
               get_saved_portfolio_wealth
               get_portfolio_metrics_over_time · set_portfolio_list_update
               refresh_saved_portfolios
Monte Carlo:   run_monte_carlo · run_monte_carlo_mix
               run_monte_carlo_community · get_monte_carlo_result
               list_monte_carlo_results · rename_monte_carlo_run
               check_monte_carlo_history · list_monte_carlo_building_blocks
               list_monte_carlo_securities · list_monte_carlo_mix_templates
               create_monte_carlo_mix_template
               update_monte_carlo_mix_template
               add_monte_carlo_allocation_reference
               list_monte_carlo_allocation_folders
               create_monte_carlo_allocation_folder
               update_monte_carlo_allocation_folder
               list_monte_carlo_settings · create_monte_carlo_settings
               update_monte_carlo_settings · list_saved_monte_carlo
               save_monte_carlo_result · create_saved_monte_carlo_folder
               update_saved_monte_carlo_folder · update_saved_monte_carlo
               list_community_portfolios
Altersvorsorge: get_av_depot_grant
Wertpapiere:   list_watchlist · add_securities · get_add_securities_status
               refresh_watchlist · get_watchlist_refresh_status
               get_watchlist_metrics_over_time · get_watchlist_correlation
               compare_watchlist_securities · get_security_crisis_behaviour
               get_security_price_history · get_security_fundamentals
               get_security_master_data · set_security_master_data
               get_price_sources · upload_prices
               list_benchmarks · set_security_benchmark
               set_watchlist_item_note · list_watchlist_folders
               create_watchlist_folder · update_watchlist_folder
               add_to_watchlist_folder · remove_from_watchlist_folder
               set_watchlist_folder_update · set_watchlist_folder_email
               start_portfolio_test · get_portfolio_test_result
               save_portfolio_test_as_portfolio
Markt, Konto:  get_top_portfolios_leaderboard · get_exchange_rates
               whoami · get_my_subscription_limits · get_credits
Löschen:       nur mit Scope delete — siehe Abschnitt „Löschen“
               delete_table · delete_table_security
               delete_table_uploaded_prices · delete_table_distribution
               delete_simulation_result · delete_saved_portfolio
               delete_portfolio_list · delete_simulation_preset
               delete_current_portfolio_template · delete_withdrawal_template
               delete_monte_carlo_run · delete_monte_carlo_mix_template
               delete_saved_monte_carlo · delete_saved_monte_carlo_folder
               delete_monte_carlo_settings
               delete_monte_carlo_allocation_folder
               delete_watchlist_folder · remove_from_watchlist
               delete_price_upload

Sletting

Verktøy som sletter, vises i tools/list bare når tre ting gjelder: nøkkelen har tillatelsen «delete», den tilhører en eier eller kontoadministrator, og «Sletting via KI-assistenter og API-et» er slått på under Innstillinger → API-nøkler (standard: av). Bare det som ikke er i bruk ennå, kan slettes.

Eksisterende nøkler og tilkoblinger har ikke tillatelsen «Slette». Opprett en ny nøkkel med «Tillat sletting», eller koble til assistenten på nytt og bekreft sletting.

Endrede verktøy (28.10.2026)

Verktøyene gir nå de samme tallene som sidene i appen. Derfor er noen felt og standardverdier endret – tilpass lagrede kall og skript:

  • run_monte_carlo, run_monte_carlo_mix, run_monte_carlo_community: feltene heter som i de lagrede Monte Carlo-innstillingene (horizon_years → horizont_jahre, start_capital → startkapital, block_months → block_monate, tax → steuer); nytt er alter_heute. Ukjente felt avvises i stedet for å ignoreres.
  • get_exchange_rates: kursene følger nå appens retning, 1 EUR = X utenlandsk valuta – før var det den inverse verdien.
  • get_top_portfolios_leaderboard: de samme rangeringene som siden Fellesskapets backtester (sharpe_ratio, sortino_ratio, calmar_ratio, sterling_ratio, martin_ratio, recovery_ratio, standard sharpe_ratio); cagr, ulcer og max_drawdown faller bort.
  • list_community_portfolios: uten parametere én side av søket som på Monte Carlo-siden (10 oppføringer, lengst kurshistorikk først) med total – i stedet for opptil 200 etter Sharpe.
  • get_table_detail: weight_pct og distribution_type faller bort (de var alltid tomme); feltene fra siden for backtestsettet kommer i tillegg.
  • list_my_favorite_portfolios: nytt felt metrics med nøkkeltallene fra den egne backtesten, slik Mine porteføljer viser dem; leaderboard_metrics står for seg.
  • run_simulation: standardverdier som i sidens skjema (minst 2 verdipapirer, steg etter planen din); en mal gjelder for hvert felt du ikke sender.
  • list_watchlist, compare_watchlist_securities, get_security_price_history: de samme verdipapirene som watchlisten (også testdata og delte mapper); uten angivelse gjelder tidsvinduet i flisen din.

Endrede nøkkeltall (30.10.2026)

ulcer_index oppgis nå i prosentpoeng, som max_drawdown (7,65 i stedet for 0,0765). sortino_ratio tar gjennomsnittet av de kvadrerte tapene over alle dager i stedet for bare tapsdagene, slik det er vanlig; verdien blir dermed omtrent halvannen gang så høy. Dette gjelder hvert verktøy som returnerer disse nøkkeltallene, og lagrede backtester og porteføljer så snart de er beregnet på nytt.

OAuth discovery

For OAuth-klienter leveres metadataene på standardstiene i henhold til RFC 8414 / RFC 9728:

https://www.paperball.finance/.well-known/oauth-authorization-server
https://www.paperball.finance/.well-known/oauth-protected-resource

OpenAPI-skjema

Paperballs programmatiske flate er MCP-first. Her finner du et maskinlesbart OpenAPI-dokument over de offentlige REST-endepunktene (kun whitelist, uten interne ruter): openapi.json