SushiSwap Pool API
Pool information and liquidity data endpoints
Documentation
Documentation
https://docs.sushi.com/api/examples/swap
Documentation
https://docs.sushi.com/api/examples/quote
Pool information and liquidity data endpoints
openapi: 3.0.0
info:
title: Blade Deposit Pool API
description: Documentation for interacting with the Blade API
version: 2.0.0
contact:
email: aggregators@shipyardsoftware.org
name: Blade API Support
servers:
- url: https://blade-api.sushi.com
description: Blade API Production Server
security:
- ApiKeyAuth: []
tags:
- name: Pool
description: Pool information and liquidity data endpoints
paths:
/rfq/v2/pool/{chainId}:
get:
tags:
- Pool
summary: Get pool information
description: This endpoint provides comprehensive information about all the pools on the selected chain, including details about its assets, the contract address of its liquidity pool, and other relevant data. This information is crucial for making off-chain calculations and predicting quotes.
operationId: getPoolInfo
parameters:
- name: chainId
in: path
description: ID of the blockchain network
required: true
schema:
type: integer
example: 137
- name: pool_address
in: query
description: The address of the pool. If not provided, all pools on the selected chain will be returned.
required: false
schema:
type: string
example: '0x655eDCE464CC797526600a462A8154650EEe4B77'
- name: time_in_seconds
in: query
description: 'The time duration for which a quote will be available. This value is used to calculate the fees; as you decrease the time, you will see lower fees. By default, the system sets a predefined value. Note: For on-chain data, this field is not considered.'
required: false
schema:
type: integer
example: 30
- name: fieldset
in: query
description: Determines whether the API should make calls to the blockchain to return on-chain data. If the parameter is not provided, it will default to handling on-chain data.
required: false
schema:
type: string
enum:
- offchain-data
example: offchain-data
responses:
'200':
description: Pool information retrieved successfully
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/OnChainPoolResponse'
- $ref: '#/components/schemas/OffChainPoolResponse'
examples:
offchain-data-polygon:
summary: Off-chain data for Polygon chain (chain_id=137)
description: Example response when requesting off-chain data using fieldset=offchain-data parameter
value:
pool_type: offchain
pools:
- pool:
chain_id: 1
address: '0x655eDCE464CC797526600a462A8154650EEe4B77'
num_assets: 4
k: 0.06
time_in_seconds: 60
default_time_in_seconds: 60
swaps_enabled: true
assets:
- name: ETH
address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
price_in_usd: 2076.799
listing_weight: 79
- name: USDC
address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
price_in_usd: 1
listing_weight: 188
- name: USDT
address: '0xdAC17F958D2ee523a2206206994597C13D831ec7'
price_in_usd: 1
listing_weight: 305
- name: DAI
address: '0x6B175474E89094C44Da98b954EedeAC495271d0F'
price_in_usd: 1
listing_weight: 250
pairs:
- assets:
- ETH
- USDC
fee_in_basis_points: 9
- assets:
- ETH
- USDT
fee_in_basis_points: 9
- assets:
- ETH
- DAI
fee_in_basis_points: 8
- assets:
- USDC
- USDT
fee_in_basis_points: 5
- assets:
- USDC
- DAI
fee_in_basis_points: 5
- assets:
- USDT
- DAI
fee_in_basis_points: 5
onchain-data-mainnet:
summary: On-chain data for Ethereum Mainnet (chain_id=1)
description: Example response when requesting on-chain data with a specific pool address
value:
pool_type: onchain
pools:
- pool:
chain_id: 1
address: '0x655eDCE464CC797526600a462A8154650EEe4B77'
num_assets: 4
pool_tokens: 1.3792871898369242e24
value_in_usd: 1978682.496424432
swaps_enabled: true
assets:
- name: USDC
address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
balance: '417751254142'
price_in_usd: 1
value_in_usd: 417751.254142
target_value_in_usd: 416727.89356391726
- name: USDT
address: '0xdAC17F958D2ee523a2206206994597C13D831ec7'
balance: '259059412007'
price_in_usd: 1
value_in_usd: 259059.412007
target_value_in_usd: 256868.3409508736
- name: DAI
address: '0x6B175474E89094C44Da98b954EedeAC495271d0F'
balance: '309714519494182375269440'
price_in_usd: 1
value_in_usd: 309714.5194941824
target_value_in_usd: 313379.3759600658
- name: ETH
address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
balance: '476877882758190421102'
price_in_usd: 2080.527
value_in_usd: 992157.3107812497
target_value_in_usd: 991706.8859495752
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ExternalServiceError'
components:
schemas:
OffChainAsset:
type: object
properties:
name:
type: string
description: The name of the asset, this value should be used when making a quote
address:
type: string
description: The contract address of the asset
price_in_usd:
type: number
format: float
description: Current price in dollars for the asset
listing_weight:
type: integer
description: asset weight within the pool
required:
- name
- address
- price_in_usd
- listing_weight
OffChainPoolData:
type: object
properties:
pool:
$ref: '#/components/schemas/OffChainPool'
assets:
type: array
items:
$ref: '#/components/schemas/OffChainAsset'
pairs:
type: array
items:
$ref: '#/components/schemas/Pair'
required:
- pool
- assets
- pairs
OffChainPool:
type: object
properties:
chain_id:
type: integer
description: ID of the chain
address:
type: string
description: Blade contract address of the pool, is the address used when executing a transaction
num_assets:
type: integer
description: The total of assets available in the chain
k:
type: number
format: float
description: K factor
time_in_seconds:
type: integer
description: Number of seconds were used to calculate the fees of a swap, this number indicates the number of seconds that quotes are live
default_time_in_seconds:
type: integer
description: Default number of seconds that quotes are live, is value used to calculate fees when don't send the query param time_in_seconds
swaps_enabled:
type: boolean
description: Represents if the swaps are available for the chain
required:
- chain_id
- address
- num_assets
- k
- time_in_seconds
- default_time_in_seconds
- swaps_enabled
OffChainPoolResponse:
type: object
properties:
pool_type:
type: string
enum:
- offchain
description: Indicates this is off-chain pool data
pools:
type: array
items:
$ref: '#/components/schemas/OffChainPoolData'
required:
- pool_type
- pools
OnChainAsset:
type: object
properties:
name:
type: string
description: The name of the asset, this value should be used when making a quote
address:
type: string
description: The contract address of the asset
balance:
type: string
description: The balance of the asset in the pool
price_in_usd:
type: number
format: float
description: Current price in dollars for the asset
value_in_usd:
type: number
format: float
description: Value of the pool in USD
target_value_in_usd:
type: number
format: float
description: USD target value for this asset in the pool
required:
- name
- address
- balance
- price_in_usd
- value_in_usd
- target_value_in_usd
ErrorResponse:
type: object
properties:
errorMessage:
type: string
description: Description of the error
errorType:
type: string
description: Type of the error
errorCode:
type: integer
description: Error code (returned only when we have a blade code for the error)
data:
type: array
items:
type: object
description: Additional error data (returned only when the input data is invalid)
required:
- errorMessage
- errorType
Pair:
type: object
properties:
assets:
type: array
items:
type: string
description: 'Pair of assets available to make a swap - e.g: ["ETH", "MATIC"]'
fee_in_basis_points:
type: number
format: float
description: Fee for make a swap between the pair
required:
- assets
- fee_in_basis_points
OnChainPoolData:
type: object
properties:
pool:
$ref: '#/components/schemas/OnChainPool'
assets:
type: array
items:
$ref: '#/components/schemas/OnChainAsset'
required:
- pool
- assets
OnChainPoolResponse:
type: object
properties:
pool_type:
type: string
enum:
- onchain
description: Indicates this is on-chain pool data
pools:
type: array
items:
$ref: '#/components/schemas/OnChainPoolData'
required:
- pool_type
- pools
OnChainPool:
type: object
properties:
chain_id:
type: integer
description: ID of the chain
address:
type: string
description: Blade contract address of the pool, is the address used when executing a transaction
num_assets:
type: integer
description: The total of assets available in the chain
pool_tokens:
type: number
description: The total number of pool tokens
value_in_usd:
type: number
format: float
description: Value of the pool in USD
swaps_enabled:
type: boolean
description: Represents if the swaps are available for the chain
required:
- chain_id
- address
- num_assets
- pool_tokens
- value_in_usd
- swaps_enabled
responses:
ExternalServiceError:
description: External Service Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
InternalServerError:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized - Missing or invalid API key. Ensure you include a valid `x-api-key` header.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
errorMessage: 'Auth: Access is forbidden'
errorType: Forbidden
BadRequest:
description: Bad Request - Invalid data in the request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Forbidden:
description: Forbidden Error - Access denied
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: API key required for all endpoints. In order to prevent abuse on the API we implement rate limits on the requests, to overcome these limits as an aggregator get in contact with the [support team](mailto:aggregators@shipyardsoftware.org) to get API credentials.