Udviklere og API

Forbind Paperball med AI-assistenter og dine egne værktøjer. Programmatisk adgang sker via MCP-serveren — med OAuth (f.eks. claude.ai) eller med en personlig API-nøgle.

Hvad du kan bruge det til

  • Vise dine backtestsæt og porteføljer og læse dem i detaljer
  • Starte backtests (simuleringer) og hente eller sammenligne resultater
  • Forespørge offentlige Community-Backtests og aktuelle valutakurser
  • Forespørge din konto og dine abonnementsgrænser (whoami)
  • Oprette backtestsæt, gemme porteføljer fra resultater, køre Monte Carlo-simuleringer og administrere skabeloner, lister og mapper
  • Vise dine værdipapirer, supplere kurser fra filer som sletbare pakker og angive stamdata (f.eks. TER) manuelt
  • Slette kun med tilladelsen »Slette« (delete), kun som ejer eller kontoadministrator og kun, hvis det er slået til for kontoen under Indstillinger → API-nøgler – ellers ser assistenten slet ikke sletteværktøjerne

Hver nøgle er knyttet til din konto og handler på dine vegne. Tilgængelige scopes: læse (read), køre simuleringer (run_simulation), administrere værdipapirer (watchlist:write — uploade kurser, angive stamdata) og slette (delete — gives kun af ejere og kontoadministratorer, se »Sletning«). Backtests, Monte Carlo-simuleringer og opdateringer bruger kreditter fra din saldo.

Hurtig start: opret en nøgle

Opret en personlig API-nøgle i dine kontoindstillinger under »API-nøgler«. Nøglen starter med sk_ppf_ og vises præcis én gang — kopiér den med det samme.

Til nøglestyring

Forbind claude.ai (OAuth)

I claude.ai går du til Indstillinger → Connectors og tilføjer en brugerdefineret connector med denne MCP-URL. Lad OAuth-felterne stå tomme — registreringen sker automatisk (Dynamic Client Registration). Ved første forbindelse bekræfter du adgangen til din konto.

https://www.paperball.finance/mcp

Ingen API-nøgle nødvendig — forbindelsen oprettes via OAuth 2.1 med PKCE og vises derefter under »Forbundne apps«.

Forbind Claude Desktop (nøgle)

Tilføj følgende blok til din claude_desktop_config.json, og erstat sk_ppf_… med din nøgle. mcp-remote bygger bro mellem den lokale stdio-transport 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 scripts

Enhver MCP-kompatibel HTTP-klient kan tale direkte med endpointet — via Streamable HTTP med din nøgle 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

Sletning

Værktøjer, der sletter, vises kun i tools/list, når tre ting gælder: nøglen har tilladelsen »delete«, den tilhører en ejer eller kontoadministrator, og »Sletning via AI-assistenter og API'et« er slået til under Indstillinger → API-nøgler (standard: fra). Kun det, der endnu ikke er i brug, kan slettes.

Eksisterende nøgler og forbindelser har ikke tilladelsen »Slette«. Opret en ny nøgle med »Tillad sletning«, eller forbind assistenten igen og bekræft sletning.

Ændrede værktøjer (28.10.2026)

Værktøjerne giver nu de samme tal som appens sider. Derfor er nogle felter og standardværdier ændret – tilpas gemte kald og scripts:

  • run_monte_carlo, run_monte_carlo_mix, run_monte_carlo_community: felterne hedder som i de gemte Monte Carlo-indstillinger (horizon_years → horizont_jahre, start_capital → startkapital, block_months → block_monate, tax → steuer); nyt er alter_heute. Ukendte felter afvises i stedet for at blive ignoreret.
  • get_exchange_rates: kurserne følger nu appens retning, 1 EUR = X udenlandsk valuta – før var det den omvendte værdi.
  • get_top_portfolios_leaderboard: de samme ranglister som siden Fællesskabets backtests (sharpe_ratio, sortino_ratio, calmar_ratio, sterling_ratio, martin_ratio, recovery_ratio, standard sharpe_ratio); cagr, ulcer og max_drawdown udgår.
  • list_community_portfolios: uden parametre én side af søgningen som på Monte Carlo-siden (10 poster, længst kurshistorik først) med total – i stedet for op til 200 efter Sharpe.
  • get_table_detail: weight_pct og distribution_type udgår (de var altid tomme); felterne fra backtestsættets side kommer til.
  • list_my_favorite_portfolios: nyt felt metrics med nøgletallene fra den egen backtest, som Mine porteføljer viser dem; leaderboard_metrics står for sig.
  • run_simulation: standardværdier som i sidens formular (mindst 2 værdipapirer, trin efter dit abonnement); en skabelon gælder for hvert felt, du ikke sender.
  • list_watchlist, compare_watchlist_securities, get_security_price_history: de samme værdipapirer som watchlisten (også testdata og delte mapper); uden angivelse gælder tidsvinduet i din flise.

Ændrede nøgletal (30.10.2026)

ulcer_index angives nu i procentpoint, ligesom max_drawdown (7,65 i stedet for 0,0765). sortino_ratio tager gennemsnittet af de kvadrerede tab over alle dage i stedet for kun tabsdagene, som det er almindeligt; værdien bliver derved omtrent halvanden gang så høj. Det gælder hvert værktøj, der returnerer disse nøgletal, og gemte backtests og porteføljer, så snart de er beregnet igen.

OAuth discovery

For OAuth-klienter leveres metadataene på standardstierne 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-skema

Paperballs programmatiske flade er MCP-first. Her finder du et maskinlæsbart OpenAPI-dokument over de offentlige REST-endpoints (kun whitelist, uden interne ruter): openapi.json