POST
/
lists
/
{listId}
/
import
curl -X POST 'https://api.pipeium.com/lists/{listId}/import' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "data": [
    {
      "first": "John",
      "last": "Doe",
      "company": "Acme Inc",
      "domain": "acme.com",
      "title": "CEO",
      "linkedin": "https://linkedin.com/in/johndoe"
    }
  ],
  "mappings": {
    "first_name": "first",
    "last_name": "last",
    "website": "domain",
    "company_name": "company",
    "linkedin_url": "linkedin",
    "job_title": "title"
  }
}'
{
  "message": "Data imported"
}
Import contacts and accounts into a list. This endpoint allows you to bulk import data with automatic account creation and linking.

Path Parameters

listId
string
required
The ID of the list to import data into

Request Body

data
array
required
Array of objects containing the data to import. Maximum 10,000 rows.
mappings
object
required
Object defining the mapping between your data columns and Pipeium fields

Response

message
string
Success message
curl -X POST 'https://api.pipeium.com/lists/{listId}/import' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "data": [
    {
      "first": "John",
      "last": "Doe",
      "company": "Acme Inc",
      "domain": "acme.com",
      "title": "CEO",
      "linkedin": "https://linkedin.com/in/johndoe"
    }
  ],
  "mappings": {
    "first_name": "first",
    "last_name": "last",
    "website": "domain",
    "company_name": "company",
    "linkedin_url": "linkedin",
    "job_title": "title"
  }
}'
{
  "message": "Data imported"
}

Error Codes

401
object
Unauthorized - Invalid or missing API key
404
object
List not found
500
object
Internal server error

Notes

  • The endpoint will automatically create accounts (companies) if they don’t exist based on the domain
  • For each imported contact, it will be linked to the corresponding account
  • Custom columns for both contacts and accounts will be initialized with empty values
  • The import process is transactional - if any row fails, the entire transaction for that row is rolled back
  • First name can be provided as “First Last” format if last_name mapping is not provided