CSV Import
Upload and enrich company data from CSV files
Import your existing company or contact lists via CSV and let Linkt's AI agents enrich them with additional data points. This guide walks through the complete workflow from file upload to retrieving enriched entities.
Prerequisites
Before starting, ensure you have:
- A Linkt account with API access
- Your API key (see Authentication)
- A CSV file with company or contact data
Supported File Types
Linkt accepts both CSV (.csv) and Excel (.xlsx, .xls) files. Excel files are automatically converted to CSV format using the first sheet.
CSV Format Requirements
Your CSV file should follow these guidelines:
Required
- Header row — First row must contain column names
- Primary column — At least one column with entity names (company names or person names)
- UTF-8 encoding — Ensure proper character encoding
Recommended Columns
For company data:
- Company name (required as primary column)
- Website/domain
- Industry
- Location
- Employee count
For person data:
- Full name (required as primary column)
- Company name
- Job title
- LinkedIn URL
Example CSV
Step 1: Upload Your CSV
Upload your CSV file to get a file_id for the ingest task.
Response:
CSV Metadata
The response includes csv_metadata with row count, column names, and preview data. Use this to verify your file was parsed correctly before proceeding. See Files for complete file management API documentation.
Step 2: Create an Enrichment ICP
Create an ICP that defines what data to research and add to your entities. For CSV import, the entity target description should focus on enrichment fields rather than search criteria.
Response:
Save the id — you'll need it when executing the task.
Step 3: Create a Sheet
Create a sheet to store the enriched entities. The entity_type should match the type of data in your CSV.
Response:
Step 4: Configure the Ingest Task
Create an ingest task that references your uploaded file. The task configuration requires:
file_id— The ID from step 1primary_column— Column name containing entity names to matchcsv_entity_type— Entity type in the CSV (companyorperson)
Response:
Task Configuration Fields
| Field | Required | Description |
|---|---|---|
file_id | Yes | MongoDB ObjectId of the uploaded file |
primary_column | Yes | Column name containing entity names |
csv_entity_type | Yes | Entity type: company or person |
version | Yes | Config version (use v1.0) |
config_type | Yes | Must be ingest-task |
Step 5: Execute and Monitor
Execute the task to start the import and enrichment process.
Response:
The run will progress through states: SCHEDULED → PENDING → RUNNING → COMPLETED. Poll the run endpoint until it reaches a terminal state.
Monitoring Execution
See Execution for polling patterns, status handling, and error recovery.
Monitor Processing Queue
For large imports, you can monitor the processing queue:
Queue states:
queued— Waiting to be processedprocessing— Currently being enrichedcompleted— Successfully importeddiscarded— Skipped (entity not found or not qualified)
Step 6: Review Results
Once the run completes, retrieve the enriched entities from your sheet.
Response:
Complete Example
Here's a complete Python script for CSV import:
Best Practices
Data Quality
- Clean your data — Remove duplicates and fix obvious errors before upload
- Consistent naming — Use consistent company name formats
- Include domains — Website/domain helps with entity matching
Performance
- Batch size — For large files (1000+ rows), consider splitting into smaller batches
- Timeout — Allow sufficient time for enrichment (larger files take longer)
- Monitor queue — Use the queue endpoint to track progress
Enrichment ICP
- Focus on custom fields — Default fields (name, website, etc.) are populated automatically
- Be specific — Clear field descriptions produce better results
- Prioritize fields — List most important fields first
Error Handling
Common Issues
| Issue | Cause | Solution |
|---|---|---|
| "Column not found" | Primary column doesn't exist | Check column names in csv_metadata |
| "Invalid CSV format" | Malformed CSV | Ensure proper UTF-8 encoding and formatting |
| "Entity not found" | Company/person couldn't be matched | Check for typos in entity names |
| Partial completion | Some rows failed enrichment | Review discarded items in queue |
Handling Partial Failures
Some entities may be discarded if they can't be matched or enriched. Check the run queue for details:
Next Steps
- Files Reference — File management API and processing status
- Entities Reference — Understanding enriched data structure
- Bulk Enrichment — Advanced enrichment at scale
- Execution — Understanding runs and monitoring