Getting Started
Create an account, get your API key, and price your first instrument in under five minutes.
1. Create your account
Go to app.quantra.io and sign in with your Google account. The Quantra Portal is the central hub for managing your API keys, market data, and instruments.
2. Create an API key
Once signed in, you'll see the API Keys panel on the Dashboard. Give your key a name and click Create. Copy the key immediately — it won't be shown again.
The free tier allows up to 3 API keys. Keys can be toggled on/off or deleted at any time from the Dashboard.
3. Make your first request
The API lives at https://api.quantra.io. Authenticate by including your API key in the X-API-Key header. All pricing endpoints accept POST requests with JSON bodies.
Health check
curl https://api.quantra.io/health
Price a fixed rate bond
Here's a complete example that bootstraps a discount curve from two market instruments and prices a 5-year fixed rate bond:
curl -X POST https://api.quantra.io/price-fixed-rate-bond \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "pricing": { "as_of_date": "2025-06-15", "curves": [{ "id": "discount", "day_counter": "Actual365Fixed", "interpolator": "LogLinear", "bootstrap_trait": "Discount", "reference_date": "2025-06-15", "points": [ { "point_type": "DepositHelper", "point": { "rate": 0.04, "tenor_number": 6, "tenor_time_unit": "Months", "fixing_days": 2, "calendar": "TARGET", "business_day_convention": "ModifiedFollowing", "day_counter": "Actual365Fixed" } }, { "point_type": "SwapHelper", "point": { "rate": 0.035, "tenor_number": 5, "tenor_time_unit": "Years", "calendar": "TARGET", "sw_fixed_leg_frequency": "Annual", "sw_fixed_leg_convention": "ModifiedFollowing", "sw_fixed_leg_day_counter": "Thirty360", "float_index": { "id": "EUR_6M" }, "spread": 0.0, "fwd_start_days": 0 } } ] }], "indices": [{ "id": "EUR_6M", "name": "Euribor", "index_type": "Ibor", "tenor_number": 6, "tenor_time_unit": "Months", "fixing_days": 2, "calendar": "TARGET", "business_day_convention": "ModifiedFollowing", "day_counter": "Actual360", "end_of_month": false, "currency": "EUR" }] }, "bonds": [{ "fixed_rate_bond": { "settlement_days": 2, "face_amount": 100, "rate": 0.045, "accrual_day_counter": "ActualActualBond", "payment_convention": "ModifiedFollowing", "redemption": 100.0, "issue_date": "2025-01-15", "schedule": { "calendar": "TARGET", "effective_date": "2025-01-15", "termination_date": "2030-01-15", "frequency": "Annual", "convention": "ModifiedFollowing", "termination_date_convention": "ModifiedFollowing", "date_generation_rule": "Backward" } }, "discounting_curve": "discount" }] }'
Response
{
"bonds": [{
"npv": 104.72,
"clean_price": 104.72,
"dirty_price": 106.60,
"accrued_amount": 1.88,
"yield": 0.0351,
"macaulay_duration": 4.31,
"modified_duration": 4.16,
"convexity": 21.36,
"bps": 0.0416
}]
}
4. Or use the Portal
If you prefer a visual interface, the Portal lets you do the same thing without writing code:
- Settings: Click Load Example (No Market Data) and then Load Market Data.
- Products: Open Fixed Rate Bond, Floating Rate Bond, or IR Swap.
- Fill in the form and click Price.
The Portal sends exactly the same JSON to the API under the hood — you can inspect the request in the Pricing Playground on the Dashboard.
Authentication
Quantra supports two authentication methods:
- API Key (for programmatic access): Include your key in the
X-API-Keyheader. - Firebase Token (for the Portal): The Portal handles this automatically via Google sign-in.
curl -X POST https://api.quantra.io/price-fixed-rate-bond \ -H "X-API-Key: qk_abc123..." \ -H "Content-Type: application/json" \ -d @my_request.json
Available endpoints
All pricing endpoints are POST and accept the same pricing block for curves and market data:
/price-fixed-rate-bond— Fixed coupon bonds/price-floating-rate-bond— Floating rate notes/price-vanilla-swap— Interest rate swaps/price-fra— Forward rate agreements/price-cap-floor— Caps, floors, and collars/price-swaption— European swaptions/price-cds— Credit default swaps/bootstrap-curves— Yield curve bootstrapping/health— Health check (no auth required)
For full schema details, see the API Reference.
Key concepts
The pricing block
Every pricing request contains a pricing object that defines the valuation context: the as-of date, yield curves, indices, volatility surfaces, and models. This is shared across all products — you build your market environment once and reference curves by id in each instrument.
Yield curves
Curves are bootstrapped on-the-fly from market instruments (deposits, FRAs, futures, swaps, OIS, bonds). You specify the interpolation method, day counter, and bootstrap trait. Instruments reference curves by their id for discounting and forwarding.
Indices
Floating-rate instruments need an index definition (e.g., Euribor 6M, SOFR). These are defined in the indices array of the pricing block and referenced by id in instruments and curve helpers.