---
title: "Quote a Custom Report"
method: POST
path: "/api/v1/reports/quote"
tags: ["Custom Reports"]
---

# Quote a Custom Report

`POST /api/v1/reports/quote`

## Request

- Base URL: `https://tradingstrategies.work`
- URL: `https://tradingstrategies.work/api/v1/reports/quote`
- Auth: HTTP bearer

Berechnet n_viable Pairs für Universe + Period, returnt Preis (n × 0,10 €, geclampt 14,99-49,99 €). Pre-Checkout-Validation. [API Pro tier]

## Request body

- object
  - `universe_id` string, required: Universe id, e.g. top-50-crypto.
  - `period` '1y' | '2y' | '4y' | '8y', required
  - `interval` '1d' | '1w' | '1M'
  - `discount_code` string, nullable: Optional 20%-Retention-Code.

## Response `200`

Quote with price, n_viable, viability_filter_summary.

## Other responses

- `400`: Invalid input — fehlt Pflichtfeld oder Wert außerhalb des erlaubten Bereichs.
- `401`: Unauthenticated — kein gültiger Bearer-Token im Authorization-Header.
- `403`: Tier-Insufficient — Endpoint braucht höheren API-Tier. Response enthält upgrade_url.
- `404`: Not-Found — Resource existiert nicht oder gehört nicht dem aktuellen User.
- `429`: Rate-Limit überschritten — Tier-Quota (hourly/daily) oder Per-Endpoint-Quota erreicht. Retry-After-Header gesetzt.
- `500`: Internal Error.
- `503`: Upstream-Failure — Datenquelle nicht erreichbar (Binance, EODHD, etc.).

---

[API](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api.md) · [All operations](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api/revisions/f82e8d6eecd7?raw)
