canonical: https://jentic.com/apis/easycsv.io/easycsv

# EasyCSV API

EasyCSV is a CSV and spreadsheet ingestion service that turns flat files into structured webhook payloads. The API exposes a single import endpoint that accepts a CSV or XLSX upload and routes the parsed rows to a webhook configured on the destination sheet. It is used by SaaS teams and back-office workflows that need to bulk-import customer-supplied data without writing a parser for every format variation.

## For AI agents

Upload CSV or XLSX files to a configured EasyCSV sheet and receive parsed row-by-row data via webhook for downstream processing.

## Scope

Does not handle CSV transformation logic, schema inference, or downstream storage - use for posting CSV and XLSX files to a configured EasyCSV sheet for webhook delivery only.

## Capabilities

- Upload a CSV or XLSX file to a named EasyCSV company and sheet for parsing
- Stream parsed rows back to a configured webhook for downstream ingestion
- Validate uploaded file structure against the sheet's expected column mapping
- Trigger imports programmatically from a SaaS application onboarding flow

## Use cases

### Customer-supplied data onboarding

B2B SaaS onboarding often starts with the customer handing over a CSV of their existing records. An agent calls POST /{company_slug}/{sheet_slug} with the uploaded file, and EasyCSV streams parsed rows to the configured webhook for ingestion into the application database, sidestepping the need to ship a custom CSV parser.

Example prompt: Upload the file customers.csv to EasyCSV sheet 'acme/customer-import' and confirm the import was accepted.

### Scheduled back-office data imports

Operations teams that receive recurring spreadsheets from partners can wrap the EasyCSV upload in a cron job or workflow runner. The same sheet slug accepts repeated uploads, and EasyCSV applies its column mapping consistently so downstream webhooks see a stable shape regardless of formatting drift in the source file.

Example prompt: Upload the daily file 'partner-orders-2026-06-10.csv' to EasyCSV sheet 'ops/partner-orders' and return the response status.

### Form-driven file uploads

Web apps that accept user-uploaded CSVs through a form can post the file directly to EasyCSV instead of parsing it server-side. The single import endpoint handles encoding, header detection, and XLSX-to-CSV conversion before delivering rows to the configured webhook.

Example prompt: Given a multipart upload from a web form for sheet 'acme/leads', forward it to EasyCSV and report whether the import was accepted.

### Agent-orchestrated data pipelines

An AI agent can accept a natural-language instruction such as 'import this CSV into the customer pipeline' and route it through EasyCSV via Jentic. The agent picks the right sheet slug from context and posts the file, so users do not need to know the EasyCSV URL structure.

Example prompt: Given a file path and a logical sheet name 'customer-import', resolve the EasyCSV company and sheet slug and upload the file.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/{company_slug}/{sheet_slug}` | Upload a CSV or XLSX file for parsing |

## Key resources

- **Imports** — Upload CSV or XLSX files to a configured sheet for webhook delivery

## Why Jentic

- **Setup:** Wiring EasyCSV by hand means setting up its X-API-Key header and coding the multipart file post to the correct company and sheet slug yourself. Through Jentic you install once, import EasyCSV from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** EasyCSV puts the company and sheet slug in the URL path (/{company_slug}/{sheet_slug}), so a rule can pin your agent to one sheet: it can post CSV and XLSX files to that sheet and nothing else. Because that single import is the only operation, the agent's reach stays confined to the sheets you name.
- **Credential handling:** Your EasyCSV X-API-Key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'import a CSV file', and Jentic returns the EasyCSV import operation with its input schema, including the company_slug and sheet_slug path parameters, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **n8n API** — General workflow automation that can parse CSVs as one of many node types
- **Zapier NLA API** — Natural-language automation across thousands of apps with CSV connectors
- **Shopify Admin API** — Storefront data target for parsed CSV product rows

## FAQ

### What authentication does the EasyCSV API use?

EasyCSV requires an API key in the X-API-Key header. Through Jentic, the key is stored encrypted in the vault and added to each upload request at execution time, so the raw key never appears in agent prompts or logs.

### Can I upload XLSX files as well as CSV with the EasyCSV API?

Yes. The single import endpoint POST /{company_slug}/{sheet_slug} accepts both CSV and XLSX uploads and converts XLSX to CSV before applying the configured column mapping and dispatching webhook rows.

### What are the rate limits for the EasyCSV API?

The OpenAPI spec does not publish numeric rate limits. EasyCSV applies per-account quotas on imports per month and concurrent uploads - check your dashboard for current usage or contact EasyCSV support to raise the limit.

### How do I trigger a CSV import through Jentic?

Search Jentic for 'import a csv file', load the schema for POST /{company_slug}/{sheet_slug}, then execute with the company slug, sheet slug, and the file payload. The flow is: pip install jentic, then await client.search, await client.load, await client.execute.

### Does the EasyCSV API return parsed rows directly in the response?

No. Parsed rows are delivered to the webhook URL configured on the sheet in the EasyCSV web app, not in the upload response. The upload endpoint returns acceptance status; the actual data flows asynchronously to your webhook.

### Can I limit what my agent is allowed to do with the EasyCSV API?

Yes. Because you run Jentic One yourself, your own rules decide which operations and credentials the agent may use, and EasyCSV exposes just one operation, the file import that posts a CSV or XLSX to POST /{company_slug}/{sheet_slug}. Since the company and sheet slug live in the URL path, you can pin the agent to a single named sheet so it can upload files to that sheet and nothing else. Your EasyCSV API key stays with your instance and is added at execution time, so the agent never sees or controls the raw credential.
