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

# Connect Sales Navigator Profile

> Send a connection request to a lead from Sales Navigator with an optional personalized message.

<Card title="Free with Engagement Mode" icon="gem" href="/v1/identities/engagement" arrow="false" horizontal>
  No credits required when executed with an Engagement Identity. Set type: "engagement" when creating an Identity via API.
</Card>

<Tip>
  To run LinkedIn actions, you must first create an identity and connect a LinkedIn
  account, either using our [Chrome
  Extension](https://chromewebstore.google.com/detail/edges-labs/bippgnolleoecnhaninlfmdapbakklpf),
  [username/password login](/v1/api/linkedin/authentication), or [Managed
  Accounts](/v1/identities/sync-vs-managed) for a hassle-free setup.
</Tip>


## OpenAPI

````yaml v1/api/actions.json post /actions/salesnavigator-connect-profile/run/live
openapi: 3.1.0
info:
  title: ED Automation External API
  description: This is the External API documentation for ED Automation
  version: dev
servers:
  - url: https://api.edges.run/v1
security:
  - XApiKeyAuth: []
paths:
  /actions/salesnavigator-connect-profile/run/live:
    post:
      tags:
        - actions / salesnavigator
      summary: Run salesnavigator-connect-profile action live
      operationId: salesnavigatorConnectProfile
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                parameters:
                  type: object
                  properties:
                    message:
                      title: Custom Message
                      default: >-
                        Hello {{first_name}}, 


                        I'm a huge fan of XXX.

                        Would you be willing to share your best techniques
                        regarding XXX?


                        Have a nice day,

                        John
                      description: >-
                        Your custom message, maximum length is 300 (to take into
                        account when using liquid)
                      type: string
                      x-display-widget: textarea
                  additionalProperties: false
                  default: {}
                identity_ids:
                  type: array
                  description: >-
                    An array of Identity UUIDs linked to identities (e.g.
                    LinkedIn) used to execute the Action. You must provide at
                    least one valid UID with access to the integration. Do not
                    use account_uid values — only user_uid is supported.
                  items:
                    type: string
                    format: uuid
                  nullable: true
                  example:
                    - 44444444-4444-4444-4444-444444444444
                input:
                  $ref: '#/components/schemas/SalesnavigatorConnectProfileInput'
              additionalProperties: false
              required:
                - input
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesnavigatorConnectProfileOutput'
          headers: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              examples:
                bad_parameters.73f060f0:
                  $ref: '#/components/examples/bad_parameters.73f060f0'
                bad_parameters.bfe974ab:
                  $ref: '#/components/examples/bad_parameters.bfe974ab'
                bad_input.1d81df7c:
                  $ref: '#/components/examples/bad_input.1d81df7c'
                bad_parameters.a49337b:
                  $ref: '#/components/examples/bad_parameters.a49337b'
                bad_parameters.7ba5d42c:
                  $ref: '#/components/examples/bad_parameters.7ba5d42c'
                bad_parameters.ddd14617:
                  $ref: '#/components/examples/bad_parameters.ddd14617'
                bad_parameters.dc311696:
                  $ref: '#/components/examples/bad_parameters.dc311696'
                bad_parameters.13059430:
                  $ref: '#/components/examples/bad_parameters.13059430'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentRequired'
              examples:
                no_access.d57cfaf0:
                  $ref: '#/components/examples/no_access.d57cfaf0'
                no_access.d88f9710:
                  $ref: '#/components/examples/no_access.d88f9710'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntity'
              examples:
                action_aborted.8ad2b327:
                  $ref: '#/components/examples/action_aborted.8ad2b327'
        '424':
          description: Failed Dependency
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FailedDependency'
              examples:
                unknown_error:
                  $ref: '#/components/examples/unknown_error'
                integration_error.6d482cf8:
                  $ref: '#/components/examples/integration_error.6d482cf8'
                no_valid_account_configured.cbdfab4a:
                  $ref: '#/components/examples/no_valid_account_configured.cbdfab4a'
                proxy_error_integration_identity_no_proxy_ip.e87eb247:
                  $ref: >-
                    #/components/examples/proxy_error_integration_identity_no_proxy_ip.e87eb247
                invalid_integration_integration_identity_temporarily_restricted.28dcac83:
                  $ref: >-
                    #/components/examples/invalid_integration_integration_identity_temporarily_restricted.28dcac83
                limit_reached.57f21de9:
                  $ref: '#/components/examples/limit_reached.57f21de9'
                mandatory_data_missing.434c1d7b:
                  $ref: '#/components/examples/mandatory_data_missing.434c1d7b'
                sn_conflict.167074e5:
                  $ref: '#/components/examples/sn_conflict.167074e5'
                lk_error.5f90d1dc:
                  $ref: '#/components/examples/lk_error.5f90d1dc'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/TooManyRequests'
                  - $ref: '#/components/schemas/RateLimitExceeded'
              examples:
                ratelimit:
                  summary: Rate limit exceeded error
                  description: Example of a rate limit exceeded error response
                  value:
                    error:
                      code: 429
                      status: Too Many Requests
                      details:
                        Retry-After: '60'
                        X-RateLimit-Limit: '2'
                        X-RateLimit-Reset: '1754402101'
                        X-RateLimit-Type: /v1/actions
                      message: Rate limit exceeded (/v1/actions)
                limit_reached_identity_rate_limit.14b30c5f:
                  $ref: >-
                    #/components/examples/limit_reached_identity_rate_limit.14b30c5f
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: 9292072d-77af-4899-b290-fc1e22972a10
              examples:
                action_aborted_managed_maintenance.813f3a69:
                  $ref: >-
                    #/components/examples/action_aborted_managed_maintenance.813f3a69
components:
  schemas:
    SalesnavigatorConnectProfileInput:
      type: object
      properties:
        custom_data:
          type: object
          additionalProperties: true
          description: Custom data (ex-metadata)
      anyOf:
        - type: object
          required:
            - sales_navigator_profile_url
          properties:
            sales_navigator_profile_url:
              pattern: >-
                /^https:\/\/(?:(www|[a-z]{2})\.)?linkedin\.com\/sales\/(people|lead)\/.+/
              type: string
              format: uri
              description: >-
                A Sales Navigator Profile URL should start with
                'https://www.linkedin.com/sales/people/'
              x-primary: true
              x-help: >-
                A Sales Navigator Profile URL should start with
                'https://www.linkedin.com/sales/people/'
              x-variations:
                - profile_url
                - sales_navigator_url
              x-required-variations:
                - sales_navigator_profile_id
        - type: object
          required:
            - sales_navigator_profile_id
          properties:
            sales_navigator_profile_id:
              pattern: /^AC[o-rw-z][\w-]+/
              type: string
              description: >-
                A sales_navigator_profile_id should start with 'ACo', 'ACw' or
                'ACr'
              x-placeholder: Sales Navigator profile identifiant
              x-help: >-
                A sales_navigator_profile_id should start with 'ACo', 'ACw' or
                'ACr'
      additionalProperties: false
    SalesnavigatorConnectProfileOutput:
      type: object
      properties:
        sales_navigator_profile_id:
          type: string
        linkedin_profile_id:
          type: integer
        connected:
          type: boolean
        pending:
          type: boolean
        message:
          type: string
        connection_sent_date:
          type: string
          format: date
    BadRequest:
      title: APIError
      description: >-
        Represents an error returned by the API. This schema defines the
        standard structure of error messages to ensure consistent error handling
        across the application.
      type: object
      properties:
        error_label:
          type: string
          nullable: true
        error_scope:
          type: string
          enum:
            - input
            - integ
            - param
            - config
          nullable: true
        error_ref:
          type: string
          nullable: true
          example: ERR-12345
        message:
          type: string
        status_code:
          type: integer
          nullable: true
        params:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
              - type: 'null'
              - type: array
                items:
                  type: string
          nullable: true
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: Additional data about the error
      additionalProperties: false
    PaymentRequired:
      title: APIError
      description: >-
        Represents an error returned by the API. This schema defines the
        standard structure of error messages to ensure consistent error handling
        across the application.
      type: object
      properties:
        error_label:
          type: string
          nullable: true
        error_scope:
          type: string
          enum:
            - input
            - integ
            - param
            - config
          nullable: true
        error_ref:
          type: string
          nullable: true
          example: ERR-12345
        message:
          type: string
        status_code:
          type: integer
          nullable: true
        params:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
              - type: 'null'
              - type: array
                items:
                  type: string
          nullable: true
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: Additional data about the error
      additionalProperties: false
    UnprocessableEntity:
      title: APIError
      description: >-
        Represents an error returned by the API. This schema defines the
        standard structure of error messages to ensure consistent error handling
        across the application.
      type: object
      properties:
        error_label:
          type: string
          nullable: true
        error_scope:
          type: string
          enum:
            - input
            - integ
            - param
            - config
          nullable: true
        error_ref:
          type: string
          nullable: true
          example: ERR-12345
        message:
          type: string
        status_code:
          type: integer
          nullable: true
        params:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
              - type: 'null'
              - type: array
                items:
                  type: string
          nullable: true
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: Additional data about the error
      additionalProperties: false
    FailedDependency:
      title: APIError
      description: >-
        Represents an error returned by the API. This schema defines the
        standard structure of error messages to ensure consistent error handling
        across the application.
      type: object
      properties:
        error_label:
          type: string
          nullable: true
        error_scope:
          type: string
          enum:
            - input
            - integ
            - param
            - config
          nullable: true
        error_ref:
          type: string
          nullable: true
          example: ERR-12345
        message:
          type: string
        status_code:
          type: integer
          nullable: true
        params:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
              - type: 'null'
              - type: array
                items:
                  type: string
          nullable: true
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: Additional data about the error
      additionalProperties: false
    TooManyRequests:
      title: APIError
      description: >-
        Represents an error returned by the API. This schema defines the
        standard structure of error messages to ensure consistent error handling
        across the application.
      type: object
      properties:
        error_label:
          type: string
          nullable: true
        error_scope:
          type: string
          enum:
            - input
            - integ
            - param
            - config
          nullable: true
        error_ref:
          type: string
          nullable: true
          example: ERR-12345
        message:
          type: string
        status_code:
          type: integer
          nullable: true
        params:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: number
              - type: boolean
              - type: 'null'
              - type: array
                items:
                  type: string
          nullable: true
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: Additional data about the error
      additionalProperties: false
    RateLimitExceeded:
      title: Rate limit exceeded error
      description: >-
        This error response indicates that the user has sent too many requests
        in a given amount of time ("rate limiting").
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              example: 429
            status:
              type: string
              example: Too Many Requests
            message:
              type: string
              example: Rate limit exceeded (/v1/actions)
            details:
              type: object
              properties:
                Retry-After:
                  type: string
                  example: '60'
                X-RateLimit-Limit:
                  type: string
                  example: '2'
                X-RateLimit-Reset:
                  type: string
                  example: '1754402101'
                X-RateLimit-Type:
                  type: string
                  example: /v1/actions
      additionalProperties: false
  examples:
    bad_parameters.73f060f0:
      summary: BAD_PARAMETERS
      description: 'Bad parameters provided: <string>'
      value:
        error_label: BAD_PARAMETERS
        message: 'Bad parameters provided: <string>'
        status_code: 400
        params:
          error: <string>
        error_ref: AUT-12345
    bad_parameters.bfe974ab:
      summary: BAD_PARAMETERS
      description: >-
        Bad parameters provided: Incremental cursor-based pagination is only
        available for the first page (page 0) on the live API.
      value:
        error_label: BAD_PARAMETERS
        message: >-
          Bad parameters provided: Incremental cursor-based pagination is only
          available for the first page (page 0) on the live API.
        status_code: 400
        params:
          error: >-
            Incremental cursor-based pagination is only available for the first
            page (page 0) on the live API.
        error_ref: AUT-12345
    bad_input.1d81df7c:
      summary: BAD_INPUT
      description: This is an invalid input. This action is not compatible with live runs.
      value:
        error_label: BAD_INPUT
        message: >-
          This is an invalid input. This action is not compatible with live
          runs.
        status_code: 400
        params:
          action: <string>
          additionalInfo: This action is not compatible with live runs.
        error_ref: AUT-12345
    bad_parameters.a49337b:
      summary: BAD_PARAMETERS
      description: >-
        Bad parameters provided: cursor has expired, please start from the
        beginning
      value:
        error_label: BAD_PARAMETERS
        message: >-
          Bad parameters provided: cursor has expired, please start from the
          beginning
        status_code: 400
        params:
          error: cursor has expired, please start from the beginning
        error_ref: AUT-12345
    bad_parameters.7ba5d42c:
      summary: BAD_PARAMETERS
      description: 'Bad parameters provided: invalid cursor provided'
      value:
        error_label: BAD_PARAMETERS
        message: 'Bad parameters provided: invalid cursor provided'
        status_code: 400
        params:
          error: invalid cursor provided
        error_ref: AUT-12345
    bad_parameters.ddd14617:
      summary: BAD_PARAMETERS
      description: >-
        Bad parameters provided: this action does not support account rotation.
        Can not pass more than one identity_id
      value:
        error_label: BAD_PARAMETERS
        message: >-
          Bad parameters provided: this action does not support account
          rotation. Can not pass more than one identity_id
        status_code: 400
        params:
          action: <string>
          error: >-
            this action does not support account rotation. Can not pass more
            than one identity_id
        error_ref: AUT-12345
    bad_parameters.dc311696:
      summary: BAD_PARAMETERS
      description: >-
        Bad parameters provided: this action does not support account rotation.
        identity_mode cannot be set to managed
      value:
        error_label: BAD_PARAMETERS
        message: >-
          Bad parameters provided: this action does not support account
          rotation. identity_mode cannot be set to managed
        status_code: 400
        params:
          action: <string>
          error: >-
            this action does not support account rotation. identity_mode cannot
            be set to managed
        error_ref: AUT-12345
    bad_parameters.13059430:
      summary: BAD_PARAMETERS
      description: 'Bad parameters provided: Cannot generate cursor'
      value:
        error_label: BAD_PARAMETERS
        message: 'Bad parameters provided: Cannot generate cursor'
        status_code: 400
        params:
          error: Cannot generate cursor
        error_ref: AUT-12345
    no_access.d57cfaf0:
      summary: NO_ACCESS
      description: 'You don''t have access to the resource: no subscription'
      value:
        error_label: NO_ACCESS
        message: 'You don''t have access to the resource: no subscription'
        status_code: 402
        params:
          error: no subscription
          user_uid: <string>
          workspace_uid: <string>
        error_ref: AUT-12345
    no_access.d88f9710:
      summary: NO_ACCESS
      description: 'You don''t have access to the resource: <string>'
      value:
        error_label: NO_ACCESS
        message: 'You don''t have access to the resource: <string>'
        status_code: 402
        params:
          error: <string>
          user_uid: <string>
          workspace_uid: <string>
          billing_starts_at: <string>
          billing_ends_at: <string>
          billing_interval: <union:string>
        error_ref: AUT-12345
    action_aborted.8ad2b327:
      summary: ACTION_ABORTED
      description: The action was aborted.
      value:
        error_label: ACTION_ABORTED
        message: The action was aborted.
        status_code: 422
        error_ref: AUT-12345
    unknown_error:
      summary: UNKNOWN_ERROR
      description: UNKNOWN_ERROR
      value:
        error_label: UNKNOWN_ERROR
        status_code: 424
        error_ref: AUT-12345
    integration_error.6d482cf8:
      summary: INTEGRATION_ERROR
      description: >-
        Error while getting the integration identity: contact the support,
        invalid configuration
      value:
        error_label: INTEGRATION_ERROR
        message: >-
          Error while getting the integration identity: contact the support,
          invalid configuration
        status_code: 424
        params:
          action: getting the integration identity
          error: contact the support, invalid configuration
        error_ref: AUT-12345
    no_valid_account_configured.cbdfab4a:
      summary: NO_VALID_ACCOUNT_CONFIGURED
      description: You need to configure a valid integration. <string>
      value:
        error_label: NO_VALID_ACCOUNT_CONFIGURED
        message: You need to configure a valid integration.
        status_code: 424
        params:
          additionalInfo: <string>
          action: getting the integration identity
          error: no valid integration identity found
          workspace_uid: <string>
          user_uid: <string>
          integration_level: <union:string>
          identity_mode: <union:string>
          identity_ids: <string>
          postponed_until: <string>
        error_ref: AUT-12345
    proxy_error_integration_identity_no_proxy_ip.e87eb247:
      summary: PROXY_ERROR/INTEGRATION_IDENTITY_NO_PROXY_IP
      description: >-
        Error while setting up the proxy: The integration identity do not have
        an IP address. Please wait 1 minute while we acquire an IP address for
        the integration identity.
      value:
        error_label: PROXY_ERROR
        message: >-
          Error while setting up the proxy: The integration identity do not have
          an IP address. Please wait 1 minute while we acquire an IP address for
          the integration identity.
        status_code: 424
        params:
          appendix: INTEGRATION_IDENTITY_NO_PROXY_IP
          error: >-
            The integration identity do not have an IP address. Please wait 1
            minute while we acquire an IP address for the integration identity.
          workspace_uid: <string>
          user_uid: <string>
          integration_level: <union:string>
          identity_mode: <union:string>
          identity_ids: <string>
          account_uid: <string>
          postponed_until: <string>
        error_ref: AUT-12345
    invalid_integration_integration_identity_temporarily_restricted.28dcac83:
      summary: INVALID_INTEGRATION/INTEGRATION_IDENTITY_TEMPORARILY_RESTRICTED
      description: >-
        You need to provide a valid integration object by configuring
        integration users. The integration identities are currently temporarily
        restricted.
      value:
        error_label: INVALID_INTEGRATION
        message: >-
          You need to provide a valid integration object by configuring
          integration users. The integration identities are currently
          temporarily restricted.
        status_code: 424
        params:
          appendix: INTEGRATION_IDENTITY_TEMPORARILY_RESTRICTED
          additionalInfo: The integration identities are currently temporarily restricted.
          workspace_uid: <string>
          user_uid: <string>
          integration_level: <union:string>
          identity_mode: <union:string>
          identity_ids: <string>
          account_uid: <string>
          postponed_until: <string>
        error_ref: AUT-12345
    limit_reached.57f21de9:
      summary: LIMIT_REACHED/<union:string>
      description: <union:string> limit reached for <string>.
      value:
        error_label: LIMIT_REACHED
        message: <union:string> limit reached for <string>.
        status_code: 424
        params:
          appendix: <union:string>
          timespan: <union:string>
          service: <string>
          error: all integration identities are exhausted
          workspace_uid: <string>
          user_uid: <string>
          integration_level: <union:string>
          identity_mode: <union:string>
          identity_ids: <string>
          postponed_until: <string>
        error_ref: AUT-12345
    mandatory_data_missing.434c1d7b:
      summary: MANDATORY_DATA_MISSING
      description: Mandatory value for sales navigator id is missing.
      value:
        error_label: MANDATORY_DATA_MISSING
        message: Mandatory value for sales navigator id is missing.
        status_code: 424
        params:
          key: sales navigator id
        error_ref: AUT-12345
    sn_conflict.167074e5:
      summary: SN_CONFLICT
      description: An invitation is already pending or it has already been accepted.
      value:
        error_label: SN_CONFLICT
        message: An invitation is already pending or it has already been accepted.
        status_code: 424
        error_ref: AUT-12345
    lk_error.5f90d1dc:
      summary: LK_ERROR
      description: 'Error while connecting to a profile: an unexpected error occurred'
      value:
        error_label: LK_ERROR
        message: 'Error while connecting to a profile: an unexpected error occurred'
        status_code: 424
        params:
          input: <string>
          action: connecting to a profile
          error: an unexpected error occurred
        error_ref: AUT-12345
    limit_reached_identity_rate_limit.14b30c5f:
      summary: LIMIT_REACHED/IDENTITY_RATE_LIMIT
      description: Identity limit reached for <string>.
      value:
        error_label: LIMIT_REACHED
        message: Identity limit reached for <string>.
        status_code: 429
        params:
          appendix: IDENTITY_RATE_LIMIT
          timespan: Identity
          service: <string>
          error: all integration identities exceed identity rate limits
          workspace_uid: <string>
          user_uid: <string>
          integration_level: <union:string>
          identity_mode: <union:string>
          identity_ids: <string>
          account_uid: <string>
          postponed_until: <string>
        error_ref: AUT-12345
    action_aborted_managed_maintenance.813f3a69:
      summary: ACTION_ABORTED/MANAGED_MAINTENANCE
      description: >-
        The action was aborted. The managed identity mode is currently in
        maintenance mode. Please contact support for more information.
      value:
        error_label: ACTION_ABORTED
        message: >-
          The action was aborted. The managed identity mode is currently in
          maintenance mode. Please contact support for more information.
        status_code: 503
        params:
          appendix: MANAGED_MAINTENANCE
          action: <string>
          additionalInfo: >-
            The managed identity mode is currently in maintenance mode. Please
            contact support for more information.
        error_ref: AUT-12345
  securitySchemes:
    XApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````