Skip to main content
POST
Execute a borrow action
Returns 201 with an action whose transactions[] you sign and submit in the order returned, using Submit a transaction, then poll Get an action. Nothing executes until a signed transaction is submitted. metadata previews the health factor and LTV after the action. args is one flat object shared by every action. Required arguments per action and integration, the amount and amountRaw rules, repayAll, and the validation errors are in Action arguments. Which integration supports which action is in Availability by integration. The Borrow API applies no geolocation block on this route. Only borrow and repay accept a collateral amount, which adds a collateral leg to the same action; see Collateral bundling. On pool markets it also needs collateralTokenAddress:
Borrow with collateral on a pool market
Close a debt
Errors return statusCode, timestamp, path and message. Common causes of 400: an unknown or unsupported integrationId, an action the integration does not support, an argument that fails the rules above, and Lista minLoan violations. An unknown marketId returns 404. See Errors and retries.

Authorizations

x-api-key
string
header
required

Body

application/json
integrationId
string
required

Integration identifier

Example:

"aave-borrow"

action
enum<string>
required

Action to execute

Available options:
supply,
borrow,
repay,
withdraw,
enableCollateral,
disableCollateral,
supplyAndBorrow
Example:

"supply"

address
string
required

User wallet address

Example:

"0x742d35Cc6634C0532925a3b844Bc9e7595f8fB28"

args
object
required

Action arguments

Response

Action created with unsigned transactions ready for signing

id
string
required

Unique action identifier (UUID)

Example:

"550e8400-e29b-41d4-a716-446655440000"

integrationId
string
required

Integration identifier

Example:

"aave-borrow"

action
enum<string>
required

Action type executed

Available options:
supply,
borrow,
repay,
withdraw,
enableCollateral,
disableCollateral,
supplyAndBorrow
Example:

"supply"

address
string
required

User wallet address

Example:

"0x742d35Cc6634C0532925a3b844Bc9e7595f8fB28"

status
enum<string>
required

Current action status

Available options:
CANCELED,
CREATED,
WAITING_FOR_NEXT,
PROCESSING,
FAILED,
SUCCESS,
STALE
Example:

"CREATED"

transactions
object[]
required

Transactions to sign (current step only)

hasNextStep
boolean
required

Whether there are more transactions to sign after the current step completes. When true, call POST /actions/:id/step after confirming to get the next transaction(s). Used for async multi-step flows such as cross-chain bridges or delayed withdrawals.

Example:

false

currentStep
number
required

Current step number (1-indexed)

Example:

1

totalSteps
number
required

Total number of steps in this action. Most actions are single-step. Multi-step actions occur when an async operation (e.g., bridge confirmation) must complete before the next transaction can be constructed.

Example:

1

createdAt
string<date-time>
required

When the action was created

rawArguments
object

Raw arguments as submitted

metadata
object

Action metadata with predicted position impact (health factor, LTV, USD totals)