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

# Create prospect list with LinkedIn profile URLs

> Creates a new prospect list inside the given campaign and seeds it with the provided LinkedIn profile URLs. The backend validates URLs and may reject some as invalid, duplicates, or out-of-limit. The response describes which URLs were submitted, rejected, or already existed elsewhere.



## OpenAPI

````yaml https://api.goextrovert.com/client/v2/docs-json post /client/v2/prospect-list
openapi: 3.0.0
info:
  title: Extrovert Client API
  description: >-
    Public API for Extrovert platform integration. Use your API key for
    authentication.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.goextrovert.com/
    description: API Server
security: []
tags: []
paths:
  /client/v2/prospect-list:
    post:
      tags:
        - Prospects
      summary: Create prospect list with LinkedIn profile URLs
      description: >-
        Creates a new prospect list inside the given campaign and seeds it with
        the provided LinkedIn profile URLs. The backend validates URLs and may
        reject some as invalid, duplicates, or out-of-limit. The response
        describes which URLs were submitted, rejected, or already existed
        elsewhere.
      operationId: ProspectListClientApiController_createList
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateListRequestDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateListResponseDto'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientApiErrorResponseDto'
      security:
        - api-key: []
components:
  schemas:
    CreateListRequestDto:
      type: object
      properties:
        listName:
          type: string
          minLength: 1
          description: Human-readable list name.
        campaignId:
          type: string
          format: uuid
          description: Campaign id this list belongs to.
        userUrls:
          type: array
          minItems: 1
          items:
            type: string
            minLength: 1
          description: LinkedIn profile URLs to seed the list with.
        moveOwnDuplicated:
          type: boolean
          description: >-
            Controls what happens when a submitted URL already exists in another
            active list of the same owner (any campaign, not just the current
            one). If `true`, the existing prospect record is moved into this
            list — the record itself (id, statistics, flags, connection data) is
            preserved and simply re-assigned, and the URL is counted in
            `submittedUrls`. If `false`, the URL is skipped and reported in
            `existedUrlsMap` keyed by the campaign where the duplicate lives.
            This flag has no effect in three cases the backend always handles
            automatically: (1) duplicates in a teammate's or another user's list
            — always reported in `existedUrlsMap`, never moved; (2) previously
            deleted duplicates of the same owner — always reactivated into the
            target list; (3) exact same-list duplicates — skipped silently.
        shouldBeDeletedIfInactive:
          type: boolean
          description: >-
            If `true`, auto-remove prospects who have no posts on LinkedIn
            within the last 30 days (checked once, when the backend first pulls
            their posts). If `false`, keep them regardless of recent posting
            activity. Useful for pruning low-signal prospects on create.
      required:
        - listName
        - campaignId
        - userUrls
        - moveOwnDuplicated
        - shouldBeDeletedIfInactive
    CreateListResponseDto:
      type: object
      properties:
        status:
          type: string
          description: Response status
          enum:
            - success
        data:
          type: object
          properties:
            listId:
              type: string
              format: uuid
              description: Created or updated prospect list ID
              example: cf33282b-b171-4d23-ae02-848499d793e4
            submittedUrls:
              type: array
              items:
                type: string
              description: URLs submitted in this request
            validationRejectedUrls:
              type: array
              items:
                type: string
              description: URLs rejected by validation
            existedUrlsMap:
              type: object
              additionalProperties:
                type: object
                properties:
                  campaignName:
                    type: string
                    description: Campaign name where duplicate prospects already exist
                  urls:
                    type: array
                    items:
                      type: string
                    description: >-
                      Duplicate LinkedIn profile URLs already present in that
                      campaign
                required:
                  - campaignName
                  - urls
              description: >-
                Duplicates grouped by campaign: the key is the ID of the
                campaign where the duplicate already exists; the value holds the
                campaign name and the list of already-existing URLs.
            outOfLimitUrls:
              type: array
              items:
                type: string
              description: URLs rejected because of plan or quota limits
            totalUrlsLimit:
              type: number
              description: Total URL limit for the current team or user
            perMonthUrlsLimit:
              type: number
              description: Per-month URL import limit
          description: Detailed result of the create-list operation
        message:
          type: string
          description: Success message
          example: Operation completed successfully
      required:
        - status
        - data
        - message
    ClientApiErrorResponseDto:
      type: object
      properties:
        status:
          type: string
          description: Response status
          example: error
          enum:
            - error
        data:
          type: object
          description: Response data
          example: null
        message:
          type: string
          description: Error message
          example: An error occurred while processing the request
      required:
        - status
        - data
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: X-API-Key
      description: API Key for authentication

````