@tpmjs/tools-csv-parse
Parse CSV text into an array of objects. Automatically detects headers and infers data types. Returns parsed rows, headers, and metadata. Useful for processing CSV data from files or API responses.
Test @tpmjs/tools-csv-parse (csvParseTool) with AI-powered execution
0/2000 characters
Install this tool and use it with the AI SDK
npm install @tpmjs/tools-csv-parsepnpm add @tpmjs/tools-csv-parseyarn add @tpmjs/tools-csv-parsebun add @tpmjs/tools-csv-parsedeno add npm:@tpmjs/tools-csv-parseimport { csvParseTool } from '@tpmjs/tools-csv-parse';import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { csvParseTool } from '@tpmjs/tools-csv-parse';
const result = await generateText({
model: openai('gpt-4o'),
tools: { csvParseTool },
prompt: 'Your prompt here...',
});
console.log(result.text);Available configuration options
csvstringThe CSV text to parse
hasHeadersbooleanWhether the first row contains headers (default: true)
Schema extracted: 1/1/2026, 8:18:08 AM
Parse CSV text into array of objects using papaparse.
npm install @tpmjs/tools-csv-parse # or pnpm add @tpmjs/tools-csv-parse # or yarn add @tpmjs/tools-csv-parse
import { csvParseTool } from '@tpmjs/tools-csv-parse'; import { generateText } from 'ai'; const result = await generateText({ model: yourModel, tools: { csvParse: csvParseTool, }, prompt: 'Parse this CSV data and tell me the average age: name,age\nAlice,25\nBob,30\nCharlie,35', });
import { csvParseTool } from '@tpmjs/tools-csv-parse'; const result = await csvParseTool.execute({ csv: `name,age,city Alice,25,New York Bob,30,San Francisco Charlie,35,Boston`, hasHeaders: true, }); console.log(result); // { // rows: [ // { name: 'Alice', age: 25, city: 'New York' }, // { name: 'Bob', age: 30, city: 'San Francisco' }, // { name: 'Charlie', age: 35, city: 'Boston' } // ], // headers: ['name', 'age', 'city'], // rowCount: 3, // metadata: { // parsedAt: '2025-01-15T12:00:00.000Z', // hasErrors: false, // errorCount: 0 // } // }
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
csv | string | Yes | - | The CSV text to parse |
hasHeaders | boolean | No | true | Whether the first row contains headers |
{ rows: Record<string, string | number | boolean | null>[]; headers: string[]; rowCount: number; metadata: { parsedAt: string; hasErrors: boolean; errorCount: number; errors?: Array<{ row: number; message: string; }>; }; }
const result = await csvParseTool.execute({ csv: 'product,price,inStock\nLaptop,999.99,true\nMouse,29.99,false', }); // rows: [ // { product: 'Laptop', price: 999.99, inStock: true }, // { product: 'Mouse', price: 29.99, inStock: false } // ]
const result = await csvParseTool.execute({ csv: 'Alice,25,Engineer\nBob,30,Designer', hasHeaders: false, }); // rows: [ // { col_0: 'Alice', col_1: 25, col_2: 'Engineer' }, // { col_0: 'Bob', col_1: 30, col_2: 'Designer' } // ]
const result = await csvParseTool.execute({ csv: 'name,age\nAlice,25\nBob,invalid\nCharlie,35', }); // metadata.hasErrors: true // metadata.errors: [{ row: 1, message: '...' }]
MIT
Downloads/month
36
Quality Score