Every covered Moralis REST API endpoint, mapped to the template (or combination of templates) that replaces it. Find the endpoint you call today and see exactly what to turn on.
This is the full list of Moralis REST endpoints covered by Data Feeds, ordered by how widely each is used
(most-used first). Find the endpoint you call today; the Templates column tells you exactly what to turn on.
Each template page has a “Migrating from the REST API” section with the field-by-field mapping for the
endpoints it replaces.
Data Feeds are not a 1:1 endpoint swap. Many endpoints return pre-joined objects that map to a
combination of templates: the first template listed is the core dataset, the rest complete the response. Plan
for a join (usually one SQL view) rather than a drop-in replacement.
New to Data Feeds first? Read the migration overview for how the API and
Data Feeds differ, then come back here to pick your endpoint.
The removed Solana token-holder endpoints map onto the same holder templates, pointed at Solana (the feed’s
SPL tokenTransfers carry absolute post-balances, so the templates run unchanged):
The removed launchpad / discovery endpoints (pump.fun, Raydium LaunchLab) are all served by the one
Token Bonding Status template over the launchpadEvents feed:
Other Solana endpoints (prices, swaps, portfolio, metadata) are not yet covered.
Search and discovery endpoints (/tokens/search) are a search product, not an indexed feed.
RPC node methods (eth_*) belong to the node product, not Data Feeds.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Moralis","colors":{"primary":"#0f7fff","light":"#0f7fff","dark":"#0f7fff"},"logo":{"light":"https://mintcdn.com/moralis/GWFD1O4mIZzaStPO/logo/light.png?fit=max\u0026auto=format\u0026n=GWFD1O4mIZzaStPO\u0026q=85\u0026s=66e6da0d81943c4679e0ba921850201d","dark":"https://mintcdn.com/moralis/GWFD1O4mIZzaStPO/logo/dark.png?fit=max\u0026auto=format\u0026n=GWFD1O4mIZzaStPO\u0026q=85\u0026s=39f72ccb7cd088ee041f49d8b76acc8c"},"favicon":"https://mintcdn.com/moralis/UBURjGZyEKeu353P/favicon.png?fit=max\u0026auto=format\u0026n=UBURjGZyEKeu353P\u0026q=85\u0026s=cd5557efb5310bf231b9dede4be7ca4d","appearance":{"default":"light"},"background":{"color":{"dark":"#191B19"}},"navbar":{"links":[{"href":"https://moralis.com/enterprise/","label":"Enterprise"},{"href":"https://status.moralis.io/","label":"Status"}],"primary":{"type":"button","label":"Try Now","href":"https://admin.moralis.com/register"}},"footer":{"socials":{"youtube":"https://www.youtube.com/channel/UCgWS9Q3P5AxCWyQLT2kQhBw","x":"https://x.com/moralisdevs","linkedin":"https://www.linkedin.com/company/moralisweb3","discord":"https://discord.gg/s3UfDvXQTc","website":"https://moralis.com/"},"links":[{"header":"AI","items":[{"label":"LLMs.txt","href":"https://docs.moralis.com/llms.txt"},{"label":"Full LLMs.txt","href":"https://docs.moralis.com/llms-full.txt"}]}]},"fonts":{"family":"sw","source":"https://mintlify-assets.b-cdn.net/fonts/sw.woff2","format":"woff2"},"contextual":{"options":["chatgpt","claude","copy","view"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"moralis","hasAudioNarration":false,"actualSubdomain":"moralis","customDomains":["docs.moralis.com"],"gitSource":{"type":"github","owner":"novnski","repo":"docs-v2","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aec67aca93f970ede8ce627","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"RPC Nodes","count":560},{"language":"default","tag":"Data API","count":204},{"language":"default","tag":"EVM API","count":96},{"language":"default","tag":"Streams","count":96},{"language":"default","tag":"Get Started","count":67},{"language":"default","tag":"Tutorials \u0026 Guides","count":62},{"language":"default","tag":"Data Feeds","count":50},{"language":"default","tag":"Token API","count":49},{"language":"default","tag":"Wallet API","count":43},{"language":"default","tag":"Solana API","count":32}]},"assistantConfig":{"enableStarterQuestions":false},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"data-feeds/migration/endpoints","slug":"/data-feeds/migration/endpoints","pageMetadata":{"title":"Map Endpoints to Templates","description":"Every covered Moralis REST API endpoint, mapped to the template (or combination of templates) that replaces it. Find the endpoint you call today and see exactly what to turn on.","href":"/data-feeds/migration/endpoints"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Every covered Moralis REST API endpoint, mapped to the template (or combination of templates) that replaces it. Find the endpoint you call today and see exactly what to turn on.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`This is the full list of Moralis REST endpoints covered by Data Feeds, `,_jsx(_components.strong,{children:`ordered by how widely each is used`}),`\n(most-used first). Find the endpoint you call today; the `,_jsx(_components.strong,{children:`Templates`}),` column tells you exactly what to turn on.\nEach template page has a `,_jsx(_components.strong,{children:`“Migrating from the REST API”`}),` section with the field-by-field mapping for the\nendpoints it replaces.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Data Feeds are not a 1:1 endpoint swap.`}),` Many endpoints return pre-joined objects that map to `,_jsx(_components.strong,{children:`a\ncombination of templates`}),`: the first template listed is the core dataset, the rest complete the response. Plan\nfor a join (usually one SQL view) rather than a drop-in replacement.`]})}),`\n`,_jsxs(_components.p,{children:[`New to Data Feeds first? Read the `,_jsx(_components.a,{href:`/data-feeds/migration/overview`,children:`migration overview`}),` for how the API and\nData Feeds differ, then come back here to pick your endpoint.`]}),`\n`,_jsx(Heading,{level:`2`,id:`endpoints-by-usage`,children:`Endpoints by usage`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`#`}),_jsx(_components.th,{children:`REST endpoint`}),_jsx(_components.th,{children:`Templates you need`}),_jsx(_components.th,{children:`Headline fidelity`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`1`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /wallets/:address/tokens`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/wallet/token-balances-by-wallet`,children:`Token Balances by Wallet`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/wallet/native-balances`,children:`Native Balances`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-prices`,children:`Token Prices`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-metadata`,children:`Token Metadata`})]}),_jsx(_components.td,{children:`balances exact, prices calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`2`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /erc20/:token_address/owners`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/token/token-holders`,children:`Token Holders`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-metadata`,children:`Token Metadata`})]}),_jsx(_components.td,{children:`exact`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /wallets/:address/history`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/wallet/wallet-history`,children:`Wallet History`})}),_jsx(_components.td,{children:`exact, decode-yourself + off-chain labels`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`4`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /:address/nft`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/wallet/nfts-by-wallet`,children:`NFTs by Wallet`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/nft/nft-collection-metadata`,children:`NFT Collection Metadata`})]}),_jsx(_components.td,{children:`onchain exact, metadata add-yourself`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`5`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /:address/erc20`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/wallet/token-balances-by-wallet`,children:`Token Balances by Wallet`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-metadata`,children:`Token Metadata`})]}),_jsx(_components.td,{children:`exact`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`6`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /erc20/prices`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/token/token-prices`,children:`Token Prices`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-metadata`,children:`Token Metadata`})]}),_jsx(_components.td,{children:`calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`7`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /erc20/:tokenAddress/holders`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/token/token-holders`,children:`Token Holders`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-transfers`,children:`Token Transfers`})]}),_jsx(_components.td,{children:`counts exact, tiers your-definition`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`8`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /:address/erc20/transfers`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/token/token-transfers`,children:`Token Transfers`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-metadata`,children:`Token Metadata`})]}),_jsx(_components.td,{children:`exact`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`9`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`POST /nft/getMultipleNFTs`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/nft/nft-collection-metadata`,children:`NFT Collection Metadata`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/nft/nft-owners-by-contract`,children:`NFT Owners by Contract`})]}),_jsx(_components.td,{children:`onchain exact, metadata add-yourself`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`10`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /:address/nft/transfers`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/nft/nft-transfers`,children:`NFT Transfers`})}),_jsx(_components.td,{children:`exact`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`11`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /:address/nft/collections`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/wallet/nfts-by-wallet`,children:`NFTs by Wallet`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/nft/nft-collection-metadata`,children:`NFT Collection Metadata`})]}),_jsx(_components.td,{children:`exact`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`12`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /erc20/:address/price`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/token/token-prices`,children:`Token Prices`})}),_jsx(_components.td,{children:`calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`13`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /transaction/:hash/verbose`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/logs/contract-logs`,children:`Contract Logs`}),` + `,_jsx(_components.a,{href:`/data-feeds/concepts/the-block-array`,children:`the block array`})]}),_jsx(_components.td,{children:`raw exact, ABI decode-yourself`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`14`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /block/:block_number_or_hash`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/logs/contract-logs`,children:`Contract Logs`}),` + `,_jsx(_components.a,{href:`/data-feeds/concepts/the-block-array`,children:`the block array`})]}),_jsx(_components.td,{children:`exact`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`15`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`GET /:address`}),` (native txns)`]}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/wallet/wallet-history`,children:`Wallet History`})}),_jsx(_components.td,{children:`exact`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`16`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /wallets/:address/net-worth`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/wallet/token-balances-by-wallet`,children:`Token Balances by Wallet`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/wallet/native-balances`,children:`Native Balances`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-prices`,children:`Token Prices`})]}),_jsx(_components.td,{children:`calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`17`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /wallets/:address/approvals`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/wallet/token-approvals`,children:`Token Approvals`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-metadata`,children:`Token Metadata`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-prices`,children:`Token Prices`})]}),_jsx(_components.td,{children:`exact, USD-at-risk calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`18`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /wallets/:address/chains`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/wallet/wallet-history`,children:`Wallet History`})}),_jsx(_components.td,{children:`exact`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`19`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /erc20/metadata`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/token/token-metadata`,children:`Token Metadata`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-prices`,children:`Token Prices`})]}),_jsx(_components.td,{children:`exact, market data calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`20`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /pairs/:address/ohlcv`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/markets/pair-ohlcv`,children:`Pair OHLCV`})}),_jsx(_components.td,{children:`calculated from real trades`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`21`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /erc20/:token_address/pairs`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/markets/swaps-by-pair`,children:`Swaps by Pair`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/markets/pair-reserves`,children:`Pair Reserves`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-metadata`,children:`Token Metadata`})]}),_jsx(_components.td,{children:`pools exact, market data calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`22`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /erc20/:address/transfers`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/token/token-transfers`,children:`Token Transfers`})}),_jsx(_components.td,{children:`exact`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`23`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /erc20/:tokenAddress/holders/historical`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/token/historical-balances`,children:`Historical Balances`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-transfers`,children:`Token Transfers`})]}),_jsx(_components.td,{children:`exact + calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`24`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /nft/:address/metadata`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/nft/nft-collection-metadata`,children:`NFT Collection Metadata`})}),_jsx(_components.td,{children:`exact, off-chain extras`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`25`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /tokens/:tokenAddress/analytics`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/markets/swaps-by-token`,children:`Swaps by Token`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-prices`,children:`Token Prices`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/markets/pair-reserves`,children:`Pair Reserves`})]}),_jsx(_components.td,{children:`calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`26`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /:address/balance`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/wallet/native-balances`,children:`Native Balances`})}),_jsx(_components.td,{children:`exact`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`27`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /nft/:address`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/nft/nft-owners-by-contract`,children:`NFT Owners by Contract`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/nft/nft-collection-metadata`,children:`NFT Collection Metadata`})]}),_jsx(_components.td,{children:`onchain exact, metadata add-yourself`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`28`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /wallets/:address/stats`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/wallet/wallet-history`,children:`Wallet History`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/wallet/nfts-by-wallet`,children:`NFTs by Wallet`})]}),_jsx(_components.td,{children:`exact`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`29`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /wallets/:address/swaps`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/markets/swaps-by-wallet`,children:`Swaps by Wallet`})}),_jsx(_components.td,{children:`onchain exact, USD calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`30`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /nft/:address/owners`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/nft/nft-owners-by-contract`,children:`NFT Owners by Contract`})}),_jsx(_components.td,{children:`onchain exact`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`solana-endpoints`,children:`Solana endpoints`}),`\n`,_jsxs(_components.p,{children:[`The removed Solana `,_jsx(_components.strong,{children:`token-holder`}),` endpoints map onto the same holder templates, pointed at Solana (the feed’s\nSPL `,_jsx(_components.code,{children:`tokenTransfers`}),` carry absolute post-balances, so the templates run unchanged):`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`REST endpoint`}),_jsx(_components.th,{children:`Templates you need`}),_jsx(_components.th,{children:`Headline fidelity`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /token/:network/:address/top-holders`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/token/token-holders`,children:`Token Holders`})}),_jsx(_components.td,{children:`exact, USD calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /token/:network/holders/:address`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/token/token-holders`,children:`Token Holders`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-transfers`,children:`Token Transfers`})]}),_jsx(_components.td,{children:`totalHolders exact, tiers your-definition`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /token/:network/holders/:address/historical`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/token/historical-balances`,children:`Historical Balances`})}),_jsx(_components.td,{children:`per-bucket totals exact, change calculated`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The removed `,_jsx(_components.strong,{children:`launchpad / discovery`}),` endpoints (pump.fun, Raydium LaunchLab) are all served by the one\n`,_jsx(_components.a,{href:`/data-feeds/templates/token/token-bonding-status`,children:`Token Bonding Status`}),` template over the `,_jsx(_components.code,{children:`launchpadEvents`}),` feed:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`REST endpoint`}),_jsx(_components.th,{children:`Templates you need`}),_jsx(_components.th,{children:`Headline fidelity`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /token/:network/exchange/:exchange/new`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/token/token-bonding-status`,children:`Token Bonding Status`})}),_jsx(_components.td,{children:`exact, price calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /token/:network/exchange/:exchange/bonding`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/token/token-bonding-status`,children:`Token Bonding Status`})}),_jsx(_components.td,{children:`progress exact, price calculated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /token/:network/exchange/:exchange/graduated`})}),_jsxs(_components.td,{children:[_jsx(_components.a,{href:`/data-feeds/templates/token/token-bonding-status`,children:`Token Bonding Status`}),` + `,_jsx(_components.a,{href:`/data-feeds/templates/token/token-prices`,children:`Token Prices`})]}),_jsx(_components.td,{children:`exact (+ DEX pool)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GET /token/:network/:address/bonding-status`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/data-feeds/templates/token/token-bonding-status`,children:`Token Bonding Status`})}),_jsx(_components.td,{children:`exact`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`not-covered-yet`,children:`Not covered yet`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Other Solana endpoints`}),` (prices, swaps, portfolio, metadata) are not yet covered.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Search and discovery endpoints`}),` (`,_jsx(_components.code,{children:`/tokens/search`}),`) are a search product, not an indexed feed.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`RPC node methods`}),` (`,_jsx(_components.code,{children:`eth_*`}),`) belong to the node product, not Data Feeds.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Map Endpoints to Templates","description":"Every covered Moralis REST API endpoint, mapped to the template (or combination of templates) that replaces it. Find the endpoint you call today and see exactly what to turn on.","href":"/data-feeds/migration/endpoints"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Endpoints by usage","slug":"endpoints-by-usage","depth":2,"children":[]},{"title":"Solana endpoints","slug":"solana-endpoints","depth":2,"children":[]},{"title":"Not covered yet","slug":"not-covered-yet","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"moralis","siteName":"Moralis","title":"Map Endpoints to Templates - Moralis","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-31T15:01:00.817Z","originalFileLocation":"data-feeds/migration/endpoints.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Every covered Moralis REST API endpoint, mapped to the template (or combination of templates) that replaces it. Find the endpoint you call today and see exactly what to turn on.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Moralis\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Map Endpoints to Templates - Moralis\">\u003cmeta data-mint-head property=\"og:description\" content=\"Every covered Moralis REST API endpoint, mapped to the template (or combination of templates) that replaces it. Find the endpoint you call today and see exactly what to turn on.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Moralis\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.moralis.com/data-feeds/migration/endpoints\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://moralis.mintlify.site/_mintlify/api/og/v2?division=Data+APIs+%26+Migration+Guides\u0026amp;title=Map+Endpoints+to+Templates\u0026amp;description=Every+covered+Moralis+REST+API+endpoint%2C+mapped+to+the+template+%28or+combination+of+templates%29+that+replaces+it.+Find+the+endpoint+you+call+today+and+see+exactly\u0026amp;theme=3021c0945ade0560af7b28a8\u0026amp;signature=e7f2c55f595a2d44ea87f7bd8ef14944ee78f3c75ca266c7a1294dc21ad530a3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Map Endpoints to Templates - Moralis\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Every covered Moralis REST API endpoint, mapped to the template (or combination of templates) that replaces it. Find the endpoint you call today and see exactly what to turn on.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://moralis.mintlify.site/_mintlify/api/og/v2?division=Data+APIs+%26+Migration+Guides\u0026amp;title=Map+Endpoints+to+Templates\u0026amp;description=Every+covered+Moralis+REST+API+endpoint%2C+mapped+to+the+template+%28or+combination+of+templates%29+that+replaces+it.+Find+the+endpoint+you+call+today+and+see+exactly\u0026amp;theme=3021c0945ade0560af7b28a8\u0026amp;signature=e7f2c55f595a2d44ea87f7bd8ef14944ee78f3c75ca266c7a1294dc21ad530a3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Moralis\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0f7fff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.moralis.com/data-feeds/migration/endpoints\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/data-feeds/migration/endpoints.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.moralis.com/#organization\",\"name\":\"Moralis\",\"url\":\"https://docs.moralis.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/moralis/GWFD1O4mIZzaStPO/logo/light.png?fit=max\u0026auto=format\u0026n=GWFD1O4mIZzaStPO\u0026q=85\u0026s=66e6da0d81943c4679e0ba921850201d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.moralis.com#website\",\"name\":\"Moralis\",\"url\":\"https://docs.moralis.com\",\"publisher\":{\"@id\":\"https://docs.moralis.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.moralis.com/data-feeds/migration/endpoints#webpage\",\"url\":\"https://docs.moralis.com/data-feeds/migration/endpoints\",\"name\":\"Map Endpoints to Templates\",\"description\":\"Every covered Moralis REST API endpoint, mapped to the template (or combination of templates) that replaces it. Find the endpoint you call today and see exactly what to turn on.\",\"dateModified\":\"2026-08-31T15:01:00.817Z\",\"isPartOf\":{\"@id\":\"https://docs.moralis.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.moralis.com/data-feeds/migration/endpoints#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.moralis.com/data-feeds/migration/endpoints#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Data APIs \u0026 Migration Guides\",\"item\":\"https://docs.moralis.com/data-feeds/templates/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Map Endpoints to Templates\",\"item\":\"https://docs.moralis.com/data-feeds/migration/endpoints\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.moralis.com/data-feeds/migration/endpoints#article\",\"headline\":\"Map Endpoints to Templates\",\"name\":\"Map Endpoints to Templates\",\"description\":\"Every covered Moralis REST API endpoint, mapped to the template (or combination of templates) that replaces it. Find the endpoint you call today and see exactly what to turn on.\",\"url\":\"https://docs.moralis.com/data-feeds/migration/endpoints\",\"mainEntityOfPage\":{\"@id\":\"https://docs.moralis.com/data-feeds/migration/endpoints#webpage\"},\"dateModified\":\"2026-08-31T15:01:00.817Z\",\"publisher\":{\"@id\":\"https://docs.moralis.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.moralis.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Moralis\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Moralis\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/data-feeds/migration/endpoints.md","siteName":"Moralis","nav":{"global":null,"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":""}]},{"tab":"Data API","pages":[{"title":"Data API","href":"/data-api/overview"}]},{"tab":"Streams","pages":[{"title":"Streams","href":"/streams/overview"}]},{"tab":"Data Feeds","pages":[{"group":"Getting Started","pages":[{"title":"Data Feeds","href":"/data-feeds/overview"},{"title":"What Are Data Feeds?","href":"/data-feeds/concepts/what-are-data-feeds"},{"title":"Data Feeds Features","sidebarTitle":"Features","href":"/data-feeds/features"},{"title":"How Data Feeds Works","sidebarTitle":"How It Works","href":"/data-feeds/how-it-works"},{"title":"Quickstart: Run Your First Sink","href":"/data-feeds/migration/quickstart"}]},{"group":"Access Methods","pages":[{"title":"Access Methods: Databases, Streams, and Direct Reads","sidebarTitle":"Overview","href":"/data-feeds/access-methods/overview"},{"title":"Database Sinks: ClickHouse, Postgres, and MySQL","sidebarTitle":"Database Sinks: ClickHouse, Postgres \u0026 MySQL","href":"/data-feeds/concepts/destinations"},{"title":"Streaming Data Feeds: Kafka, RabbitMQ, and SQS","sidebarTitle":"Streaming: Kafka, RabbitMQ \u0026 SQS","href":"/data-feeds/access-methods/streaming"},{"title":"Direct Reads: REST/HTTP and Arrow Flight","sidebarTitle":"Direct Reads: REST \u0026 Arrow Flight","href":"/data-feeds/access-methods/direct-reads"}]},{"group":"Data APIs \u0026 Migration Guides","pages":[{"title":"Data Feed Templates","sidebarTitle":"Overview - Data Feed Templates","href":"/data-feeds/templates/overview"},{"title":"Migrating from the Moralis REST API","description":"Already using Moralis REST API endpoints? This is the background you need before you move an endpoint onto Data Feeds: how the two differ, why the schema is not a copy, and the gotchas to plan for.","href":"/data-feeds/migration/overview"},{"title":"Map Endpoints to Templates","href":"/data-feeds/migration/endpoints"},{"group":"Wallet API","pages":[{"title":"Wallet History","description":"Reconstruct a wallet's full chronological event feed (every transfer, swap, NFT move, approval, and LP change, with USD value per event) as a continuous sync into your own database.","href":"/data-feeds/templates/wallet/wallet-history"},{"title":"Token Balances by Wallet","href":"/data-feeds/templates/wallet/token-balances-by-wallet"},{"title":"Native Balances","href":"/data-feeds/templates/wallet/native-balances"},{"title":"NFTs by Wallet","href":"/data-feeds/templates/wallet/nfts-by-wallet"},{"title":"Token Approvals","href":"/data-feeds/templates/wallet/token-approvals"}]},{"group":"Token API","pages":[{"title":"Token Holders","href":"/data-feeds/templates/token/token-holders"},{"title":"Historical Balances","href":"/data-feeds/templates/token/historical-balances"},{"title":"Token Balances by Token","href":"/data-feeds/templates/token/token-balances-by-token"},{"title":"Token Transfers","href":"/data-feeds/templates/token/token-transfers"},{"title":"Token Stats","href":"/data-feeds/templates/token/token-stats"},{"title":"Token Metadata","href":"/data-feeds/templates/token/token-metadata"},{"title":"Token Bonding Status (Solana Launchpads)","href":"/data-feeds/templates/token/token-bonding-status"}]},{"group":"Price API","pages":[{"title":"Token Prices","href":"/data-feeds/templates/token/token-prices"},{"title":"Pair OHLCV","href":"/data-feeds/templates/markets/pair-ohlcv"}]},{"group":"DeFi API","pages":[{"title":"Swaps by Wallet","href":"/data-feeds/templates/markets/swaps-by-wallet"},{"title":"Swaps by Token","href":"/data-feeds/templates/markets/swaps-by-token"},{"title":"Swaps by Pair","href":"/data-feeds/templates/markets/swaps-by-pair"},{"title":"Pair Reserves","href":"/data-feeds/templates/markets/pair-reserves"}]},{"group":"NFT API","pages":[{"title":"NFT Transfers","href":"/data-feeds/templates/nft/nft-transfers"},{"title":"NFT Trades","href":"/data-feeds/templates/nft/nft-trades"},{"title":"NFT Owners by Contract","href":"/data-feeds/templates/nft/nft-owners-by-contract"},{"title":"NFT Collection Metadata","href":"/data-feeds/templates/nft/nft-collection-metadata"}]},{"group":"Blockchain API","pages":[{"title":"Contract Logs","href":"/data-feeds/templates/logs/contract-logs"},{"title":"Logs by Event Signature","sidebarTitle":"Logs by Event Signature","href":"/data-feeds/templates/logs/logs-by-topic0"}]}]},{"group":"Streams","pages":[{"title":"Migrating from Moralis Streams","href":"/data-feeds/migration/streams-overview"}]},{"group":"Gotchas \u0026 Troubleshooting","pages":[{"title":"Gotchas \u0026 Troubleshooting","href":"/data-feeds/migration/troubleshooting"}]},{"group":"Concepts","pages":[{"title":"Data Feeds vs. the REST API","href":"/data-feeds/concepts/data-feeds-vs-the-rest-api"},{"title":"The `block` Array: How Transactions and Logs Are Laid Out","href":"/data-feeds/concepts/the-block-array"},{"title":"History \u0026 Backfill: How Far Back Do You Need to Index?","href":"/data-feeds/concepts/history-and-backfill"},{"title":"Modes: Historical, Realtime, and Hybrid","href":"/data-feeds/concepts/modes"},{"title":"Reorgs: How Chain Reorganizations Surface, and How Templates Correct Them","href":"/data-feeds/concepts/reorgs"}]},{"group":"Use Cases","pages":[{"title":"Accounting \u0026 Tax","href":"/data-feeds/use-cases/accounting"},{"title":"Portfolio Tracking","href":"/data-feeds/use-cases/portfolio-tracking"},{"title":"Token Analytics","href":"/data-feeds/use-cases/token-analytics"},{"title":"Trading \u0026 Charting","href":"/data-feeds/use-cases/trading-charting"},{"title":"NFT Marketplace","href":"/data-feeds/use-cases/nft-marketplace"},{"title":"Compliance \u0026 AML","href":"/data-feeds/use-cases/compliance-aml"},{"title":"Onchain Event Indexing","href":"/data-feeds/use-cases/event-indexing"}]}]},{"tab":"RPC Nodes","pages":[{"title":"RPC Nodes","href":"/rpc-nodes/overview"}]},{"tab":"Auth API","pages":[{"title":"Auth API","href":"/auth-api/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Map Endpoints to Templates - Moralis","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":[],"chunks":[]}