# Create import

Create a new LinkedIn import (data source). This starts a scraping job that will pull
contacts or companies from the specified LinkedIn URL into your list.

Import types:

| Type | Description |
|------|-------------|
| sn_leads_search | Sales Navigator people search results |
| sn_leads_saved_search | Sales Navigator saved leads search |
| sn_leads_list | Sales Navigator lead list |
| sn_accounts_search | Sales Navigator company search |
| sn_accounts_saved_search | Sales Navigator saved company search |
| sn_accounts_list | Sales Navigator account list |
| ln_leads_search | LinkedIn basic people search |
| ln_accounts_search | LinkedIn basic company search |
| ln_my_network | Your LinkedIn connections |
| ln_my_messenger | Your LinkedIn messenger contacts |
| post_engagement | People who engaged with a LinkedIn post (likes, comments) |
| recruiter_leads_search | LinkedIn Recruiter search results |

Required: list_uuid (target list), type (import type), and payload (must contain the LinkedIn url to scrape).

Optional: sender_profile_uuid (which LinkedIn account runs the import), tags (auto-tag imported contacts), repeat_after_minutes (re-run periodically).

Endpoint: POST /leads/api/data-sources
Version: 1.0.0
Security: bearerAuth

## Request fields (application/json):

  - `list_uuid` (string, required)
    Target list UUID — imported contacts/companies are added here

  - `type` (string, required)
    Import source type
    Enum: "sn_leads_search", "sn_leads_saved_search", "sn_leads_list", "sn_accounts_search", "sn_accounts_saved_search", "sn_accounts_list", "ln_leads_search", "ln_accounts_search", "ln_my_network", "ln_my_messenger", "post_engagement", "recruiter_leads_search"

  - `payload` (object, required)
    Import configuration

  - `payload.url` (string, required)
    LinkedIn URL to scrape (search results page, post URL, etc.)

  - `sender_profile_uuid` (string)
    LinkedIn sender profile to use for scraping (optional)

  - `tags` (array)
    Tags to auto-apply to all imported contacts

  - `repeat_after_minutes` (integer)
    Re-run interval in minutes. Set to 1440 for daily, 10080 for weekly. Omit or set to null for one-time import.

## Response 201 fields (application/json):

  - `uuid` (string)

  - `team_id` (integer)

  - `sender_profile_uuid` (string,null)
    LinkedIn sender profile running this import

  - `list_uuid` (string,null)
    Target list UUID where imported contacts/companies are added

  - `type` (string)
    Import source type
    Enum: "sn_leads_search", "sn_leads_saved_search", "sn_leads_list", "sn_accounts_search", "sn_accounts_saved_search", "sn_accounts_list", "ln_leads_search", "ln_accounts_search", "ln_my_network", "ln_my_messenger", "post_engagement", "recruiter_leads_search"

  - `status` (string)
    not_started — created but not yet running.
in_progress — actively scraping LinkedIn.
on_hold — paused by user.
completed — finished successfully.
failed — stopped due to errors.
contacts_limit_achieved — stopped because the team's contact limit was reached.
    Enum: "not_started", "in_progress", "on_hold", "completed", "failed", "contacts_limit_achieved"

  - `payload` (object)
    Import configuration — contains the LinkedIn URL and scraping parameters

  - `payload.url` (string)
    LinkedIn URL being scraped

  - `tags` (array,null)
    Tags automatically applied to imported contacts

  - `errors` (array)
    Error messages if the import failed

  - `repeat_after_minutes` (integer,null)
    If set, the import repeats automatically on this interval (in minutes). 1440 = daily, 10080 = weekly. New contacts found on re-runs are added to the same list (duplicates are skipped).

  - `user_id` (integer)
    User who created the import

  - `created_at` (string)

  - `updated_at` (string)

## Response 422 fields (application/json):

  - `error` (object)

  - `error.reason` (string)
    Error category
    Example: "validation_error"

  - `error.message` (string)
    Detailed error message
    Example: "The name field is required."

  - `error.data` (object)
    Additional context (field-level errors for validation)

  - `message` (string)
    Example: "Validation failed"

  - `code` (integer)
    Example: 422


## Response 401 fields
