Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/fordefi-swaps-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
OpenAPI Specification
openapi: 3.2.0
info:
title: Fordefi Address Book Swaps API
version: 0.2.0
description: These endpoints allow you to list the contacts in your address book.<br><br>To add/remove contacts, visit the Fordefi web console. See the <a href='https://docs.fordefi.com/user-guide/address-book'>user guide</a> for more info.
servers:
- url: https://api.fordefi.com/
description: Production
security:
- bearerAuth: []
tags:
- name: Swaps
description: These endpoints allow you to manage swaps.
paths:
/api/v1/swaps/providers/{chain_type}:
get:
tags:
- Swaps
summary: Get Providers
description: Get providers for a chain type.
operationId: get_providers_api_v1_swaps_providers__chain_type__get
parameters:
- name: chain_type
in: path
required: true
schema:
$ref: '#/components/schemas/ChainType'
description: Chain type to get providers for.
description: Chain type to get providers for.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GetProvidersResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/swaps/quotes:
post:
tags:
- Swaps
summary: Get Quotes
description: Get available quotes for a swap between two assets.
operationId: get_quotes_api_v1_swaps_quotes_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetQuotesRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GetQuotesResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/swaps:
post:
tags:
- Swaps
summary: Create Transaction
description: Create a new spot swap.
operationId: create_transaction_api_v1_swaps_post
parameters:
- name: x-signature
in: header
required: false
schema:
description: Signature of the body. Base64 encoded string. If the request is made programatically by an API user, signing of the request is required and is intended to protect you from malicious backends. `x_signature` is valid for 120 seconds.
title: X-Signature
type: string
example: SGVsbG8=
description: Signature of the body. Base64 encoded string. If the request is made programatically by an API user, signing of the request is required and is intended to protect you from malicious backends. `x_signature` is valid for 120 seconds.
- name: x-timestamp
in: header
required: false
schema:
description: Timestamp of the signature. Integer. Specify an Epoch date. If the request is made programatically by an API user, the timestamp of the request is required and is intended to protect you from replay attacks.
title: X-Timestamp
type: integer
description: Timestamp of the signature. Integer. Specify an Epoch date. If the request is made programatically by an API user, the timestamp of the request is required and is intended to protect you from replay attacks.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSpotSwapRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SpotSwap'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/DefinedPreconditionError_CreateSwapErrorType_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/swaps/predict:
post:
tags:
- Swaps
summary: Predict Transaction
description: 'Simulate the spot swap and changes in token
balances, in addition to the fee estimation.'
operationId: predict_transaction_api_v1_swaps_predict_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PredictSpotSwapRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PredictedSpotSwap'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/DefinedPreconditionError_PredictSwapErrorType_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
components:
schemas:
CantonChainUniqueId:
type: string
enum:
- canton_mainnet
title: CantonChainUniqueId
UtxoAddress:
properties:
type:
type: string
const: utxo
title: Type
address:
type: string
maxLength: 74
minLength: 14
title: Address
description: The UTXO string address.
example: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
address_type:
$ref: '#/components/schemas/UtxoAddressType'
description: The type of the address.
chain:
$ref: '#/components/schemas/UtxoChain'
description: The UTXO chain unique ID.
type: object
required:
- type
- address
- address_type
- chain
title: UtxoAddress
TonRawTransactionDetails:
properties:
type:
type: string
const: raw_transaction
title: Type
description: A transaction with a contract call.
recipients:
items:
$ref: '#/components/schemas/EnrichedTonAddress'
type: array
title: Recipients
description: The called contract.
type: object
required:
- type
- recipients
title: TonRawTransactionDetails
HyperliquidUnknownAction:
properties:
action_type:
type: string
const: unknown_action
title: Action Type
description: The Hyperliquid action type.
type: object
required:
- action_type
title: HyperliquidUnknownAction
UtxoAddressType:
type: string
enum:
- legacy
- p2sh
- segwit
- taproot
- merkleroot
title: UtxoAddressType
SolanaTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: 'Managed transaction data. Presented if the transaction was initiated from the Fordefi system itself, in contrast to unmanaged transactions (which are, for example, transfers of funds into a vault visible to Fordefi). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`automatically_set` if the transaction was automatically set as spam by Fordefi, `manually_set` if the transaction was manually set as spam by a user, and `unset` if the transaction was not set as spam.'
default: unset
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: solana_transaction
title: Type
description: The type of the transaction.
solana_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/SolanaNativeTransferDetails'
- $ref: '#/components/schemas/SolanaTokenTransferDetails'
- $ref: '#/components/schemas/SolanaRawTransactionDetails'
description: Details of the Solana transaction based on its type.
discriminator:
propertyName: type
mapping:
native_transfer: '#/components/schemas/SolanaNativeTransferDetails'
raw_transaction: '#/components/schemas/SolanaRawTransactionDetails'
token_transfer: '#/components/schemas/SolanaTokenTransferDetails'
chain:
$ref: '#/components/schemas/EnrichedSolanaChain'
description: The details of the chain this transaction is on.
version:
$ref: '#/components/schemas/SolanaMessageVersion'
description: The version of the transaction message.
instructions:
items:
$ref: '#/components/schemas/SolanaCompiledInstruction'
type: array
title: Instructions
description: The instructions of the transaction.
accounts:
items:
$ref: '#/components/schemas/SolanaTransactionAccount'
type: array
title: Accounts
description: Accounts used in the transaction.
address_table_lookups:
items:
$ref: '#/components/schemas/SolanaEnrichedMessageAddressTableLookup'
type: array
title: Address Table Lookups
description: Lookup tables of accounts used in the transaction.
sender:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The sender of the transaction.
raw_transaction:
title: Raw Transaction
description: The serialized transaction encoded as a base64 string
type: string
example: SGVsbG8=
hash:
title: Hash
description: The first signature of the transaction.
type: string
maxLength: 88
minLength: 64
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
example: FAWA66fudpiwdRDDQ4DRxdJsRvawvauwg4vQkm98ZHFpXmW5N7xzRiTRpt8QiZ19s1aVbzKgXW6kEZanwHeDFNS
recent_blockhash:
title: Recent Blockhash
description: The transaction nonce (last block hash).
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
example: 4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZAMdL4VZHirAn
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/SolanaTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/SolanaTransactionResult'
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer. For example, Solscan.
example: https://solscan.io/tx/FAWA66f...6kEZanwHeDFNS
type: string
maxLength: 2083
minLength: 1
format: uri
was_fee_set_in_request:
type: boolean
title: Was Fee Set In Request
description: Whether the priority fee was already set in the request with a ComputeBudget instruction.
fee_payer:
description: The address that pays the fee for this transaction (first account in the transaction).
$ref: '#/components/schemas/EnrichedSolanaAddress'
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- solana_transaction_type_details
- chain
- version
- instructions
- accounts
- address_table_lookups
- sender
- was_fee_set_in_request
title: SolanaTransaction
CantonTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/CantonReversion'
description: Details whether the transaction was reverted or not.
effects:
$ref: '#/components/schemas/CantonEffects'
description: The effects of the transaction.
type: object
required:
- reversion
- effects
title: CantonTransactionResult
DirectMessage:
properties:
type:
type: string
title: Type
description: Message type.
value:
type: string
title: Value
description: Message bytes, encoded in base64 format.
example: SGVsbG8=
type: object
required:
- type
- value
title: DirectMessage
ScriptPayload:
properties:
typed_arguments:
items:
type: string
type: array
title: Typed Arguments
description: The typed arguments of the transaction.
arguments:
items:
type: string
type: array
title: Arguments
description: The arguments of the transaction.
type:
type: string
const: script
title: Type
code:
type: string
title: Code
description: The script code of the transaction.
example: SGVsbG8=
type: object
required:
- typed_arguments
- arguments
- type
- code
title: ScriptPayload
EvmContractMetadata:
properties:
name:
title: Name
description: The name of the contract.
type: string
dapp:
description: The DApp details of the contract.
$ref: '#/components/schemas/Dapp'
is_verified:
type: boolean
title: Is Verified
description: '`True` if the contract is verified, `False` otherwise.'
token:
description: The token details of the contract.
oneOf:
- $ref: '#/components/schemas/Erc20'
- $ref: '#/components/schemas/Erc721'
- $ref: '#/components/schemas/Erc1155'
discriminator:
propertyName: type
mapping:
erc1155: '#/components/schemas/Erc1155'
erc20: '#/components/schemas/Erc20'
erc721: '#/components/schemas/Erc721'
type: object
required:
- is_verified
title: EvmContractMetadata
BlackBoxSignature:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
$ref: '#/components/schemas/ManagedTransactionData'
description: 'Managed transaction data. Presented if the transaction was initiated from the Fordefi system itself, in contrast to unmanaged transactions (which are, for example, transfers of funds into a vault visible to Fordefi). '
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`automatically_set` if the transaction was automatically set as spam by Fordefi, `manually_set` if the transaction was manually set as spam by a user, and `unset` if the transaction was not set as spam.'
default: unset
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: black_box_signature
title: Type
description: Black Box signature type.
vault:
$ref: '#/components/schemas/VaultRef'
description: The vault whose key has been used for signing.
details:
oneOf:
- $ref: '#/components/schemas/BlackBoxSignatureEcdsaStarkDetails'
- $ref: '#/components/schemas/BlackBoxSignatureEcdsaSecp256k1Details'
- $ref: '#/components/schemas/BlackBoxSignatureEddsaEd25519Details'
- $ref: '#/components/schemas/BlackBoxSignatureSchnorrSecp256k1Details'
discriminator:
propertyName: type
mapping:
ecdsa_secp256k1: '#/components/schemas/BlackBoxSignatureEcdsaSecp256k1Details'
ecdsa_stark: '#/components/schemas/BlackBoxSignatureEcdsaStarkDetails'
eddsa_ed25519: '#/components/schemas/BlackBoxSignatureEddsaEd25519Details'
schnorr_secp256k1: '#/components/schemas/BlackBoxSignatureSchnorrSecp256k1Details'
type: object
required:
- id
- created_at
- modified_at
- managed_transaction_data
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- vault
- details
title: BlackBoxSignature
RejectedTransactionSummary:
properties:
safe_hash:
type: string
title: Safe Hash
description: The Safe transaction hash being rejected.
to:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The target address of the rejected transaction.
value:
type: string
pattern: ^-?\d+$
title: Value
description: The value of the rejected transaction.
example: '1000000000000000000'
method:
title: Method
description: The method of the rejected transaction.
type: string
confirmations:
type: integer
title: Confirmations
description: Current number of confirmations.
confirmations_required:
type: integer
title: Confirmations Required
description: Required number of confirmations.
type: object
required:
- safe_hash
- to
- value
- confirmations
- confirmations_required
title: RejectedTransactionSummary
ApiError:
properties:
api_error_enum:
$ref: '#/components/schemas/ApiErrorEnum'
description: The API error enum.
description:
type: string
title: Description
description: The API error description.
type: object
required:
- api_error_enum
- description
title: ApiError
UtxoNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Utxo asset identifier type.
chain:
$ref: '#/components/schemas/UtxoChainUniqueId'
description: The unique id of the chain of the asset.
type: object
required:
- type
- chain
title: UtxoNativeAssetIdentifierRequest
TonAddressRequest:
properties:
chain:
$ref: '#/components/schemas/TonChainUniqueId'
description: The chain details this address is of.
address:
type: string
maxLength: 67
pattern: ^[-0-9]+:[A-Fa-f0-9]{64}$
title: Address
description: Contract address in a raw format.
type: object
required:
- chain
- address
title: TonAddressRequest
description: Address represents a blockchain address.
SuiChainUniqueId:
type: string
enum:
- sui_mainnet
- sui_testnet
title: SuiChainUniqueId
StacksPostConditions:
properties:
post_condition_mode:
$ref: '#/components/schemas/StacksPostConditionMode'
description: The post condition mode of the transaction.
post_conditions:
items:
$ref: '#/components/schemas/StacksPostCondition'
type: array
title: Post Conditions
description: The post conditions of the transaction.
type: object
required:
- post_condition_mode
- post_conditions
title: StacksPostConditions
TronAssetIdentifier:
properties:
type:
type: string
const: tron
title: Type
description: TRON asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/TronNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/TronTrc20AssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/TronNativeAssetIdentifierRequest'
trc20: '#/components/schemas/TronTrc20AssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedTronChain'
type: object
required:
- type
- details
- chain
title: TronAssetIdentifier
TransferDirection:
type: string
enum:
- outgoing
- incoming
- internal
title: TransferDirection
ArchBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedArchAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: ArchBalanceChangeEffect
SuiTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/SuiReversion'
description: Details whether the transaction was reverted or not.
transaction_error:
title: Transaction Error
description: The description of the error of the transaction.
type: string
enriched_gas:
$ref: '#/components/schemas/SuiGas'
description: The gas of the transaction.
effects:
$ref: '#/components/schemas/SuiEffects'
description: The effects of the transaction.
type: object
required:
- reversion
- enriched_gas
- effects
title: SuiTransactionResult
PersonRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: person
title: User Type
description: The type of user. Can be a person, or (in programmatic scenarios) an API user or API Signer.
name:
title: Name
description: The name of the user.
example: John Doe
type: string
email:
type: string
title: Email
description: The email of the user.
state:
$ref: '#/components/schemas/UserState'
description: The state of the user in the organization.
role:
$ref: '#/components/schemas/UserRole'
description: The role of the user.
type: object
required:
- id
- user_type
- email
- state
- role
title: PersonRef
TronAddressRequest:
properties:
chain:
$ref: '#/components/schemas/TronChainUniqueId'
description: The chain details this address is of.
base58_repr:
type: string
maxLength: 34
minLength: 34
pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
title: Base58 Repr
description: Base58 representation of the address in the chain.
example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
type: object
required:
-
# --- truncated at 32 KB (635 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fordefi/refs/heads/main/openapi/fordefi-swaps-api-openapi.yml