The CCIP API provides information about supported chains and tokens in the Cross-Chain Interoperability Protocol (CCIP). This API allows you to query chain details, token information, supported fee tokens, and contract addresses needed for cross-chain operations.
We provide a complete Postman Collection that you can import to quickly test all API endpoints. The collection includes:
To import the collection into Postman:
Before making requests:
baseUrl
with:
https://docs.chain.link
http://localhost:4321
(for local testing) or https://docs.chain.link
(for production)Now you can start making requests to test the API endpoints!
# Chains API
# Get all mainnet chains
curl "https://docs.chain.link/api/ccip/v1/chains?environment=mainnet"
# Get Ethereum mainnet
curl "https://docs.chain.link/api/ccip/v1/chains?environment=mainnet&chainId=1"
# Get multiple chains by chainId
curl "https://docs.chain.link/api/ccip/v1/chains?environment=mainnet&chainId=1,56"
# Get multiple chains by internalId
curl "https://docs.chain.link/api/ccip/v1/chains?environment=mainnet&internalId=ethereum-mainnet,bsc-mainnet"
# Tokens API
# Get all mainnet tokens
curl "https://docs.chain.link/api/ccip/v1/tokens?environment=mainnet"
# Get tokens by symbol
curl "https://docs.chain.link/api/ccip/v1/tokens?environment=mainnet&symbol=LINK"
# Get tokens available on a specific chain
curl "https://docs.chain.link/api/ccip/v1/tokens?environment=mainnet&chainId=1"
Query CCIP chain information.
Query Parameters:
environment
(required): Network environment
mainnet
, testnet
chainId
(optional): Filter by chain ID
1
(Ethereum)1,56
(Ethereum and BSC)selector
(optional): Filter by CCIP chain selector
5009297550715157269
5009297550715157269,13264668187771770619
internalId
(optional): Filter by internal chain identifier
ethereum-mainnet
ethereum-mainnet,bsc-mainnet
outputKey
(optional): Key to use for response organization
chainId
, selector
, internalId
chainId
Response Format:
interface ChainApiResponse {
metadata: {
environment: string
timestamp: string
requestId: string
ignoredChainCount: number
validChainCount: number
}
data: {
evm: Record<string, ChainDetails>
}
ignored: ChainConfigError[]
}
interface ChainDetails {
chainId: number
displayName: string
selector: string
internalId: string
feeTokens: string[]
router: string
rmn: string
registryModule: string
tokenAdminRegistry: string
}
Query CCIP token information.
Query Parameters:
environment
(required): Network environment
mainnet
, testnet
symbol
(optional): Filter by token symbol
LINK
(Chainlink)LINK,ETH
(Chainlink and Ethereum)chainId
(optional): Filter by chain ID where the token is available
1
(Ethereum)1,56
(Ethereum and BSC)outputKey
(optional): Key to use for response organization
chainId
, selector
, internalId
chainId
Response Format:
interface TokenApiResponse {
metadata: {
environment: string
timestamp: string
requestId: string
ignoredTokenCount: number
validTokenCount: number
}
data: Record<string, TokenDetails>
ignored: TokenConfigError[]
}
interface TokenDetails {
symbol: string
lanes: Record<string, string[]> // Source chain -> destination chains
chains: TokenChainInfo[]
}
interface TokenChainInfo {
chainId: number
chainName: string
tokenAddress: string
decimals: number
poolType: string
poolAddress: string
}
The API uses standard HTTP status codes:
200
: Success400
: Invalid request (e.g., invalid parameters)500
: Server errorError responses follow this format:
interface ErrorResponse {
error: string
message: string
}