This page tracks significant changes to the Pods API and documentation.
API Versioning
The current stable API version is v2. Swap endpoints use the /v2/ prefix (e.g., /v2/swap/quote). Strategy and wallet endpoints do not use a version prefix.
Legacy swap endpoints without the /v2/ prefix are deprecated and will be
removed in a future release. Always use /v2/swap/quote, /v2/swap/bytecode,
and /v2/swap/status/{id} for new integrations.
2026
July 2026
API — breaking
apy is now the gross rate. On GET /strategies, GET /strategies/{id} and
GET /wallets/{id}, apy previously carried a partial fee deduction and now mirrors
grossAPY — the raw protocol rate with no Pods fee subtracted. For a strategy earning 10%
gross with a 5% performance fee and a 2% markup, apy changes from 0.095 to 0.10.If you display apy as a net figure you will now overstate returns. Read netAPY
instead. See Fees.
netAPY now deducts the integrator markup fee in addition to the performance fee:
grossAPY × (1 − (performanceFeeBps + markupFeeBps) / 10000). Previously only the performance
fee was subtracted, so customers on a markup agreement were shown a net APY higher than they
would actually earn.
grossAPY is now consistently the raw protocol rate on every endpoint. It was previously
understated on Aave and Morpho strategies.
apyAfterFees has been removed from position responses. It was undocumented, absent on
Aave and Morpho strategies, and duplicated netAPY.
Documentation
- Fees: new APY Fields section documenting which figures include Pods
fees and the
netAPY formula
- OpenAPI: gross/net semantics documented on every APY field
May 2026
API
GET /v2/swap/quote: optional preferredProvider query parameter to pin which swap provider’s quote is persisted when multiple providers support the route; response remains a single { quote } object (best expectedAmountOut when omitted)
Documentation
- Get a Quote:
preferredProvider, multi-route aggregation, and related error codes
- OpenAPI (
/v2/swap/quote): preferredProvider parameter and updated endpoint description
April 2026
Documentation
- Documented canonical chain fields (
chainIdIn, chainIdOut, chainId) across OpenAPI, swap quote guide, architecture overview, and Cursor route rules—aligned with enriched swap, strategy, and tracking responses
- Documented success-response contract (2xx JSON body, 204, no
success flag) in OpenAPI intro, Architecture, and Cursor rules
- Documented unified error envelope (removed redundant
httpStatus in body); aligned Error Codes examples and rate-limit payload to live behavior
- OpenAPI and Architecture: document ISO deadlines and strategy quote timestamps; aligned
scripts/generate-docs.js strategy quote response schema.
API
- Added
/transfer/bytecode to API Reference with canonical originAddress/destinationAddress and deprecated alias fields (walletOrigin, walletDestination)
- Standardized success responses: removed
{ success: true/false } envelopes; invalid API key on GET /customers/by-api-key is now 401; Supabase signup webhook returns 400/409/500 with HttpError shape; member delete returns 204; health and fulfill endpoints return JSON objects instead of bare strings
- Standardized error JSON to
{ error: { code, message, details? } } across responser, auth middlewares, 404/500 handlers, rate limits, and OpenAPI
- Standardized date/time fields in JSON responses to ISO 8601 (UTC):
GET /v2/swap/quote quote.deadlineDate; wallet history DTOs; top-level dates on GET /actions/:id.
March 2026
Documentation
- Added Why Pods page with competitive differentiation and build-vs-buy comparison
- Added Fees page documenting swap fees (25 BPS), yield performance fees (5%), and integrator markup
- Added Error Codes reference with 20+ error codes organized by category
- Added
llms.txt for AI agent discoverability
- Published OpenAPI spec at
docs.pods.finance/openapi.yaml
- Linked status page from Architecture and API Reference pages
- Fixed rate limit documentation: aligned to 100 req/min, 1,000 req/hr per API key across all pages
- Added
.env template and walletAddress setup to Quickstart
- Fixed strategy response shapes in docs to match live API (
data pagination, flat asset field, composite id)
- Aligned list-pagination docs across OpenAPI, Quickstart, yield guide, and examples:
pagination now documents total, totalPages, and hasMore (replacing mongoose-style totalRecords / hasNextPage on public responses)
- Updated all swap code examples to use
/v2/ endpoints
API
- Added cross-chain investment support
- Added Lido staking strategies (ETH and USD)
- Added covered savings xDAI strategy
- Added fee administration endpoints for integrators
- Fixed Lido addresses and ABIs
- Fixed withdraw history tracking
- Removed
request-lend action
February 2026
Documentation
- Added iframe integration guides (Privy, wagmi/viem)
- Added EarnWidget and SwapWidget documentation
- Added LLM playbook for AI tool integration
- Added external integration guides (Privy, Fireblocks, Dynamic)
January 2026
API
- Launched v2 swap endpoints (
/v2/swap/quote, /v2/swap/bytecode, /v2/swap/status/{id})
- Added strategy analytics endpoint
- Added wallet transaction history endpoint (
/wallets/{wallet}/history/{strategyId})
- Added Sepolia testnet support for Aave strategies
- Added Base network strategies
Documentation
- Migrated documentation to Mintlify
- Added yield guides (check protocol info, deposit, check positions, withdraw)
- Added swap guides (get quote, execute swap)
- Added JavaScript code examples (strategy deposit, same-chain swap, cross-chain swap)
Deprecation Notices