How to Bulk Import CSV Data Into Popular APIs Without Code
Learn how to import thousands of rows from CSV files into REST APIs like Stripe, Shopify, and Salesforce without writing a single line of code.
If you’re an IT implementor, operations manager, or technical staff member, you’ve probably faced this scenario: You have a CSV file with hundreds (or thousands) of rows, and you need to load that data into an API. Maybe you’re migrating customers to Stripe, importing products into Shopify, or updating records in Salesforce.
The traditional options are frustrating:
- Write a custom script - Requires programming skills, takes hours to debug, breaks when the API changes
- Manual entry - Copy-paste each row? For 500+ records? No thanks.
- Hire a developer - Expensive, slow, and you’ll need them again for the next import
There’s a better way: spec-driven import tools that let you map CSV columns to API fields and bulk-upload everything automatically.
Table of Contents
- How CSV-to-API Import Tools Work
- Real-World Example: Importing Customers to Stripe
- Popular APIs and Their OpenAPI Specs
- Best Practices for Bulk Imports
- What About More Complex Scenarios?
- Choosing the Right Import Tool
How CSV-to-API Import Tools Work
Modern import tools follow this workflow:
1. Connect to the API using OpenAPI Specification
Instead of manually configuring each API endpoint, you provide the API’s OpenAPI specification (formerly Swagger). This is a standard file that describes:
- Available endpoints (URLs)
- Required and optional fields
- Data types and validation rules
- Authentication methods
Where to find OpenAPI specs:
- Stripe: https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json
- Shopify: Available in their API documentation
- Your internal API: Most modern frameworks (FastAPI, Rails, Spring Boot) auto-generate OpenAPI specs
2. Select Your Target Endpoint
Once the spec is loaded, you’ll see a list of available endpoints. For example:
POST /customers- Create new customersPUT /products/{id}- Update existing productsPOST /orders- Submit new orders
Choose the endpoint that matches your data import goal.
3. Upload Your CSV File
The tool automatically detects your CSV separator (comma, semicolon, tab, or custom) and shows you a preview of your data.
Pro tip: Make sure your CSV is clean before uploading:
- Remove empty rows
- Standardize date formats (ISO 8601 recommended:
2025-12-11) - Check for special characters in text fields
4. Map CSV Columns to API Fields
This is where the magic happens. The tool shows you:
- Left side: Your CSV column headers
- Right side: The API fields from the OpenAPI spec
Modern tools offer auto-mapping that matches column names to field names using fuzzy matching. For example:
- CSV column
customer_email→ API fieldemail - CSV column
phone→ API fieldphone_number - CSV column
qty→ API fieldquantity
Learn more about how smart field mapping with visual validation can prevent data import disasters by catching mismatches before you submit.
You can manually adjust any mappings that didn’t auto-match correctly.
5. Configure Authentication
Most APIs require authentication. Common methods:
- API Key: Added to request headers or query parameters
- Bearer Token: OAuth token in the
Authorizationheader - Basic Auth: Username and password
The import tool reads the authentication requirements from the OpenAPI spec and prompts you for credentials.
6. Submit and Track Progress
Hit “Submit” and watch the progress bar. The tool:
- Processes each CSV row
- Transforms it to match the API schema
- Sends the request
- Handles rate limiting automatically
- Collects any errors for review
Real-World Example: Importing Customers to Stripe
Let’s walk through a practical example: You have 500 customers in a CSV and need to create them in Stripe.
Your CSV Structure
email,name,phone,address_line1,address_city,address_country
john@example.com,John Smith,+1-555-0100,123 Main St,New York,US
sarah@example.com,Sarah Johnson,+1-555-0101,456 Oak Ave,Los Angeles,US
Step-by-Step Process
1. Load Stripe’s OpenAPI Spec
https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json
2. Select Endpoint
Choose POST /v1/customers from the list.
3. Map Fields
The tool auto-maps:
email→emailname→namephone→phoneaddress_line1→address.line1address_city→address.cityaddress_country→address.country
4. Add Stripe API Key
Stripe requires an API key in the format Bearer sk_test_.... You can find this in your Stripe Dashboard under Developers > API Keys.
5. Submit
The tool processes all 500 rows in batches, respecting Stripe’s rate limits. You get:
- ✅ 498 successful imports
- ❌ 2 failed (duplicate emails)
You can download the failed rows as a CSV to fix the issues and retry.
Popular APIs and Their OpenAPI Specs
Here are quick references for common import scenarios:
E-Commerce
- Shopify Products:
POST /admin/api/2024-01/products.json - WooCommerce: Uses WordPress REST API with OpenAPI plugins
- BigCommerce: Full OpenAPI spec available in their developer docs
Payment & Billing
- Stripe Customers:
POST /v1/customers - Stripe Products:
POST /v1/products - PayPal Invoices: Available via PayPal REST API
CRM & Marketing
- Salesforce: Uses SOAP but has REST API with OpenAPI support
- HubSpot Contacts:
POST /crm/v3/objects/contacts - Mailchimp Lists:
POST /lists/{list_id}/members
Internal Tools
- PostgreSQL via PostgREST: Auto-generates OpenAPI spec from your database schema
- Supabase: REST API with OpenAPI documentation
- Custom APIs: If built with FastAPI, Django REST, Rails, or Spring Boot, OpenAPI is likely available
Best Practices for Bulk Imports
1. Test with a Small Batch First
Before importing 10,000 rows, try 10 rows to verify:
- Field mappings are correct
- Authentication works
- Data formats are accepted by the API
2. Handle Rate Limits
Most APIs have rate limits (e.g., 100 requests per second). Good import tools automatically throttle requests to stay under the limit.
Pro tip: Check the API documentation for rate limits and configure a request delay if needed.
3. Validate Required Fields
Before starting the import, ensure all required fields have mappings. The OpenAPI spec indicates which fields are mandatory.
4. Review Failed Rows
Imports rarely succeed 100% on the first try. Common issues:
- Duplicate unique identifiers (emails, SKUs)
- Invalid data formats (wrong date format, invalid country code)
- Missing required nested fields
Download failed rows, fix the issues, and re-import just those rows.
5. Keep Import Logs
For compliance and debugging, keep records of:
- When the import ran
- How many rows succeeded/failed
- Error messages for failures
- User who performed the import
What About More Complex Scenarios?
Nested Objects
Many APIs require nested JSON objects. For example, Stripe’s address structure:
{
"address": {
"line1": "123 Main St",
"city": "New York",
"country": "US"
}
}
Good import tools support dot notation in field mapping:
- CSV column
address_line1→ API fieldaddress.line1 - CSV column
address_city→ API fieldaddress.city
Arrays
Some APIs accept arrays (e.g., multiple phone numbers). This is trickier - you might need:
- Multiple CSV columns:
phone1,phone2,phone3 - Comma-separated values in a single column:
555-0100,555-0101
Check your import tool’s documentation for array handling.
Conditional Logic
If you need complex transformations (e.g., “if country is US, set currency to USD”), you might need a custom script. However, many simple transformations can be handled with pre-processing in Excel or Google Sheets.
Choosing the Right Import Tool
When evaluating CSV-to-API import tools, look for:
✅ OpenAPI/Swagger Support - Automatic endpoint discovery ✅ Auto-mapping - Saves time on field mapping ✅ Batch Processing - Handles large datasets efficiently ✅ Error Reporting - Clear error messages with row numbers ✅ Retry Logic - Automatically retries failed requests on transient errors ✅ Rate Limiting - Respects API rate limits ✅ Authentication Support - API keys, Bearer tokens, Basic auth
Try It Yourself
Ready to stop writing import scripts? Here’s how to get started:
- Find your API’s OpenAPI spec (check the API documentation or ask their support)
- Export your data to CSV (from Excel, Google Sheets, database export, etc.)
- Use an import tool like CSVImport to map fields and bulk-upload
Most tools offer a free tier for testing with small datasets (under 25-50 rows), so you can try before committing.
Conclusion
Bulk importing CSV data into APIs doesn’t require programming skills or expensive consultants. With OpenAPI-driven import tools, you can:
- Load data in minutes instead of hours
- Avoid brittle custom scripts that break on API changes
- Handle authentication and rate limiting automatically
- Get clear error reports for troubleshooting
The next time someone hands you a CSV and says “load this into the API,” you’ll know exactly what to do.
Need help with your next import? CSVImport supports any OpenAPI-compliant API with automatic field mapping, batch processing, and error handling. Try the demo or join the waitlist for early access.
Ready to try CSVImport?
Import your CSV data into any API in minutes. No coding required.
More from the blog
Bulk Import Products to Stripe from CSV
Step-by-step tutorial showing how to import your product catalog into Stripe. No programming required.
Complete CSV to API Import Guide
Learn how to bulk import CSV data without writing scripts or code. Complete guide for non-developers.
Smart Field Mapping with Visual Validation
Prevent data import disasters with visual warnings for unmapped fields and semantic mismatches.
Why Data Migration Scripts Fail
Understanding the common pitfalls in data migration and how to avoid them with proper tooling.