Version 2.1.1792967583 · latest Download OpenAPI Markdown

CC filters

How matched requests are handled: rate limiting or a challenge (JS, slider, captcha and so on).

cc-filtersProtectionAuthentication: User (some parameters admin only)5 endpoints

List CC filters

GET/api/v2/cc-filters
Authentication: User (some parameters admin only)

Query parameters

FieldTypeRequiredDescription
pageinteger— Page number, starting from 1
Default 1
page_sizeinteger— Items per page
Default 20
sortstring— Sort fields, comma-separated; prefix `-` for descending, e.g. `-created_at,id`
tenant_idinteger— Admin only: filter by tenant. Ignored for tenant credentials, which only see their own tenant's data
namestring— Filter by name substring.
ownerstring— platform = platform objects only; tenant = tenant objects only.
Values ["platform","tenant"]

Create CC filter

POST/api/v2/cc-filters
Authentication: User (some parameters admin only)

Request body application/json

FieldTypeRequiredDescription
count_keystring— Who to count by (rate/challenge): ip = client IP (default, existing behavior); ja4 = TLS fingerprint only, regardless of IP — real visitors sharing the fingerprint are counted together, so it is allowed with the log action only (a rule item with ban/deny is rejected with 422); to punish use ip_ja4 = same IP and same fingerprint combined. Plaintext requests have no fingerprint, so ja4/ip_ja4 fall back to IP. Not used by url_auth (must be ip).
Values ["ip","ja4","ip_ja4"]
desstring— Remark; empty if omitted (omitting it on update also clears it, since the update replaces the whole object).
kindstring— Challenge type (required for challenge): js/redirect/slide/captcha/click/delay_jump/rotate/cookie; not used for rate.
maxintegerRequired Requests allowed within the window.
modestring— Required for url_auth: signing scheme. a = ?<sign_arg>=md5(key+path+timestamp)&<time_arg>=timestamp; b = ?<sign_arg>=timestamp-random-uid-md5(path-timestamp-random-uid-key).
Values ["a","b"]
namestringRequired Name
per_uri_maxinteger— rate: per-URI limit; 0 = unlimited.
sign_argstring— Required for url_auth: name of the signature query parameter (letters, digits, underscore, hyphen).
sign_use_maxinteger— url_auth: how many times the same signature may be used; 0 = unlimited.
time_argstring— Required for url_auth with mode=a: name of the timestamp query parameter; not used with mode=b.
ttl_sinteger— Required for url_auth (1 to 2592000): maximum difference in seconds between the signed timestamp and the current time.
typestringRequired rate = request rate; challenge = challenge (the type is given by kind); url_auth = URL signature check (the signing key is the site's config.url_auth_salt).
Values ["rate","challenge","url_auth"]
window_sintegerRequired Counting window in seconds.

Get CC filter

GET/api/v2/cc-filters/{id}
Authentication: User (some parameters admin only)

Update CC filter

PUT/api/v2/cc-filters/{id}
Authentication: User (some parameters admin only)

Request body application/json

FieldTypeRequiredDescription
count_keystring— Who to count by (rate/challenge): ip = client IP (default, existing behavior); ja4 = TLS fingerprint only, regardless of IP — real visitors sharing the fingerprint are counted together, so it is allowed with the log action only (a rule item with ban/deny is rejected with 422); to punish use ip_ja4 = same IP and same fingerprint combined. Plaintext requests have no fingerprint, so ja4/ip_ja4 fall back to IP. Not used by url_auth (must be ip).
Values ["ip","ja4","ip_ja4"]
desstring— Remark; empty if omitted (omitting it on update also clears it, since the update replaces the whole object).
kindstring— Challenge type (required for challenge): js/redirect/slide/captcha/click/delay_jump/rotate/cookie; not used for rate.
maxintegerRequired Requests allowed within the window.
modestring— Required for url_auth: signing scheme. a = ?<sign_arg>=md5(key+path+timestamp)&<time_arg>=timestamp; b = ?<sign_arg>=timestamp-random-uid-md5(path-timestamp-random-uid-key).
Values ["a","b"]
namestringRequired Name
per_uri_maxinteger— rate: per-URI limit; 0 = unlimited.
sign_argstring— Required for url_auth: name of the signature query parameter (letters, digits, underscore, hyphen).
sign_use_maxinteger— url_auth: how many times the same signature may be used; 0 = unlimited.
time_argstring— Required for url_auth with mode=a: name of the timestamp query parameter; not used with mode=b.
ttl_sinteger— Required for url_auth (1 to 2592000): maximum difference in seconds between the signed timestamp and the current time.
typestringRequired rate = request rate; challenge = challenge (the type is given by kind); url_auth = URL signature check (the signing key is the site's config.url_auth_salt).
Values ["rate","challenge","url_auth"]
window_sintegerRequired Counting window in seconds.

Delete CC filter

DELETE/api/v2/cc-filters/{id}
Authentication: User (some parameters admin only)

CC filters object

FieldTypeRequiredDescription
builtinboolean— Built-in object; cannot be deleted.
read-only
count_keystring— Who to count by (rate/challenge): ip = client IP (default, existing behavior); ja4 = TLS fingerprint only, regardless of IP — real visitors sharing the fingerprint are counted together, so it is allowed with the log action only (a rule item with ban/deny is rejected with 422); to punish use ip_ja4 = same IP and same fingerprint combined. Plaintext requests have no fingerprint, so ja4/ip_ja4 fall back to IP. Not used by url_auth (must be ip).
Values ["ip","ja4","ip_ja4"]
created_atstring— Created at
read-only
desstring— Remark; empty if omitted (omitting it on update also clears it, since the update replaces the whole object).
idinteger— Record ID
read-only
kindstring— Challenge type (required for challenge): js/redirect/slide/captcha/click/delay_jump/rotate/cookie; not used for rate.
maxinteger— Requests allowed within the window.
modestring— Required for url_auth: signing scheme. a = ?<sign_arg>=md5(key+path+timestamp)&<time_arg>=timestamp; b = ?<sign_arg>=timestamp-random-uid-md5(path-timestamp-random-uid-key).
Values ["a","b"]
namestring— Name
per_uri_maxinteger— rate: per-URI limit; 0 = unlimited.
sign_argstring— Required for url_auth: name of the signature query parameter (letters, digits, underscore, hyphen).
sign_use_maxinteger— url_auth: how many times the same signature may be used; 0 = unlimited.
tenant_idinteger— Owning tenant; null = platform object (built-in or created by an admin, read-only for tenants).
read-only
time_argstring— Required for url_auth with mode=a: name of the timestamp query parameter; not used with mode=b.
ttl_sinteger— Required for url_auth (1 to 2592000): maximum difference in seconds between the signed timestamp and the current time.
typestring— rate = request rate; challenge = challenge (the type is given by kind); url_auth = URL signature check (the signing key is the site's config.url_auth_salt).
Values ["rate","challenge","url_auth"]
updated_atstring— Updated at
read-only
window_sinteger— Counting window in seconds.