Imperva Login Protect API

Provision Login Protect users and configure protected pages.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/imperva-login-protect-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

imperva-login-protect-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Cloud Application Security Account Management Login Protect API
  license:
    name: Imperva License Agreement.
    url: http://www.imperva.com/other/license_agreement.asp
  version: '1.0'
  description: Add, delete, and modify accounts. Get account details.
servers:
- url: https://my.imperva.com
  description: Imperva API server
  variables: {}
security:
- api_key: []
- api_id: []
tags:
- name: Login Protect
  description: Provision Login Protect users and configure protected pages.
paths:
  /api/prov/v1/sites/lp/configure:
    post:
      tags:
      - Login Protect
      summary: Add Login Protect User
      description: Use this operation to change Login Protect settings for a site.
      operationId: modifyLpSiteConfiguration
      parameters:
      - name: site_id
        in: query
        description: Numeric identifier of the site to operate on.
        required: true
        schema:
          type: integer
          format: int64
        example: 10
      - name: enabled
        in: query
        description: 'Pass true to enable login protect on site, and false to disable it.<br/>Default: true'
        schema:
          type: boolean
        example: true
      - name: specific_users_list
        in: query
        description: Comma separated email list to set login protect users for the site. If the list is empty all users will be allowed to access the site using Login Protect.
        schema:
          type: string
        example: admin@example.com
      - name: send_lp_notifications
        in: query
        description: 'Pass true to send notification on successful login using login protect.<br/>Default: false'
        schema:
          type: boolean
        example: true
      - name: allow_all_users
        in: query
        description: 'Pass true to allow all login protect users to access the site. If you want to allow only a specific list of users to access the site using Login Protect set this to false, and add the list to specific_user_list.<br/>Default: true'
        schema:
          type: boolean
        example: true
      - name: authentication_methods
        in: query
        description: 'Comma separated list of allowed authentication methods: sms | email | ga'
        schema:
          type: string
        example: sms
      - name: urls
        in: query
        description: A comma separated list of resource paths. For example, /home and /admin/index.html are resource paths, while <a href="http://www.example.com/home">http://www.example.com/home</a> is not. Each URL should be encoded separately using percent encoding as specified by RFC 3986 (<a href="http://tools.ietf.org/html/rfc3986#section-2.1">http://tools.ietf.org/html/rfc3986#section-2.1</a>). An empty URL list will remove all URLs.
        schema:
          type: string
        example: /home
      - name: url_patterns
        in: query
        description: 'A comma separated list of url patterns. Possible values: contains | equals | prefix | suffix | not_equals | not_contain | not_prefix | not_suffix. The patterns should be in accordance with the matching urls sent by the urls parameter.'
        schema:
          type: string
        example: prefix
      responses:
        '200':
          description: res - contains the specific error code:<br/>9413 - Unknown/unauthorized site_id</br>18001 - Format invalid<br/>18002 - Application invalid<br/>18011 - Invalid SMS Text<br/>9403 - Unknown/unauthorized account_id<br/>1001 - E-mail invalid<br/>18003 - Invalid phone number
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ApiResultSiteStatus'
                - $ref: '#/components/schemas/ApiResult'
  /api/prov/v1/sites/lp/configure-app:
    post:
      tags:
      - Login Protect
      summary: Configure Login Protect on Admin Areas
      description: Use this operation to configure Login Protect on wordpress | joomla | phpbb admin areas.
      operationId: configureProtectedAppByLp
      parameters:
      - name: site_id
        in: query
        description: Numeric identifier of the site to operate on.
        required: true
        schema:
          type: integer
          format: int64
        example: 10
      - name: protected_app
        in: query
        description: Protect admin areas of joomla | wordpress | phpBB.
        schema:
          type: string
        example: wordpress
      responses:
        '200':
          description: res - contains the specific error code:<br/>9413 - Unknown/unauthorized site_id<br/>18001 - Format invalid<br/>18002 - Application invalid<br/>18011 - Invalid SMS Text<br/>9403 - Unknown/unauthorized account_id<br/>1001 - E-mail invalid<br/>18003 - Invalid phone number
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ApiResultSiteStatus'
                - $ref: '#/components/schemas/ApiResult'
  /api/prov/v1/sites/lp/add-user:
    post:
      tags:
      - Login Protect
      summary: Add Login Protect User
      description: Use this operation to add a Login Protect user for a site.
      operationId: addLpUser
      parameters:
      - name: account_id
        in: query
        description: Numeric identifier of the account to operate on.
        required: true
        schema:
          type: string
        example: 10
      - name: email
        in: query
        description: Email address.
        required: true
        schema:
          type: string
        example: admin@example.com
      - name: name
        in: query
        description: 'Example: John Smith'
        schema:
          type: string
        example: John Smith
      - name: phone
        in: query
        description: 'Phone number. For example: "1-8662507659"'
        schema:
          type: string
        example: 1-8662507659
      - name: is_phone_verified
        in: query
        description: Whether or not to skip phone verification.
        schema:
          type: boolean
        example: true
      - name: is_email_verified
        in: query
        description: Whether or not to skip email address verification.
        schema:
          type: boolean
        example: true
      - name: should_send_activation_email
        in: query
        description: Whether or not to send activation email to user.
        schema:
          type: boolean
        example: true
      responses:
        '200':
          description: res - contains the specific error code:</br>9403 - Unknown/unauthorized account_id<br/>1001 - E-mail invalid</br>18005 - Login Protect User Exists</br>18006 - Operation Not Allowed</br>18009 - Not Supported Action<br/>18004 - Failed to Send E-Mail
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
  /api/prov/v1/sites/lp/users:
    post:
      tags:
      - Login Protect
      summary: Get Login Protect Users
      description: Use this operation to get the account's login protect user list.
      operationId: getLpUsers
      parameters:
      - name: account_id
        in: query
        description: Numeric identifier of the account to operate on.
        required: true
        schema:
          type: string
        example: 10
      responses:
        '200':
          description: res - contains the specific error code:<br/>18003 - Invalid phone number</br>18004 - Failed to Send E-Mail<br/>9403 - Unknown/unauthorized account_id<br/>1001 - E-mail invalid</br>18005 - Login Protect User Exists<br/>18006 - Operation Not Allowed
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/LoginProtectUsersApiResults'
                - $ref: '#/components/schemas/ApiResult'
  /api/prov/v1/sites/lp/edit-user:
    post:
      tags:
      - Login Protect
      summary: Edit Login Protect User
      description: Edit Login Protect user's settings.
      operationId: editLpUser
      parameters:
      - name: account_id
        in: query
        description: Numeric identifier of the account to operate on.
        required: true
        schema:
          type: string
        example: 10
      - name: email
        in: query
        description: Email address.
        required: true
        schema:
          type: string
        example: admin@example.com
      - name: name
        in: query
        description: 'Example: John Smith'
        schema:
          type: string
        example: John Smith
      - name: phone
        in: query
        description: 'Phone number. For example: "1-8662507659"'
        schema:
          type: string
        example: 1-8662507659
      - name: is_phone_verified
        in: query
        description: Whether or not to skip phone verification.
        schema:
          type: boolean
        example: true
      - name: is_email_verified
        in: query
        description: Whether or not to skip email address verification.
        schema:
          type: boolean
        example: true
      - name: should_send_activation_email
        in: query
        description: Whether or not to send activation email to user.
        schema:
          type: boolean
        example: true
      responses:
        '200':
          description: res - contains the specific error code:<br/>9403 - Unknown/unauthorized account_id<br/>1001 - E-mail invalid<br/>18005 - Login Protect User Exists<br/>18006 - Operation Not Allowed<br/>18009  - Not Supported Action</br>18004 - Failed to Send E-Mail
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
  /api/prov/v1/sites/lp/send-sms:
    post:
      tags:
      - Login Protect
      summary: Send SMS to User
      description: Use this operation to send an SMS to a login protect user.
      operationId: sendSms
      parameters:
      - name: account_id
        in: query
        description: Numeric identifier of the account to operate on.
        required: true
        schema:
          type: string
        example: 10
      - name: email
        in: query
        description: Email address.
        required: true
        schema:
          type: string
        example: admin@example.com
      - name: sms_text
        in: query
        description: Text that will be sent in SMS.
        required: true
        schema:
          type: string
        example: hello
      responses:
        '200':
          description: res - contains the specific error code:<br/>18003 -Invalid phone number<br/>18011 - Invalid SMS Text<br/>9403 - Unknown/unauthorized account_id<br/>18010 - Invalid User<br/>18007 - Exceeded Allowed SMS<br/>18008 - Failed to Send SMS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
  /api/prov/v1/sites/lp/remove:
    post:
      tags:
      - Login Protect
      summary: Remove Login Protect User
      description: Use this operation to remove a login protect user from an account's user list.
      operationId: removeLpUser
      parameters:
      - name: account_id
        in: query
        description: Numeric identifier of the account to operate on.
        required: true
        schema:
          type: string
        example: 10
      - name: email
        in: query
        description: Email address.
        required: true
        schema:
          type: string
        example: admin@example.com
      responses:
        '200':
          description: res - contains the specific error code:<br/>18003 - Invalid phone number<br/>18004 - Failed to Send E-Mail<br/>9403 - Unknown/unauthorized account_id<br/>1001 - E-mail invalid<br/>18005 - Login Protect User Exists<br/>18006 - Operation Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
components:
  schemas:
    APISealLocationItem:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
    ApiResultSiteStatus:
      type: object
      properties:
        res:
          type: integer
          description: res - contains specific error code
          format: int32
          example: 0
        res_message:
          type: string
          example: OK
        debug_info:
          type: array
          items:
            type: object
            additionalProperties:
              type: object
              example: {}
            example: {}
        site_id:
          type: integer
          format: int64
          example: 10
        statusEnum:
          type: string
          example: pending-dns-changes
          enum:
          - pending-dns-changes
          - fully-configured
          - pending-select-approver
          - pending-certificate
          - unknown
        status:
          type: string
          example: pending-dns-changes
        domain:
          type: string
          example: admin@example.com
        account_id:
          type: integer
          format: int64
          example: 1
        acceleration_level:
          type: string
          example: advanced
        site_creation_date:
          type: integer
          format: int64
          example: 1610396346000
        ips:
          type: array
          items:
            type: object
            example: 1.2.3.4
        dns:
          type: array
          items:
            $ref: '#/components/schemas/DnsInstructionItem'
        original_dns:
          type: array
          items:
            $ref: '#/components/schemas/DnsInstructionItem'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/SiteConfigurationWarning'
        active:
          type: string
          example: active
          enum:
          - active
          - bypass
        support_all_tls_versions:
          type: boolean
          example: true
        use_wildcard_san_instead_of_full_domain_san:
          type: boolean
          example: true
        add_naked_domain_san:
          type: boolean
          example: true
        set_site_cookies_without_domain:
          type: boolean
          example: true
        additionalErrors:
          type: array
          items:
            type: object
            example: 1001
        display_name:
          type: string
          example: loginprotectapi1610396334653.incaptest.info
        security:
          type: array
          example:
            waf:
              rules:
              - id: api.threats.bot_access_control
                name: Bot Access Control
                block_bad_bots: true
                challenge_suspected_bots: true
              - id: api.threats.sql_injection
                name: SQL Injection
                action: api.threats.action.block_request
                action_text: Block Request
              - id: api.threats.cross_site_scripting
                name: Cross Site Scripting (XSS)
                exceptions:
                - values:
                  - urls:
                    - value: /gsddg
                      pattern: EQUALS
                    id: api.rule_exception_type.url
                    name: URL
                  id: 244711494
                action: api.threats.action.alert
                action_text: Alert Only
              - id: api.threats.illegal_resource_access
                name: Illegal Resource Access
                action: api.threats.action.block_user
                action_text: Block User
              - id: api.threats.ddos
                name: DDoS
                activation_mode: api.threats.ddos.activation_mode.off
                activation_mode_text: 'Off'
                ddos_traffic_threshold: api.threats.ddos.ddos_trassic_threshold
                ddos_traffic_threshold_text: '750'
              - id: api.threats.backdoor
                name: Backdoor Protect
                action: api.threats.action.quarantine_url
                action_text: Auto-Quarantine
              - action: api.threats.action.block_ip
                action_text: Block IP
                id: api.threats.remote_file_inclusion
                name: Remote File Inclusion
            acls:
              rules:
              - ips:
                - 2.3.4.5
                exceptions:
                - values:
                  - id: api.rule_exception_type.url
                    name: URL
                    urls:
                    - value: /home
                      pattern: EQUALS
                  id: 493271006
                id: api.acl.blacklisted_ips
                name: Visitors from denylisted IPs
          items:
            type: object
            additionalProperties:
              type: object
        sealLocation:
          $ref: '#/components/schemas/APISealLocationItem'
        ssl:
          type: array
          example:
            origin_server:
              detected: 'true'
              detectionStatus: ok
          items:
            type: object
            additionalProperties:
              type: object
        siteDualFactorSettings:
          $ref: '#/components/schemas/SiteDualFactorSettings'
        login_protect:
          $ref: '#/components/schemas/LoginProtectApiResult'
        performance_configuration:
          $ref: '#/components/schemas/PerformanceConfigurationApiResult'
        extended_ddos:
          type: integer
          format: int32
          example: 0
        incap_rules:
          type: array
          items:
            $ref: '#/components/schemas/IncapRuleApiResult'
    LoginProtectApiResult:
      type: object
      properties:
        enabled:
          type: boolean
          example: true
        specific_users_list:
          type: array
          items:
            $ref: '#/components/schemas/specific_users_list'
        send_lp_notifications:
          type: boolean
          example: true
        allow_all_users:
          type: boolean
          example: true
        authentication_methods:
          uniqueItems: true
          type: array
          items:
            type: object
            example: email
        urls:
          type: array
          items:
            type: object
            example: /userlist
        url_patterns:
          type: array
          items:
            type: object
            example: CONTAINS
    PerformanceConfigurationApiResult:
      type: object
      properties:
        advanced_caching_rules:
          type: array
          example:
            never_cache_resources:
            - pattern: SUFFIX
              url: /test.html
            always_cache_resources:
            - pattern: NOT_EQUALS
              url: /index.html
              ttl: '5'
              ttlUnits: SECONDS
            - pattern: EQUALS
              url: /home.html
              ttl: '6'
              ttlUnits: DAYS
          items:
            type: object
            additionalProperties:
              type: object
        acceleration_level:
          type: string
          example: advanced
        async_validation:
          type: boolean
          example: true
        minify_javascript:
          type: boolean
          example: true
        minify_css:
          type: boolean
          example: true
        minify_static_html:
          type: boolean
          example: true
        compress_jpeg:
          type: boolean
          example: true
        compress_jepg:
          type: boolean
          example: true
        progressive_image_rendering:
          type: boolean
          example: true
        aggressive_compression:
          type: boolean
          example: true
        compress_png:
          type: boolean
          example: true
        on_the_fly_compression:
          type: boolean
          example: true
        tcp_pre_pooling:
          type: boolean
          example: true
        comply_no_cache:
          type: boolean
          example: true
        comply_vary:
          type: boolean
          example: true
        use_shortest_caching:
          type: boolean
          example: true
        perfer_last_modified:
          type: boolean
          example: true
        prefer_last_modified:
          type: boolean
          example: true
        disable_client_side_caching:
          type: boolean
          example: true
        cache300x:
          type: boolean
          example: true
        cache_headers:
          uniqueItems: true
          type: array
          items:
            type: object
    ApiResult:
      type: object
      properties:
        res:
          type: integer
          description: res - contains specific error code
          format: int32
          example: 0
        res_message:
          type: string
          example: OK
        debug_info:
          type: array
          items:
            type: object
            additionalProperties:
              type: object
              example: {}
            example: {}
    DnsInstructionItem:
      type: object
      properties:
        dns_record_name:
          type: string
          example: loginprotectapi1610396334653.incaptest.info
        set_type_to:
          type: string
          example: CNAME
          enum:
          - CNAME
          - A
          - AAAA
          - MX
          - NS
          - TXT
          - Unkown
          - CAA
        set_data_to:
          type: array
          items:
            type: object
            example: 67eufzur3g.dev.impervadns.net
    specific_users_list:
      type: object
      properties:
        email:
          type: string
          description: email
          example: John@example.com
        name:
          type: string
          description: name
          example: John Doe
        status:
          type: string
          description: status
          example: INVITATION_SENT
    SiteConfigurationWarning:
      type: object
      properties:
        type:
          type: string
          example: CNAME
          enum:
          - CNAME
          - A
          - AAAA
          - MX
          - NS
          - TXT
          - Unkown
          - CAA
        set_data_to:
          type: array
          items:
            type: object
            example: 67eufzur3g.dev.impervadns.net
    LoginProtectUsersApiResults:
      type: object
      properties:
        users:
          type: array
          items:
            $ref: '#/components/schemas/LpExtendedUser'
    customAreasExceptions:
      type: object
      properties:
        pattern:
          type: string
          example: CONTAINS
          enum:
          - EQUALS
          - NOT_EQUALS
          - NOT_CONTAINS
          - PREFIX
          - SUFFIX
          - NOT_PREFIX
          - NOT_SUFFIX
          - CONTAINS
        url:
          type: string
          example: /userlist
    SiteDualFactorSettings:
      type: object
      properties:
        specificUsers:
          type: array
          items:
            type: string
            example: lpuser1_api1610396342408@incaptest.info
        enabled:
          type: boolean
          example: false
        customAreas:
          type: array
          items:
            $ref: '#/components/schemas/customAreas'
        customAreasExceptions:
          type: array
          items:
            $ref: '#/components/schemas/customAreasExceptions'
        allowAllUsers:
          type: boolean
          example: true
        shouldSuggestApplicatons:
          type: boolean
          example: true
        allowedMedia:
          uniqueItems: true
          type: array
          items:
            type: string
            example: sms
            enum:
            - ga
            - sms
            - email
        shouldSendLoginNotifications:
          type: boolean
          example: true
        application:
          type: boolean
          writeOnly: true
        version:
          type: integer
          format: int32
    IncapRuleApiResult:
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 123
        name:
          type: string
          example: Block Click Worms
        action:
          type: string
          example: api.rule_action_type.rule_action_block
        rule:
          type: string
          example: ClientIP == 1.2.3.4
        creation_date:
          type: integer
          format: int64
        updated_by:
          type: string
          example: John
        updated_at:
          type: integer
          format: int64
          example: 1611228121241
        comment:
          type: string
          example: rule comment
    customAreas:
      type: object
      properties:
        pattern:
          type: string
          example: CONTAINS
          enum:
          - EQUALS
          - NOT_EQUALS
          - NOT_CONTAINS
          - PREFIX
          - SUFFIX
          - NOT_PREFIX
          - NOT_SUFFIX
          - CONTAINS
        url:
          type: string
          example: /userlist
    LpExtendedUser:
      type: object
      properties:
        email:
          type: string
          description: email
          example: John@example.com
        name:
          type: string
          description: name
          example: John Doe
        status:
          type: string
          description: status
          example: INVITATION_SENT
        phone:
          type: string
          description: phone
          example: 1-8662507658
        creation_date:
          type: string
          description: creation_date
          format: date-time
  securitySchemes:
    api_id:
      type: apiKey
      name: x-API-Id
      in: header
    api_key:
      type: apiKey
      name: x-API-Key
      in: header
externalDocs:
  description: Cloud Application Security API Reference
  url: https://docs.imperva.com/bundle/cloud-application-security/page/api/api.htm