Utvecklare och API

Anslut Paperball till AI-assistenter och dina egna verktyg. Programmatisk åtkomst sker via MCP-servern — med OAuth (t.ex. claude.ai) eller med en personlig API-nyckel.

Vad du kan göra med det

  • Lista dina backtestset och portföljer och läsa dem i detalj
  • Starta backtester (simuleringar) och hämta eller jämföra resultat
  • Fråga efter publika Community-Backtests och aktuella växelkurser
  • Fråga efter ditt konto och dina prenumerationsgränser (whoami)
  • Skapa backtestset, spara portföljer från resultat, köra Monte Carlo-simuleringar och hantera mallar, listor och mappar
  • Lista dina värdepapper, komplettera kurser från filer som raderbara paket och ange grunddata (t.ex. TER) manuellt
  • Radera bara med behörigheten ”Ta bort” (delete), bara som ägare eller kontoadministratör och bara om det är påslaget för kontot under Inställningar → API-nycklar – annars ser assistenten inte ens raderingsverktygen

Varje nyckel är kopplad till ditt konto och agerar å dina vägnar. Tillgängliga scopes: läsa (read), köra simuleringar (run_simulation), hantera värdepapper (watchlist:write — ladda upp kurser, ange grunddata) och ta bort (delete — ges bara av ägare och kontoadministratörer, se ”Borttagning”). Backtester, Monte Carlo-simuleringar och uppdateringar förbrukar krediter ur ditt saldo.

Snabbstart: skapa en nyckel

Skapa en personlig API-nyckel i dina kontoinställningar under ”API-nycklar”. Nyckeln börjar med sk_ppf_ och visas exakt en gång — kopiera den direkt.

Till nyckelhantering

Anslut claude.ai (OAuth)

I claude.ai går du till Inställningar → Connectors och lägger till en anpassad connector med denna MCP-URL. Lämna OAuth-fälten tomma — registreringen sker automatiskt (Dynamic Client Registration). Vid första anslutningen bekräftar du åtkomsten till ditt konto.

https://www.paperball.finance/mcp

Ingen API-nyckel behövs — anslutningen upprättas via OAuth 2.1 med PKCE och visas sedan under ”Anslutna appar”.

Anslut Claude Desktop (nyckel)

Lägg till följande block i din claude_desktop_config.json och ersätt sk_ppf_… med din nyckel. mcp-remote överbryggar den lokala stdio-transporten till HTTP-MCP-servern.

{
  "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 och egna skript

Alla MCP-kompatibla HTTP-klienter kan nå endpointen direkt — via Streamable HTTP med din nyckel i Authorization-headern.

# 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

Borttagning

Verktyg som tar bort syns i tools/list bara när tre saker gäller: nyckeln har behörigheten ”delete”, den tillhör en ägare eller kontoadministratör, och ”Borttagning via AI-assistenter och API:et” är påslagen under Inställningar → API-nycklar (standard: av). Bara det som ännu inte används kan tas bort.

Befintliga nycklar och anslutningar har inte behörigheten ”Ta bort”. Skapa en ny nyckel med ”Tillåt borttagning” eller anslut assistenten på nytt och bekräfta borttagning.

Ändrade verktyg (2026-10-28)

Verktygen ger nu samma siffror som appens sidor. Därför har några fält och standardvärden ändrats – anpassa sparade anrop och skript:

  • run_monte_carlo, run_monte_carlo_mix, run_monte_carlo_community: fälten heter som i de sparade Monte Carlo-inställningarna (horizon_years → horizont_jahre, start_capital → startkapital, block_months → block_monate, tax → steuer); nytt är alter_heute. Okända fält avvisas i stället för att ignoreras.
  • get_exchange_rates: kurserna följer nu appens riktning, 1 EUR = X utländsk valuta – tidigare var det det inverterade värdet.
  • get_top_portfolios_leaderboard: samma rankningar som sidan Communityns backtester (sharpe_ratio, sortino_ratio, calmar_ratio, sterling_ratio, martin_ratio, recovery_ratio, standard sharpe_ratio); cagr, ulcer och max_drawdown utgår.
  • list_community_portfolios: utan parametrar en sida av sökningen som på Monte Carlo-sidan (10 poster, längst kurshistorik först) med total – i stället för upp till 200 efter Sharpe.
  • get_table_detail: weight_pct och distribution_type utgår (de var alltid tomma); fälten från backtestuppsättningens sida tillkommer.
  • list_my_favorite_portfolios: nytt fält metrics med nyckeltalen från den egna backtesten, som Mina portföljer visar dem; leaderboard_metrics står separat.
  • run_simulation: standardvärden som i sidans formulär (minst 2 värdepapper, steg enligt din plan); en mall gäller för varje fält som du inte skickar.
  • list_watchlist, compare_watchlist_securities, get_security_price_history: samma värdepapper som watchlisten (även testdata och delade mappar); utan angivelse gäller tidsfönstret i din ruta.

Ändrade nyckeltal (2026-10-30)

ulcer_index anges nu i procentenheter, som max_drawdown (7,65 i stället för 0,0765). sortino_ratio beräknar medelvärdet av de kvadrerade förlusterna över alla dagar i stället för bara förlustdagarna, som är brukligt; värdet blir därmed ungefär en och en halv gång så högt. Det gäller varje verktyg som returnerar dessa nyckeltal, och sparade backtester och portföljer så snart de har räknats om.

OAuth discovery

För OAuth-klienter tillhandahålls metadatan på standardsökvägarna enligt RFC 8414 / RFC 9728:

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

OpenAPI-schema

Paperballs programmatiska yta är MCP-first. Ett maskinläsbart OpenAPI-dokument över de publika REST-endpointerna (endast whitelist, inga interna rutter) finns här: openapi.json