import os
from gcore import Gcore
client = Gcore(
api_key=os.environ.get("GCORE_API_KEY"), # This is the default and can be omitted
)
waap_request_details = client.waap.domains.statistics.get_request_details(
request_id="request_id",
domain_id=1,
)
print(waap_request_details.id)package main
import (
"context"
"fmt"
"github.com/G-Core/gcore-go"
"github.com/G-Core/gcore-go/option"
"github.com/G-Core/gcore-go/waap"
)
func main() {
client := gcore.NewClient(
option.WithAPIKey("My API Key"),
)
waapRequestDetails, err := client.Waap.Domains.Statistics.GetRequestDetails(
context.TODO(),
"request_id",
waap.DomainStatisticGetRequestDetailsParams{
DomainID: 1,
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", waapRequestDetails.ID)
}
curl --request GET \
--url https://api.gcore.com/waap/v1/domains/{domain_id}/requests/{request_id}/details \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.gcore.com/waap/v1/domains/{domain_id}/requests/{request_id}/details', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gcore.com/waap/v1/domains/{domain_id}/requests/{request_id}/details",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://api.gcore.com/waap/v1/domains/{domain_id}/requests/{request_id}/details")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/waap/v1/domains/{domain_id}/requests/{request_id}/details")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "96763b8fb655e9f18a2e04097b704e39-458959",
"path": "/new_index",
"method": "GET",
"action": "block",
"rule_id": "86",
"rule_name": "SQL Injection",
"user_agent": {
"full_string": "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.1.1599.114 Safari/537.36 Puffin/4.5.0IT",
"client": "Firefox",
"client_version": "44.3",
"base_browser": "Chrome",
"base_browser_version": "47.0.2526.83",
"os": "Android",
"device": "Amazon Kindle Fire HDX 7",
"device_type": "mobile",
"cpu": "intel",
"rendering_engine": "AppleWebKit",
"client_type": "Custom Browser"
},
"network": {
"client_ip": "116.83.107.125",
"country": "IL",
"organization": {
"name": "InfoWeb(Fujitsu Ltd",
"subnet": "116.83.0.0-116.83.127.255"
}
},
"request_time": "2025-08-28T07:13:59",
"reference_id": "ad07c06f19054e484974fa22e9fb6bb1",
"session_id": "0c74d14951b22dc3f22cbba9668ecea1",
"content_type": "text/html; charset=UTF-8",
"scheme": "https",
"http_status_code": 200,
"http_version": "1.1",
"response_time": "3",
"request_headers": {
"ACCEPT": "*/*",
"ACCEPT-ENCODING": "gzip, deflate",
"CONNECTION": "keep-alive",
"HOST": "oih.jung.fblcloud-qa.net",
"USER-AGENT": "Firefox/44.3",
"X-FORWARDED-FOR": "169.54.212.219",
"X-FORWARDED-PORT": "80",
"X-FORWARDED-PROTO": "http"
},
"incident_id": "9f06152824394345",
"request_type": "block",
"session_request_count": "1",
"domain": "example.com",
"requested_domain": "example.com",
"query_string": "q=select%20user%20from%20master..a",
"result": "passed",
"traffic_types": [
"sanctioned",
"policy_blocked"
],
"pattern_matched_tags": [
{
"tag": "sql",
"display_name": "SQL Injection",
"description": "This client attempted insertion or “injection” of a SQL query via the input data from the client to the application. A successful SQL injection exploit can read sensitive data from the database, modify database data, etc.",
"field": "uri",
"field_name": "q",
"pattern_name": "SQL Injection Prevention",
"pattern_value": "select user from master..",
"execution_phase": "access"
}
],
"common_tags": [
{
"tag": "injectionattack",
"display_name": "Injection Attack",
"description": "Multiple injection attempts were detected."
}
],
"decision": "blocked",
"optional_action": "captcha",
"ja3": "e7d705a3286e19ea42f587b344ee6865",
"ja4": "t13d3113h2_e8f1e7e78f70_ce5650b735ce",
"detector": [
{
"rule_name": "Code Injection Attack Prevention",
"rule_id": "ID842",
"subject_field": "fileName",
"subject_type": "body",
"matched_content": "etc%2Fhttpd"
}
]
}{
"type": "http-bad-request",
"title": "Bad Request",
"status": 400,
"detail": "Invalid domain name: ''''"
}{
"detail": "Auth token is missing or invalid"
}{
"detail": "Permission denied"
}{
"type": "http-not-found",
"title": "Not Found",
"status": 404,
"detail": "The resource is not found"
}{
"type": "request-validation-failed",
"title": "Request validation error.",
"status": 422,
"detail": "One or more fields have validation errors.",
"errors": [
{
"loc": [
"body",
"name"
],
"detail": "Input should be a valid string"
},
{
"loc": [
"body",
"date"
],
"detail": "Field required"
},
{
"loc": [
"query",
"limit"
],
"detail": "Field required"
}
]
}{
"type": "internal-server-error",
"title": "Internal server error.",
"status": 500,
"detail": "An unexpected condition was encountered which prevented the server from fulfilling the request."
}Get Request Details
Retrieves all the available information for a request that matches a given request id
import os
from gcore import Gcore
client = Gcore(
api_key=os.environ.get("GCORE_API_KEY"), # This is the default and can be omitted
)
waap_request_details = client.waap.domains.statistics.get_request_details(
request_id="request_id",
domain_id=1,
)
print(waap_request_details.id)package main
import (
"context"
"fmt"
"github.com/G-Core/gcore-go"
"github.com/G-Core/gcore-go/option"
"github.com/G-Core/gcore-go/waap"
)
func main() {
client := gcore.NewClient(
option.WithAPIKey("My API Key"),
)
waapRequestDetails, err := client.Waap.Domains.Statistics.GetRequestDetails(
context.TODO(),
"request_id",
waap.DomainStatisticGetRequestDetailsParams{
DomainID: 1,
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", waapRequestDetails.ID)
}
curl --request GET \
--url https://api.gcore.com/waap/v1/domains/{domain_id}/requests/{request_id}/details \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.gcore.com/waap/v1/domains/{domain_id}/requests/{request_id}/details', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gcore.com/waap/v1/domains/{domain_id}/requests/{request_id}/details",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://api.gcore.com/waap/v1/domains/{domain_id}/requests/{request_id}/details")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/waap/v1/domains/{domain_id}/requests/{request_id}/details")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "96763b8fb655e9f18a2e04097b704e39-458959",
"path": "/new_index",
"method": "GET",
"action": "block",
"rule_id": "86",
"rule_name": "SQL Injection",
"user_agent": {
"full_string": "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.1.1599.114 Safari/537.36 Puffin/4.5.0IT",
"client": "Firefox",
"client_version": "44.3",
"base_browser": "Chrome",
"base_browser_version": "47.0.2526.83",
"os": "Android",
"device": "Amazon Kindle Fire HDX 7",
"device_type": "mobile",
"cpu": "intel",
"rendering_engine": "AppleWebKit",
"client_type": "Custom Browser"
},
"network": {
"client_ip": "116.83.107.125",
"country": "IL",
"organization": {
"name": "InfoWeb(Fujitsu Ltd",
"subnet": "116.83.0.0-116.83.127.255"
}
},
"request_time": "2025-08-28T07:13:59",
"reference_id": "ad07c06f19054e484974fa22e9fb6bb1",
"session_id": "0c74d14951b22dc3f22cbba9668ecea1",
"content_type": "text/html; charset=UTF-8",
"scheme": "https",
"http_status_code": 200,
"http_version": "1.1",
"response_time": "3",
"request_headers": {
"ACCEPT": "*/*",
"ACCEPT-ENCODING": "gzip, deflate",
"CONNECTION": "keep-alive",
"HOST": "oih.jung.fblcloud-qa.net",
"USER-AGENT": "Firefox/44.3",
"X-FORWARDED-FOR": "169.54.212.219",
"X-FORWARDED-PORT": "80",
"X-FORWARDED-PROTO": "http"
},
"incident_id": "9f06152824394345",
"request_type": "block",
"session_request_count": "1",
"domain": "example.com",
"requested_domain": "example.com",
"query_string": "q=select%20user%20from%20master..a",
"result": "passed",
"traffic_types": [
"sanctioned",
"policy_blocked"
],
"pattern_matched_tags": [
{
"tag": "sql",
"display_name": "SQL Injection",
"description": "This client attempted insertion or “injection” of a SQL query via the input data from the client to the application. A successful SQL injection exploit can read sensitive data from the database, modify database data, etc.",
"field": "uri",
"field_name": "q",
"pattern_name": "SQL Injection Prevention",
"pattern_value": "select user from master..",
"execution_phase": "access"
}
],
"common_tags": [
{
"tag": "injectionattack",
"display_name": "Injection Attack",
"description": "Multiple injection attempts were detected."
}
],
"decision": "blocked",
"optional_action": "captcha",
"ja3": "e7d705a3286e19ea42f587b344ee6865",
"ja4": "t13d3113h2_e8f1e7e78f70_ce5650b735ce",
"detector": [
{
"rule_name": "Code Injection Attack Prevention",
"rule_id": "ID842",
"subject_field": "fileName",
"subject_type": "body",
"matched_content": "etc%2Fhttpd"
}
]
}{
"type": "http-bad-request",
"title": "Bad Request",
"status": 400,
"detail": "Invalid domain name: ''''"
}{
"detail": "Auth token is missing or invalid"
}{
"detail": "Permission denied"
}{
"type": "http-not-found",
"title": "Not Found",
"status": 404,
"detail": "The resource is not found"
}{
"type": "request-validation-failed",
"title": "Request validation error.",
"status": 422,
"detail": "One or more fields have validation errors.",
"errors": [
{
"loc": [
"body",
"name"
],
"detail": "Input should be a valid string"
},
{
"loc": [
"body",
"date"
],
"detail": "Field required"
},
{
"loc": [
"query",
"limit"
],
"detail": "Field required"
}
]
}{
"type": "internal-server-error",
"title": "Internal server error.",
"status": 500,
"detail": "An unexpected condition was encountered which prevented the server from fulfilling the request."
}Authorizations
API key for authentication. Make sure to include the word apikey, followed by a single space and then your token.
Example: apikey 1234_abcdef
Response
Successful Response
Request's details used when displaying a single request.
Request ID
"96763b8fb655e9f18a2e04097b704e39-458959"
Request path
"/new_index"
Request method
"GET"
Request action
"block"
ID of the triggered rule
"86"
Name of the triggered rule
"SQL Injection"
User agent
Show child attributes
Show child attributes
Network details
Show child attributes
Show child attributes
The time of the request
"2025-08-28T07:13:59"
Reference ID to identify user sanction
"ad07c06f19054e484974fa22e9fb6bb1"
The session ID associated with the request.
"0c74d14951b22dc3f22cbba9668ecea1"
Content type of request
"text/html; charset=UTF-8"
The URI scheme of the request that generated an event
"https"
Status code for http request
200
HTTP version of request
"1.1"
Time took to process all request
"3"
HTTP request headers
{ "ACCEPT": "*/*", "ACCEPT-ENCODING": "gzip, deflate", "CONNECTION": "keep-alive", "HOST": "oih.jung.fblcloud-qa.net", "USER-AGENT": "Firefox/44.3", "X-FORWARDED-FOR": "169.54.212.219", "X-FORWARDED-PORT": "80", "X-FORWARDED-PROTO": "http" }
ID of challenge that was generated
"9f06152824394345"
The type of the request that generated an event
"block"
The number requests in session
"1"
Domain name
"example.com"
The real domain name
"example.com"
The query string of the request
"q=select%20user%20from%20master..a"
The result of a request
passed, blocked, suppressed, "passed"
List of traffic types
["sanctioned", "policy_blocked"]
List of shield tags
Show child attributes
Show child attributes
List of common tags
Show child attributes
Show child attributes
The decision made for processing the request through the WAAP.
passed, allowed, monitored, blocked, "blocked"
An optional action that may be applied in addition to the primary decision.
captcha, challenge, "captcha"
JA3 TLS client fingerprint as a 32-character lowercase hexadecimal MD5 hash, or an empty string when the record has no JA3 value.
"e7d705a3286e19ea42f587b344ee6865"
JA4 TLS client fingerprint in the form <ja4_a>_<ja4_b>_<ja4_c> (a 10-character prefix and two 12-character lowercase hexadecimal hashes), or an empty string when the record has no JA4 value.
"t13d3113h2_e8f1e7e78f70_ce5650b735ce"
Rules that matched the request and triggered the event decision.
Show child attributes
Show child attributes
Was this page helpful?