get_aggregate_trades
Retrieve aggregated trade data for specific cryptocurrency pairs on Binance. Fetch trade history using symbols, time ranges, or trade IDs for detailed market analysis and insights.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| endTime | No | End timestamp (milliseconds) | |
| fromId | No | Aggregate trade ID to start from | |
| limit | No | Number of trades to return, default 500, max 1000 | |
| startTime | No | Start timestamp (milliseconds) | |
| symbol | Yes | Trading pair symbol, e.g. BTCUSDT |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"endTime": {
"description": "End timestamp (milliseconds)",
"type": "number"
},
"fromId": {
"description": "Aggregate trade ID to start from",
"type": "number"
},
"limit": {
"description": "Number of trades to return, default 500, max 1000",
"type": "number"
},
"startTime": {
"description": "Start timestamp (milliseconds)",
"type": "number"
},
"symbol": {
"description": "Trading pair symbol, e.g. BTCUSDT",
"type": "string"
}
},
"required": [
"symbol"
],
"type": "object"
}
Implementation Reference
- src/index.ts:112-133 (handler)Handler function that fetches aggregate trades data from Binance API (/api/v3/aggTrades), handles parameters like symbol, fromId, timestamps, limit, uses proxy if available, returns JSON response or error message.async (args: { symbol: string; fromId?: number; startTime?: number; endTime?: number; limit?: number }) => { try { const response = await axios.get(`${BASE_URL}/api/v3/aggTrades`, { params: { symbol: args.symbol, fromId: args.fromId, startTime: args.startTime, endTime: args.endTime, limit: args.limit }, proxy: getProxy(), }); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] }; } catch (error: any) { return { content: [{ type: "text", text: `Failed to get aggregate trades: ${error.message}` }], isError: true }; } }
- src/index.ts:105-111 (schema)Zod schema defining input parameters for the get_aggregate_trades tool.{ symbol: z.string().describe("Trading pair symbol, e.g. BTCUSDT"), fromId: z.number().optional().describe("Aggregate trade ID to start from"), startTime: z.number().optional().describe("Start timestamp (milliseconds)"), endTime: z.number().optional().describe("End timestamp (milliseconds)"), limit: z.number().optional().describe("Number of trades to return, default 500, max 1000") },
- src/index.ts:103-134 (registration)Registration of the get_aggregate_trades tool using server.tool() with schema and inline handler.server.tool( "get_aggregate_trades", { symbol: z.string().describe("Trading pair symbol, e.g. BTCUSDT"), fromId: z.number().optional().describe("Aggregate trade ID to start from"), startTime: z.number().optional().describe("Start timestamp (milliseconds)"), endTime: z.number().optional().describe("End timestamp (milliseconds)"), limit: z.number().optional().describe("Number of trades to return, default 500, max 1000") }, async (args: { symbol: string; fromId?: number; startTime?: number; endTime?: number; limit?: number }) => { try { const response = await axios.get(`${BASE_URL}/api/v3/aggTrades`, { params: { symbol: args.symbol, fromId: args.fromId, startTime: args.startTime, endTime: args.endTime, limit: args.limit }, proxy: getProxy(), }); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] }; } catch (error: any) { return { content: [{ type: "text", text: `Failed to get aggregate trades: ${error.message}` }], isError: true }; } } );