> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kakiyo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Import a Sales Navigator Search

> Queues a LinkedIn Sales Navigator people search for asynchronous import into a campaign. Matching profiles pass through Kakiyo's standard enrichment, duplicate, Do Not Contact, and campaign-capacity checks.

Queue a LinkedIn Sales Navigator people search for asynchronous import into one Kakiyo campaign. Kakiyo collects matching profiles and routes them through its standard enrichment, duplicate, Do Not Contact, progress, and campaign-capacity pipeline.

<Info>
  A `202 Accepted` response means the import was queued. It does not mean that profiles have already been added.
</Info>

## Request Body

| Field            | Type      | Required | Description                                                                       |
| ---------------- | --------- | -------- | --------------------------------------------------------------------------------- |
| `campaignId`     | `string`  | Yes      | Campaign that should receive eligible prospects                                   |
| `searchUrl`      | `string`  | Yes      | Complete HTTPS LinkedIn `/sales/search/people` URL containing a `query` parameter |
| `requestedCount` | `integer` | No       | `100`, `250`, or `500`; defaults to `250`                                         |
| `name`           | `string`  | No       | Saved-search name; defaults to `Sales Navigator import`                           |

## Example

```bash theme={null}
curl -X POST "https://api.kakiyo.com/v1/prospects/sales-navigator" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "campaignId": "campaign_12345abcde",
    "name": "US SaaS Sales Leaders",
    "searchUrl": "https://www.linkedin.com/sales/search/people?query=(keywords%3ASaaS)",
    "requestedCount": 250
  }'
```

<Warning>
  Paste the URL exactly as copied from the Sales Navigator browser address bar. Do not send an exported report URL, lead-list URL, or individual profile URL.
</Warning>

## Accepted Response

```json theme={null}
{
  "message": "Sales Navigator import queued",
  "sourceId": "source_12345abcde",
  "runId": "run_12345abcde",
  "status": "queued",
  "requestedCount": 250
}
```

`sourceId` and `runId` are correlation identifiers. Progress, Continue, Retry, and archive controls are currently dashboard-only. API-key imports do not send a completion email because an API key is not a dashboard user.

## Requirements and Limits

* The campaign must belong to the authenticated API-key team.
* The campaign must have an assigned LinkedIn agent and be ready for prospect imports.
* The public API permits up to three active Sales Navigator imports per team.
* Only one active Sales Navigator import can use a campaign at a time.
* The endpoint uses the low write rate-limit tier.

## Common Errors

| Status | Error                           | Meaning                                                   |
| -----: | ------------------------------- | --------------------------------------------------------- |
|  `400` | `campaign_missing_agent`        | Assign an agent before importing prospects                |
|  `400` | `campaign_not_ready`            | The campaign is Draft or Disabled                         |
|  `401` | `invalid_api_key`               | The API key is missing or invalid                         |
|  `403` | `forbidden`                     | The campaign does not belong to the API-key team          |
|  `404` | `campaign_not_found`            | The campaign does not exist                               |
|  `409` | `campaign_busy`                 | The campaign already has an active import                 |
|  `409` | `sales_navigator_source_exists` | This search is already saved for the campaign             |
|  `429` | `sales_navigator_team_limit`    | The team already has three active Sales Navigator imports |

The team-cap response has no fixed retry time. Submit another import after one of the active imports finishes or is archived. Standard burst-rate `429` responses include a `Retry-After` header.

## Dashboard Guide

For the no-code workflow, Continue, Retry, and import status explanations, see [Import Leads from Sales Navigator](/guides/lead-finder/sales-navigator-imports).


## OpenAPI

````yaml POST /prospects/sales-navigator
openapi: 3.1.0
info:
  title: Kakiyo API
  description: API for automating LinkedIn outreach campaigns with AI-powered conversations
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.kakiyo.com/v1
security:
  - bearerAuth: []
paths:
  /prospects/sales-navigator:
    post:
      summary: Import a Sales Navigator Search
      description: >-
        Queues a LinkedIn Sales Navigator people search for asynchronous import
        into a campaign. Matching profiles pass through Kakiyo's standard
        enrichment, duplicate, Do Not Contact, and campaign-capacity checks.
      operationId: importSalesNavigatorSearch
      requestBody:
        description: >-
          The campaign, Sales Navigator people-search URL, and requested run
          size
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesNavigatorImportRequest'
        required: true
      responses:
        '202':
          description: Sales Navigator import queued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesNavigatorImportAccepted'
        '400':
          description: Invalid URL, requested count, or campaign state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Campaign access denied or subscription unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Campaign not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Campaign already importing prospects or saved search already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: >-
            Rate limit exceeded or the team already has three active public
            Sales Navigator imports
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    SalesNavigatorImportRequest:
      type: object
      additionalProperties: false
      required:
        - campaignId
        - searchUrl
      properties:
        campaignId:
          type: string
          description: Campaign that should receive eligible prospects
          example: campaign_12345abcde
        name:
          type: string
          minLength: 1
          maxLength: 120
          default: Sales Navigator import
          description: Name shown for the saved search in the dashboard
          example: US SaaS Sales Leaders
        searchUrl:
          type: string
          format: uri
          maxLength: 20000
          description: >-
            Complete HTTPS LinkedIn Sales Navigator /sales/search/people URL
            containing a query parameter
          example: https://www.linkedin.com/sales/search/people?query=(keywords%3ASaaS)
        requestedCount:
          type: integer
          enum:
            - 100
            - 250
            - 500
          default: 250
          description: Maximum number of profiles requested for this run
          example: 250
    SalesNavigatorImportAccepted:
      type: object
      required:
        - message
        - sourceId
        - runId
        - status
        - requestedCount
      properties:
        message:
          type: string
          example: Sales Navigator import queued
        sourceId:
          type: string
          description: Saved-search correlation identifier
          example: source_12345abcde
        runId:
          type:
            - string
            - 'null'
          description: Current import-run correlation identifier
          example: run_12345abcde
        status:
          type: string
          enum:
            - queued
          example: queued
        requestedCount:
          type: integer
          enum:
            - 100
            - 250
            - 500
          example: 250
    Error:
      type: object
      properties:
        error:
          type: string
          example: validation_error
        message:
          type: string
          example: The request parameters failed validation
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                example: name
              message:
                type: string
                example: The name field is required
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````