{
  "reviewed_at": "2026-10-15",
  "purpose": "Developer workflow catalog; suggested implementations, not prebuilt features or guaranteed exhaustive possibilities",
  "recipes": [
    {
      "id": "recipe-1",
      "category": "Pricing & displays",
      "title": "Asset price pages",
      "type": "Direct data",
      "capabilities": [
        "ticker",
        "coin"
      ],
      "output": "A price page with identity, market context and freshness.",
      "implementation": "Resolve the asset ID, retrieve a ticker and attach metadata.",
      "limit": "Display the source timestamp and missing-value state; prices are not executable quotes.",
      "documentation": [
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        },
        {
          "capability": "Asset metadata",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-coin-by-id"
        }
      ],
      "licence_note": {
        "text": "Showing this data to your customers needs an Enterprise licence.",
        "url": "https://coinpaprika.com/api/licensing"
      }
    },
    {
      "id": "recipe-2",
      "category": "Pricing & displays",
      "title": "Multi-currency price displays",
      "type": "Direct data",
      "capabilities": [
        "ticker",
        "convert"
      ],
      "output": "USD, EUR or other supported quote displays.",
      "implementation": "Select a supported quote and retain that currency with every displayed value.",
      "limit": "Current-price and historical quote options differ; inspect the endpoint contract.",
      "documentation": [
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        },
        {
          "capability": "Price conversion",
          "url": "https://docs.coinpaprika.com/api-reference/tools/price-converter"
        }
      ],
      "licence_note": {
        "text": "Showing this data to your customers needs an Enterprise licence.",
        "url": "https://coinpaprika.com/api/licensing"
      }
    },
    {
      "id": "recipe-3",
      "category": "Pricing & displays",
      "title": "Market overview dashboards",
      "type": "Direct data",
      "capabilities": [
        "global",
        "tickers"
      ],
      "output": "A market-wide overview alongside individual asset performance.",
      "implementation": "Combine global context with a clearly defined asset universe.",
      "limit": "Do not add an arbitrary subset of assets and label it the entire market.",
      "documentation": [
        {
          "capability": "Global market metrics",
          "url": "https://docs.coinpaprika.com/api-reference/global/get-market-overview-data"
        },
        {
          "capability": "Asset price universe",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-tickers-for-all-active-coins"
        }
      ],
      "licence_note": {
        "text": "Showing this data to your customers needs an Enterprise licence.",
        "url": "https://coinpaprika.com/api/licensing"
      }
    },
    {
      "id": "recipe-4",
      "category": "Pricing & displays",
      "title": "Embeddable price widgets",
      "type": "Build with data",
      "capabilities": [
        "ticker",
        "coin"
      ],
      "output": "Price components for websites, media and applications.",
      "implementation": "Cache observations on your backend and render a small accessible component.",
      "limit": "Confirm redistribution rights, refresh cadence and attribution for your plan.",
      "documentation": [
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        },
        {
          "capability": "Asset metadata",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-coin-by-id"
        }
      ]
    },
    {
      "id": "recipe-5",
      "category": "Trading & monitoring",
      "title": "Venue and pair discovery",
      "type": "Direct data",
      "capabilities": [
        "markets",
        "venues"
      ],
      "output": "A list of venues and trading pairs for an asset.",
      "implementation": "Join market rows to exchange identities and expose pair-level context.",
      "limit": "A listing is not proof of account eligibility or executable liquidity.",
      "documentation": [
        {
          "capability": "Markets by asset",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-markets-by-coin-id"
        },
        {
          "capability": "Exchanges by asset",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-exchanges-by-coin-id"
        }
      ]
    },
    {
      "id": "recipe-6",
      "category": "Trading & monitoring",
      "title": "Cross-venue price comparisons",
      "type": "Build with data",
      "capabilities": [
        "markets",
        "pairs"
      ],
      "output": "A screen showing differences between reported venue prices.",
      "implementation": "Normalize quote currencies and compare observations with aligned timestamps.",
      "limit": "Price differences are not executable arbitrage; fees, depth and latency require other inputs.",
      "documentation": [
        {
          "capability": "Markets by asset",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-markets-by-coin-id"
        },
        {
          "capability": "Markets by exchange",
          "url": "https://docs.coinpaprika.com/api-reference/exchanges/list-an-exchange-markets"
        }
      ]
    },
    {
      "id": "recipe-7",
      "category": "Trading & monitoring",
      "title": "Price and activity alerts",
      "type": "Build with data",
      "capabilities": [
        "ticker",
        "stream"
      ],
      "output": "Your own threshold notifications.",
      "implementation": "Evaluate your rules against retrieved observations and deliver notifications through your own service.",
      "limit": "CoinPaprika supplies observations; scheduling, deduplication and delivery belong to your app.",
      "documentation": [
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        },
        {
          "capability": "Enterprise WebSocket",
          "url": "https://docs.coinpaprika.com/api-reference/streaming-api/streaming-introduction"
        }
      ],
      "plan_badge": {
        "label": "Enterprise",
        "url": "https://coinpaprika.com/api/streaming",
        "description": "Uses the Enterprise WebSocket stream"
      }
    },
    {
      "id": "recipe-8",
      "category": "Trading & monitoring",
      "title": "Strategy signal inputs",
      "type": "Needs your data",
      "capabilities": [
        "history",
        "ohlc",
        "stream"
      ],
      "output": "Market observations for your strategy engine.",
      "implementation": "Combine observations with your signal rules, risk controls and execution infrastructure.",
      "limit": "Do not infer fills, latency or profitability from aggregated prices.",
      "documentation": [
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        },
        {
          "capability": "Historical OHLC",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-historical-ohlc"
        },
        {
          "capability": "Enterprise WebSocket",
          "url": "https://docs.coinpaprika.com/api-reference/streaming-api/streaming-introduction"
        }
      ],
      "plan_badge": {
        "label": "Enterprise",
        "url": "https://coinpaprika.com/api/streaming",
        "description": "Uses the Enterprise WebSocket stream"
      }
    },
    {
      "id": "recipe-9",
      "category": "Wallets & valuation",
      "title": "Portfolio valuation",
      "type": "Needs your data",
      "capabilities": [
        "ticker"
      ],
      "output": "Indicative values for users’ holdings.",
      "implementation": "Multiply your balance records by matching asset prices and show the quote currency.",
      "limit": "Wallet balances, custody and transaction records are separate integrations.",
      "documentation": [
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        }
      ]
    },
    {
      "id": "recipe-10",
      "category": "Wallets & valuation",
      "title": "Portfolio performance",
      "type": "Needs your data",
      "capabilities": [
        "history",
        "ticker"
      ],
      "output": "A portfolio return view that accounts for cash flows.",
      "implementation": "Join historical prices with your dated trades, transfers and positions.",
      "limit": "Deposits, fees and withdrawals must be accounted for; price change alone is not portfolio return.",
      "documentation": [
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        },
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        }
      ]
    },
    {
      "id": "recipe-11",
      "category": "Wallets & valuation",
      "title": "Treasury monitoring",
      "type": "Needs your data",
      "capabilities": [
        "ticker",
        "history"
      ],
      "output": "A treasury exposure and valuation dashboard.",
      "implementation": "Join your treasury inventory with prices and your own accounting policy.",
      "limit": "Accounting treatment and asset ownership must be established independently.",
      "documentation": [
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        },
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        }
      ]
    },
    {
      "id": "recipe-12",
      "category": "Wallets & valuation",
      "title": "Indicative payment conversion",
      "type": "Needs your data",
      "capabilities": [
        "convert",
        "ticker"
      ],
      "output": "A price estimate before a user chooses how to pay.",
      "implementation": "Combine the conversion with your quote expiry and payment-provider flow.",
      "limit": "Conversion data does not settle payments, lock a rate or guarantee execution.",
      "documentation": [
        {
          "capability": "Price conversion",
          "url": "https://docs.coinpaprika.com/api-reference/tools/price-converter"
        },
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        }
      ]
    },
    {
      "id": "recipe-13",
      "category": "Research & models",
      "title": "Candlestick and indicator charts",
      "type": "Build with data",
      "capabilities": [
        "ohlc",
        "today",
        "lastday"
      ],
      "output": "OHLC charts with your own indicators.",
      "implementation": "Calculate moving averages or other indicators over a documented interval.",
      "limit": "Mark incomplete current-day bars; history depth depends on plan.",
      "documentation": [
        {
          "capability": "Historical OHLC",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-historical-ohlc"
        },
        {
          "capability": "Current-day OHLC",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-today-ohlc"
        },
        {
          "capability": "Last full-day OHLC",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-ohlc-for-the-last-full-day"
        }
      ]
    },
    {
      "id": "recipe-14",
      "category": "Research & models",
      "title": "Backtesting datasets",
      "type": "Needs your data",
      "capabilities": [
        "history",
        "ohlc",
        "coins"
      ],
      "output": "Historical inputs for a repeatable strategy study.",
      "implementation": "Store asset IDs, date boundaries, missing points and strategy assumptions.",
      "limit": "Avoid survivorship and look-ahead bias; execution, fees and slippage need separate modeling.",
      "documentation": [
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        },
        {
          "capability": "Historical OHLC",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-historical-ohlc"
        },
        {
          "capability": "Asset directory",
          "url": "https://docs.coinpaprika.com/api-reference/coins/list-coins"
        }
      ]
    },
    {
      "id": "recipe-15",
      "category": "Research & models",
      "title": "Volatility and correlation studies",
      "type": "Build with data",
      "capabilities": [
        "history"
      ],
      "output": "Derived risk and co-movement measures.",
      "implementation": "Align price observations, calculate returns and state the estimator and window.",
      "limit": "These are your calculations, not API-provided risk scores.",
      "documentation": [
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        }
      ]
    },
    {
      "id": "recipe-16",
      "category": "Research & models",
      "title": "Custom baskets and indices",
      "type": "Build with data",
      "capabilities": [
        "tickers",
        "history"
      ],
      "output": "An indicative index for a defined set of assets.",
      "implementation": "Specify selection rules, weights, rebalancing and missing-data behavior.",
      "limit": "Current membership is not historical membership; avoid presenting research baskets as licensed benchmarks.",
      "documentation": [
        {
          "capability": "Asset price universe",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-tickers-for-all-active-coins"
        },
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        }
      ]
    },
    {
      "id": "recipe-17",
      "category": "Sectors & discovery",
      "title": "Sector screeners",
      "type": "Build with data",
      "capabilities": [
        "tags",
        "tag",
        "tickers"
      ],
      "output": "A searchable asset view organized by category.",
      "implementation": "Join category membership with ticker observations and expose your filter rules.",
      "limit": "Tags can overlap; disclose treatment of multi-category assets.",
      "documentation": [
        {
          "capability": "Category directory",
          "url": "https://docs.coinpaprika.com/api-reference/tags/list-tags"
        },
        {
          "capability": "Category details",
          "url": "https://docs.coinpaprika.com/api-reference/tags/get-tag-by-id"
        },
        {
          "capability": "Asset price universe",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-tickers-for-all-active-coins"
        }
      ]
    },
    {
      "id": "recipe-18",
      "category": "Sectors & discovery",
      "title": "Category rotation dashboards",
      "type": "Build with data",
      "capabilities": [
        "tag",
        "history"
      ],
      "output": "Comparisons between sector baskets over time.",
      "implementation": "Record membership snapshots and calculate returns with consistent weights.",
      "limit": "The API’s current tags alone do not establish historical constituent membership.",
      "documentation": [
        {
          "capability": "Category details",
          "url": "https://docs.coinpaprika.com/api-reference/tags/get-tag-by-id"
        },
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        }
      ]
    },
    {
      "id": "recipe-19",
      "category": "Sectors & discovery",
      "title": "Asset search and autocomplete",
      "type": "Direct data",
      "capabilities": [
        "search",
        "coins"
      ],
      "output": "Search across assets and related entities.",
      "implementation": "Show the entity type and full identity before allowing selection.",
      "limit": "Symbols may be ambiguous; never identify an asset by its symbol alone.",
      "documentation": [
        {
          "capability": "Entity search",
          "url": "https://docs.coinpaprika.com/api-reference/tools/search"
        },
        {
          "capability": "Asset directory",
          "url": "https://docs.coinpaprika.com/api-reference/coins/list-coins"
        }
      ]
    },
    {
      "id": "recipe-20",
      "category": "Sectors & discovery",
      "title": "Listing and coverage change tracking",
      "type": "Build with data",
      "capabilities": [
        "coins",
        "changes"
      ],
      "output": "A change log for assets in your supported universe.",
      "implementation": "Persist snapshots and compare active status, identifiers and coverage.",
      "limit": "A new entry in your snapshots is not necessarily a newly launched token.",
      "documentation": [
        {
          "capability": "Asset directory",
          "url": "https://docs.coinpaprika.com/api-reference/coins/list-coins"
        },
        {
          "capability": "Asset ID changelog",
          "url": "https://docs.coinpaprika.com/api-reference/changelog/get-id-changelog-for-all-coins"
        }
      ],
      "plan_badge": {
        "label": "Starter+",
        "url": "https://coinpaprika.com/api/pricing",
        "description": "Uses an endpoint that needs the Starter plan or higher"
      }
    },
    {
      "id": "recipe-21",
      "category": "Exchanges & markets",
      "title": "Exchange directories and profiles",
      "type": "Direct data",
      "capabilities": [
        "exchanges",
        "exchange"
      ],
      "output": "Exchange profiles with reported market activity.",
      "implementation": "Use the directory for discovery and fetch details for the selected exchange.",
      "limit": "Reported volume or a data score is not a solvency, custody or regulatory assessment.",
      "documentation": [
        {
          "capability": "Exchange directory",
          "url": "https://docs.coinpaprika.com/api-reference/exchanges/list-exchanges"
        },
        {
          "capability": "Exchange profile",
          "url": "https://docs.coinpaprika.com/api-reference/exchanges/get-exchange-by-id"
        }
      ]
    },
    {
      "id": "recipe-22",
      "category": "Exchanges & markets",
      "title": "Pair concentration analysis",
      "type": "Build with data",
      "capabilities": [
        "pairs"
      ],
      "output": "Concentration of reported volume across an exchange’s pairs.",
      "implementation": "Calculate shares with a stated denominator and handle excluded/outlier rows consistently.",
      "limit": "Use the same snapshot and scope; pair counts do not measure liquidity.",
      "documentation": [
        {
          "capability": "Markets by exchange",
          "url": "https://docs.coinpaprika.com/api-reference/exchanges/list-an-exchange-markets"
        }
      ]
    },
    {
      "id": "recipe-23",
      "category": "Exchanges & markets",
      "title": "Venue coverage comparisons",
      "type": "Build with data",
      "capabilities": [
        "venues",
        "pairs",
        "coins"
      ],
      "output": "A comparison of assets and pairs supported by selected venues.",
      "implementation": "Normalize asset IDs and compare market lists.",
      "limit": "Listing availability does not guarantee that a venue serves a particular user.",
      "documentation": [
        {
          "capability": "Exchanges by asset",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-exchanges-by-coin-id"
        },
        {
          "capability": "Markets by exchange",
          "url": "https://docs.coinpaprika.com/api-reference/exchanges/list-an-exchange-markets"
        },
        {
          "capability": "Asset directory",
          "url": "https://docs.coinpaprika.com/api-reference/coins/list-coins"
        }
      ]
    },
    {
      "id": "recipe-24",
      "category": "Exchanges & markets",
      "title": "Exchange activity history",
      "type": "Build with data",
      "capabilities": [
        "exchanges",
        "exchange"
      ],
      "output": "A time series assembled from recorded exchange snapshots.",
      "implementation": "Collect and persist observations at a chosen cadence before computing changes.",
      "limit": "These referenced endpoints provide snapshots; historical coverage requires your collection or an agreed dataset.",
      "documentation": [
        {
          "capability": "Exchange directory",
          "url": "https://docs.coinpaprika.com/api-reference/exchanges/list-exchanges"
        },
        {
          "capability": "Exchange profile",
          "url": "https://docs.coinpaprika.com/api-reference/exchanges/get-exchange-by-id"
        }
      ]
    },
    {
      "id": "recipe-25",
      "category": "Metadata & identity",
      "title": "Token identity by contract",
      "type": "Direct data",
      "capabilities": [
        "platforms",
        "contracts",
        "contractprice"
      ],
      "output": "Resolve a tracked chain/contract to its market identity.",
      "implementation": "Require both network and contract address before looking up a ticker.",
      "limit": "Coverage is not universal; a matching contract does not certify token safety.",
      "documentation": [
        {
          "capability": "Contract platforms",
          "url": "https://docs.coinpaprika.com/api-reference/contracts/list-contracts-platforms"
        },
        {
          "capability": "Platform contract directory",
          "url": "https://docs.coinpaprika.com/api-reference/contracts/get-all-contract-addressess-for-a-given-platform"
        },
        {
          "capability": "Ticker by contract",
          "url": "https://docs.coinpaprika.com/api-reference/contracts/redirect-to-ticker-by-contract-address"
        }
      ]
    },
    {
      "id": "recipe-26",
      "category": "Metadata & identity",
      "title": "Cross-provider ID migration",
      "type": "Direct data",
      "capabilities": [
        "mappings",
        "changes"
      ],
      "output": "A maintained mapping between supported provider identifiers.",
      "implementation": "Use documented mappings, store provenance and process ID changes.",
      "limit": "Mapping access is plan-dependent; validate unresolved or changed assets.",
      "documentation": [
        {
          "capability": "Provider ID mappings",
          "url": "https://docs.coinpaprika.com/api-reference/coins/api-id-mappings"
        },
        {
          "capability": "Asset ID changelog",
          "url": "https://docs.coinpaprika.com/api-reference/changelog/get-id-changelog-for-all-coins"
        }
      ],
      "plan_badge": {
        "label": "Business+",
        "url": "https://coinpaprika.com/api/pricing",
        "description": "Uses ID mappings, which need the Business plan or higher"
      }
    },
    {
      "id": "recipe-27",
      "category": "Metadata & identity",
      "title": "Asset research profiles",
      "type": "Direct data",
      "capabilities": [
        "coin",
        "people"
      ],
      "output": "Profiles with project information and linked people.",
      "implementation": "Present available metadata with links and retrieval dates.",
      "limit": "Metadata and team associations are not independent due diligence or identity verification.",
      "documentation": [
        {
          "capability": "Asset metadata",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-coin-by-id"
        },
        {
          "capability": "People & project roles",
          "url": "https://docs.coinpaprika.com/api-reference/people/get-person-by-id"
        }
      ]
    },
    {
      "id": "recipe-28",
      "category": "Metadata & identity",
      "title": "Event calendars and watchlists",
      "type": "Direct data",
      "capabilities": [
        "events",
        "coin"
      ],
      "output": "Project-event views with available dates and source links.",
      "implementation": "Associate each event with the resolved asset and expose the linked evidence.",
      "limit": "Coverage may be incomplete; event schedules can change.",
      "documentation": [
        {
          "capability": "Asset events",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-coin-events-by-coin-id"
        },
        {
          "capability": "Asset metadata",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-coin-by-id"
        }
      ]
    },
    {
      "id": "recipe-29",
      "category": "AI & developer tools",
      "title": "Market questions through MCP",
      "type": "Direct data",
      "capabilities": [
        "mcp"
      ],
      "output": "Market-data tools in a compatible assistant.",
      "implementation": "Connect the hosted MCP service using the documented client configuration.",
      "limit": "Review available tools and transport support; tool access is not trade execution.",
      "documentation": [
        {
          "capability": "Hosted MCP",
          "url": "https://docs.coinpaprika.com/mcp-introduction"
        }
      ]
    },
    {
      "id": "recipe-30",
      "category": "AI & developer tools",
      "title": "Custom research agents",
      "type": "Build with data",
      "capabilities": [
        "skills",
        "ticker",
        "history"
      ],
      "output": "An agent that retrieves evidence for market analysis.",
      "implementation": "Allowlist tools and preserve IDs, query parameters, units and timestamps in the answer.",
      "limit": "Fail explicitly on missing data; do not let a model manufacture observations.",
      "documentation": [
        {
          "capability": "Agent skills",
          "url": "https://docs.coinpaprika.com/skills"
        },
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        },
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        }
      ]
    },
    {
      "id": "recipe-31",
      "category": "AI & developer tools",
      "title": "Terminal and scheduled research jobs",
      "type": "Build with data",
      "capabilities": [
        "cli",
        "sdk"
      ],
      "output": "Repeatable data collection from scripts or notebooks.",
      "implementation": "Use documented CLI or SDK operations and your own scheduler.",
      "limit": "Pin dependencies, handle request limits and keep credentials outside logs.",
      "documentation": [
        {
          "capability": "CLI",
          "url": "https://docs.coinpaprika.com/cli"
        },
        {
          "capability": "Python SDK",
          "url": "https://docs.coinpaprika.com/get-started/sdk-python"
        }
      ]
    },
    {
      "id": "recipe-32",
      "category": "AI & developer tools",
      "title": "Editorial and educational tools",
      "type": "Build with data",
      "capabilities": [
        "coin",
        "ticker",
        "events"
      ],
      "output": "Sourced market context for articles, lessons and briefs.",
      "implementation": "Combine retrieved facts with your own editorial process and link to sources.",
      "limit": "Publish the observation time and review generated interpretation before release.",
      "documentation": [
        {
          "capability": "Asset metadata",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-coin-by-id"
        },
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        },
        {
          "capability": "Asset events",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-coin-events-by-coin-id"
        }
      ]
    },
    {
      "id": "recipe-33",
      "category": "Streaming & operations",
      "title": "Live market displays",
      "type": "Build with data",
      "capabilities": [
        "stream"
      ],
      "output": "A continuously refreshed view for your application.",
      "implementation": "Subscribe to documented asset IDs and manage your client-side presentation.",
      "limit": "Enterprise WebSocket access requires an eligible key; use the relevant transport documentation.",
      "documentation": [
        {
          "capability": "Enterprise WebSocket",
          "url": "https://docs.coinpaprika.com/api-reference/streaming-api/streaming-introduction"
        }
      ]
    },
    {
      "id": "recipe-34",
      "category": "Streaming & operations",
      "title": "Subscription lifecycle management",
      "type": "Build with data",
      "capabilities": [
        "stream"
      ],
      "output": "A backend that adjusts its market-data subscriptions.",
      "implementation": "Use subscribe/unsubscribe operations, heartbeat handling and reconnect policies.",
      "limit": "Do not assume automatic replay of missed observations; define gap recovery for your product.",
      "documentation": [
        {
          "capability": "Enterprise WebSocket",
          "url": "https://docs.coinpaprika.com/api-reference/streaming-api/streaming-introduction"
        }
      ],
      "plan_badge": {
        "label": "Enterprise",
        "url": "https://coinpaprika.com/api/streaming",
        "description": "Uses the Enterprise WebSocket stream"
      }
    },
    {
      "id": "recipe-35",
      "category": "Streaming & operations",
      "title": "Data freshness monitoring",
      "type": "Build with data",
      "capabilities": [
        "ticker",
        "stream"
      ],
      "output": "Stale-data indicators for your own downstream systems.",
      "implementation": "Compare observation age against thresholds appropriate to your delivery contract.",
      "limit": "A successful request does not prove freshness; retain the source timestamp.",
      "documentation": [
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        },
        {
          "capability": "Enterprise WebSocket",
          "url": "https://docs.coinpaprika.com/api-reference/streaming-api/streaming-introduction"
        }
      ],
      "plan_badge": {
        "label": "Enterprise",
        "url": "https://coinpaprika.com/api/streaming",
        "description": "Uses the Enterprise WebSocket stream"
      }
    },
    {
      "id": "recipe-36",
      "category": "Streaming & operations",
      "title": "API consumption dashboards",
      "type": "Direct data",
      "capabilities": [
        "usage"
      ],
      "output": "A view of your own API plan and usage.",
      "implementation": "Read key information on the documented paid API host and reconcile it with your request logs.",
      "limit": "Keep keys server-side; do not expose account details in public pages.",
      "documentation": [
        {
          "capability": "API key usage",
          "url": "https://docs.coinpaprika.com/api-reference/key/get-api-key-info"
        }
      ],
      "plan_badge": {
        "label": "Starter+",
        "url": "https://coinpaprika.com/api/pricing",
        "description": "Uses an endpoint that needs the Starter plan or higher"
      }
    },
    {
      "id": "recipe-37",
      "category": "DEX & on-chain",
      "title": "Pool and token discovery",
      "type": "DexPaprika",
      "capabilities": [
        "dex"
      ],
      "output": "A DEX-oriented research interface.",
      "implementation": "Explore DexPaprika’s separate pool and token coverage.",
      "limit": "This uses DexPaprika, not an assumed capability of the CoinPaprika REST API.",
      "documentation": [
        {
          "capability": "DexPaprika documentation",
          "url": "https://docs.dexpaprika.com/introduction"
        }
      ]
    },
    {
      "id": "recipe-38",
      "category": "DEX & on-chain",
      "title": "Pool liquidity research",
      "type": "DexPaprika",
      "capabilities": [
        "dex"
      ],
      "output": "Pool-level inputs for on-chain liquidity analysis.",
      "implementation": "Use DexPaprika documentation to select chains, pools and available measures.",
      "limit": "Liquidity data is not an executable trade quote; verify chain and pool coverage.",
      "documentation": [
        {
          "capability": "DexPaprika documentation",
          "url": "https://docs.dexpaprika.com/introduction"
        }
      ]
    },
    {
      "id": "recipe-39",
      "category": "DEX & on-chain",
      "title": "CEX and DEX comparison",
      "type": "DexPaprika",
      "capabilities": [
        "dex",
        "markets"
      ],
      "output": "A combined view across centralized and decentralized markets.",
      "implementation": "Join CoinPaprika markets to DexPaprika assets using validated chain/contract identity.",
      "limit": "Quotes, timestamps and market mechanics differ; do not match by symbol alone.",
      "documentation": [
        {
          "capability": "DexPaprika documentation",
          "url": "https://docs.dexpaprika.com/introduction"
        },
        {
          "capability": "Markets by asset",
          "url": "https://docs.coinpaprika.com/api-reference/coins/get-markets-by-coin-id"
        }
      ]
    },
    {
      "id": "recipe-40",
      "category": "Metadata & identity",
      "title": "Contract-based historical research",
      "type": "Direct data",
      "capabilities": [
        "contracthistory",
        "history"
      ],
      "output": "Historical market context for a tracked contract.",
      "implementation": "Resolve the contract on its platform and use the supported historical ticker redirect.",
      "limit": "This is aggregated asset history, not wallet transactions or per-pool execution history.",
      "documentation": [
        {
          "capability": "History by contract",
          "url": "https://docs.coinpaprika.com/api-reference/contracts/redirect-to-historical-ticks-by-contract-address"
        },
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        }
      ]
    },
    {
      "id": "recipe-41",
      "category": "Pricing & displays",
      "title": "Oracle data inputs",
      "type": "Needs your data",
      "capabilities": [
        "ticker",
        "stream"
      ],
      "output": "A market-data input for your oracle infrastructure.",
      "implementation": "Feed retrieved observations into your own validation, aggregation and publication pipeline.",
      "limit": "The API alone is not an on-chain oracle. Delivery guarantees and oracle usage rights need agreement.",
      "documentation": [
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        },
        {
          "capability": "Enterprise WebSocket",
          "url": "https://docs.coinpaprika.com/api-reference/streaming-api/streaming-introduction"
        }
      ],
      "plan_badge": {
        "label": "Enterprise",
        "url": "https://coinpaprika.com/api/streaming",
        "description": "Uses the Enterprise WebSocket stream"
      },
      "licence_note": {
        "text": "Showing this data to your customers needs an Enterprise licence.",
        "url": "https://coinpaprika.com/api/licensing"
      }
    },
    {
      "id": "recipe-42",
      "category": "Wallets & valuation",
      "title": "Collateral exposure monitoring",
      "type": "Needs your data",
      "capabilities": [
        "ticker",
        "history"
      ],
      "output": "An indicative collateral valuation and exposure view.",
      "implementation": "Combine prices with your positions, loan terms, haircuts and risk policies.",
      "limit": "These are reference prices, not a liquidation engine or guaranteed realizable collateral value.",
      "documentation": [
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        },
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        }
      ]
    },
    {
      "id": "recipe-43",
      "category": "Research & models",
      "title": "Accounting and tax valuation inputs",
      "type": "Needs your data",
      "capabilities": [
        "history",
        "convert"
      ],
      "output": "Price observations to support your reconciliation process.",
      "implementation": "Match your transaction records to asset IDs, dates, currencies and the valuation method you choose.",
      "limit": "Tax lots, jurisdiction rules, audit evidence and final calculations are your responsibility.",
      "documentation": [
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        },
        {
          "capability": "Price conversion",
          "url": "https://docs.coinpaprika.com/api-reference/tools/price-converter"
        }
      ]
    },
    {
      "id": "recipe-44",
      "category": "Trading & monitoring",
      "title": "Stablecoin deviation monitoring",
      "type": "Build with data",
      "capabilities": [
        "ticker",
        "history"
      ],
      "output": "A monitor for departures from a specified reference value.",
      "implementation": "Define the reference currency and threshold, then track observed deviations over time.",
      "limit": "A price deviation is not proof of reserve impairment or issuer insolvency.",
      "documentation": [
        {
          "capability": "Ticker by asset",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-ticker-for-a-specific-coin"
        },
        {
          "capability": "Historical ticks",
          "url": "https://docs.coinpaprika.com/api-reference/tickers/get-historical-ticks-for-a-specific-coin"
        }
      ]
    }
  ]
}
