Imperva Login Protect API
Provision Login Protect users and configure protected pages.
Provision Login Protect users and configure protected pages.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/imperva-login-protect-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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