Agentic Portal

Backtest Reconcile

finance
Serving

Do the claimed backtest numbers follow from the trades? Send a TradingView "List of trades" CSV or a JSON trade list with the claimed metrics; get net profit, win rate, profit factor, drawdown and per-trade P&L recomputed, each claim marked MATCH or MISMATCH, and findings such as cost-free backtests. Deterministic, no market data. POST /v1/reconcile.

Endpoint
POST https://agent.pocket.network/v1/backtest-reconcile-v1/v1/reconcile
Price per call
$0.005 USD
Networks payable on
Base (eip155:8453), Tempo (eip155:4217)
Protocol
rest

Calling it

The first call returns 402 Payment Required with the terms. Sign for those terms and retry the same request with the payment attached.

Example request

Derived from the published request schema.

curl -X POST https://agent.pocket.network/v1/backtest-reconcile-v1/v1/reconcile \
  -H 'content-type: application/json' \
  -d '{"trades_csv":"string","trades":[{"n":null,"side":"long","entry_time":"string","exit_time":"string","entry_price":0,"exit_price":0,"qty":0,"commission":0,"reported_pnl":0}],"initial_capital":0,"commission":{"type":"percent","value":0},"claimed":{},"tolerance_pct":0,"single_position":true}'
Example response

This service declares its response shape in prose rather than as fields, so there is nothing more specific to sample.

{}

Try it

Make one real paid call from your own wallet — about $0.005 on Base (eip155:8453). The wallet signs; nothing here holds a key. You'll see exactly what the service answers.

No browser wallet found. Install MetaMask, Rabby, or Coinbase Wallet to try a call here.

Supported methods

Methods the registry lists for this service. The portal forwards any call as sent; the supplier decides what it answers, and a delivered answer is settled.

Methods Backtest Reconcile accepts, and whether each reads or writes.
MethodEffect
GET /v1/healthread
GET /v1/rulesread
GET /v1/versionread
POST /v1/reconcileread

Schemas

Published by the service itself. The example above is generated from these.

Request schema
{
  "type": "object",
  "description": "The body of POST /v1/reconcile, up to 2 MiB. Send trades_csv or trades.",
  "properties": {
    "trades_csv": {
      "type": "string",
      "description": "A TradingView Strategy Tester \"List of trades\" CSV export."
    },
    "trades": {
      "type": "array",
      "description": "The trades as a JSON list, in place of trades_csv.",
      "items": {
        "type": "object",
        "properties": {
          "n": {
            "description": "Trade number."
          },
          "side": {
            "type": "string",
            "enum": [
              "long",
              "short"
            ]
          },
          "entry_time": {
            "type": "string"
          },
          "exit_time": {
            "type": "string"
          },
          "entry_price": {
            "type": "number"
          },
          "exit_price": {
            "type": "number"
          },
          "qty": {
            "type": "number"
          },
          "commission": {
            "type": "number"
          },
          "reported_pnl": {
            "type": "number"
          }
        }
      }
    },
    "initial_capital": {
      "type": "number",
      "description": "Starting capital for the percentage figures."
    },
    "commission": {
      "type": "object",
      "description": "Commission applied to every trade.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "percent",
            "per_contract",
            "cash_per_order"
          ]
        },
        "value": {
          "type": "number"
        }
      }
    },
    "claimed": {
      "type": "object",
      "description": "The claimed metrics to check, any of net_profit, net_profit_pct, gross_profit, gross_loss, total_trades, win_rate, profit_factor, max_drawdown, max_drawdown_pct, avg_trade, largest_win, largest_loss."
    },
    "tolerance_pct": {
      "type": "number",
      "default": 0.5,
      "description": "How far a claim may differ, in percent, and still MATCH."
    },
    "single_position": {
      "type": "boolean",
      "default": true,
      "description": "Flag overlapping trades."
    }
  }
}
Response schema
{
  "type": "object",
  "description": "POST /v1/reconcile answers a backtest-reconcile/v1 object: verdict, the recomputed metrics, each claim with claimed, recomputed, diff and status, findings with code and severity, counts, and the assumptions used."
}