Discover/payoff API
live

payoff APIpayoff.ch

Access 177,000+ Swiss structured financial products from payoff.ch. Search by issuer, category, and exchange. Retrieve terms, market data, and underlyings by ISIN.

Endpoint health
verified 4d ago
get_product_detail
get_filter_options
search_products
3/3 passing latest checkself-healing
Endpoints
3
Updated
18d ago

What is the payoff API?

The payoff.ch API covers 177,000+ structured financial products across five SVSP categories — Capital Protection, Yield Enhancement, Participation, Credit Risk, and Leverage — via three endpoints. Use search_products to filter and paginate the full product catalog, get_product_detail to pull complete terms, market data, key figures, and underlying instruments for a specific ISIN, and get_filter_options to discover every valid filter value with live product counts.

Try it
Page number (1-based). 20 products per page.
Issuer ref code (e.g., 'UBS', 'VT' for Vontobel, 'BAER' for Julius Bär). Use get_filter_options for all codes.
Sort field (e.g., 'lastTradingDate').
Language code.
Sort direction.
Callable filter.
Exchange filter ref code.
Category filter ref code.
Currency filter code (e.g., 'CHF', 'EUR', 'USD'). Use get_filter_options for all codes.
Guarantor ref code. Use get_filter_options for all codes.
Maturity filter.
Underlying search term (e.g., 'Nestle', 'SMI').
Asset class filter.
Single or multiple underlyings: '0' for single, '1' for multiple.
api.parse.bot/scraper/e15ba936-6e49-4751-8934-eba9b7399c0e/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/e15ba936-6e49-4751-8934-eba9b7399c0e/search_products?page=1&language=en&categories=11' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace payoff-ch-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Payoff.ch Structured Products SDK — search, filter, drill-down."""
from parse_apis.payoff_ch_structured_products_api import (
    Payoff, Category, AssetClass, SortDirection, Language, ProductNotFound
)

client = Payoff()

# Discover available filters and total product count.
catalog = client.filtercatalogs.get(language=Language.EN)
print(f"Total products: {catalog.total_products}")
print(f"Categories: {len(catalog.categories)}, Issuers: {len(catalog.issuers)}")

# Search Yield Enhancement products, sorted by maturity date descending.
for product in client.productsummaries.search(
    categories=Category.YIELD_ENHANCEMENT,
    sort_by="lastTradingDate",
    sort_dir=SortDirection.DESC,
    limit=3,
):
    print(product.name, product.issuer_name, product.last_trading_date)

# Drill into the first result's full detail via the summary's navigation op.
summary = client.productsummaries.search(
    categories=Category.CAPITAL_PROTECTION,
    asset_classes=AssetClass.EQUITIES,
    limit=1,
).first()

if summary:
    detail = summary.details()
    print(detail.name, detail.trading_currency_code)
    for underlying in detail.underlyings:
        print(f"  {underlying.name} ({underlying.symbol}): last={underlying.last}")

# Typed error handling: attempt to fetch a non-existent ISIN.
try:
    client.products.get(isin="CH0000000000")
except ProductNotFound as exc:
    print(f"Product not found: {exc.isin}")

print("exercised: filtercatalogs.get / productsummaries.search / details / products.get")
All endpoints · 3 totalmissing one? ·

Full-text and filter-based search across all structured products. Returns 20 products per page with pagination metadata. Page 1 additionally includes filter counters showing how many products match each filter value. Paginates via integer page counter. Each product summary exposes ISIN for drill-down into full detail via get_product_detail.

Input
ParamTypeDescription
pageintegerPage number (1-based). 20 products per page.
issuersstringIssuer ref code (e.g., 'UBS', 'VT' for Vontobel, 'BAER' for Julius Bär). Use get_filter_options for all codes.
sort_bystringSort field (e.g., 'lastTradingDate').
languagestringLanguage code.
sort_dirstringSort direction.
callablesstringCallable filter.
exchangesstringExchange filter ref code.
categoriesstringCategory filter ref code.
currenciesstringCurrency filter code (e.g., 'CHF', 'EUR', 'USD'). Use get_filter_options for all codes.
guarantorsstringGuarantor ref code. Use get_filter_options for all codes.
maturitiesstringMaturity filter.
underlyingstringUnderlying search term (e.g., 'Nestle', 'SMI').
asset_classesstringAsset class filter.
multiple_underlyingsstringSingle or multiple underlyings: '0' for single, '1' for multiple.
Response
{
  "type": "object",
  "fields": {
    "page": "integer, current page number",
    "counters": "object with filter counts (page 1 only)",
    "per_page": "integer, products per page (20)",
    "products": "array of product summary objects with isin, symbol, name, issuerName, categoryName, tradingCurrencyCode, lastTradingDate, ask",
    "total_pages": "integer, total available pages",
    "total_records": "integer, total matching products"
  }
}

About the payoff API

What the API covers

All three endpoints draw from the payoff.ch product finder, which indexes structured products listed on Swiss exchanges including SIX (XQMH), BX Swiss (XBRN), and Swiss DOTS (DOTS). Products span SVSP category codes 11 through 15 (Capital Protection, Yield Enhancement, Participation, Credit Risk, Leverage). Each product carries an ISIN and valor number that serve as stable identifiers across endpoints.

Searching and filtering with search_products

search_products accepts filters for issuers (ref codes like UBS, VT for Vontobel, BAER for Julius Bär), categories, exchanges, callables, and sort controls (sort_by, sort_dir). Results are paginated at 20 products per page; page 1 includes a counters object showing how many products match each active filter dimension. Pages 2 and beyond return the same product array fields: isin, symbol, name, issuerName, categoryName, tradingCurrencyCode, lastTradingDate, and ask. The total_records and total_pages fields on every response let you iterate the full result set programmatically.

Retrieving product detail with get_product_detail

Pass any active ISIN to get_product_detail to receive a structured object with seven distinct data groups: basic (isin, valor, symbol, termsheet URLs), terms (strikeRate, barrierRate, lastTradingDate, issuerName, categoryName), market_data (bid, ask, last, performance), key_figures (daysToMaturity, barrierHitProbMaturity), highlights, events, and underlyings. The underlyings array lists each underlying instrument with its own ISIN, name, strikeLevel, and last price. A similar_products array is also returned. If the ISIN is delisted or invalid, the response includes a stale_input object with kind input_not_found rather than an error.

Discovering filter values with get_filter_options

get_filter_options returns the full taxonomy used by search_products: categories, subcategories, issuers, exchanges, currencies, asset_classes, maturities, guarantors, and callables. Each entry includes a ref (the code to pass as a filter), a human-readable name, and a num count of matching products. The total_products field reflects the live catalog size. Both en and de language codes are accepted across all endpoints.

Reliability & maintenanceVerified

The payoff API is a managed, monitored endpoint for payoff.ch — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when payoff.ch changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official payoff.ch API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Screen for barrier reverse convertibles from a specific issuer by combining issuers and categories filters in search_products
  • Build a maturity calendar by sorting search_products results by lastTradingDate ascending across the full product set
  • Monitor barrier proximity for capital-at-risk products by polling get_product_detail for barrierRate and barrierHitProbMaturity
  • Populate an issuer or category dropdown in a filter UI using ref and num values from get_filter_options
  • Fetch termsheet URLs and underlying instrument details for a watchlist of ISINs via get_product_detail
  • Compare ask prices and performance across similar structured products using the similar_products array and market_data fields
  • Identify callable vs. non-callable products on a specific exchange by combining callables and exchanges filters
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does payoff.ch offer an official developer API?+
payoff.ch does not publish a documented public developer API. This Parse API provides structured programmatic access to the product finder data that payoff.ch makes available on its website.
What does `get_product_detail` return for a delisted or invalid ISIN?+
Instead of throwing an error, the endpoint returns a stale_input object with kind set to input_not_found. ISINs must be active and obtainable from search_products; the endpoint does not return historical data for delisted products.
Does the API cover structured products listed outside Switzerland?+
The catalog covers products listed on Swiss exchanges — SIX, BX Swiss, and Swiss DOTS. Products listed on exchanges in Germany, Austria, or other markets are not currently included. You can fork this API on Parse and revise it to add endpoints targeting other regional structured product platforms.
How does pagination work in `search_products`, and is there a difference between page 1 and later pages?+
Every page returns 20 products with total_records and total_pages for iteration. Page 1 additionally includes a counters object containing per-filter match counts, which is useful for building faceted filter UIs. Pages 2 and beyond omit counters but are otherwise identical in structure.
Can I retrieve historical price time-series data for a structured product?+
Not currently. get_product_detail returns current market data fields (bid, ask, last, performance) and computed figures like daysToMaturity and barrierHitProbMaturity, but no historical price series. You can fork this API on Parse and revise it to add a historical data endpoint if payoff.ch exposes that data elsewhere on the site.
Page content last updated . Spec covers 3 endpoints from payoff.ch.
Related APIs in FinanceSee all →
boerse-stuttgart.de API
Search Börse Stuttgart securities by name, WKN, or ISIN and retrieve live quotes, detailed instrument pages, index snapshots with constituents, and warrant (Optionsschein) listings for a chosen underlying.
onvista.de API
Access live derivatives, indices, and market data from onvista.de to search financial instruments, retrieve knockout product details, and monitor market overviews. Build financial applications that pull real-time pricing and instrument information for trading and investment analysis.
justetf.com API
Search and compare thousands of ETFs listed on justETF, with access to detailed profiles, key metrics (TER, fund size, asset class, currency), and full monthly performance history. Filter results by asset class, fund currency, expense ratio, and more.
propfirmmatch.com API
Access real-time proprietary trading firm challenge data including futures and forex opportunities, filter by your preferences, and browse available firms to find the perfect trading challenge. Get detailed information about challenge requirements, firm listings, and all available filtering options to streamline your search for the right prop trading opportunity.
toppreise.ch API
Search and compare product prices across Swiss retailers on Toppreise.ch, view detailed specifications, track price history, and discover the best shops for any item. Find exactly what you're looking for with comprehensive product details and real-time pricing information.
comparis.ch API
Search and compare real estate listings, cars, and mortgage interest rates across the Swiss marketplace Comparis.ch with detailed filtering options and property/vehicle information. Get current mortgage rates and access comprehensive details on available properties and cars to make informed buying or financing decisions.
carrefour.eu API
Search and browse Carrefour's European online product catalog to access pricing, promotions, availability, and detailed product information including nutritional data. Retrieve comprehensive product details across categories to compare prices and find current deals in real-time.
coop.ch API
Search and browse Coop.ch's entire product catalog, including detailed pricing, product information, and category organization. Find specific groceries, compare items across categories, and access up-to-date pricing data from Switzerland's Coop supermarket.