Skip to content

Fallback order and breaker state per chain

GET
/meta/providers
curl --request GET \
--url https://api.getchord.xyz/v1/meta/providers

Which aggregators stand behind Chord’s router on each chain, in the order they are tried, and whether each one’s circuit breaker is closed. first is always chord.

Per chain.

Media typeapplication/json
object
policy
string
chains
Array<object>
object
chain
integer
key
string
first

Always chord.

string
fallbacks
Array<object>
object
provider
string
breaker

closed, open (skipped for up to 60 s after 5 infrastructure failures in 2 minutes) or half-open (the next request probes it).

string
Example
{
"policy": "Chord's router answers first; a fallback is used only when Chord fails, never for a better price.",
"chains": [
{
"chain": 143,
"key": "monad",
"first": "chord",
"fallbacks": [
{
"provider": "kyberswap",
"breaker": "closed"
},
{
"provider": "monorail",
"breaker": "closed"
},
{
"provider": "relay",
"breaker": "closed"
}
]
},
{
"chain": 4663,
"key": "robinhood",
"first": "chord",
"fallbacks": [
{
"provider": "kyberswap",
"breaker": "closed"
},
{
"provider": "lifi",
"breaker": "closed"
},
{
"provider": "relay",
"breaker": "closed"
}
]
},
{
"chain": 5042,
"key": "arc",
"first": "chord",
"fallbacks": [
{
"provider": "kyberswap",
"breaker": "closed"
},
{
"provider": "lifi",
"breaker": "closed"
},
{
"provider": "relay",
"breaker": "closed"
}
]
},
{
"chain": 43114,
"key": "avalanche",
"first": "chord",
"fallbacks": [
{
"provider": "kyberswap",
"breaker": "closed"
},
{
"provider": "lifi",
"breaker": "closed"
},
{
"provider": "relay",
"breaker": "closed"
}
]
},
{
"chain": 8453,
"key": "base",
"first": "chord",
"fallbacks": [
{
"provider": "kyberswap",
"breaker": "closed"
},
{
"provider": "lifi",
"breaker": "closed"
},
{
"provider": "relay",
"breaker": "closed"
}
]
},
{
"chain": 56,
"key": "bnb",
"first": "chord",
"fallbacks": [
{
"provider": "kyberswap",
"breaker": "closed"
},
{
"provider": "lifi",
"breaker": "closed"
},
{
"provider": "relay",
"breaker": "closed"
}
]
}
]
}

Over the per-minute limit (RATE_LIMIT_EXCEEDED). Read X-RateLimit-Reset and back off.

Media typeapplication/json

Every non-2xx body.

object
error
required

Stable machine code, e.g. INVALID_PARAMS, NOT_READY, RATE_LIMIT_EXCEEDED.

string
message

For humans.

string
statusCode

HTTP status, when included.

integer
Example
{
"error": "INVALID_PARAMS",
"message": "amount must be an integer string in the token's smallest unit"
}

The lane behind this endpoint is not ready or not enabled here (NOT_READY, CHAIN_NOT_ENABLED, NOT_ENABLED, *_UNAVAILABLE). Retry later; do not treat it as an empty answer.

Media typeapplication/json

Every non-2xx body.

object
error
required

Stable machine code, e.g. INVALID_PARAMS, NOT_READY, RATE_LIMIT_EXCEEDED.

string
message

For humans.

string
statusCode

HTTP status, when included.

integer
Example
{
"error": "INVALID_PARAMS",
"message": "amount must be an integer string in the token's smallest unit"
}