API Reference
Quote API
Get execution quotes and profitability data for DCA orders
Quote API
The Quote API provides comprehensive execution data for DCA orders, enabling fillers to calculate profitability and execute orders on-chain with real-time Chainlink price data.
Endpoint
GET https://api.dca.fun/quote?orderId={orderId}&chainId={chainId}This endpoint calculates execution parameters for filling a DCA order, essential for:
- Gas cost estimation and profitability analysis
- Determining optimal scaling factors for dynamic slippage
- Validating executability with current prices
- Calculating exact input/output amounts before execution
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
orderId | integer | Yes | Unique identifier of the DCA order |
chainId | integer | Yes | Blockchain network ID (e.g., 1 for Ethereum, 137 for Polygon) |
Response Format
{
"encodedData": "0x000000000000000000000000000000000000000000000000000000000000007b...",
"fillableAmount": "100000000",
"amountOfTokenOut": "33333333333333333",
"scalingFactor": "1000",
"tokenInPrice": "1000000000000000000",
"tokenOutPrice": "3000000000000000000000"
}CALL_EXCEPTION: OrderNotFillableResponse Fields
| Field | Type | Description |
|---|---|---|
encodedData | string | Hex-encoded orderId and Chainlink oracle reports for execution |
fillableAmount | string | Amount of tokenIn that can be filled (in smallest unit) |
amountOfTokenOut | string | Calculated output amount (in smallest unit) |
scalingFactor | string | Scaling factor applied (1e18 = 100%) |
tokenInPrice | string | Current tokenIn price from Chainlink |
tokenOutPrice | string | Current tokenOut price from Chainlink |
Error Responses
| Status | Error Message | Description |
|---|---|---|
| 400 | Missing/invalid parameters | orderId or chainId missing or non-integer |
| 400 | Unconfigured chain | Chain ID not supported |
| 500 | Contract exception | Order doesn't exist or is inactive |
| 502 | Oracle error | Missing Chainlink price feeds |
How It Works
- Validates parameters and chain support
- Queries smart contract for order token details and feed IDs
- Fetches real-time Chainlink price reports in parallel
- Calculates fillable amounts and scaling via contract quote function
- Returns comprehensive execution data
Code Examples
// Get execution parameters
const response = await fetch(
'https://api.dca.fun/quote?orderId=123&chainId=8453'
);
const quote = await response.json();
console.log('Fillable amount:', quote.fillableAmount);
console.log('Output amount:', quote.amountOfTokenOut);
console.log('Scaling factor:', quote.scalingFactor);
// Execute on-chain using encoded data
const tx = await dcaContract.fillOrder(
quote.encodedData,
recipientAddress
);
await tx.wait();import requests
# Get execution parameters
response = requests.get(
'https://api.dca.fun/quote',
params={'orderId': 123, 'chainId': 8453}
)
quote = response.json()
print(f"Fillable amount: {quote['fillableAmount']}")
print(f"Output amount: {quote['amountOfTokenOut']}")
print(f"Scaling factor: {quote['scalingFactor']}")
# Execute on-chain (using web3.py)
tx = dca_contract.functions.fillOrder(
quote['encodedData'],
recipient_address
).transact()# Get execution parameters
curl "https://api.dca.fun/quote?orderId=123&chainId=8453"Understanding Prices
Token prices from Chainlink Data Streams are represtned as 18 decimals
- Always verify feed specifications for accurate calculations
Related Endpoints
- Active Orders API - Query fillable orders
- Smart Contract API - On-chain execution
- Complete API Reference - Full documentation