From f9e75087e1e34af66ee1bd30363dbc7b8178e390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Makarsk=C3=BD?= Date: Wed, 31 Aug 2022 12:44:15 +0200 Subject: [PATCH 01/26] docs: minor readme fixes --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8cf29e0..23113fc 100644 --- a/README.md +++ b/README.md @@ -27,27 +27,27 @@ > :warning: **Work in progress**: This is a beta version of the library -# Fingerprint Pro Server Go SDK +# Fingerprint Pro Server API Go SDK Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. This Go package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: - API version: 3 - Package version: 1.0.0-test.5 -- Build package: io.swagger.codegen.v3.generators.go.GoClientCodegen +- Build package: `io.swagger.codegen.v3.generators.go.GoClientCodegen` -## Requirements. +## Requirements Go Lang 1.17 or higher ## Installation & Usage -You can get the package directly from GitHub: +Get the package directly from GitHub: ```shell go get github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk ``` -Then import it: +Import it: ```go import "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" ``` @@ -123,7 +123,7 @@ Class | Method | HTTP request | Description - [Visit](docs/Visit.md) - [WebhookVisit](docs/WebhookVisit.md) -## Documentation For Authorization +## Authorization Documentation ## ApiKeyHeader From 430d40eda40361e1c2cef7b3cad0482c606aa68f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Makarsk=C3=BD?= Date: Thu, 1 Sep 2022 12:18:40 +0200 Subject: [PATCH 02/26] docs: simplify instructions --- README.md | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 23113fc..1d76d1f 100644 --- a/README.md +++ b/README.md @@ -42,19 +42,13 @@ Go Lang 1.17 or higher ## Installation & Usage -Get the package directly from GitHub: +1. Get the package from GitHub: ```shell go get github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk ``` -Import it: -```go -import "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" -``` - -## Getting started +2. Import and use the library: -Please follow the [installation procedure](#installation--usage) and then run the following: ```go package main @@ -94,12 +88,12 @@ func main() { ``` -You can also check examples located in [example](./example) directory. - -To run the example: -```shell -cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run GetVisits_APIKey.go -``` +> **Note** +> You can also check examples located in [example](./example) directory. +> To run the examples: +> ```shell +> cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run GetVisits_APIKey.go +> ``` ## Documentation for API Endpoints From cc55a2c2a6cf35fb9f996c8459dba705560fdf77 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 1 Sep 2022 10:25:03 +0000 Subject: [PATCH 03/26] chore(release): 1.0.0 [skip ci] ## 1.0.0 (2022-09-01) ### Features * add "integrationsInfo" query param ([b326815](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/b326815f69b92c3c1d2d691a99c8483753ec6e49)) * create Go SDK ([a5e03b5](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/a5e03b5b1ad5e58441d88faf992f5f6e08033d55)) * support passing region ([1ba2e94](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/1ba2e941ae8fe65abd706f7e5506953b03cde9ab)) ### Bug Fixes * send API key only in headers ([92a4f88](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/92a4f886b6876d878d9c7ca61f6b4e3af34445d6)) * support nil values for time.Time ([459ba4c](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/459ba4c8dde6c6e1428fdeb9b0c2975de1a2f1d6)) * use config.json as single source of truth ([519f0d7](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/519f0d7b0c7c84fc164c4cf71440a83c87ab6239)) ### Documentation * **README:** fix installation cmd typo ([2017b4c](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/2017b4c890cf7d0cb6b9dd1df5a374a8af2e96a4)) * **README:** remove unnecessary import from example ([e6759e7](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/e6759e71e712cff1508fbfc88a941e68244bbd66)) * **README:** update readme ([ae4e0ea](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/ae4e0ea67c95598f3771cd1e7c89189bab17793e)) --- CHANGELOG.md | 23 +++++++++++++++++++++++ README.md | 32 +++++++++++++++++++------------- config.json | 2 +- sdk/api_fingerprint.go | 2 +- sdk/configuration.go | 2 +- 5 files changed, 45 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25d68e4..645e57c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,26 @@ +## 1.0.0 (2022-09-01) + + +### Features + +* add "integrationsInfo" query param ([b326815](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/b326815f69b92c3c1d2d691a99c8483753ec6e49)) +* create Go SDK ([a5e03b5](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/a5e03b5b1ad5e58441d88faf992f5f6e08033d55)) +* support passing region ([1ba2e94](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/1ba2e941ae8fe65abd706f7e5506953b03cde9ab)) + + +### Bug Fixes + +* send API key only in headers ([92a4f88](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/92a4f886b6876d878d9c7ca61f6b4e3af34445d6)) +* support nil values for time.Time ([459ba4c](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/459ba4c8dde6c6e1428fdeb9b0c2975de1a2f1d6)) +* use config.json as single source of truth ([519f0d7](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/519f0d7b0c7c84fc164c4cf71440a83c87ab6239)) + + +### Documentation + +* **README:** fix installation cmd typo ([2017b4c](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/2017b4c890cf7d0cb6b9dd1df5a374a8af2e96a4)) +* **README:** remove unnecessary import from example ([e6759e7](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/e6759e71e712cff1508fbfc88a941e68244bbd66)) +* **README:** update readme ([ae4e0ea](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/ae4e0ea67c95598f3771cd1e7c89189bab17793e)) + ## [1.0.0-test.5](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.0.0-test.4...v1.0.0-test.5) (2022-08-29) diff --git a/README.md b/README.md index 1d76d1f..7e85526 100644 --- a/README.md +++ b/README.md @@ -27,28 +27,34 @@ > :warning: **Work in progress**: This is a beta version of the library -# Fingerprint Pro Server API Go SDK +# Fingerprint Pro Server Go SDK Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. This Go package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: - API version: 3 -- Package version: 1.0.0-test.5 -- Build package: `io.swagger.codegen.v3.generators.go.GoClientCodegen` +- Package version: 1.0.0 +- Build package: io.swagger.codegen.v3.generators.go.GoClientCodegen -## Requirements +## Requirements. Go Lang 1.17 or higher ## Installation & Usage -1. Get the package from GitHub: +You can get the package directly from GitHub: ```shell go get github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk ``` -2. Import and use the library: +Then import it: +```go +import "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" +``` + +## Getting started +Please follow the [installation procedure](#installation--usage) and then run the following: ```go package main @@ -88,12 +94,12 @@ func main() { ``` -> **Note** -> You can also check examples located in [example](./example) directory. -> To run the examples: -> ```shell -> cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run GetVisits_APIKey.go -> ``` +You can also check examples located in [example](./example) directory. + +To run the example: +```shell +cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run GetVisits_APIKey.go +``` ## Documentation for API Endpoints @@ -117,7 +123,7 @@ Class | Method | HTTP request | Description - [Visit](docs/Visit.md) - [WebhookVisit](docs/WebhookVisit.md) -## Authorization Documentation +## Documentation For Authorization ## ApiKeyHeader diff --git a/config.json b/config.json index e6d442e..151e50a 100644 --- a/config.json +++ b/config.json @@ -1,5 +1,5 @@ { - "packageVersion": "1.0.0-test.5", + "packageVersion": "1.0.0", "gitRepoId": "fingerprint-pro-server-api-go-sdk", "gitUserId": "fingerprintjs", "packageName": "sdk", diff --git a/sdk/api_fingerprint.go b/sdk/api_fingerprint.go index b47e43e..b64d615 100644 --- a/sdk/api_fingerprint.go +++ b/sdk/api_fingerprint.go @@ -58,7 +58,7 @@ func (a *FingerprintApiService) GetVisits(ctx context.Context, visitorId string, localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.0.0-test.5") + localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.0.0") if localVarOptionals != nil { diff --git a/sdk/configuration.go b/sdk/configuration.go index 59516c1..a4644f1 100644 --- a/sdk/configuration.go +++ b/sdk/configuration.go @@ -93,7 +93,7 @@ func (c *Configuration) AddDefaultHeader(key string, value string) { func NewConfiguration() *Configuration { cfg := &Configuration{ DefaultHeader: make(map[string]string), - UserAgent: "Swagger-Codegen/1.0.0-test.5/go", + UserAgent: "Swagger-Codegen/1.0.0/go", region: RegionUS, } cfg.basePath = resolveBasePath(cfg.region) From 5d910ae9a0d43e19647d5982eefec536502f616f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Thu, 1 Sep 2022 11:31:25 +0100 Subject: [PATCH 04/26] docs(README): remove WIP label --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 7e85526..4209189 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,6 @@

-> :warning: **Work in progress**: This is a beta version of the library - # Fingerprint Pro Server Go SDK Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. From 00a24dd7d161777736ed66c53e51f7a9e138a939 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 1 Sep 2022 10:34:16 +0000 Subject: [PATCH 05/26] chore(release): 1.0.1 [skip ci] ## [1.0.1](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.0.0...v1.0.1) (2022-09-01) ### Documentation * **README:** remove WIP label ([5d910ae](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/5d910ae9a0d43e19647d5982eefec536502f616f)) --- CHANGELOG.md | 7 +++++++ README.md | 4 +++- config.json | 2 +- sdk/api_fingerprint.go | 2 +- sdk/configuration.go | 2 +- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 645e57c..c871cfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.0.1](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.0.0...v1.0.1) (2022-09-01) + + +### Documentation + +* **README:** remove WIP label ([5d910ae](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/5d910ae9a0d43e19647d5982eefec536502f616f)) + ## 1.0.0 (2022-09-01) diff --git a/README.md b/README.md index 4209189..1553e7c 100644 --- a/README.md +++ b/README.md @@ -25,13 +25,15 @@

+> :warning: **Work in progress**: This is a beta version of the library + # Fingerprint Pro Server Go SDK Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. This Go package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: - API version: 3 -- Package version: 1.0.0 +- Package version: 1.0.1 - Build package: io.swagger.codegen.v3.generators.go.GoClientCodegen ## Requirements. diff --git a/config.json b/config.json index 151e50a..f07bad7 100644 --- a/config.json +++ b/config.json @@ -1,5 +1,5 @@ { - "packageVersion": "1.0.0", + "packageVersion": "1.0.1", "gitRepoId": "fingerprint-pro-server-api-go-sdk", "gitUserId": "fingerprintjs", "packageName": "sdk", diff --git a/sdk/api_fingerprint.go b/sdk/api_fingerprint.go index b64d615..f7e2da8 100644 --- a/sdk/api_fingerprint.go +++ b/sdk/api_fingerprint.go @@ -58,7 +58,7 @@ func (a *FingerprintApiService) GetVisits(ctx context.Context, visitorId string, localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.0.0") + localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.0.1") if localVarOptionals != nil { diff --git a/sdk/configuration.go b/sdk/configuration.go index a4644f1..275bc68 100644 --- a/sdk/configuration.go +++ b/sdk/configuration.go @@ -93,7 +93,7 @@ func (c *Configuration) AddDefaultHeader(key string, value string) { func NewConfiguration() *Configuration { cfg := &Configuration{ DefaultHeader: make(map[string]string), - UserAgent: "Swagger-Codegen/1.0.0/go", + UserAgent: "Swagger-Codegen/1.0.1/go", region: RegionUS, } cfg.basePath = resolveBasePath(cfg.region) From 0bb391711ec3625af7c8ffb2de6bdc525758fbf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Thu, 1 Sep 2022 12:54:28 +0100 Subject: [PATCH 06/26] docs(README): update template --- README.md | 31 ++++++++----------------------- template/README.mustache | 31 ++++++++----------------------- 2 files changed, 16 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index 1553e7c..0cfafdc 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,6 @@

-> :warning: **Work in progress**: This is a beta version of the library - # Fingerprint Pro Server Go SDK Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. @@ -42,19 +40,13 @@ Go Lang 1.17 or higher ## Installation & Usage -You can get the package directly from GitHub: +1. Get the package from GitHub: ```shell go get github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk ``` -Then import it: -```go -import "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" -``` - -## Getting started +2. Import and use the library: -Please follow the [installation procedure](#installation--usage) and then run the following: ```go package main @@ -69,37 +61,30 @@ import ( func main() { cfg := sdk.NewConfiguration() client := sdk.NewAPIClient(cfg) - // Configure authorization, in our case with API Key auth := context.WithValue(context.Background(), sdk.ContextAPIKey, sdk.APIKey{ Key: "SECRET_API_KEY", }) - // Usually this data will come from your frontend app visitorId := "VISITOR_ID" opts := sdk.FingerprintApiGetVisitsOpts{ RequestId: optional.NewString("REQUEST_ID"), } - response, httpRes, err := client.FingerprintApi.GetVisits(auth, visitorId, &opts) - fmt.Printf("%+v\n", httpRes) - if err != nil { log.Fatal(err) } - fmt.Printf("Got response with visitorId: %s", response.VisitorId) } - ``` -You can also check examples located in [example](./example) directory. - -To run the example: -```shell -cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run GetVisits_APIKey.go -``` +> **Note** +> You can also check examples located in [example](./example) directory. +> To run the examples: +> ```shell +> cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run GetVisits_APIKey.go +> ``` ## Documentation for API Endpoints diff --git a/template/README.mustache b/template/README.mustache index 9045a73..c4ef5e2 100644 --- a/template/README.mustache +++ b/template/README.mustache @@ -25,8 +25,6 @@

-> :warning: **Work in progress**: This is a beta version of the library - # Fingerprint Pro Server Go SDK {{#appDescription}} {{{appDescription}}} @@ -50,19 +48,13 @@ Go Lang 1.17 or higher ## Installation & Usage -You can get the package directly from GitHub: +1. Get the package from GitHub: ```shell go get github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk ``` -Then import it: -```go -import "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" -``` - -## Getting started +2. Import and use the library: -Please follow the [installation procedure](#installation--usage) and then run the following: ```go package main @@ -77,37 +69,30 @@ import ( func main() { cfg := sdk.NewConfiguration() client := sdk.NewAPIClient(cfg) - // Configure authorization, in our case with API Key auth := context.WithValue(context.Background(), sdk.ContextAPIKey, sdk.APIKey{ Key: "SECRET_API_KEY", }) - // Usually this data will come from your frontend app visitorId := "VISITOR_ID" opts := sdk.FingerprintApiGetVisitsOpts{ RequestId: optional.NewString("REQUEST_ID"), } - response, httpRes, err := client.FingerprintApi.GetVisits(auth, visitorId, &opts) - fmt.Printf("%+v\n", httpRes) - if err != nil { log.Fatal(err) } - fmt.Printf("Got response with visitorId: %s", response.VisitorId) } - ``` -You can also check examples located in [example](./example) directory. - -To run the example: -```shell -cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run GetVisits_APIKey.go -``` +> **Note** +> You can also check examples located in [example](./example) directory. +> To run the examples: +> ```shell +> cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run GetVisits_APIKey.go +> ``` ## Documentation for API Endpoints From fa3566b5edbf3c3546a62a9ef69631927496a383 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 1 Sep 2022 11:57:23 +0000 Subject: [PATCH 07/26] chore(release): 1.0.2 [skip ci] ## [1.0.2](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.0.1...v1.0.2) (2022-09-01) ### Documentation * **README:** update template ([0bb3917](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/0bb391711ec3625af7c8ffb2de6bdc525758fbf1)) --- CHANGELOG.md | 7 +++++++ README.md | 2 +- config.json | 2 +- sdk/api_fingerprint.go | 2 +- sdk/configuration.go | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c871cfd..5d69792 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.0.2](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.0.1...v1.0.2) (2022-09-01) + + +### Documentation + +* **README:** update template ([0bb3917](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/0bb391711ec3625af7c8ffb2de6bdc525758fbf1)) + ## [1.0.1](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.0.0...v1.0.1) (2022-09-01) diff --git a/README.md b/README.md index 0cfafdc..1c32e95 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Fingerprint Pro Server API provides a way for validating visitors’ data issued This Go package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: - API version: 3 -- Package version: 1.0.1 +- Package version: 1.0.2 - Build package: io.swagger.codegen.v3.generators.go.GoClientCodegen ## Requirements. diff --git a/config.json b/config.json index f07bad7..69f657e 100644 --- a/config.json +++ b/config.json @@ -1,5 +1,5 @@ { - "packageVersion": "1.0.1", + "packageVersion": "1.0.2", "gitRepoId": "fingerprint-pro-server-api-go-sdk", "gitUserId": "fingerprintjs", "packageName": "sdk", diff --git a/sdk/api_fingerprint.go b/sdk/api_fingerprint.go index f7e2da8..bd76eaa 100644 --- a/sdk/api_fingerprint.go +++ b/sdk/api_fingerprint.go @@ -58,7 +58,7 @@ func (a *FingerprintApiService) GetVisits(ctx context.Context, visitorId string, localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.0.1") + localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.0.2") if localVarOptionals != nil { diff --git a/sdk/configuration.go b/sdk/configuration.go index 275bc68..2f52a8e 100644 --- a/sdk/configuration.go +++ b/sdk/configuration.go @@ -93,7 +93,7 @@ func (c *Configuration) AddDefaultHeader(key string, value string) { func NewConfiguration() *Configuration { cfg := &Configuration{ DefaultHeader: make(map[string]string), - UserAgent: "Swagger-Codegen/1.0.1/go", + UserAgent: "Swagger-Codegen/1.0.2/go", region: RegionUS, } cfg.basePath = resolveBasePath(cfg.region) From 74a39b609b64ef2f9b7eae76972d7e4532b1867b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Tue, 6 Sep 2022 13:52:40 +0100 Subject: [PATCH 08/26] feat: introduce /event/{request_id} endpoint --- README.md | 13 +- ...AllOfProductsResponseIdentificationData.md | 23 ++++ docs/AllOfResponseVisitsItems.md | 22 +++ docs/BotdDetectionResult.md | 9 ++ docs/BotdResult.md | 11 ++ docs/ErrorResponse.md | 9 ++ docs/ErrorResponseError.md | 10 ++ docs/EventResponse.md | 9 ++ docs/FingerprintApi.md | 29 ++++ docs/ProductsResponse.md | 10 ++ docs/ProductsResponseBotd.md | 9 ++ docs/ProductsResponseIdentification.md | 9 ++ docs/Response.md | 2 +- docs/Visit.md | 2 +- docs/WebhookVisit.md | 2 +- example/events/GetEvent_APIKey.go | 37 +++++ example/{ => visits}/GetVisits_APIKey.go | 2 +- generate.go | 2 +- sdk/api_fingerprint.go | 129 +++++++++++++++++- ...f_products_response_identification_data.go | 40 ++++++ sdk/model_all_of_response_visits_items.go | 39 ++++++ sdk/model_botd_detection_result.go | 16 +++ sdk/model_botd_result.go | 23 ++++ sdk/model_error_response.go | 14 ++ sdk/model_error_response_error.go | 15 ++ sdk/model_event_response.go | 15 ++ sdk/model_map.go | 2 +- sdk/model_products_response.go | 16 +++ sdk/model_products_response_botd.go | 14 ++ sdk/model_products_response_identification.go | 14 ++ sdk/model_response.go | 4 +- sdk/model_visit.go | 2 +- sdk/model_webhook_visit.go | 2 +- template/README.mustache | 2 +- template/api.mustache | 3 +- test/GetEvent_test.go | 55 ++++++++ test/GetVisits_test.go | 23 +--- test/mocks/get_event.json | 70 ++++++++++ test/mocks/get_event_400_error.json | 6 + test/mocks/get_event_403_error.json | 6 + test/utils.go | 44 ++++++ 41 files changed, 729 insertions(+), 35 deletions(-) create mode 100644 docs/AllOfProductsResponseIdentificationData.md create mode 100644 docs/AllOfResponseVisitsItems.md create mode 100644 docs/BotdDetectionResult.md create mode 100644 docs/BotdResult.md create mode 100644 docs/ErrorResponse.md create mode 100644 docs/ErrorResponseError.md create mode 100644 docs/EventResponse.md create mode 100644 docs/ProductsResponse.md create mode 100644 docs/ProductsResponseBotd.md create mode 100644 docs/ProductsResponseIdentification.md create mode 100644 example/events/GetEvent_APIKey.go rename example/{ => visits}/GetVisits_APIKey.go (96%) create mode 100644 sdk/model_all_of_products_response_identification_data.go create mode 100644 sdk/model_all_of_response_visits_items.go create mode 100644 sdk/model_botd_detection_result.go create mode 100644 sdk/model_botd_result.go create mode 100644 sdk/model_error_response.go create mode 100644 sdk/model_error_response_error.go create mode 100644 sdk/model_event_response.go create mode 100644 sdk/model_products_response.go create mode 100644 sdk/model_products_response_botd.go create mode 100644 sdk/model_products_response_identification.go create mode 100644 test/GetEvent_test.go create mode 100644 test/mocks/get_event.json create mode 100644 test/mocks/get_event_400_error.json create mode 100644 test/mocks/get_event_403_error.json create mode 100644 test/utils.go diff --git a/README.md b/README.md index 1c32e95..2199ca9 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ func main() { > You can also check examples located in [example](./example) directory. > To run the examples: > ```shell -> cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run GetVisits_APIKey.go +> cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run visits/GetVisits_APIKey.go > ``` ## Documentation for API Endpoints @@ -92,16 +92,27 @@ All URIs are relative to *https://api.fpjs.io* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*FingerprintApi* | [**GetEvent**](docs/FingerprintApi.md#getevent) | **Get** /events/{request_id} | Get event by request ID *FingerprintApi* | [**GetVisits**](docs/FingerprintApi.md#getvisits) | **Get** /visitors/{visitor_id} | ## Documentation For Models + - [AllOfProductsResponseIdentificationData](docs/AllOfProductsResponseIdentificationData.md) + - [AllOfResponseVisitsItems](docs/AllOfResponseVisitsItems.md) + - [BotdDetectionResult](docs/BotdDetectionResult.md) + - [BotdResult](docs/BotdResult.md) - [BrowserDetails](docs/BrowserDetails.md) - [Confidence](docs/Confidence.md) + - [ErrorResponse](docs/ErrorResponse.md) + - [ErrorResponseError](docs/ErrorResponseError.md) + - [EventResponse](docs/EventResponse.md) - [IpLocation](docs/IpLocation.md) - [IpLocationCity](docs/IpLocationCity.md) - [Location](docs/Location.md) - [ManyRequestsResponse](docs/ManyRequestsResponse.md) + - [ProductsResponse](docs/ProductsResponse.md) + - [ProductsResponseBotd](docs/ProductsResponseBotd.md) + - [ProductsResponseIdentification](docs/ProductsResponseIdentification.md) - [Response](docs/Response.md) - [StSeenAt](docs/StSeenAt.md) - [Subdivision](docs/Subdivision.md) diff --git a/docs/AllOfProductsResponseIdentificationData.md b/docs/AllOfProductsResponseIdentificationData.md new file mode 100644 index 0000000..1a954ff --- /dev/null +++ b/docs/AllOfProductsResponseIdentificationData.md @@ -0,0 +1,23 @@ +# AllOfProductsResponseIdentificationData + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**RequestId** | **string** | Unique identifier of the user's identification request. | [default to null] +**BrowserDetails** | [***BrowserDetails**](BrowserDetails.md) | | [default to null] +**Incognito** | **bool** | Flag if user used incognito session. | [default to null] +**Ip** | **string** | | [default to null] +**IpLocation** | [***IpLocation**](IPLocation.md) | | [default to null] +**Timestamp** | **int64** | Timestamp of the event with millisecond precision in Unix time. | [default to null] +**Time** | [**time.Time**](time.Time.md) | Time expressed according to ISO 8601 in UTC format. | [default to null] +**Url** | **string** | Page URL from which identification request was sent. | [default to null] +**Tag** | [**ModelMap**](interface{}.md) | A customer-provided value or an object that was sent with identification request. | [optional] [default to null] +**LinkedId** | **string** | A customer-provided id that was sent with identification request. | [optional] [default to null] +**Confidence** | [***Confidence**](Confidence.md) | | [default to null] +**VisitorFound** | **bool** | Attribute represents if a visitor had been identified before. | [default to null] +**FirstSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] +**LastSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] +**VisitorId** | **string** | | [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/AllOfResponseVisitsItems.md b/docs/AllOfResponseVisitsItems.md new file mode 100644 index 0000000..8c53f91 --- /dev/null +++ b/docs/AllOfResponseVisitsItems.md @@ -0,0 +1,22 @@ +# AllOfResponseVisitsItems + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**RequestId** | **string** | Unique identifier of the user's identification request. | [default to null] +**BrowserDetails** | [***BrowserDetails**](BrowserDetails.md) | | [default to null] +**Incognito** | **bool** | Flag if user used incognito session. | [default to null] +**Ip** | **string** | | [default to null] +**IpLocation** | [***IpLocation**](IPLocation.md) | | [default to null] +**Timestamp** | **int64** | Timestamp of the event with millisecond precision in Unix time. | [default to null] +**Time** | [**time.Time**](time.Time.md) | Time expressed according to ISO 8601 in UTC format. | [default to null] +**Url** | **string** | Page URL from which identification request was sent. | [default to null] +**Tag** | [**ModelMap**](interface{}.md) | A customer-provided value or an object that was sent with identification request. | [default to null] +**LinkedId** | **string** | A customer-provided id that was sent with identification request. | [optional] [default to null] +**Confidence** | [***Confidence**](Confidence.md) | | [default to null] +**VisitorFound** | **bool** | Attribute represents if a visitor had been identified before. | [default to null] +**FirstSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] +**LastSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/BotdDetectionResult.md b/docs/BotdDetectionResult.md new file mode 100644 index 0000000..50ea632 --- /dev/null +++ b/docs/BotdDetectionResult.md @@ -0,0 +1,9 @@ +# BotdDetectionResult + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Result** | **string** | Bot detection result: * `notDetected` - the visitor is not a bot * `good` - good bot detected, such as Google bot, Baidu Spider, AlexaBot and so on * `bad` - bad bot detected, such as Selenium, Puppeteer, Playwright, headless browsers, and so on | [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/BotdResult.md b/docs/BotdResult.md new file mode 100644 index 0000000..03490a2 --- /dev/null +++ b/docs/BotdResult.md @@ -0,0 +1,11 @@ +# BotdResult + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Ip** | **string** | IP address of the requesting browser or bot. | [default to null] +**Time** | [**time.Time**](time.Time.md) | Time in UTC when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible | [default to null] +**Bot** | [***BotdDetectionResult**](BotdDetectionResult.md) | | [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/ErrorResponse.md b/docs/ErrorResponse.md new file mode 100644 index 0000000..e91a3d6 --- /dev/null +++ b/docs/ErrorResponse.md @@ -0,0 +1,9 @@ +# ErrorResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Error_** | [***ErrorResponseError**](ErrorResponse_error.md) | | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/ErrorResponseError.md b/docs/ErrorResponseError.md new file mode 100644 index 0000000..5d3352c --- /dev/null +++ b/docs/ErrorResponseError.md @@ -0,0 +1,10 @@ +# ErrorResponseError + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Code** | **string** | | [optional] [default to null] +**Message** | **string** | | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/EventResponse.md b/docs/EventResponse.md new file mode 100644 index 0000000..bf4152a --- /dev/null +++ b/docs/EventResponse.md @@ -0,0 +1,9 @@ +# EventResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Products** | [***ProductsResponse**](ProductsResponse.md) | | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/FingerprintApi.md b/docs/FingerprintApi.md index 0bdc155..cc8e66f 100644 --- a/docs/FingerprintApi.md +++ b/docs/FingerprintApi.md @@ -4,8 +4,37 @@ All URIs are relative to *https://api.fpjs.io* Method | HTTP request | Description ------------- | ------------- | ------------- +[**GetEvent**](FingerprintApi.md#GetEvent) | **Get** /events/{request_id} | Get event by request ID [**GetVisits**](FingerprintApi.md#GetVisits) | **Get** /visitors/{visitor_id} | +# **GetEvent** +> EventResponse GetEvent(ctx, requestId) +Get event by request ID + +This endpoint allows you to get events with all the information from each activated product - BOTD and Fingerprinting. Use the requestId as a URL path :request_id parameter. This API method is scoped to a request, i.e. all returned information is by requestId. + +### Required Parameters + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. + **requestId** | **string**| Request ID | + +### Return type + +[**EventResponse**](EventResponse.md) + +### Authorization + +[ApiKeyHeader](../README.md#ApiKeyHeader), [ApiKeyQuery](../README.md#ApiKeyQuery) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **GetVisits** > Response GetVisits(ctx, visitorId, optional) diff --git a/docs/ProductsResponse.md b/docs/ProductsResponse.md new file mode 100644 index 0000000..1d92da9 --- /dev/null +++ b/docs/ProductsResponse.md @@ -0,0 +1,10 @@ +# ProductsResponse + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Identification** | [***ProductsResponseIdentification**](ProductsResponse_identification.md) | | [optional] [default to null] +**Botd** | [***ProductsResponseBotd**](ProductsResponse_botd.md) | | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/ProductsResponseBotd.md b/docs/ProductsResponseBotd.md new file mode 100644 index 0000000..825f1b8 --- /dev/null +++ b/docs/ProductsResponseBotd.md @@ -0,0 +1,9 @@ +# ProductsResponseBotd + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Data** | [***BotdResult**](BotdResult.md) | | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/ProductsResponseIdentification.md b/docs/ProductsResponseIdentification.md new file mode 100644 index 0000000..2d12dae --- /dev/null +++ b/docs/ProductsResponseIdentification.md @@ -0,0 +1,9 @@ +# ProductsResponseIdentification + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Data** | [***AllOfProductsResponseIdentificationData**](AllOfProductsResponseIdentificationData.md) | | [optional] [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/Response.md b/docs/Response.md index 62b5897..73c8dc0 100644 --- a/docs/Response.md +++ b/docs/Response.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **VisitorId** | **string** | | [default to null] -**Visits** | [**[]Visit**](Visit.md) | | [default to null] +**Visits** | [**[]AllOfResponseVisitsItems**](.md) | | [default to null] **LastTimestamp** | **int64** | When more results are available (e.g., you scanned 200 results using `limit` parameter, but a total of 600 results are available), a special `lastTimestamp` top-level attribute is added to the response. If you want to paginate the results further in the past, you should use the value of this attribute. | [optional] [default to null] **PaginationKey** | **string** | Visit's `requestId` of the last visit in the current page. | [optional] [default to null] diff --git a/docs/Visit.md b/docs/Visit.md index 26ce240..c6b10a5 100644 --- a/docs/Visit.md +++ b/docs/Visit.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes **Timestamp** | **int64** | Timestamp of the event with millisecond precision in Unix time. | [default to null] **Time** | [**time.Time**](time.Time.md) | Time expressed according to ISO 8601 in UTC format. | [default to null] **Url** | **string** | Page URL from which identification request was sent. | [default to null] -**Tag** | [**ModelMap**](interface{}.md) | A customer-provided value or an object that was sent with identification request. | [default to null] +**Tag** | [**ModelMap**](interface{}.md) | A customer-provided value or an object that was sent with identification request. | [optional] [default to null] **LinkedId** | **string** | A customer-provided id that was sent with identification request. | [optional] [default to null] **Confidence** | [***Confidence**](Confidence.md) | | [default to null] **VisitorFound** | **bool** | Attribute represents if a visitor had been identified before. | [default to null] diff --git a/docs/WebhookVisit.md b/docs/WebhookVisit.md index 74a03fd..44509b7 100644 --- a/docs/WebhookVisit.md +++ b/docs/WebhookVisit.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes **Timestamp** | **int64** | Timestamp of the event with millisecond precision in Unix time. | [default to null] **Time** | [**time.Time**](time.Time.md) | Time expressed according to ISO 8601 in UTC format. | [default to null] **Url** | **string** | Page URL from which identification request was sent. | [default to null] -**Tag** | [**ModelMap**](interface{}.md) | A customer-provided value or an object that was sent with identification request. | [default to null] +**Tag** | [**ModelMap**](interface{}.md) | A customer-provided value or an object that was sent with identification request. | [optional] [default to null] **LinkedId** | **string** | A customer-provided id that was sent with identification request. | [optional] [default to null] **Confidence** | [***Confidence**](Confidence.md) | | [default to null] **VisitorFound** | **bool** | Attribute represents if a visitor had been identified before. | [default to null] diff --git a/example/events/GetEvent_APIKey.go b/example/events/GetEvent_APIKey.go new file mode 100644 index 0000000..1066f91 --- /dev/null +++ b/example/events/GetEvent_APIKey.go @@ -0,0 +1,37 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" + "log" + "os" +) + +func main() { + cfg := sdk.NewConfiguration() + client := sdk.NewAPIClient(cfg) + + // You can also use sdk.RegionUS or sdk.RegionAsia. Default one is sdk.RegionUS + //cfg.ChangeRegion(sdk.RegionEU) + + // Configure authorization, in our case with API Key + auth := context.WithValue(context.Background(), sdk.ContextAPIKey, sdk.APIKey{ + Key: os.Getenv("FINGERPRINT_API_KEY"), + }) + + // Usually this data will come from your frontend app + requestId := os.Getenv("REQUEST_ID") + + response, httpRes, err := client.FingerprintApi.GetEvent(auth, requestId) + + fmt.Printf("%+v\n", httpRes) + + if err != nil { + log.Fatal(err) + } + + stringResponse, _ := json.Marshal(response) + fmt.Printf("Got response: %+v", string(stringResponse)) +} diff --git a/example/GetVisits_APIKey.go b/example/visits/GetVisits_APIKey.go similarity index 96% rename from example/GetVisits_APIKey.go rename to example/visits/GetVisits_APIKey.go index 9c6e808..5988f55 100644 --- a/example/GetVisits_APIKey.go +++ b/example/visits/GetVisits_APIKey.go @@ -14,7 +14,7 @@ func main() { client := sdk.NewAPIClient(cfg) // You can also use sdk.RegionUS or sdk.RegionAsia. Default one is sdk.RegionUS - cfg.ChangeRegion(sdk.RegionEU) + //cfg.ChangeRegion(sdk.RegionEU) // Configure authorization, in our case with API Key auth := context.WithValue(context.Background(), sdk.ContextAPIKey, sdk.APIKey{ diff --git a/generate.go b/generate.go index 7aa42e8..72bca8f 100644 --- a/generate.go +++ b/generate.go @@ -124,7 +124,7 @@ func generateSwagger() { } func getExamples() { - list := []string{"visits_limit_1.json", "visits_limit_500.json", "webhook.json"} + list := []string{"visits_limit_1.json", "visits_limit_500.json", "webhook.json", "get_event.json", "get_event_400_error.json", "get_event_403_error.json"} for _, file := range list { cmd := exec.Command("curl", "-o", fmt.Sprintf("./test/mocks/%s", file), fmt.Sprintf("https://fingerprintjs.github.io/fingerprint-pro-server-api-openapi/examples/%s", file)) diff --git a/sdk/api_fingerprint.go b/sdk/api_fingerprint.go index bd76eaa..e3254d7 100644 --- a/sdk/api_fingerprint.go +++ b/sdk/api_fingerprint.go @@ -21,6 +21,134 @@ import ( type FingerprintApiService service +/* +FingerprintApiService Get event by request ID +This endpoint allows you to get events with all the information from each activated product - BOTD and Fingerprinting. Use the requestId as a URL path :request_id parameter. This API method is scoped to a request, i.e. all returned information is by requestId. + - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + - @param requestId Request ID + +@return EventResponse +*/ +func (a *FingerprintApiService) GetEvent(ctx context.Context, requestId string) (EventResponse, *http.Response, error) { + var ( + localVarHttpMethod = http.MethodGet + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue EventResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.basePath + "/events/{request_id}" + localVarPath = strings.Replace(localVarPath, "{"+"request_id"+"}", fmt.Sprintf("%v", requestId), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.0.2") + // to determine the Content-Type header + localVarHttpContentTypes := []string{} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + if ctx != nil { + // API Key Authentication + if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { + var key string + if auth.Prefix != "" { + key = auth.Prefix + " " + auth.Key + } else { + key = auth.Key + } + localVarHeaderParams["Auth-API-Key"] = key + } + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := io.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + if localVarHttpResponse.StatusCode == 200 { + var v EventResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + if localVarHttpResponse.StatusCode == 400 { + var v ErrorResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + if localVarHttpResponse.StatusCode == 403 { + var v ErrorResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + if localVarHttpResponse.StatusCode == 429 { + var v ManyRequestsResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + /* FingerprintApiService This endpoint allows you to get a history of visits with all available information. Use the visitorId as a URL path parameter. This API method is scoped to a visitor, i.e. all returned information is by visitorId. @@ -59,7 +187,6 @@ func (a *FingerprintApiService) GetVisits(ctx context.Context, visitorId string, localVarFormParams := url.Values{} localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.0.2") - if localVarOptionals != nil { if localVarOptionals.RequestId.IsSet() { diff --git a/sdk/model_all_of_products_response_identification_data.go b/sdk/model_all_of_products_response_identification_data.go new file mode 100644 index 0000000..59db106 --- /dev/null +++ b/sdk/model_all_of_products_response_identification_data.go @@ -0,0 +1,40 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +import ( + "time" +) + +type AllOfProductsResponseIdentificationData struct { + // Unique identifier of the user's identification request. + RequestId string `json:"requestId"` + BrowserDetails *BrowserDetails `json:"browserDetails"` + // Flag if user used incognito session. + Incognito bool `json:"incognito"` + Ip string `json:"ip"` + IpLocation *IpLocation `json:"ipLocation"` + // Timestamp of the event with millisecond precision in Unix time. + Timestamp int64 `json:"timestamp"` + // Time expressed according to ISO 8601 in UTC format. + Time *time.Time `json:"time"` + // Page URL from which identification request was sent. + Url string `json:"url"` + // A customer-provided value or an object that was sent with identification request. + Tag ModelMap `json:"tag,omitempty"` + // A customer-provided id that was sent with identification request. + LinkedId string `json:"linkedId,omitempty"` + Confidence *Confidence `json:"confidence"` + // Attribute represents if a visitor had been identified before. + VisitorFound bool `json:"visitorFound"` + FirstSeenAt *StSeenAt `json:"firstSeenAt"` + LastSeenAt *StSeenAt `json:"lastSeenAt"` + VisitorId string `json:"visitorId"` +} diff --git a/sdk/model_all_of_response_visits_items.go b/sdk/model_all_of_response_visits_items.go new file mode 100644 index 0000000..1ffd646 --- /dev/null +++ b/sdk/model_all_of_response_visits_items.go @@ -0,0 +1,39 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +import ( + "time" +) + +type AllOfResponseVisitsItems struct { + // Unique identifier of the user's identification request. + RequestId string `json:"requestId"` + BrowserDetails *BrowserDetails `json:"browserDetails"` + // Flag if user used incognito session. + Incognito bool `json:"incognito"` + Ip string `json:"ip"` + IpLocation *IpLocation `json:"ipLocation"` + // Timestamp of the event with millisecond precision in Unix time. + Timestamp int64 `json:"timestamp"` + // Time expressed according to ISO 8601 in UTC format. + Time *time.Time `json:"time"` + // Page URL from which identification request was sent. + Url string `json:"url"` + // A customer-provided value or an object that was sent with identification request. + Tag ModelMap `json:"tag"` + // A customer-provided id that was sent with identification request. + LinkedId string `json:"linkedId,omitempty"` + Confidence *Confidence `json:"confidence"` + // Attribute represents if a visitor had been identified before. + VisitorFound bool `json:"visitorFound"` + FirstSeenAt *StSeenAt `json:"firstSeenAt"` + LastSeenAt *StSeenAt `json:"lastSeenAt"` +} diff --git a/sdk/model_botd_detection_result.go b/sdk/model_botd_detection_result.go new file mode 100644 index 0000000..14f8204 --- /dev/null +++ b/sdk/model_botd_detection_result.go @@ -0,0 +1,16 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +// Stores bot detection result +type BotdDetectionResult struct { + // Bot detection result: * `notDetected` - the visitor is not a bot * `good` - good bot detected, such as Google bot, Baidu Spider, AlexaBot and so on * `bad` - bad bot detected, such as Selenium, Puppeteer, Playwright, headless browsers, and so on + Result string `json:"result"` +} diff --git a/sdk/model_botd_result.go b/sdk/model_botd_result.go new file mode 100644 index 0000000..49aa8b9 --- /dev/null +++ b/sdk/model_botd_result.go @@ -0,0 +1,23 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +import ( + "time" +) + +// Contains all the information from BOTD product +type BotdResult struct { + // IP address of the requesting browser or bot. + Ip string `json:"ip"` + // Time in UTC when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible + Time *time.Time `json:"time"` + Bot *BotdDetectionResult `json:"bot"` +} diff --git a/sdk/model_error_response.go b/sdk/model_error_response.go new file mode 100644 index 0000000..1f0fa7a --- /dev/null +++ b/sdk/model_error_response.go @@ -0,0 +1,14 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +type ErrorResponse struct { + Error_ *ErrorResponseError `json:"error,omitempty"` +} diff --git a/sdk/model_error_response_error.go b/sdk/model_error_response_error.go new file mode 100644 index 0000000..59126f0 --- /dev/null +++ b/sdk/model_error_response_error.go @@ -0,0 +1,15 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +type ErrorResponseError struct { + Code string `json:"code,omitempty"` + Message string `json:"message,omitempty"` +} diff --git a/sdk/model_event_response.go b/sdk/model_event_response.go new file mode 100644 index 0000000..86eba86 --- /dev/null +++ b/sdk/model_event_response.go @@ -0,0 +1,15 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +// Contains event from activated products - BOTD and Identification +type EventResponse struct { + Products *ProductsResponse `json:"products,omitempty"` +} diff --git a/sdk/model_map.go b/sdk/model_map.go index b4bf28e..92b3bee 100644 --- a/sdk/model_map.go +++ b/sdk/model_map.go @@ -2,4 +2,4 @@ package sdk type Model struct{} -type ModelMap map[string]Model +type ModelMap map[string]string diff --git a/sdk/model_products_response.go b/sdk/model_products_response.go new file mode 100644 index 0000000..7913d2e --- /dev/null +++ b/sdk/model_products_response.go @@ -0,0 +1,16 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +// Contains all the information from each activated product - BOTD and Identification +type ProductsResponse struct { + Identification *ProductsResponseIdentification `json:"identification,omitempty"` + Botd *ProductsResponseBotd `json:"botd,omitempty"` +} diff --git a/sdk/model_products_response_botd.go b/sdk/model_products_response_botd.go new file mode 100644 index 0000000..585c88a --- /dev/null +++ b/sdk/model_products_response_botd.go @@ -0,0 +1,14 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +type ProductsResponseBotd struct { + Data *BotdResult `json:"data,omitempty"` +} diff --git a/sdk/model_products_response_identification.go b/sdk/model_products_response_identification.go new file mode 100644 index 0000000..c33ca89 --- /dev/null +++ b/sdk/model_products_response_identification.go @@ -0,0 +1,14 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +type ProductsResponseIdentification struct { + Data *AllOfProductsResponseIdentificationData `json:"data,omitempty"` +} diff --git a/sdk/model_response.go b/sdk/model_response.go index beadf8b..2e7b55c 100644 --- a/sdk/model_response.go +++ b/sdk/model_response.go @@ -11,8 +11,8 @@ package sdk // Fields `lastTimestamp` and `paginationKey` added when `limit` or `before` parameter provided and there is more data to show type Response struct { - VisitorId string `json:"visitorId"` - Visits []Visit `json:"visits"` + VisitorId string `json:"visitorId"` + Visits []AllOfResponseVisitsItems `json:"visits"` // When more results are available (e.g., you scanned 200 results using `limit` parameter, but a total of 600 results are available), a special `lastTimestamp` top-level attribute is added to the response. If you want to paginate the results further in the past, you should use the value of this attribute. LastTimestamp int64 `json:"lastTimestamp,omitempty"` // Visit's `requestId` of the last visit in the current page. diff --git a/sdk/model_visit.go b/sdk/model_visit.go index 2533311..b822470 100644 --- a/sdk/model_visit.go +++ b/sdk/model_visit.go @@ -28,7 +28,7 @@ type Visit struct { // Page URL from which identification request was sent. Url string `json:"url"` // A customer-provided value or an object that was sent with identification request. - Tag ModelMap `json:"tag"` + Tag ModelMap `json:"tag,omitempty"` // A customer-provided id that was sent with identification request. LinkedId string `json:"linkedId,omitempty"` Confidence *Confidence `json:"confidence"` diff --git a/sdk/model_webhook_visit.go b/sdk/model_webhook_visit.go index 029764e..d4c126b 100644 --- a/sdk/model_webhook_visit.go +++ b/sdk/model_webhook_visit.go @@ -28,7 +28,7 @@ type WebhookVisit struct { // Page URL from which identification request was sent. Url string `json:"url"` // A customer-provided value or an object that was sent with identification request. - Tag ModelMap `json:"tag"` + Tag ModelMap `json:"tag,omitempty"` // A customer-provided id that was sent with identification request. LinkedId string `json:"linkedId,omitempty"` Confidence *Confidence `json:"confidence"` diff --git a/template/README.mustache b/template/README.mustache index c4ef5e2..c2ab812 100644 --- a/template/README.mustache +++ b/template/README.mustache @@ -91,7 +91,7 @@ func main() { > You can also check examples located in [example](./example) directory. > To run the examples: > ```shell -> cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run GetVisits_APIKey.go +> cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run visits/GetVisits_APIKey.go > ``` ## Documentation for API Endpoints diff --git a/template/api.mustache b/template/api.mustache index 863446a..d049bdb 100644 --- a/template/api.mustache +++ b/template/api.mustache @@ -51,7 +51,7 @@ func (a *{{{classname}}}Service) {{{nickname}}}(ctx context.Context{{#hasParams} localVarFormParams := url.Values{} localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/{{packageVersion}}") - +{{#hasOptionalParams}} if localVarOptionals != nil { {{#allParams}} {{#required}} @@ -113,6 +113,7 @@ func (a *{{{classname}}}Service) {{{nickname}}}(ctx context.Context{{#hasParams} {{/queryParams}} {{/hasQueryParams}} } + {{/hasOptionalParams}} // to determine the Content-Type header {{=<% %>=}} localVarHttpContentTypes := []string{} diff --git a/test/GetEvent_test.go b/test/GetEvent_test.go new file mode 100644 index 0000000..dcb7973 --- /dev/null +++ b/test/GetEvent_test.go @@ -0,0 +1,55 @@ +package test + +import ( + "context" + "encoding/json" + "fmt" + "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/config" + "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" + "github.com/stretchr/testify/assert" + "log" + "net/http" + "net/http/httptest" + "testing" +) + +func TestReturnsEvent(t *testing.T) { + mockResponse := GetMockEventResponse("../test/mocks/get_event.json") + + ts := httptest.NewServer(http.HandlerFunc(func( + w http.ResponseWriter, + r *http.Request, + ) { + configFile := config.ReadConfig("../config.json") + integrationInfo := r.URL.Query().Get("ii") + assert.Equal(t, integrationInfo, fmt.Sprintf("fingerprint-pro-server-go-sdk/%s", configFile.PackageVersion)) + assert.Equal(t, r.URL.Path, "/events/123") + + apiKey := r.Header.Get("Auth-Api-Key") + assert.Equal(t, apiKey, "api_key") + + w.Header().Set("Content-Type", "application/json") + + err := json.NewEncoder(w).Encode(mockResponse) + + if err != nil { + log.Fatal(err) + } + })) + defer ts.Close() + + cfg := sdk.NewConfiguration() + cfg.ChangeBasePath(ts.URL) + + client := sdk.NewAPIClient(cfg) + + ctx := context.WithValue(context.Background(), sdk.ContextAPIKey, sdk.APIKey{ + Key: "api_key", + }) + + res, _, err := client.FingerprintApi.GetEvent(ctx, "123") + + assert.NoError(t, err) + assert.NotNil(t, res) + assert.Equal(t, res, mockResponse) +} diff --git a/test/GetVisits_test.go b/test/GetVisits_test.go index 5f0f8f1..7be46be 100644 --- a/test/GetVisits_test.go +++ b/test/GetVisits_test.go @@ -11,30 +11,11 @@ import ( "log" "net/http" "net/http/httptest" - "os" "testing" ) -func getMockResponse(path string) sdk.Response { - var mockResponse sdk.Response - - data, err := os.ReadFile(path) - - if err != nil { - log.Fatal(err) - } - - err = json.Unmarshal(data, &mockResponse) - - if err != nil { - log.Fatal(err) - } - - return mockResponse -} - func TestReturnsVisits(t *testing.T) { - mockResponse := getMockResponse("../test/mocks/visits_limit_1.json") + mockResponse := GetMockResponse("../test/mocks/visits_limit_1.json") ts := httptest.NewServer(http.HandlerFunc(func( w http.ResponseWriter, @@ -81,7 +62,7 @@ func TestReturnsVisitsWithPagination(t *testing.T) { LinkedId: optional.NewString("request_id"), } - mockResponse := getMockResponse("../test/mocks/visits_limit_500.json") + mockResponse := GetMockResponse("../test/mocks/visits_limit_500.json") ts := httptest.NewServer(http.HandlerFunc(func( w http.ResponseWriter, diff --git a/test/mocks/get_event.json b/test/mocks/get_event.json new file mode 100644 index 0000000..9ed8697 --- /dev/null +++ b/test/mocks/get_event.json @@ -0,0 +1,70 @@ +{ + "products": { + "identification": { + "data": { + "visitorId": "Ibk1527CUFmcnjLwIs4A9", + "requestId": "0KSh65EnVoB85JBmloQK", + "incognito": true, + "linkedId": "somelinkedId", + "time": "2019-05-21T16:40:13Z", + "timestamp": 1582299576512, + "url": "https://www.example.com/login", + "ip": "61.127.217.15", + "ipLocation": { + "accuracyRadius": 10, + "latitude": 49.982, + "longitude": 36.2566, + "postalCode": "61202", + "timezone": "Europe/Dusseldorf", + "city": { + "name": "Dusseldorf" + }, + "continent": { + "code": "EU", + "name": "Europe" + }, + "country": { + "code": "DE", + "name": "Germany" + }, + "subdivisions": [ + { + "isoCode": "63", + "name": "North Rhine-Westphalia" + } + ] + }, + "browserDetails": { + "browserName": "Chrome", + "browserMajorVersion": "74", + "browserFullVersion": "74.0.3729", + "os": "Windows", + "osVersion": "7", + "device": "Other", + "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ...." + }, + "confidence": { + "score": 0.97 + }, + "visitorFound": true, + "firstSeenAt": { + "global": "2022-03-16T11:26:45.362Z", + "subscription": "2022-03-16T11:31:01.101Z" + }, + "lastSeenAt": { + "global": "2022-03-16T11:28:34.023Z", + "subscription": null + } + } + }, + "botd": { + "data": { + "bot": { + "result": "notDetected" + }, + "ip": "61.127.217.15", + "time": "2019-05-21T16:40:13Z" + } + } + } +} diff --git a/test/mocks/get_event_400_error.json b/test/mocks/get_event_400_error.json new file mode 100644 index 0000000..f8fdc67 --- /dev/null +++ b/test/mocks/get_event_400_error.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "RequestIdCannotBeParsed", + "message": "invalid format of request id" + } +} diff --git a/test/mocks/get_event_403_error.json b/test/mocks/get_event_403_error.json new file mode 100644 index 0000000..544d871 --- /dev/null +++ b/test/mocks/get_event_403_error.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "TokenRequired", + "message": "secret key is required" + } +} diff --git a/test/utils.go b/test/utils.go new file mode 100644 index 0000000..951cb9b --- /dev/null +++ b/test/utils.go @@ -0,0 +1,44 @@ +package test + +import ( + "encoding/json" + "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" + "log" + "os" +) + +func GetMockResponse(path string) sdk.Response { + var mockResponse sdk.Response + + data, err := os.ReadFile(path) + + if err != nil { + log.Fatal(err) + } + + err = json.Unmarshal(data, &mockResponse) + + if err != nil { + log.Fatal(err) + } + + return mockResponse +} + +func GetMockEventResponse(path string) sdk.EventResponse { + var mockResponse sdk.EventResponse + + data, err := os.ReadFile(path) + + if err != nil { + log.Fatal(err) + } + + err = json.Unmarshal(data, &mockResponse) + + if err != nil { + log.Fatal(err) + } + + return mockResponse +} From a4d5c4a15905d36eda8c04628dc6ba5671898fda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Fri, 9 Sep 2022 11:16:43 +0100 Subject: [PATCH 09/26] build: use local schema --- generate.go | 2 +- res/fingerprint-server-api.yaml | 3551 +++++++++++++++++++++++++++++++ sync.sh | 3 + 3 files changed, 3555 insertions(+), 1 deletion(-) create mode 100644 res/fingerprint-server-api.yaml create mode 100755 sync.sh diff --git a/generate.go b/generate.go index 72bca8f..9cd17f8 100644 --- a/generate.go +++ b/generate.go @@ -108,7 +108,7 @@ func generateSwagger() { "-l", "go", "-i", - "https://fingerprintjs.github.io/fingerprint-pro-server-api-openapi/schemes/fingerprint-server-api.yaml", + "res/fingerprint-server-api.yaml", "-o", "./sdk", "-c", diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml new file mode 100644 index 0000000..04882cb --- /dev/null +++ b/res/fingerprint-server-api.yaml @@ -0,0 +1,3551 @@ +openapi: 3.0.3 +info: + title: Fingerprint Pro Server API + description: >- + Fingerprint Pro Server API provides a way for validating visitors’ data + issued by Fingerprint Pro. + version: '3' + contact: + name: Fingerprint Support + email: support@fingerprint.com +tags: + - name: Fingerprint + externalDocs: + description: API documentation + url: https://dev.fingerprint.com/docs/server-api +servers: + - url: https://api.fpjs.io + description: Global + - url: https://eu.api.fpjs.io + description: EU + - url: https://ap.api.fpjs.io + description: Asia (Mumbai) +security: + - ApiKeyHeader: [] + - ApiKeyQuery: [] +paths: + /events/{request_id}: + get: + tags: + - Fingerprint + summary: Get event by request ID + description: >- + This endpoint allows you to get events with all the information from + each activated product - BOTD and Fingerprinting. Use the requestId as a + URL path :request_id parameter. This API method is scoped to a request, + i.e. all returned information is by requestId. + operationId: getEvent + parameters: + - name: request_id + in: path + description: Request ID + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/EventResponse' + examples: + example: + summary: Example response + value: + products: + identification: + data: + visitorId: Ibk1527CUFmcnjLwIs4A9 + requestId: 0KSh65EnVoB85JBmloQK + incognito: true + linkedId: somelinkedId + time: '2019-05-21T16:40:13Z' + timestamp: 1582299576512 + url: https://www.example.com/login + ip: 61.127.217.15 + ipLocation: + accuracyRadius: 10 + latitude: 49.982 + longitude: 36.2566 + postalCode: '61202' + timezone: Europe/Dusseldorf + city: + name: Dusseldorf + continent: + code: EU + name: Europe + country: + code: DE + name: Germany + subdivisions: + - isoCode: '63' + name: North Rhine-Westphalia + browserDetails: + browserName: Chrome + browserMajorVersion: '74' + browserFullVersion: 74.0.3729 + os: Windows + osVersion: '7' + device: Other + userAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) .... + confidence: + score: 0.97 + visitorFound: true + firstSeenAt: + global: '2022-03-16T11:26:45.362Z' + subscription: '2022-03-16T11:31:01.101Z' + lastSeenAt: + global: '2022-03-16T11:28:34.023Z' + subscription: null + botd: + data: + bot: + result: notDetected + ip: 61.127.217.15 + time: '2019-05-21T16:40:13Z' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + example: + summary: Example response + value: + error: + code: RequestIdCannotBeParsed + message: invalid format of request id + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + examples: + example: + summary: Example response + value: + error: + code: TokenRequired + message: secret key is required + '429': + description: Too Many Requests + headers: + Retry-After: + description: >- + Indicates how long the user should wait before making a + follow-up request. + schema: + type: integer + format: int32 + minimum: 0 + content: + application/json: + schema: + $ref: '#/components/schemas/ManyRequestsResponse' + /visitors/{visitor_id}: + get: + tags: + - Fingerprint + operationId: getVisits + description: >- + This endpoint allows you to get a history of visits with all available + information. Use the visitorId as a URL path parameter. This API method + is scoped to a visitor, i.e. all returned information is by visitorId. + parameters: + - name: visitor_id + in: path + required: true + schema: + type: string + example: uYIm7Ksp5rf00SllPhFp + - name: request_id + description: Filter events by requestId + in: query + schema: + type: string + - name: linked_id + description: Filter events by custom identifier + in: query + schema: + type: string + required: false + - name: limit + description: Limit scanned results + in: query + schema: + type: integer + format: int32 + minimum: 0 + - name: before + description: Used to paginate results + in: query + schema: + type: integer + format: int32 + minimum: 0 + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + examples: + limit1: + summary: Request with limit=1 + value: + visitorId: AcxioeQKffpXF8iGQK3P + visits: + - requestId: 1655373953086.DDlfmP + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 82.118.30.68 + ipLocation: + accuracyRadius: 1000 + latitude: 50.0805 + longitude: 14.467 + postalCode: 130 00 + timezone: Europe/Prague + city: + name: Prague + country: + code: CZ + name: Czechia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '10' + name: Hlavni mesto Praha + timestamp: 1655373953094 + time: '2022-06-16T10:05:53Z' + url: https://dashboard.fingerprint.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-16T10:03:00.912Z' + subscription: '2022-06-16T10:03:00.912Z' + lastTimestamp: 1655373953086 + paginationKey: 1655373953086.DDlfmP + limit500: + summary: Request with limit=500 + value: + visitorId: AcxioeQKffpXF8iGQK3P + visits: + - requestId: 1655373780901.HhjRFX + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 188.242.36.107 + ipLocation: + accuracyRadius: 5 + latitude: 59.8983 + longitude: 30.2618 + postalCode: '190924' + timezone: Europe/Moscow + city: + name: St Petersburg + country: + code: RU + name: Russia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: SPE + name: St.-Petersburg + timestamp: 1655373780912 + time: '2022-06-16T10:03:00Z' + url: https://fingerprint.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-16T05:27:30.578Z' + subscription: '2022-06-16T05:27:30.578Z' + - requestId: 1655357250568.vqejDF + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 82.118.30.62 + ipLocation: + accuracyRadius: 1000 + latitude: 50.0805 + longitude: 14.467 + postalCode: 130 00 + timezone: Europe/Prague + city: + name: Prague + country: + code: CZ + name: Czechia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '10' + name: Hlavni mesto Praha + timestamp: 1655357250578 + time: '2022-06-16T05:27:30Z' + url: https://fingerprint.com/ + tag: {} + confidence: + score: 0.99 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-15T15:28:33.479Z' + subscription: '2022-06-15T15:28:33.479Z' + - requestId: 1655306913474.kFQsQx + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 82.118.30.68 + ipLocation: + accuracyRadius: 1000 + latitude: 50.0805 + longitude: 14.467 + postalCode: 130 00 + timezone: Europe/Prague + city: + name: Prague + country: + code: CZ + name: Czechia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '10' + name: Hlavni mesto Praha + timestamp: 1655306913479 + time: '2022-06-15T15:28:33Z' + url: https://fingerprint.com/ + tag: {} + confidence: + score: 0.99 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-15T08:47:34.677Z' + subscription: '2022-06-15T08:47:34.677Z' + - requestId: 1655282854672.vz4ZlN + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 82.118.30.91 + ipLocation: + accuracyRadius: 1000 + latitude: 50.0805 + longitude: 14.467 + postalCode: 130 00 + timezone: Europe/Prague + city: + name: Prague + country: + code: CZ + name: Czechia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '10' + name: Hlavni mesto Praha + timestamp: 1655282854677 + time: '2022-06-15T08:47:34Z' + url: https://fingerprint.com/ + tag: {} + confidence: + score: 0.99 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-14T14:19:42.753Z' + subscription: '2022-06-14T14:19:42.753Z' + - requestId: 1655216382743.RDRa4h + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 188.242.36.107 + ipLocation: + accuracyRadius: 5 + latitude: 59.8983 + longitude: 30.2618 + postalCode: '190924' + timezone: Europe/Moscow + city: + name: St Petersburg + country: + code: RU + name: Russia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: SPE + name: St.-Petersburg + timestamp: 1655216382753 + time: '2022-06-14T14:19:42Z' + url: https://fingerprint.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-13T07:53:19.878Z' + subscription: '2022-06-13T07:53:19.878Z' + - requestId: 1655106799870.C8m8hR + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.137 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1655106799878 + time: '2022-06-13T07:53:19Z' + url: https://fingerprint.com/ + tag: {} + confidence: + score: 0.99 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-07T12:54:35.413Z' + subscription: '2022-06-07T12:54:35.413Z' + - requestId: 1654606475406.2uXCJx + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.157 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1654606475413 + time: '2022-06-07T12:54:35Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 0.99 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-07T09:37:57.43Z' + subscription: '2022-06-07T09:37:57.43Z' + - requestId: 1654594677423.pCHmKJ + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 188.242.36.107 + ipLocation: + accuracyRadius: 5 + latitude: 59.8983 + longitude: 30.2618 + postalCode: '190924' + timezone: Europe/Moscow + city: + name: St Petersburg + country: + code: RU + name: Russia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: SPE + name: St.-Petersburg + timestamp: 1654594677430 + time: '2022-06-07T09:37:57Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 0.99 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-07T09:37:50.109Z' + subscription: '2022-06-07T09:37:50.109Z' + - requestId: 1654594670097.Lmodmj + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 188.242.36.107 + ipLocation: + accuracyRadius: 5 + latitude: 59.8983 + longitude: 30.2618 + postalCode: '190924' + timezone: Europe/Moscow + city: + name: St Petersburg + country: + code: RU + name: Russia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: SPE + name: St.-Petersburg + timestamp: 1654594670109 + time: '2022-06-07T09:37:50Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 0.99 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-07T08:31:31.9Z' + subscription: '2022-06-07T08:31:31.9Z' + - requestId: 1654590691894.aCYqYE + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 188.242.36.107 + ipLocation: + accuracyRadius: 5 + latitude: 59.8983 + longitude: 30.2618 + postalCode: '190924' + timezone: Europe/Moscow + city: + name: St Petersburg + country: + code: RU + name: Russia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: SPE + name: St.-Petersburg + timestamp: 1654590691900 + time: '2022-06-07T08:31:31Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 0.99 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-06T09:05:25.954Z' + subscription: '2022-06-06T09:05:25.954Z' + - requestId: 1654506325946.ijIwzu + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1654506325954 + time: '2022-06-06T09:05:25Z' + url: https://fingerprintcom.netlify.app/blog/name-change/ + tag: {} + confidence: + score: 0.99 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-02T16:58:53.635Z' + subscription: '2022-06-02T16:58:53.635Z' + - requestId: 1654189133629.0V1gtF + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1654189133635 + time: '2022-06-02T16:58:53Z' + url: https://fingerprintcom.netlify.app/blog/name-change/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-06-02T16:58:51.483Z' + subscription: '2022-06-02T16:58:51.483Z' + - requestId: 1654189131472.r49Bbh + browserDetails: + browserName: Chrome + browserMajorVersion: '102' + browserFullVersion: 102.0.5005 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/102.0.5005.61 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1654189131483 + time: '2022-06-02T16:58:51Z' + url: https://fingerprintcom.netlify.app/ + tag: {} + confidence: + score: 0.95 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-27T14:52:26.624Z' + subscription: '2022-05-27T14:52:26.624Z' + - requestId: 1653663146617.o8KpJO + browserDetails: + browserName: Chrome + browserMajorVersion: '101' + browserFullVersion: 101.0.4951 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/101.0.4951.64 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1653663146624 + time: '2022-05-27T14:52:26Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-20T09:50:06.7Z' + subscription: '2022-05-20T09:50:06.7Z' + - requestId: 1653040206694.Q5Csig + browserDetails: + browserName: Chrome + browserMajorVersion: '101' + browserFullVersion: 101.0.4951 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/101.0.4951.54 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1653040206700 + time: '2022-05-20T09:50:06Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-19T16:27:38.029Z' + subscription: '2022-05-19T16:27:38.029Z' + - requestId: 1652977658020.xbfYhA + browserDetails: + browserName: Chrome + browserMajorVersion: '101' + browserFullVersion: 101.0.4951 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/101.0.4951.54 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1652977658029 + time: '2022-05-19T16:27:38Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-17T15:09:32.666Z' + subscription: '2022-05-17T15:09:32.666Z' + - requestId: 1652800172657.xA22Pd + browserDetails: + browserName: Chrome + browserMajorVersion: '101' + browserFullVersion: 101.0.4951 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/101.0.4951.54 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1652800172666 + time: '2022-05-17T15:09:32Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-17T14:18:17.631Z' + subscription: '2022-05-17T14:18:17.631Z' + - requestId: 1652797097626.faAMJO + browserDetails: + browserName: Chrome + browserMajorVersion: '101' + browserFullVersion: 101.0.4951 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/101.0.4951.54 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1652797097631 + time: '2022-05-17T14:18:17Z' + url: https://fingerprintjs.com/careers/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-17T10:16:04.809Z' + subscription: '2022-05-17T10:16:04.809Z' + - requestId: 1652782564800.MWH0GO + browserDetails: + browserName: Chrome + browserMajorVersion: '101' + browserFullVersion: 101.0.4951 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/101.0.4951.54 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1652782564809 + time: '2022-05-17T10:16:04Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-16T06:47:01.511Z' + subscription: '2022-05-16T06:47:01.511Z' + - requestId: 1652683621505.1tOjuc + browserDetails: + browserName: Chrome + browserMajorVersion: '101' + browserFullVersion: 101.0.4951 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/101.0.4951.54 Safari/537.36 + botProbability: 0 + incognito: false + ip: 217.150.54.233 + ipLocation: + accuracyRadius: 1000 + latitude: 59.8983 + longitude: 30.2618 + postalCode: '190924' + timezone: Europe/Moscow + city: + name: St Petersburg + country: + code: RU + name: Russia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: SPE + name: St.-Petersburg + timestamp: 1652683621511 + time: '2022-05-16T06:47:01Z' + url: https://fingerprintjs.com/products/bot-detection/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-16T06:45:49.586Z' + subscription: '2022-05-16T06:45:49.586Z' + - requestId: 1652683586557.67Faeg + browserDetails: + browserName: Chrome + browserMajorVersion: '101' + browserFullVersion: 101.0.4951 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/101.0.4951.54 Safari/537.36 + botProbability: 0 + incognito: true + ip: 217.150.54.233 + ipLocation: + accuracyRadius: 1000 + latitude: 59.8983 + longitude: 30.2618 + postalCode: '190924' + timezone: Europe/Moscow + city: + name: St Petersburg + country: + code: RU + name: Russia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: SPE + name: St.-Petersburg + timestamp: 1652683586562 + time: '2022-05-16T06:46:26Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 0.94 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-16T06:45:49.586Z' + subscription: '2022-05-16T06:45:49.586Z' + - requestId: 1652683549513.aVRqEP + browserDetails: + browserName: Chrome + browserMajorVersion: '101' + browserFullVersion: 101.0.4951 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/101.0.4951.54 Safari/537.36 + botProbability: 0 + incognito: false + ip: 217.150.54.233 + ipLocation: + accuracyRadius: 1000 + latitude: 59.8983 + longitude: 30.2618 + postalCode: '190924' + timezone: Europe/Moscow + city: + name: St Petersburg + country: + code: RU + name: Russia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: SPE + name: St.-Petersburg + timestamp: 1652683549586 + time: '2022-05-16T06:45:49Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-05T10:11:25.96Z' + subscription: '2022-05-05T10:11:25.96Z' + - requestId: 1651745485951.Oj68me + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1651745485960 + time: '2022-05-05T10:11:25Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-05T09:33:40.155Z' + subscription: '2022-05-05T09:33:40.155Z' + - requestId: 1651743220004.W02rhx + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1651743220155 + time: '2022-05-05T09:33:40Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-05-03T15:26:32.826Z' + subscription: '2022-05-03T15:26:32.826Z' + - requestId: 1651591592822.Is9u93 + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.157 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1651591592826 + time: '2022-05-03T15:26:32Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-29T13:23:37.049Z' + subscription: '2022-04-29T13:23:37.049Z' + - requestId: 1651238617044.rMVPGS + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 89.38.224.165 + ipLocation: + accuracyRadius: 20 + latitude: 44.804 + longitude: 20.4651 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1651238617049 + time: '2022-04-29T13:23:37Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-29T10:37:53.333Z' + subscription: '2022-04-29T10:37:53.333Z' + - requestId: 1651228673329.QZI2Cu + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 188.242.36.107 + ipLocation: + accuracyRadius: 5 + latitude: 59.8983 + longitude: 30.2618 + postalCode: '190924' + timezone: Europe/Moscow + city: + name: St Petersburg + country: + code: RU + name: Russia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: SPE + name: St.-Petersburg + timestamp: 1651228673333 + time: '2022-04-29T10:37:53Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-28T13:58:06.323Z' + subscription: '2022-04-28T13:58:06.323Z' + - requestId: 1651154286221.YvuOCP + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 84.247.59.113 + ipLocation: + accuracyRadius: 20 + latitude: 50.0971 + longitude: 8.5952 + postalCode: '65933' + timezone: Europe/Berlin + city: + name: Frankfurt am Main + country: + code: DE + name: Germany + continent: + code: EU + name: Europe + subdivisions: + - isoCode: HE + name: Hesse + timestamp: 1651154286323 + time: '2022-04-28T13:58:06Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-28T12:16:02.564Z' + subscription: '2022-04-28T12:16:02.564Z' + - requestId: 1651148162556.dySgif + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 84.247.59.113 + ipLocation: + accuracyRadius: 20 + latitude: 50.0971 + longitude: 8.5952 + postalCode: '65933' + timezone: Europe/Berlin + city: + name: Frankfurt am Main + country: + code: DE + name: Germany + continent: + code: EU + name: Europe + subdivisions: + - isoCode: HE + name: Hesse + timestamp: 1651148162564 + time: '2022-04-28T12:16:02Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-28T11:57:13.267Z' + subscription: '2022-04-28T11:57:13.267Z' + - requestId: 1651147033260.SxmFvL + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 84.247.59.146 + ipLocation: + accuracyRadius: 20 + latitude: 50.0971 + longitude: 8.5952 + postalCode: '65933' + timezone: Europe/Berlin + city: + name: Frankfurt am Main + country: + code: DE + name: Germany + continent: + code: EU + name: Europe + subdivisions: + - isoCode: HE + name: Hesse + timestamp: 1651147033267 + time: '2022-04-28T11:57:13Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-28T11:57:06.24Z' + subscription: '2022-04-28T11:57:06.24Z' + - requestId: 1651147026139.aAZ8TO + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 84.247.59.146 + ipLocation: + accuracyRadius: 20 + latitude: 50.0971 + longitude: 8.5952 + postalCode: '65933' + timezone: Europe/Berlin + city: + name: Frankfurt am Main + country: + code: DE + name: Germany + continent: + code: EU + name: Europe + subdivisions: + - isoCode: HE + name: Hesse + timestamp: 1651147026240 + time: '2022-04-28T11:57:06Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-26T14:10:31.908Z' + subscription: '2022-04-26T14:10:31.908Z' + - requestId: 1650982231903.eG0b6v + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.105 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650982231908 + time: '2022-04-26T14:10:31Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-26T11:43:37.373Z' + subscription: '2022-04-26T11:43:37.373Z' + - requestId: 1650973417360.xupFFD + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.99 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650973417373 + time: '2022-04-26T11:43:37Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-26T11:43:30.111Z' + subscription: '2022-04-26T11:43:30.111Z' + - requestId: 1650973410104.AQD4qu + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.99 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650973410111 + time: '2022-04-26T11:43:30Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-26T11:22:34.148Z' + subscription: '2022-04-26T11:22:34.148Z' + - requestId: 1650972154133.lSWE8a + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.96 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650972154148 + time: '2022-04-26T11:22:34Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-26T11:22:03.83Z' + subscription: '2022-04-26T11:22:03.83Z' + - requestId: 1650972123824.xk8MUR + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.96 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650972123830 + time: '2022-04-26T11:22:03Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-25T09:46:15.458Z' + subscription: '2022-04-25T09:46:15.458Z' + - requestId: 1650879975452.kfuowM + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 188.242.36.107 + ipLocation: + accuracyRadius: 5 + latitude: 59.8983 + longitude: 30.2618 + postalCode: '190924' + timezone: Europe/Moscow + city: + name: St Petersburg + country: + code: RU + name: Russia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: SPE + name: St.-Petersburg + timestamp: 1650879975458 + time: '2022-04-25T09:46:15Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-22T16:51:44.816Z' + subscription: '2022-04-22T16:51:44.816Z' + - requestId: 1650646304808.xQbAju + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.227 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650646304816 + time: '2022-04-22T16:51:44Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-21T11:43:33.116Z' + subscription: '2022-04-21T11:43:33.116Z' + - requestId: 1650541413105.leAPLz + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.89 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650541413116 + time: '2022-04-21T11:43:33Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-20T17:11:54.717Z' + subscription: '2022-04-20T17:11:54.717Z' + - requestId: 1650474714710.M1IGsl + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.111 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650474714717 + time: '2022-04-20T17:11:54Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-20T17:11:47.217Z' + subscription: '2022-04-20T17:11:47.217Z' + - requestId: 1650474707211.CEUuZk + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.111 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650474707217 + time: '2022-04-20T17:11:47Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-20T17:11:12.076Z' + subscription: '2022-04-20T17:11:12.076Z' + - requestId: 1650474672071.Pz4WsK + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.111 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650474672076 + time: '2022-04-20T17:11:12Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T12:29:06.692Z' + subscription: '2022-04-19T12:29:06.692Z' + - requestId: 1650371346684.1d7sgv + browserDetails: + browserName: Chrome Mobile + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Android + osVersion: '6.0' + device: Nexus 5 + userAgent: >- + Mozilla/5.0 (Linux; Android 6.0; Nexus 5 + Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Mobile Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.198 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650371346692 + time: '2022-04-19T12:29:06Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T12:29:02.15Z' + subscription: '2022-04-19T12:29:02.15Z' + - requestId: 1650371342145.oWyfRx + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.198 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650371342150 + time: '2022-04-19T12:29:02Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T11:35:14.729Z' + subscription: '2022-04-19T11:35:14.729Z' + - requestId: 1650368114723.YEXcHI + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.206 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650368114729 + time: '2022-04-19T11:35:14Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T11:13:33.107Z' + subscription: '2022-04-19T11:13:33.107Z' + - requestId: 1650366813101.SvUZC1 + browserDetails: + browserName: Chrome Mobile + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Android + osVersion: '6.0' + device: Nexus 5 + userAgent: >- + Mozilla/5.0 (Linux; Android 6.0; Nexus 5 + Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Mobile Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.204 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650366813107 + time: '2022-04-19T11:13:33Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T11:13:28.453Z' + subscription: '2022-04-19T11:13:28.453Z' + - requestId: 1650366808426.Hy6j7v + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.204 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650366808453 + time: '2022-04-19T11:13:28Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T11:07:05.19Z' + subscription: '2022-04-19T11:07:05.19Z' + - requestId: 1650366425184.xvYkdr + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.204 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650366425190 + time: '2022-04-19T11:07:05Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T11:07:00.483Z' + subscription: '2022-04-19T11:07:00.483Z' + - requestId: 1650366420377.VR5pDX + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.204 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650366420483 + time: '2022-04-19T11:07:00Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T10:37:45.279Z' + subscription: '2022-04-19T10:37:45.279Z' + - requestId: 1650364665274.qq31O4 + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.172 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650364665279 + time: '2022-04-19T10:37:45Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T10:22:58.87Z' + subscription: '2022-04-19T10:22:58.87Z' + - requestId: 1650363778864.tsVBjO + browserDetails: + browserName: Chrome Mobile + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Android + osVersion: '6.0' + device: Nexus 5 + userAgent: >- + Mozilla/5.0 (Linux; Android 6.0; Nexus 5 + Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Mobile Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.210 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650363778870 + time: '2022-04-19T10:22:58Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T10:22:46.894Z' + subscription: '2022-04-19T10:22:46.894Z' + - requestId: 1650363766889.KuVDpm + browserDetails: + browserName: Chrome Mobile + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Android + osVersion: '6.0' + device: Nexus 5 + userAgent: >- + Mozilla/5.0 (Linux; Android 6.0; Nexus 5 + Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Mobile Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.210 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650363766894 + time: '2022-04-19T10:22:46Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T10:07:01.528Z' + subscription: '2022-04-19T10:07:01.528Z' + - requestId: 1650362821521.dXH2Ce + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.180 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650362821528 + time: '2022-04-19T10:07:01Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-19T10:02:42.46Z' + subscription: '2022-04-19T10:02:42.46Z' + - requestId: 1650362562448.a5cPLU + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.127 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.180 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650362562460 + time: '2022-04-19T10:02:42Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-18T17:06:30.834Z' + subscription: '2022-04-18T17:06:30.834Z' + - requestId: 1650301590829.YXGX7h + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.75 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.195 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650301590834 + time: '2022-04-18T17:06:30Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-18T12:23:30.446Z' + subscription: '2022-04-18T12:23:30.446Z' + - requestId: 1650284610441.lJrX4M + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.75 Safari/537.36 + botProbability: 0 + incognito: false + ip: 45.86.200.179 + ipLocation: + accuracyRadius: 1000 + latitude: 52.3824 + longitude: 4.8995 + timezone: Europe/Amsterdam + country: + code: NL + name: Netherlands + continent: + code: EU + name: Europe + timestamp: 1650284610446 + time: '2022-04-18T12:23:30Z' + url: https://fingerprintjs.com/blog/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-04-06T14:53:00.526Z' + subscription: '2022-04-06T14:53:00.526Z' + - requestId: 1649256780522.WAXWf2 + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.60 Safari/537.36 + botProbability: 0 + incognito: false + ip: 109.245.35.200 + ipLocation: + accuracyRadius: 50 + latitude: 44.8166 + longitude: 20.4721 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1649256780526 + time: '2022-04-06T14:53:00Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-03-18T11:08:35.698Z' + subscription: '2022-03-18T11:08:35.698Z' + - requestId: 1649256780520.RRC4PR + browserDetails: + browserName: Chrome + browserMajorVersion: '100' + browserFullVersion: 100.0.4896 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/100.0.4896.60 Safari/537.36 + botProbability: 0 + incognito: false + ip: 109.245.35.200 + ipLocation: + accuracyRadius: 50 + latitude: 44.8166 + longitude: 20.4721 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1649256780525 + time: '2022-04-06T14:53:00Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-03-18T11:08:35.698Z' + subscription: '2022-03-18T11:08:35.698Z' + - requestId: 1647601715689.iocXfW + browserDetails: + browserName: Chrome + browserMajorVersion: '98' + browserFullVersion: 98.0.4758 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/98.0.4758.109 Safari/537.36 + botProbability: 0 + incognito: false + ip: 178.223.21.183 + ipLocation: + accuracyRadius: 50 + latitude: 44.8166 + longitude: 20.4721 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1647601715698 + time: '2022-03-18T11:08:35Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-03-16T08:21:23.62Z' + subscription: '2022-03-16T08:21:23.62Z' + - requestId: 1647418883615.Vck2NA + browserDetails: + browserName: Chrome + browserMajorVersion: '98' + browserFullVersion: 98.0.4758 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/98.0.4758.109 Safari/537.36 + botProbability: 0 + incognito: false + ip: 87.116.165.97 + ipLocation: + accuracyRadius: 50 + latitude: 44.8166 + longitude: 20.4721 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1647418883620 + time: '2022-03-16T08:21:23Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-03-16T08:21:18.398Z' + subscription: '2022-03-16T08:21:18.398Z' + - requestId: 1647418878391.NZDmht + browserDetails: + browserName: Chrome + browserMajorVersion: '98' + browserFullVersion: 98.0.4758 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/98.0.4758.109 Safari/537.36 + botProbability: 0 + incognito: false + ip: 87.116.165.97 + ipLocation: + accuracyRadius: 50 + latitude: 44.8166 + longitude: 20.4721 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1647418878398 + time: '2022-03-16T08:21:18Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-03-15T11:46:51.858Z' + subscription: '2022-03-15T11:46:51.858Z' + - requestId: 1647344811836.RvNkL5 + browserDetails: + browserName: Chrome + browserMajorVersion: '98' + browserFullVersion: 98.0.4758 + os: Mac OS X + osVersion: 10.15.7 + device: Other + userAgent: >- + Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) + AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/98.0.4758.109 Safari/537.36 + botProbability: 0 + incognito: false + ip: 87.116.165.97 + ipLocation: + accuracyRadius: 50 + latitude: 44.8166 + longitude: 20.4721 + timezone: Europe/Belgrade + city: + name: Belgrade + country: + code: RS + name: Serbia + continent: + code: EU + name: Europe + subdivisions: + - isoCode: '00' + name: Belgrade + timestamp: 1647344811858 + time: '2022-03-15T11:46:51Z' + url: https://fingerprintjs.com/ + tag: {} + confidence: + score: 1 + visitorFound: true + firstSeenAt: + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' + lastSeenAt: + global: '2022-03-08T12:33:05.677Z' + subscription: '2022-03-08T12:33:05.677Z' + '429': + description: Too Many Requests + headers: + Retry-After: + description: >- + Indicates how long the user should wait before making a + follow-up request. + schema: + type: integer + format: int32 + minimum: 0 + content: + application/json: + schema: + $ref: '#/components/schemas/ManyRequestsResponse' + /webhook: + trace: + tags: + - Fingerprint + description: >- + Fake path to describe webhook format. More information about webhooks + can be found in the + [documentation](https://dev.fingerprint.com/docs/webhooks) + callbacks: + webhook: + webhook: + post: + description: >- + You can use HTTP basic authentication and setup credentials in + your [Fingerprint + account](https://dashboard.fingerprint.com/login) + requestBody: + content: + application/json: + schema: + type: object + $ref: '#/components/schemas/WebhookVisit' + example: + value: + requestId: Px6VxbRC6WBkA39yeNH3 + tag: + requestType: signup + yourCustomId: 45321 + linkedId: any-string + visitorId: 3HNey93AkBW6CRbxV6xP + visitorFound: true + timestamp: 1554910997788 + time: '2019-10-12T07:20:50.52Z' + incognito: false + url: https://banking.example.com/signup + clientReferrer: https://google.com?search=banking+services + ip: 216.3.128.12 + ipLocation: + accuracyRadius: 1 + city: + name: Bolingbrook + continent: + code: NA + name: North America + country: + code: US + name: United States + latitude: 41.12933 + longitude: -88.9954 + postalCode: '60547' + subdivisions: + - isoCode: IL + name: Illinois + timezone: America/Chicago + browserDetails: + browserName: Chrome + browserFullVersion: 73.0.3683.86 + browserMajorVersion: '73' + os: Mac OS X + osVersion: 10.14.3 + device: Other + userAgent: >- + (Macintosh; Intel Mac OS X 10_14_3) + Chrome/73.0.3683.86 + confidence: + score: 0.97 + firstSeenAt: + global: '2022-03-16T11:26:45.362Z' + subscription: '2022-03-16T11:31:01.101Z' + lastSeenAt: + global: '2022-03-16T11:28:34.023Z' + subscription: null +components: + securitySchemes: + ApiKeyHeader: + type: apiKey + in: header + name: Auth-API-Key + ApiKeyQuery: + type: apiKey + in: query + name: api_key + schemas: + Response: + type: object + additionalProperties: false + properties: + visitorId: + type: string + visits: + type: array + items: + type: object + properties: + requestId: + description: Unique identifier of the user's identification request. + type: string + example: 1654815516083.OX6kx8 + browserDetails: + $ref: '#/components/schemas/BrowserDetails' + incognito: + description: Flag if user used incognito session. + type: boolean + ip: + type: string + format: ipv4 + example: 8.8.8.8 + ipLocation: + $ref: '#/components/schemas/IPLocation' + timestamp: + description: >- + Timestamp of the event with millisecond precision in Unix + time. + type: integer + format: int64 + example: 1654815516086 + time: + description: Time expressed according to ISO 8601 in UTC format. + type: string + format: date-time + example: '2022-06-09T22:58:36Z' + url: + description: Page URL from which identification request was sent. + type: string + format: uri + example: https://some.website/path?query=params + tag: + description: >- + A customer-provided value or an object that was sent with + identification request. + type: object + additionalProperties: true + linkedId: + description: >- + A customer-provided id that was sent with identification + request. + type: string + example: someID + confidence: + $ref: '#/components/schemas/Confidence' + visitorFound: + description: Attribute represents if a visitor had been identified before. + type: boolean + firstSeenAt: + $ref: '#/components/schemas/StSeenAt' + example: + global: '2022-05-05T18:28:54.535Z' + subscription: '2022-06-09T22:58:05.576Z' + lastSeenAt: + $ref: '#/components/schemas/StSeenAt' + example: + global: '2022-06-09T22:58:35.795Z' + subscription: null + additionalProperties: false + required: + - browserDetails + - confidence + - firstSeenAt + - incognito + - ip + - ipLocation + - lastSeenAt + - requestId + - time + - timestamp + - url + - visitorFound + - tag + lastTimestamp: + description: >- + When more results are available (e.g., you scanned 200 results using + `limit` parameter, but a total of 600 results are available), a + special `lastTimestamp` top-level attribute is added to the + response. If you want to paginate the results further in the past, + you should use the value of this attribute. + type: integer + format: int64 + example: 1654815517198 + paginationKey: + description: Visit's `requestId` of the last visit in the current page. + type: string + example: 1654815517198.azN4IZ + required: + - visitorId + - visits + title: PaginatedResponse + description: >- + Fields `lastTimestamp` and `paginationKey` added when `limit` or + `before` parameter provided and there is more data to show + ErrorResponse: + type: object + additionalProperties: false + properties: + error: + type: object + additionalProperties: false + properties: + code: + type: string + example: TokenRequired + message: + type: string + example: secret key is required + ManyRequestsResponse: + type: object + additionalProperties: false + properties: + error: + type: string + description: Error text. + example: request throttled + required: + - error + WebhookVisit: + type: object + properties: + visitorId: + type: string + clientReferrer: + type: string + requestId: + description: Unique identifier of the user's identification request. + type: string + example: 1654815516083.OX6kx8 + browserDetails: + $ref: '#/components/schemas/BrowserDetails' + incognito: + description: Flag if user used incognito session. + type: boolean + ip: + type: string + format: ipv4 + example: 8.8.8.8 + ipLocation: + $ref: '#/components/schemas/IPLocation' + timestamp: + description: Timestamp of the event with millisecond precision in Unix time. + type: integer + format: int64 + example: 1654815516086 + time: + description: Time expressed according to ISO 8601 in UTC format. + type: string + format: date-time + example: '2022-06-09T22:58:36Z' + url: + description: Page URL from which identification request was sent. + type: string + format: uri + example: https://some.website/path?query=params + tag: + description: >- + A customer-provided value or an object that was sent with + identification request. + type: object + additionalProperties: true + linkedId: + description: A customer-provided id that was sent with identification request. + type: string + example: someID + confidence: + $ref: '#/components/schemas/Confidence' + visitorFound: + description: Attribute represents if a visitor had been identified before. + type: boolean + firstSeenAt: + $ref: '#/components/schemas/StSeenAt' + example: + global: '2022-05-05T18:28:54.535Z' + subscription: '2022-06-09T22:58:05.576Z' + lastSeenAt: + $ref: '#/components/schemas/StSeenAt' + example: + global: '2022-06-09T22:58:35.795Z' + subscription: null + additionalProperties: false + required: + - visitorId + - browserDetails + - confidence + - firstSeenAt + - incognito + - ip + - ipLocation + - lastSeenAt + - requestId + - time + - timestamp + - url + - visitorFound + Visit: + type: object + additionalProperties: false + properties: + requestId: + description: Unique identifier of the user's identification request. + type: string + example: 1654815516083.OX6kx8 + browserDetails: + $ref: '#/components/schemas/BrowserDetails' + incognito: + description: Flag if user used incognito session. + type: boolean + ip: + type: string + format: ipv4 + example: 8.8.8.8 + ipLocation: + $ref: '#/components/schemas/IPLocation' + timestamp: + description: Timestamp of the event with millisecond precision in Unix time. + type: integer + format: int64 + example: 1654815516086 + time: + description: Time expressed according to ISO 8601 in UTC format. + type: string + format: date-time + example: '2022-06-09T22:58:36Z' + url: + description: Page URL from which identification request was sent. + type: string + format: uri + example: https://some.website/path?query=params + tag: + description: >- + A customer-provided value or an object that was sent with + identification request. + type: object + additionalProperties: true + linkedId: + description: A customer-provided id that was sent with identification request. + type: string + example: someID + confidence: + $ref: '#/components/schemas/Confidence' + visitorFound: + description: Attribute represents if a visitor had been identified before. + type: boolean + firstSeenAt: + $ref: '#/components/schemas/StSeenAt' + example: + global: '2022-05-05T18:28:54.535Z' + subscription: '2022-06-09T22:58:05.576Z' + lastSeenAt: + $ref: '#/components/schemas/StSeenAt' + example: + global: '2022-06-09T22:58:35.795Z' + subscription: null + required: + - browserDetails + - confidence + - firstSeenAt + - incognito + - ip + - ipLocation + - lastSeenAt + - requestId + - time + - timestamp + - url + - visitorFound + title: Visit + BrowserDetails: + type: object + additionalProperties: false + properties: + browserName: + type: string + example: Chrome + browserMajorVersion: + type: string + example: '101' + browserFullVersion: + type: string + example: 101.0.4951 + os: + type: string + example: Windows + osVersion: + type: string + example: '10' + device: + type: string + example: Other + userAgent: + type: string + example: >- + Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, + like Gecko) Chrome/101.0.4951.41 Safari/537.36 + botProbability: + type: integer + required: + - browserFullVersion + - browserMajorVersion + - browserName + - device + - os + - osVersion + - userAgent + title: BrowserDetails + Confidence: + type: object + additionalProperties: false + properties: + score: + description: >- + The confidence score is a floating-point number between 0 and 1 that + represents the probability of accurate identification. + type: number + format: float + minimum: 0 + maximum: 1 + required: + - score + title: Confidence + StSeenAt: + type: object + additionalProperties: false + properties: + global: + type: string + nullable: true + format: date-time + subscription: + type: string + nullable: true + format: date-time + required: + - global + - subscription + title: StSeenAt + IPLocation: + type: object + additionalProperties: false + properties: + accuracyRadius: + type: integer + minimum: 0 + example: 1000 + latitude: + type: number + format: double + minimum: -90 + maximum: 90 + example: 37.75 + longitude: + type: number + format: double + minimum: -180 + maximum: 180 + example: -97.82 + postalCode: + type: string + example: 130 00 + timezone: + type: string + format: timezone + example: America/Chicago + city: + type: object + additionalProperties: false + properties: + name: + type: string + example: Prague + country: + $ref: '#/components/schemas/Location' + example: + code: US + name: United States + continent: + $ref: '#/components/schemas/Location' + example: + code: NA + name: North America + subdivisions: + type: array + items: + $ref: '#/components/schemas/Subdivision' + required: + - accuracyRadius + - continent + - country + - latitude + - longitude + - timezone + title: IPLocation + Location: + type: object + additionalProperties: false + properties: + code: + type: string + minLength: 2 + maxLength: 2 + example: US + name: + type: string + example: United States + required: + - code + - name + title: Location + Subdivision: + type: object + additionalProperties: false + properties: + isoCode: + type: string + example: '10' + name: + type: string + example: Hlavni mesto Praha + ProductsResponse: + type: object + description: >- + Contains all the information from each activated product - BOTD and + Identification + additionalProperties: false + properties: + identification: + type: object + additionalProperties: false + properties: + data: + type: object + properties: + requestId: + description: Unique identifier of the user's identification request. + type: string + example: 1654815516083.OX6kx8 + browserDetails: + $ref: '#/components/schemas/BrowserDetails' + incognito: + description: Flag if user used incognito session. + type: boolean + ip: + type: string + format: ipv4 + example: 8.8.8.8 + ipLocation: + $ref: '#/components/schemas/IPLocation' + timestamp: + description: >- + Timestamp of the event with millisecond precision in Unix + time. + type: integer + format: int64 + example: 1654815516086 + time: + description: Time expressed according to ISO 8601 in UTC format. + type: string + format: date-time + example: '2022-06-09T22:58:36Z' + url: + description: Page URL from which identification request was sent. + type: string + format: uri + example: https://some.website/path?query=params + tag: + description: >- + A customer-provided value or an object that was sent with + identification request. + type: object + additionalProperties: true + linkedId: + description: >- + A customer-provided id that was sent with identification + request. + type: string + example: someID + confidence: + $ref: '#/components/schemas/Confidence' + visitorFound: + description: >- + Attribute represents if a visitor had been identified + before. + type: boolean + firstSeenAt: + $ref: '#/components/schemas/StSeenAt' + example: + global: '2022-05-05T18:28:54.535Z' + subscription: '2022-06-09T22:58:05.576Z' + lastSeenAt: + $ref: '#/components/schemas/StSeenAt' + example: + global: '2022-06-09T22:58:35.795Z' + subscription: null + visitorId: + type: string + additionalProperties: false + required: + - browserDetails + - confidence + - firstSeenAt + - incognito + - ip + - ipLocation + - lastSeenAt + - requestId + - time + - timestamp + - url + - visitorFound + - visitorId + botd: + type: object + additionalProperties: false + properties: + data: + $ref: '#/components/schemas/BotdResult' + EventResponse: + description: Contains event from activated products - BOTD and Identification + type: object + additionalProperties: false + properties: + products: + $ref: '#/components/schemas/ProductsResponse' + BotdResult: + type: object + additionalProperties: false + description: Contains all the information from BOTD product + properties: + ip: + type: string + format: ipv4 + example: 8.8.8.8 + description: IP address of the requesting browser or bot. + time: + description: >- + Time in UTC when the request from the JS agent was made. We + recommend to treat requests that are older than 2 minutes as + malicious. Otherwise, request replay attacks are possible + type: string + format: date-time + example: '2022-06-09T22:58:36Z' + bot: + $ref: '#/components/schemas/BotdDetectionResult' + example: + result: notDetected + required: + - bot + - ip + - time + BotdDetectionResult: + type: object + additionalProperties: false + description: Stores bot detection result + properties: + result: + type: string + description: | + Bot detection result: + * `notDetected` - the visitor is not a bot + * `good` - good bot detected, such as Google bot, Baidu Spider, AlexaBot and so on + * `bad` - bad bot detected, such as Selenium, Puppeteer, Playwright, headless browsers, and so on + enum: + - notDetected + - good + - bad + required: + - result diff --git a/sync.sh b/sync.sh new file mode 100755 index 0000000..ddd6ff7 --- /dev/null +++ b/sync.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +curl -o ./res/fingerprint-server-api.yaml https://fingerprintjs.github.io/fingerprint-pro-server-api-openapi/schemes/fingerprint-server-api.yaml From 0be627ddb41985033ee803c52c3997b4c349d65f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Fri, 9 Sep 2022 11:18:07 +0100 Subject: [PATCH 10/26] build: use built schema --- README.md | 4 ++-- docs/ProductsResponseIdentification.md | 2 +- ...ificationData.md => ProductsResponseIdentificationData.md} | 2 +- docs/Response.md | 2 +- docs/{AllOfResponseVisitsItems.md => ResponseVisits.md} | 2 +- docs/WebhookVisit.md | 2 ++ sdk/model_products_response_identification.go | 2 +- ...data.go => model_products_response_identification_data.go} | 2 +- sdk/model_response.go | 4 ++-- ...l_of_response_visits_items.go => model_response_visits.go} | 2 +- sdk/model_webhook_visit.go | 2 ++ 11 files changed, 15 insertions(+), 11 deletions(-) rename docs/{AllOfProductsResponseIdentificationData.md => ProductsResponseIdentificationData.md} (97%) rename docs/{AllOfResponseVisitsItems.md => ResponseVisits.md} (98%) rename sdk/{model_all_of_products_response_identification_data.go => model_products_response_identification_data.go} (96%) rename sdk/{model_all_of_response_visits_items.go => model_response_visits.go} (97%) diff --git a/README.md b/README.md index 2199ca9..847c9a8 100644 --- a/README.md +++ b/README.md @@ -97,8 +97,6 @@ Class | Method | HTTP request | Description ## Documentation For Models - - [AllOfProductsResponseIdentificationData](docs/AllOfProductsResponseIdentificationData.md) - - [AllOfResponseVisitsItems](docs/AllOfResponseVisitsItems.md) - [BotdDetectionResult](docs/BotdDetectionResult.md) - [BotdResult](docs/BotdResult.md) - [BrowserDetails](docs/BrowserDetails.md) @@ -113,7 +111,9 @@ Class | Method | HTTP request | Description - [ProductsResponse](docs/ProductsResponse.md) - [ProductsResponseBotd](docs/ProductsResponseBotd.md) - [ProductsResponseIdentification](docs/ProductsResponseIdentification.md) + - [ProductsResponseIdentificationData](docs/ProductsResponseIdentificationData.md) - [Response](docs/Response.md) + - [ResponseVisits](docs/ResponseVisits.md) - [StSeenAt](docs/StSeenAt.md) - [Subdivision](docs/Subdivision.md) - [Visit](docs/Visit.md) diff --git a/docs/ProductsResponseIdentification.md b/docs/ProductsResponseIdentification.md index 2d12dae..bcb3291 100644 --- a/docs/ProductsResponseIdentification.md +++ b/docs/ProductsResponseIdentification.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Data** | [***AllOfProductsResponseIdentificationData**](AllOfProductsResponseIdentificationData.md) | | [optional] [default to null] +**Data** | [***ProductsResponseIdentificationData**](ProductsResponse_identification_data.md) | | [optional] [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/AllOfProductsResponseIdentificationData.md b/docs/ProductsResponseIdentificationData.md similarity index 97% rename from docs/AllOfProductsResponseIdentificationData.md rename to docs/ProductsResponseIdentificationData.md index 1a954ff..254b37a 100644 --- a/docs/AllOfProductsResponseIdentificationData.md +++ b/docs/ProductsResponseIdentificationData.md @@ -1,4 +1,4 @@ -# AllOfProductsResponseIdentificationData +# ProductsResponseIdentificationData ## Properties Name | Type | Description | Notes diff --git a/docs/Response.md b/docs/Response.md index 73c8dc0..e924501 100644 --- a/docs/Response.md +++ b/docs/Response.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **VisitorId** | **string** | | [default to null] -**Visits** | [**[]AllOfResponseVisitsItems**](.md) | | [default to null] +**Visits** | [**[]ResponseVisits**](Response_visits.md) | | [default to null] **LastTimestamp** | **int64** | When more results are available (e.g., you scanned 200 results using `limit` parameter, but a total of 600 results are available), a special `lastTimestamp` top-level attribute is added to the response. If you want to paginate the results further in the past, you should use the value of this attribute. | [optional] [default to null] **PaginationKey** | **string** | Visit's `requestId` of the last visit in the current page. | [optional] [default to null] diff --git a/docs/AllOfResponseVisitsItems.md b/docs/ResponseVisits.md similarity index 98% rename from docs/AllOfResponseVisitsItems.md rename to docs/ResponseVisits.md index 8c53f91..1c878c4 100644 --- a/docs/AllOfResponseVisitsItems.md +++ b/docs/ResponseVisits.md @@ -1,4 +1,4 @@ -# AllOfResponseVisitsItems +# ResponseVisits ## Properties Name | Type | Description | Notes diff --git a/docs/WebhookVisit.md b/docs/WebhookVisit.md index 44509b7..42e8574 100644 --- a/docs/WebhookVisit.md +++ b/docs/WebhookVisit.md @@ -3,6 +3,8 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**VisitorId** | **string** | | [default to null] +**ClientReferrer** | **string** | | [optional] [default to null] **RequestId** | **string** | Unique identifier of the user's identification request. | [default to null] **BrowserDetails** | [***BrowserDetails**](BrowserDetails.md) | | [default to null] **Incognito** | **bool** | Flag if user used incognito session. | [default to null] diff --git a/sdk/model_products_response_identification.go b/sdk/model_products_response_identification.go index c33ca89..80c19cf 100644 --- a/sdk/model_products_response_identification.go +++ b/sdk/model_products_response_identification.go @@ -10,5 +10,5 @@ package sdk type ProductsResponseIdentification struct { - Data *AllOfProductsResponseIdentificationData `json:"data,omitempty"` + Data *ProductsResponseIdentificationData `json:"data,omitempty"` } diff --git a/sdk/model_all_of_products_response_identification_data.go b/sdk/model_products_response_identification_data.go similarity index 96% rename from sdk/model_all_of_products_response_identification_data.go rename to sdk/model_products_response_identification_data.go index 59db106..79702ba 100644 --- a/sdk/model_all_of_products_response_identification_data.go +++ b/sdk/model_products_response_identification_data.go @@ -13,7 +13,7 @@ import ( "time" ) -type AllOfProductsResponseIdentificationData struct { +type ProductsResponseIdentificationData struct { // Unique identifier of the user's identification request. RequestId string `json:"requestId"` BrowserDetails *BrowserDetails `json:"browserDetails"` diff --git a/sdk/model_response.go b/sdk/model_response.go index 2e7b55c..e27009e 100644 --- a/sdk/model_response.go +++ b/sdk/model_response.go @@ -11,8 +11,8 @@ package sdk // Fields `lastTimestamp` and `paginationKey` added when `limit` or `before` parameter provided and there is more data to show type Response struct { - VisitorId string `json:"visitorId"` - Visits []AllOfResponseVisitsItems `json:"visits"` + VisitorId string `json:"visitorId"` + Visits []ResponseVisits `json:"visits"` // When more results are available (e.g., you scanned 200 results using `limit` parameter, but a total of 600 results are available), a special `lastTimestamp` top-level attribute is added to the response. If you want to paginate the results further in the past, you should use the value of this attribute. LastTimestamp int64 `json:"lastTimestamp,omitempty"` // Visit's `requestId` of the last visit in the current page. diff --git a/sdk/model_all_of_response_visits_items.go b/sdk/model_response_visits.go similarity index 97% rename from sdk/model_all_of_response_visits_items.go rename to sdk/model_response_visits.go index 1ffd646..74f2ea2 100644 --- a/sdk/model_all_of_response_visits_items.go +++ b/sdk/model_response_visits.go @@ -13,7 +13,7 @@ import ( "time" ) -type AllOfResponseVisitsItems struct { +type ResponseVisits struct { // Unique identifier of the user's identification request. RequestId string `json:"requestId"` BrowserDetails *BrowserDetails `json:"browserDetails"` diff --git a/sdk/model_webhook_visit.go b/sdk/model_webhook_visit.go index d4c126b..c4850ef 100644 --- a/sdk/model_webhook_visit.go +++ b/sdk/model_webhook_visit.go @@ -14,6 +14,8 @@ import ( ) type WebhookVisit struct { + VisitorId string `json:"visitorId"` + ClientReferrer string `json:"clientReferrer,omitempty"` // Unique identifier of the user's identification request. RequestId string `json:"requestId"` BrowserDetails *BrowserDetails `json:"browserDetails"` From 0a3329f3f32cba6410aff62d89ad995797697495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Fri, 9 Sep 2022 11:25:19 +0100 Subject: [PATCH 11/26] ci: fix test paths --- .github/workflows/functional_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/functional_tests.yml b/.github/workflows/functional_tests.yml index 8f3d1fc..821bc68 100644 --- a/.github/workflows/functional_tests.yml +++ b/.github/workflows/functional_tests.yml @@ -24,7 +24,7 @@ jobs: go-version: ${{ matrix.go-version }} - run: go version - name: Run functional tests - run: cd example && go run GetVisits_APIKey.go + run: cd example && go run visits/GetVisits_APIKey.go && go run events/GetEvent_APIKey.go env: FINGERPRINT_API_KEY: ${{ secrets.FINGERPRINT_API_KEY }} VISITOR_ID: ${{ secrets.VISITOR_ID }} From b29ad3ecafb5b2c56188d9e95790c464dad1d57e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Tue, 13 Sep 2022 15:39:22 +0100 Subject: [PATCH 12/26] docs: fix invalid path to models --- docs/ErrorResponse.md | 2 +- docs/IpLocation.md | 2 +- docs/ProductsResponse.md | 4 +- docs/ProductsResponseIdentification.md | 2 +- docs/Response.md | 2 +- generate.go | 4 +- res/fingerprint-server-api.yaml | 1001 ++++++++++++------------ swagger-codegen.log | 57 ++ 8 files changed, 572 insertions(+), 502 deletions(-) create mode 100644 swagger-codegen.log diff --git a/docs/ErrorResponse.md b/docs/ErrorResponse.md index e91a3d6..1f3d0dc 100644 --- a/docs/ErrorResponse.md +++ b/docs/ErrorResponse.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Error_** | [***ErrorResponseError**](ErrorResponse_error.md) | | [optional] [default to null] +**Error_** | [***ErrorResponseError**](ErrorResponseError.md) | | [optional] [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/IpLocation.md b/docs/IpLocation.md index 979562d..4220311 100644 --- a/docs/IpLocation.md +++ b/docs/IpLocation.md @@ -8,7 +8,7 @@ Name | Type | Description | Notes **Longitude** | **float64** | | [default to null] **PostalCode** | **string** | | [optional] [default to null] **Timezone** | **string** | | [default to null] -**City** | [***IpLocationCity**](IPLocation_city.md) | | [optional] [default to null] +**City** | [***IpLocationCity**](IPLocationCity.md) | | [optional] [default to null] **Country** | [***Location**](Location.md) | | [default to null] **Continent** | [***Location**](Location.md) | | [default to null] **Subdivisions** | [**[]Subdivision**](Subdivision.md) | | [optional] [default to null] diff --git a/docs/ProductsResponse.md b/docs/ProductsResponse.md index 1d92da9..4a5f847 100644 --- a/docs/ProductsResponse.md +++ b/docs/ProductsResponse.md @@ -3,8 +3,8 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Identification** | [***ProductsResponseIdentification**](ProductsResponse_identification.md) | | [optional] [default to null] -**Botd** | [***ProductsResponseBotd**](ProductsResponse_botd.md) | | [optional] [default to null] +**Identification** | [***ProductsResponseIdentification**](ProductsResponseIdentification.md) | | [optional] [default to null] +**Botd** | [***ProductsResponseBotd**](ProductsResponseBotd.md) | | [optional] [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/ProductsResponseIdentification.md b/docs/ProductsResponseIdentification.md index bcb3291..dde548a 100644 --- a/docs/ProductsResponseIdentification.md +++ b/docs/ProductsResponseIdentification.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Data** | [***ProductsResponseIdentificationData**](ProductsResponse_identification_data.md) | | [optional] [default to null] +**Data** | [***ProductsResponseIdentificationData**](ProductsResponseIdentificationData.md) | | [optional] [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Response.md b/docs/Response.md index e924501..801ca60 100644 --- a/docs/Response.md +++ b/docs/Response.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **VisitorId** | **string** | | [default to null] -**Visits** | [**[]ResponseVisits**](Response_visits.md) | | [default to null] +**Visits** | [**[]ResponseVisits**](ResponseVisits.md) | | [default to null] **LastTimestamp** | **int64** | When more results are available (e.g., you scanned 200 results using `limit` parameter, but a total of 600 results are available), a special `lastTimestamp` top-level attribute is added to the response. If you want to paginate the results further in the past, you should use the value of this attribute. | [optional] [default to null] **PaginationKey** | **string** | Visit's `requestId` of the last visit in the current page. | [optional] [default to null] diff --git a/generate.go b/generate.go index 9cd17f8..2c965de 100644 --- a/generate.go +++ b/generate.go @@ -3,11 +3,12 @@ package main import ( "encoding/json" "fmt" - "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/config" "log" "os" "os/exec" "strings" + + "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/config" ) var files = []string{"README.md", "docs", ".swagger-codegen"} @@ -120,6 +121,7 @@ func generateSwagger() { log.Fatal(cmdErr) } + os.WriteFile("./swagger-codegen.log", out, 0644) fmt.Println(string(out)) } diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml index 04882cb..0fbc064 100644 --- a/res/fingerprint-server-api.yaml +++ b/res/fingerprint-server-api.yaml @@ -4,7 +4,7 @@ info: description: >- Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. - version: '3' + version: "3" contact: name: Fingerprint Support email: support@fingerprint.com @@ -43,12 +43,12 @@ paths: schema: type: string responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/EventResponse' + $ref: "#/components/schemas/EventResponse" examples: example: summary: Example response @@ -60,7 +60,7 @@ paths: requestId: 0KSh65EnVoB85JBmloQK incognito: true linkedId: somelinkedId - time: '2019-05-21T16:40:13Z' + time: "2019-05-21T16:40:13Z" timestamp: 1582299576512 url: https://www.example.com/login ip: 61.127.217.15 @@ -68,7 +68,7 @@ paths: accuracyRadius: 10 latitude: 49.982 longitude: 36.2566 - postalCode: '61202' + postalCode: "61202" timezone: Europe/Dusseldorf city: name: Dusseldorf @@ -79,37 +79,37 @@ paths: code: DE name: Germany subdivisions: - - isoCode: '63' + - isoCode: "63" name: North Rhine-Westphalia browserDetails: browserName: Chrome - browserMajorVersion: '74' + browserMajorVersion: "74" browserFullVersion: 74.0.3729 os: Windows - osVersion: '7' + osVersion: "7" device: Other userAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) .... confidence: score: 0.97 visitorFound: true firstSeenAt: - global: '2022-03-16T11:26:45.362Z' - subscription: '2022-03-16T11:31:01.101Z' + global: "2022-03-16T11:26:45.362Z" + subscription: "2022-03-16T11:31:01.101Z" lastSeenAt: - global: '2022-03-16T11:28:34.023Z' + global: "2022-03-16T11:28:34.023Z" subscription: null botd: data: bot: result: notDetected ip: 61.127.217.15 - time: '2019-05-21T16:40:13Z' - '400': + time: "2019-05-21T16:40:13Z" + "400": description: Bad Request content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: "#/components/schemas/ErrorResponse" examples: example: summary: Example response @@ -117,12 +117,12 @@ paths: error: code: RequestIdCannotBeParsed message: invalid format of request id - '403': + "403": description: Forbidden content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: "#/components/schemas/ErrorResponse" examples: example: summary: Example response @@ -130,7 +130,7 @@ paths: error: code: TokenRequired message: secret key is required - '429': + "429": description: Too Many Requests headers: Retry-After: @@ -144,7 +144,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ManyRequestsResponse' + $ref: "#/components/schemas/ManyRequestsResponse" /visitors/{visitor_id}: get: tags: @@ -187,12 +187,12 @@ paths: format: int32 minimum: 0 responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/Response' + $ref: "#/components/schemas/Response" examples: limit1: summary: Request with limit=1 @@ -202,7 +202,7 @@ paths: - requestId: 1655373953086.DDlfmP browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -229,21 +229,21 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '10' + - isoCode: "10" name: Hlavni mesto Praha timestamp: 1655373953094 - time: '2022-06-16T10:05:53Z' + time: "2022-06-16T10:05:53Z" url: https://dashboard.fingerprint.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-16T10:03:00.912Z' - subscription: '2022-06-16T10:03:00.912Z' + global: "2022-06-16T10:03:00.912Z" + subscription: "2022-06-16T10:03:00.912Z" lastTimestamp: 1655373953086 paginationKey: 1655373953086.DDlfmP limit500: @@ -254,7 +254,7 @@ paths: - requestId: 1655373780901.HhjRFX browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -270,7 +270,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: '190924' + postalCode: "190924" timezone: Europe/Moscow city: name: St Petersburg @@ -284,22 +284,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1655373780912 - time: '2022-06-16T10:03:00Z' + time: "2022-06-16T10:03:00Z" url: https://fingerprint.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-16T05:27:30.578Z' - subscription: '2022-06-16T05:27:30.578Z' + global: "2022-06-16T05:27:30.578Z" + subscription: "2022-06-16T05:27:30.578Z" - requestId: 1655357250568.vqejDF browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -326,25 +326,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '10' + - isoCode: "10" name: Hlavni mesto Praha timestamp: 1655357250578 - time: '2022-06-16T05:27:30Z' + time: "2022-06-16T05:27:30Z" url: https://fingerprint.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-15T15:28:33.479Z' - subscription: '2022-06-15T15:28:33.479Z' + global: "2022-06-15T15:28:33.479Z" + subscription: "2022-06-15T15:28:33.479Z" - requestId: 1655306913474.kFQsQx browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -371,25 +371,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '10' + - isoCode: "10" name: Hlavni mesto Praha timestamp: 1655306913479 - time: '2022-06-15T15:28:33Z' + time: "2022-06-15T15:28:33Z" url: https://fingerprint.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-15T08:47:34.677Z' - subscription: '2022-06-15T08:47:34.677Z' + global: "2022-06-15T08:47:34.677Z" + subscription: "2022-06-15T08:47:34.677Z" - requestId: 1655282854672.vz4ZlN browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -416,25 +416,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '10' + - isoCode: "10" name: Hlavni mesto Praha timestamp: 1655282854677 - time: '2022-06-15T08:47:34Z' + time: "2022-06-15T08:47:34Z" url: https://fingerprint.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-14T14:19:42.753Z' - subscription: '2022-06-14T14:19:42.753Z' + global: "2022-06-14T14:19:42.753Z" + subscription: "2022-06-14T14:19:42.753Z" - requestId: 1655216382743.RDRa4h browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -450,7 +450,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: '190924' + postalCode: "190924" timezone: Europe/Moscow city: name: St Petersburg @@ -464,22 +464,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1655216382753 - time: '2022-06-14T14:19:42Z' + time: "2022-06-14T14:19:42Z" url: https://fingerprint.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-13T07:53:19.878Z' - subscription: '2022-06-13T07:53:19.878Z' + global: "2022-06-13T07:53:19.878Z" + subscription: "2022-06-13T07:53:19.878Z" - requestId: 1655106799870.C8m8hR browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -503,22 +503,22 @@ paths: code: EU name: Europe timestamp: 1655106799878 - time: '2022-06-13T07:53:19Z' + time: "2022-06-13T07:53:19Z" url: https://fingerprint.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-07T12:54:35.413Z' - subscription: '2022-06-07T12:54:35.413Z' + global: "2022-06-07T12:54:35.413Z" + subscription: "2022-06-07T12:54:35.413Z" - requestId: 1654606475406.2uXCJx browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -544,25 +544,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1654606475413 - time: '2022-06-07T12:54:35Z' + time: "2022-06-07T12:54:35Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-07T09:37:57.43Z' - subscription: '2022-06-07T09:37:57.43Z' + global: "2022-06-07T09:37:57.43Z" + subscription: "2022-06-07T09:37:57.43Z" - requestId: 1654594677423.pCHmKJ browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -578,7 +578,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: '190924' + postalCode: "190924" timezone: Europe/Moscow city: name: St Petersburg @@ -592,22 +592,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1654594677430 - time: '2022-06-07T09:37:57Z' + time: "2022-06-07T09:37:57Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-07T09:37:50.109Z' - subscription: '2022-06-07T09:37:50.109Z' + global: "2022-06-07T09:37:50.109Z" + subscription: "2022-06-07T09:37:50.109Z" - requestId: 1654594670097.Lmodmj browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -623,7 +623,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: '190924' + postalCode: "190924" timezone: Europe/Moscow city: name: St Petersburg @@ -637,22 +637,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1654594670109 - time: '2022-06-07T09:37:50Z' + time: "2022-06-07T09:37:50Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-07T08:31:31.9Z' - subscription: '2022-06-07T08:31:31.9Z' + global: "2022-06-07T08:31:31.9Z" + subscription: "2022-06-07T08:31:31.9Z" - requestId: 1654590691894.aCYqYE browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -668,7 +668,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: '190924' + postalCode: "190924" timezone: Europe/Moscow city: name: St Petersburg @@ -682,22 +682,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1654590691900 - time: '2022-06-07T08:31:31Z' + time: "2022-06-07T08:31:31Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-06T09:05:25.954Z' - subscription: '2022-06-06T09:05:25.954Z' + global: "2022-06-06T09:05:25.954Z" + subscription: "2022-06-06T09:05:25.954Z" - requestId: 1654506325946.ijIwzu browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -723,25 +723,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1654506325954 - time: '2022-06-06T09:05:25Z' + time: "2022-06-06T09:05:25Z" url: https://fingerprintcom.netlify.app/blog/name-change/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-02T16:58:53.635Z' - subscription: '2022-06-02T16:58:53.635Z' + global: "2022-06-02T16:58:53.635Z" + subscription: "2022-06-02T16:58:53.635Z" - requestId: 1654189133629.0V1gtF browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -767,25 +767,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1654189133635 - time: '2022-06-02T16:58:53Z' + time: "2022-06-02T16:58:53Z" url: https://fingerprintcom.netlify.app/blog/name-change/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-06-02T16:58:51.483Z' - subscription: '2022-06-02T16:58:51.483Z' + global: "2022-06-02T16:58:51.483Z" + subscription: "2022-06-02T16:58:51.483Z" - requestId: 1654189131472.r49Bbh browserDetails: browserName: Chrome - browserMajorVersion: '102' + browserMajorVersion: "102" browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -811,25 +811,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1654189131483 - time: '2022-06-02T16:58:51Z' + time: "2022-06-02T16:58:51Z" url: https://fingerprintcom.netlify.app/ tag: {} confidence: score: 0.95 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-27T14:52:26.624Z' - subscription: '2022-05-27T14:52:26.624Z' + global: "2022-05-27T14:52:26.624Z" + subscription: "2022-05-27T14:52:26.624Z" - requestId: 1653663146617.o8KpJO browserDetails: browserName: Chrome - browserMajorVersion: '101' + browserMajorVersion: "101" browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -855,25 +855,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1653663146624 - time: '2022-05-27T14:52:26Z' + time: "2022-05-27T14:52:26Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-20T09:50:06.7Z' - subscription: '2022-05-20T09:50:06.7Z' + global: "2022-05-20T09:50:06.7Z" + subscription: "2022-05-20T09:50:06.7Z" - requestId: 1653040206694.Q5Csig browserDetails: browserName: Chrome - browserMajorVersion: '101' + browserMajorVersion: "101" browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -899,25 +899,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1653040206700 - time: '2022-05-20T09:50:06Z' + time: "2022-05-20T09:50:06Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-19T16:27:38.029Z' - subscription: '2022-05-19T16:27:38.029Z' + global: "2022-05-19T16:27:38.029Z" + subscription: "2022-05-19T16:27:38.029Z" - requestId: 1652977658020.xbfYhA browserDetails: browserName: Chrome - browserMajorVersion: '101' + browserMajorVersion: "101" browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -943,25 +943,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1652977658029 - time: '2022-05-19T16:27:38Z' + time: "2022-05-19T16:27:38Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-17T15:09:32.666Z' - subscription: '2022-05-17T15:09:32.666Z' + global: "2022-05-17T15:09:32.666Z" + subscription: "2022-05-17T15:09:32.666Z" - requestId: 1652800172657.xA22Pd browserDetails: browserName: Chrome - browserMajorVersion: '101' + browserMajorVersion: "101" browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -987,25 +987,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1652800172666 - time: '2022-05-17T15:09:32Z' + time: "2022-05-17T15:09:32Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-17T14:18:17.631Z' - subscription: '2022-05-17T14:18:17.631Z' + global: "2022-05-17T14:18:17.631Z" + subscription: "2022-05-17T14:18:17.631Z" - requestId: 1652797097626.faAMJO browserDetails: browserName: Chrome - browserMajorVersion: '101' + browserMajorVersion: "101" browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -1031,25 +1031,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1652797097631 - time: '2022-05-17T14:18:17Z' + time: "2022-05-17T14:18:17Z" url: https://fingerprintjs.com/careers/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-17T10:16:04.809Z' - subscription: '2022-05-17T10:16:04.809Z' + global: "2022-05-17T10:16:04.809Z" + subscription: "2022-05-17T10:16:04.809Z" - requestId: 1652782564800.MWH0GO browserDetails: browserName: Chrome - browserMajorVersion: '101' + browserMajorVersion: "101" browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -1075,25 +1075,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1652782564809 - time: '2022-05-17T10:16:04Z' + time: "2022-05-17T10:16:04Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-16T06:47:01.511Z' - subscription: '2022-05-16T06:47:01.511Z' + global: "2022-05-16T06:47:01.511Z" + subscription: "2022-05-16T06:47:01.511Z" - requestId: 1652683621505.1tOjuc browserDetails: browserName: Chrome - browserMajorVersion: '101' + browserMajorVersion: "101" browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -1109,7 +1109,7 @@ paths: accuracyRadius: 1000 latitude: 59.8983 longitude: 30.2618 - postalCode: '190924' + postalCode: "190924" timezone: Europe/Moscow city: name: St Petersburg @@ -1123,22 +1123,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1652683621511 - time: '2022-05-16T06:47:01Z' + time: "2022-05-16T06:47:01Z" url: https://fingerprintjs.com/products/bot-detection/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-16T06:45:49.586Z' - subscription: '2022-05-16T06:45:49.586Z' + global: "2022-05-16T06:45:49.586Z" + subscription: "2022-05-16T06:45:49.586Z" - requestId: 1652683586557.67Faeg browserDetails: browserName: Chrome - browserMajorVersion: '101' + browserMajorVersion: "101" browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -1154,7 +1154,7 @@ paths: accuracyRadius: 1000 latitude: 59.8983 longitude: 30.2618 - postalCode: '190924' + postalCode: "190924" timezone: Europe/Moscow city: name: St Petersburg @@ -1168,22 +1168,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1652683586562 - time: '2022-05-16T06:46:26Z' + time: "2022-05-16T06:46:26Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 0.94 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-16T06:45:49.586Z' - subscription: '2022-05-16T06:45:49.586Z' + global: "2022-05-16T06:45:49.586Z" + subscription: "2022-05-16T06:45:49.586Z" - requestId: 1652683549513.aVRqEP browserDetails: browserName: Chrome - browserMajorVersion: '101' + browserMajorVersion: "101" browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -1199,7 +1199,7 @@ paths: accuracyRadius: 1000 latitude: 59.8983 longitude: 30.2618 - postalCode: '190924' + postalCode: "190924" timezone: Europe/Moscow city: name: St Petersburg @@ -1213,22 +1213,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1652683549586 - time: '2022-05-16T06:45:49Z' + time: "2022-05-16T06:45:49Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-05T10:11:25.96Z' - subscription: '2022-05-05T10:11:25.96Z' + global: "2022-05-05T10:11:25.96Z" + subscription: "2022-05-05T10:11:25.96Z" - requestId: 1651745485951.Oj68me browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1254,25 +1254,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1651745485960 - time: '2022-05-05T10:11:25Z' + time: "2022-05-05T10:11:25Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-05T09:33:40.155Z' - subscription: '2022-05-05T09:33:40.155Z' + global: "2022-05-05T09:33:40.155Z" + subscription: "2022-05-05T09:33:40.155Z" - requestId: 1651743220004.W02rhx browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1298,25 +1298,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1651743220155 - time: '2022-05-05T09:33:40Z' + time: "2022-05-05T09:33:40Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-05-03T15:26:32.826Z' - subscription: '2022-05-03T15:26:32.826Z' + global: "2022-05-03T15:26:32.826Z" + subscription: "2022-05-03T15:26:32.826Z" - requestId: 1651591592822.Is9u93 browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1342,25 +1342,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1651591592826 - time: '2022-05-03T15:26:32Z' + time: "2022-05-03T15:26:32Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-29T13:23:37.049Z' - subscription: '2022-04-29T13:23:37.049Z' + global: "2022-04-29T13:23:37.049Z" + subscription: "2022-04-29T13:23:37.049Z" - requestId: 1651238617044.rMVPGS browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1386,25 +1386,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1651238617049 - time: '2022-04-29T13:23:37Z' + time: "2022-04-29T13:23:37Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-29T10:37:53.333Z' - subscription: '2022-04-29T10:37:53.333Z' + global: "2022-04-29T10:37:53.333Z" + subscription: "2022-04-29T10:37:53.333Z" - requestId: 1651228673329.QZI2Cu browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1420,7 +1420,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: '190924' + postalCode: "190924" timezone: Europe/Moscow city: name: St Petersburg @@ -1434,22 +1434,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1651228673333 - time: '2022-04-29T10:37:53Z' + time: "2022-04-29T10:37:53Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-28T13:58:06.323Z' - subscription: '2022-04-28T13:58:06.323Z' + global: "2022-04-28T13:58:06.323Z" + subscription: "2022-04-28T13:58:06.323Z" - requestId: 1651154286221.YvuOCP browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1465,7 +1465,7 @@ paths: accuracyRadius: 20 latitude: 50.0971 longitude: 8.5952 - postalCode: '65933' + postalCode: "65933" timezone: Europe/Berlin city: name: Frankfurt am Main @@ -1479,22 +1479,22 @@ paths: - isoCode: HE name: Hesse timestamp: 1651154286323 - time: '2022-04-28T13:58:06Z' + time: "2022-04-28T13:58:06Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-28T12:16:02.564Z' - subscription: '2022-04-28T12:16:02.564Z' + global: "2022-04-28T12:16:02.564Z" + subscription: "2022-04-28T12:16:02.564Z" - requestId: 1651148162556.dySgif browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1510,7 +1510,7 @@ paths: accuracyRadius: 20 latitude: 50.0971 longitude: 8.5952 - postalCode: '65933' + postalCode: "65933" timezone: Europe/Berlin city: name: Frankfurt am Main @@ -1524,22 +1524,22 @@ paths: - isoCode: HE name: Hesse timestamp: 1651148162564 - time: '2022-04-28T12:16:02Z' + time: "2022-04-28T12:16:02Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-28T11:57:13.267Z' - subscription: '2022-04-28T11:57:13.267Z' + global: "2022-04-28T11:57:13.267Z" + subscription: "2022-04-28T11:57:13.267Z" - requestId: 1651147033260.SxmFvL browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1555,7 +1555,7 @@ paths: accuracyRadius: 20 latitude: 50.0971 longitude: 8.5952 - postalCode: '65933' + postalCode: "65933" timezone: Europe/Berlin city: name: Frankfurt am Main @@ -1569,22 +1569,22 @@ paths: - isoCode: HE name: Hesse timestamp: 1651147033267 - time: '2022-04-28T11:57:13Z' + time: "2022-04-28T11:57:13Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-28T11:57:06.24Z' - subscription: '2022-04-28T11:57:06.24Z' + global: "2022-04-28T11:57:06.24Z" + subscription: "2022-04-28T11:57:06.24Z" - requestId: 1651147026139.aAZ8TO browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1600,7 +1600,7 @@ paths: accuracyRadius: 20 latitude: 50.0971 longitude: 8.5952 - postalCode: '65933' + postalCode: "65933" timezone: Europe/Berlin city: name: Frankfurt am Main @@ -1614,22 +1614,22 @@ paths: - isoCode: HE name: Hesse timestamp: 1651147026240 - time: '2022-04-28T11:57:06Z' + time: "2022-04-28T11:57:06Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-26T14:10:31.908Z' - subscription: '2022-04-26T14:10:31.908Z' + global: "2022-04-26T14:10:31.908Z" + subscription: "2022-04-26T14:10:31.908Z" - requestId: 1650982231903.eG0b6v browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1653,22 +1653,22 @@ paths: code: EU name: Europe timestamp: 1650982231908 - time: '2022-04-26T14:10:31Z' + time: "2022-04-26T14:10:31Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-26T11:43:37.373Z' - subscription: '2022-04-26T11:43:37.373Z' + global: "2022-04-26T11:43:37.373Z" + subscription: "2022-04-26T11:43:37.373Z" - requestId: 1650973417360.xupFFD browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1692,22 +1692,22 @@ paths: code: EU name: Europe timestamp: 1650973417373 - time: '2022-04-26T11:43:37Z' + time: "2022-04-26T11:43:37Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-26T11:43:30.111Z' - subscription: '2022-04-26T11:43:30.111Z' + global: "2022-04-26T11:43:30.111Z" + subscription: "2022-04-26T11:43:30.111Z" - requestId: 1650973410104.AQD4qu browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1731,22 +1731,22 @@ paths: code: EU name: Europe timestamp: 1650973410111 - time: '2022-04-26T11:43:30Z' + time: "2022-04-26T11:43:30Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-26T11:22:34.148Z' - subscription: '2022-04-26T11:22:34.148Z' + global: "2022-04-26T11:22:34.148Z" + subscription: "2022-04-26T11:22:34.148Z" - requestId: 1650972154133.lSWE8a browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1770,22 +1770,22 @@ paths: code: EU name: Europe timestamp: 1650972154148 - time: '2022-04-26T11:22:34Z' + time: "2022-04-26T11:22:34Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-26T11:22:03.83Z' - subscription: '2022-04-26T11:22:03.83Z' + global: "2022-04-26T11:22:03.83Z" + subscription: "2022-04-26T11:22:03.83Z" - requestId: 1650972123824.xk8MUR browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1809,22 +1809,22 @@ paths: code: EU name: Europe timestamp: 1650972123830 - time: '2022-04-26T11:22:03Z' + time: "2022-04-26T11:22:03Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-25T09:46:15.458Z' - subscription: '2022-04-25T09:46:15.458Z' + global: "2022-04-25T09:46:15.458Z" + subscription: "2022-04-25T09:46:15.458Z" - requestId: 1650879975452.kfuowM browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1840,7 +1840,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: '190924' + postalCode: "190924" timezone: Europe/Moscow city: name: St Petersburg @@ -1854,22 +1854,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1650879975458 - time: '2022-04-25T09:46:15Z' + time: "2022-04-25T09:46:15Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-22T16:51:44.816Z' - subscription: '2022-04-22T16:51:44.816Z' + global: "2022-04-22T16:51:44.816Z" + subscription: "2022-04-22T16:51:44.816Z" - requestId: 1650646304808.xQbAju browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1893,22 +1893,22 @@ paths: code: EU name: Europe timestamp: 1650646304816 - time: '2022-04-22T16:51:44Z' + time: "2022-04-22T16:51:44Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-21T11:43:33.116Z' - subscription: '2022-04-21T11:43:33.116Z' + global: "2022-04-21T11:43:33.116Z" + subscription: "2022-04-21T11:43:33.116Z" - requestId: 1650541413105.leAPLz browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1932,22 +1932,22 @@ paths: code: EU name: Europe timestamp: 1650541413116 - time: '2022-04-21T11:43:33Z' + time: "2022-04-21T11:43:33Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-20T17:11:54.717Z' - subscription: '2022-04-20T17:11:54.717Z' + global: "2022-04-20T17:11:54.717Z" + subscription: "2022-04-20T17:11:54.717Z" - requestId: 1650474714710.M1IGsl browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1971,22 +1971,22 @@ paths: code: EU name: Europe timestamp: 1650474714717 - time: '2022-04-20T17:11:54Z' + time: "2022-04-20T17:11:54Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-20T17:11:47.217Z' - subscription: '2022-04-20T17:11:47.217Z' + global: "2022-04-20T17:11:47.217Z" + subscription: "2022-04-20T17:11:47.217Z" - requestId: 1650474707211.CEUuZk browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2010,22 +2010,22 @@ paths: code: EU name: Europe timestamp: 1650474707217 - time: '2022-04-20T17:11:47Z' + time: "2022-04-20T17:11:47Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-20T17:11:12.076Z' - subscription: '2022-04-20T17:11:12.076Z' + global: "2022-04-20T17:11:12.076Z" + subscription: "2022-04-20T17:11:12.076Z" - requestId: 1650474672071.Pz4WsK browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2049,25 +2049,25 @@ paths: code: EU name: Europe timestamp: 1650474672076 - time: '2022-04-20T17:11:12Z' + time: "2022-04-20T17:11:12Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T12:29:06.692Z' - subscription: '2022-04-19T12:29:06.692Z' + global: "2022-04-19T12:29:06.692Z" + subscription: "2022-04-19T12:29:06.692Z" - requestId: 1650371346684.1d7sgv browserDetails: browserName: Chrome Mobile - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Android - osVersion: '6.0' + osVersion: "6.0" device: Nexus 5 userAgent: >- Mozilla/5.0 (Linux; Android 6.0; Nexus 5 @@ -2088,22 +2088,22 @@ paths: code: EU name: Europe timestamp: 1650371346692 - time: '2022-04-19T12:29:06Z' + time: "2022-04-19T12:29:06Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T12:29:02.15Z' - subscription: '2022-04-19T12:29:02.15Z' + global: "2022-04-19T12:29:02.15Z" + subscription: "2022-04-19T12:29:02.15Z" - requestId: 1650371342145.oWyfRx browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2127,22 +2127,22 @@ paths: code: EU name: Europe timestamp: 1650371342150 - time: '2022-04-19T12:29:02Z' + time: "2022-04-19T12:29:02Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T11:35:14.729Z' - subscription: '2022-04-19T11:35:14.729Z' + global: "2022-04-19T11:35:14.729Z" + subscription: "2022-04-19T11:35:14.729Z" - requestId: 1650368114723.YEXcHI browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2166,25 +2166,25 @@ paths: code: EU name: Europe timestamp: 1650368114729 - time: '2022-04-19T11:35:14Z' + time: "2022-04-19T11:35:14Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T11:13:33.107Z' - subscription: '2022-04-19T11:13:33.107Z' + global: "2022-04-19T11:13:33.107Z" + subscription: "2022-04-19T11:13:33.107Z" - requestId: 1650366813101.SvUZC1 browserDetails: browserName: Chrome Mobile - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Android - osVersion: '6.0' + osVersion: "6.0" device: Nexus 5 userAgent: >- Mozilla/5.0 (Linux; Android 6.0; Nexus 5 @@ -2205,22 +2205,22 @@ paths: code: EU name: Europe timestamp: 1650366813107 - time: '2022-04-19T11:13:33Z' + time: "2022-04-19T11:13:33Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T11:13:28.453Z' - subscription: '2022-04-19T11:13:28.453Z' + global: "2022-04-19T11:13:28.453Z" + subscription: "2022-04-19T11:13:28.453Z" - requestId: 1650366808426.Hy6j7v browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2244,22 +2244,22 @@ paths: code: EU name: Europe timestamp: 1650366808453 - time: '2022-04-19T11:13:28Z' + time: "2022-04-19T11:13:28Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T11:07:05.19Z' - subscription: '2022-04-19T11:07:05.19Z' + global: "2022-04-19T11:07:05.19Z" + subscription: "2022-04-19T11:07:05.19Z" - requestId: 1650366425184.xvYkdr browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2283,22 +2283,22 @@ paths: code: EU name: Europe timestamp: 1650366425190 - time: '2022-04-19T11:07:05Z' + time: "2022-04-19T11:07:05Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T11:07:00.483Z' - subscription: '2022-04-19T11:07:00.483Z' + global: "2022-04-19T11:07:00.483Z" + subscription: "2022-04-19T11:07:00.483Z" - requestId: 1650366420377.VR5pDX browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2322,22 +2322,22 @@ paths: code: EU name: Europe timestamp: 1650366420483 - time: '2022-04-19T11:07:00Z' + time: "2022-04-19T11:07:00Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T10:37:45.279Z' - subscription: '2022-04-19T10:37:45.279Z' + global: "2022-04-19T10:37:45.279Z" + subscription: "2022-04-19T10:37:45.279Z" - requestId: 1650364665274.qq31O4 browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2361,25 +2361,25 @@ paths: code: EU name: Europe timestamp: 1650364665279 - time: '2022-04-19T10:37:45Z' + time: "2022-04-19T10:37:45Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T10:22:58.87Z' - subscription: '2022-04-19T10:22:58.87Z' + global: "2022-04-19T10:22:58.87Z" + subscription: "2022-04-19T10:22:58.87Z" - requestId: 1650363778864.tsVBjO browserDetails: browserName: Chrome Mobile - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Android - osVersion: '6.0' + osVersion: "6.0" device: Nexus 5 userAgent: >- Mozilla/5.0 (Linux; Android 6.0; Nexus 5 @@ -2400,25 +2400,25 @@ paths: code: EU name: Europe timestamp: 1650363778870 - time: '2022-04-19T10:22:58Z' + time: "2022-04-19T10:22:58Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T10:22:46.894Z' - subscription: '2022-04-19T10:22:46.894Z' + global: "2022-04-19T10:22:46.894Z" + subscription: "2022-04-19T10:22:46.894Z" - requestId: 1650363766889.KuVDpm browserDetails: browserName: Chrome Mobile - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Android - osVersion: '6.0' + osVersion: "6.0" device: Nexus 5 userAgent: >- Mozilla/5.0 (Linux; Android 6.0; Nexus 5 @@ -2439,22 +2439,22 @@ paths: code: EU name: Europe timestamp: 1650363766894 - time: '2022-04-19T10:22:46Z' + time: "2022-04-19T10:22:46Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T10:07:01.528Z' - subscription: '2022-04-19T10:07:01.528Z' + global: "2022-04-19T10:07:01.528Z" + subscription: "2022-04-19T10:07:01.528Z" - requestId: 1650362821521.dXH2Ce browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2478,22 +2478,22 @@ paths: code: EU name: Europe timestamp: 1650362821528 - time: '2022-04-19T10:07:01Z' + time: "2022-04-19T10:07:01Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-19T10:02:42.46Z' - subscription: '2022-04-19T10:02:42.46Z' + global: "2022-04-19T10:02:42.46Z" + subscription: "2022-04-19T10:02:42.46Z" - requestId: 1650362562448.a5cPLU browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2517,22 +2517,22 @@ paths: code: EU name: Europe timestamp: 1650362562460 - time: '2022-04-19T10:02:42Z' + time: "2022-04-19T10:02:42Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-18T17:06:30.834Z' - subscription: '2022-04-18T17:06:30.834Z' + global: "2022-04-18T17:06:30.834Z" + subscription: "2022-04-18T17:06:30.834Z" - requestId: 1650301590829.YXGX7h browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2556,22 +2556,22 @@ paths: code: EU name: Europe timestamp: 1650301590834 - time: '2022-04-18T17:06:30Z' + time: "2022-04-18T17:06:30Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-18T12:23:30.446Z' - subscription: '2022-04-18T12:23:30.446Z' + global: "2022-04-18T12:23:30.446Z" + subscription: "2022-04-18T12:23:30.446Z" - requestId: 1650284610441.lJrX4M browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2595,22 +2595,22 @@ paths: code: EU name: Europe timestamp: 1650284610446 - time: '2022-04-18T12:23:30Z' + time: "2022-04-18T12:23:30Z" url: https://fingerprintjs.com/blog/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-04-06T14:53:00.526Z' - subscription: '2022-04-06T14:53:00.526Z' + global: "2022-04-06T14:53:00.526Z" + subscription: "2022-04-06T14:53:00.526Z" - requestId: 1649256780522.WAXWf2 browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2636,25 +2636,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1649256780526 - time: '2022-04-06T14:53:00Z' + time: "2022-04-06T14:53:00Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-03-18T11:08:35.698Z' - subscription: '2022-03-18T11:08:35.698Z' + global: "2022-03-18T11:08:35.698Z" + subscription: "2022-03-18T11:08:35.698Z" - requestId: 1649256780520.RRC4PR browserDetails: browserName: Chrome - browserMajorVersion: '100' + browserMajorVersion: "100" browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2680,25 +2680,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1649256780525 - time: '2022-04-06T14:53:00Z' + time: "2022-04-06T14:53:00Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-03-18T11:08:35.698Z' - subscription: '2022-03-18T11:08:35.698Z' + global: "2022-03-18T11:08:35.698Z" + subscription: "2022-03-18T11:08:35.698Z" - requestId: 1647601715689.iocXfW browserDetails: browserName: Chrome - browserMajorVersion: '98' + browserMajorVersion: "98" browserFullVersion: 98.0.4758 os: Mac OS X osVersion: 10.15.7 @@ -2724,25 +2724,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1647601715698 - time: '2022-03-18T11:08:35Z' + time: "2022-03-18T11:08:35Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-03-16T08:21:23.62Z' - subscription: '2022-03-16T08:21:23.62Z' + global: "2022-03-16T08:21:23.62Z" + subscription: "2022-03-16T08:21:23.62Z" - requestId: 1647418883615.Vck2NA browserDetails: browserName: Chrome - browserMajorVersion: '98' + browserMajorVersion: "98" browserFullVersion: 98.0.4758 os: Mac OS X osVersion: 10.15.7 @@ -2768,25 +2768,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1647418883620 - time: '2022-03-16T08:21:23Z' + time: "2022-03-16T08:21:23Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-03-16T08:21:18.398Z' - subscription: '2022-03-16T08:21:18.398Z' + global: "2022-03-16T08:21:18.398Z" + subscription: "2022-03-16T08:21:18.398Z" - requestId: 1647418878391.NZDmht browserDetails: browserName: Chrome - browserMajorVersion: '98' + browserMajorVersion: "98" browserFullVersion: 98.0.4758 os: Mac OS X osVersion: 10.15.7 @@ -2812,25 +2812,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1647418878398 - time: '2022-03-16T08:21:18Z' + time: "2022-03-16T08:21:18Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-03-15T11:46:51.858Z' - subscription: '2022-03-15T11:46:51.858Z' + global: "2022-03-15T11:46:51.858Z" + subscription: "2022-03-15T11:46:51.858Z" - requestId: 1647344811836.RvNkL5 browserDetails: browserName: Chrome - browserMajorVersion: '98' + browserMajorVersion: "98" browserFullVersion: 98.0.4758 os: Mac OS X osVersion: 10.15.7 @@ -2856,22 +2856,22 @@ paths: code: EU name: Europe subdivisions: - - isoCode: '00' + - isoCode: "00" name: Belgrade timestamp: 1647344811858 - time: '2022-03-15T11:46:51Z' + time: "2022-03-15T11:46:51Z" url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: '2022-02-04T11:31:20Z' - subscription: '2022-02-04T11:31:20Z' + global: "2022-02-04T11:31:20Z" + subscription: "2022-02-04T11:31:20Z" lastSeenAt: - global: '2022-03-08T12:33:05.677Z' - subscription: '2022-03-08T12:33:05.677Z' - '429': + global: "2022-03-08T12:33:05.677Z" + subscription: "2022-03-08T12:33:05.677Z" + "429": description: Too Many Requests headers: Retry-After: @@ -2885,7 +2885,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ManyRequestsResponse' + $ref: "#/components/schemas/ManyRequestsResponse" /webhook: trace: tags: @@ -2907,7 +2907,7 @@ paths: application/json: schema: type: object - $ref: '#/components/schemas/WebhookVisit' + $ref: "#/components/schemas/WebhookVisit" example: value: requestId: Px6VxbRC6WBkA39yeNH3 @@ -2918,7 +2918,7 @@ paths: visitorId: 3HNey93AkBW6CRbxV6xP visitorFound: true timestamp: 1554910997788 - time: '2019-10-12T07:20:50.52Z' + time: "2019-10-12T07:20:50.52Z" incognito: false url: https://banking.example.com/signup clientReferrer: https://google.com?search=banking+services @@ -2935,7 +2935,7 @@ paths: name: United States latitude: 41.12933 longitude: -88.9954 - postalCode: '60547' + postalCode: "60547" subdivisions: - isoCode: IL name: Illinois @@ -2943,7 +2943,7 @@ paths: browserDetails: browserName: Chrome browserFullVersion: 73.0.3683.86 - browserMajorVersion: '73' + browserMajorVersion: "73" os: Mac OS X osVersion: 10.14.3 device: Other @@ -2953,10 +2953,10 @@ paths: confidence: score: 0.97 firstSeenAt: - global: '2022-03-16T11:26:45.362Z' - subscription: '2022-03-16T11:31:01.101Z' + global: "2022-03-16T11:26:45.362Z" + subscription: "2022-03-16T11:31:01.101Z" lastSeenAt: - global: '2022-03-16T11:28:34.023Z' + global: "2022-03-16T11:28:34.023Z" subscription: null components: securitySchemes: @@ -2978,6 +2978,7 @@ components: visits: type: array items: + title: ResponseVisits type: object properties: requestId: @@ -2985,7 +2986,7 @@ components: type: string example: 1654815516083.OX6kx8 browserDetails: - $ref: '#/components/schemas/BrowserDetails' + $ref: "#/components/schemas/BrowserDetails" incognito: description: Flag if user used incognito session. type: boolean @@ -2994,7 +2995,7 @@ components: format: ipv4 example: 8.8.8.8 ipLocation: - $ref: '#/components/schemas/IPLocation' + $ref: "#/components/schemas/IPLocation" timestamp: description: >- Timestamp of the event with millisecond precision in Unix @@ -3003,10 +3004,11 @@ components: format: int64 example: 1654815516086 time: + title: Time description: Time expressed according to ISO 8601 in UTC format. type: string format: date-time - example: '2022-06-09T22:58:36Z' + example: "2022-06-09T22:58:36Z" url: description: Page URL from which identification request was sent. type: string @@ -3025,19 +3027,19 @@ components: type: string example: someID confidence: - $ref: '#/components/schemas/Confidence' + $ref: "#/components/schemas/Confidence" visitorFound: description: Attribute represents if a visitor had been identified before. type: boolean firstSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: "#/components/schemas/StSeenAt" example: - global: '2022-05-05T18:28:54.535Z' - subscription: '2022-06-09T22:58:05.576Z' + global: "2022-05-05T18:28:54.535Z" + subscription: "2022-06-09T22:58:05.576Z" lastSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: "#/components/schemas/StSeenAt" example: - global: '2022-06-09T22:58:35.795Z' + global: "2022-06-09T22:58:35.795Z" subscription: null additionalProperties: false required: @@ -3082,6 +3084,7 @@ components: error: type: object additionalProperties: false + title: ErrorResponseError properties: code: type: string @@ -3111,7 +3114,7 @@ components: type: string example: 1654815516083.OX6kx8 browserDetails: - $ref: '#/components/schemas/BrowserDetails' + $ref: "#/components/schemas/BrowserDetails" incognito: description: Flag if user used incognito session. type: boolean @@ -3120,17 +3123,18 @@ components: format: ipv4 example: 8.8.8.8 ipLocation: - $ref: '#/components/schemas/IPLocation' + $ref: "#/components/schemas/IPLocation" timestamp: description: Timestamp of the event with millisecond precision in Unix time. type: integer format: int64 example: 1654815516086 time: + title: Time description: Time expressed according to ISO 8601 in UTC format. type: string format: date-time - example: '2022-06-09T22:58:36Z' + example: "2022-06-09T22:58:36Z" url: description: Page URL from which identification request was sent. type: string @@ -3147,19 +3151,19 @@ components: type: string example: someID confidence: - $ref: '#/components/schemas/Confidence' + $ref: "#/components/schemas/Confidence" visitorFound: description: Attribute represents if a visitor had been identified before. type: boolean firstSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: "#/components/schemas/StSeenAt" example: - global: '2022-05-05T18:28:54.535Z' - subscription: '2022-06-09T22:58:05.576Z' + global: "2022-05-05T18:28:54.535Z" + subscription: "2022-06-09T22:58:05.576Z" lastSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: "#/components/schemas/StSeenAt" example: - global: '2022-06-09T22:58:35.795Z' + global: "2022-06-09T22:58:35.795Z" subscription: null additionalProperties: false required: @@ -3185,7 +3189,7 @@ components: type: string example: 1654815516083.OX6kx8 browserDetails: - $ref: '#/components/schemas/BrowserDetails' + $ref: "#/components/schemas/BrowserDetails" incognito: description: Flag if user used incognito session. type: boolean @@ -3194,17 +3198,18 @@ components: format: ipv4 example: 8.8.8.8 ipLocation: - $ref: '#/components/schemas/IPLocation' + $ref: "#/components/schemas/IPLocation" timestamp: description: Timestamp of the event with millisecond precision in Unix time. type: integer format: int64 example: 1654815516086 time: + title: Time description: Time expressed according to ISO 8601 in UTC format. type: string format: date-time - example: '2022-06-09T22:58:36Z' + example: "2022-06-09T22:58:36Z" url: description: Page URL from which identification request was sent. type: string @@ -3221,19 +3226,19 @@ components: type: string example: someID confidence: - $ref: '#/components/schemas/Confidence' + $ref: "#/components/schemas/Confidence" visitorFound: description: Attribute represents if a visitor had been identified before. type: boolean firstSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: "#/components/schemas/StSeenAt" example: - global: '2022-05-05T18:28:54.535Z' - subscription: '2022-06-09T22:58:05.576Z' + global: "2022-05-05T18:28:54.535Z" + subscription: "2022-06-09T22:58:05.576Z" lastSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: "#/components/schemas/StSeenAt" example: - global: '2022-06-09T22:58:35.795Z' + global: "2022-06-09T22:58:35.795Z" subscription: null required: - browserDetails @@ -3258,7 +3263,7 @@ components: example: Chrome browserMajorVersion: type: string - example: '101' + example: "101" browserFullVersion: type: string example: 101.0.4951 @@ -3267,7 +3272,7 @@ components: example: Windows osVersion: type: string - example: '10' + example: "10" device: type: string example: Other @@ -3348,24 +3353,25 @@ components: city: type: object additionalProperties: false + title: IPLocationCity properties: name: type: string example: Prague country: - $ref: '#/components/schemas/Location' + $ref: "#/components/schemas/Location" example: code: US name: United States continent: - $ref: '#/components/schemas/Location' + $ref: "#/components/schemas/Location" example: code: NA name: North America subdivisions: type: array items: - $ref: '#/components/schemas/Subdivision' + $ref: "#/components/schemas/Subdivision" required: - accuracyRadius - continent @@ -3396,7 +3402,7 @@ components: properties: isoCode: type: string - example: '10' + example: "10" name: type: string example: Hlavni mesto Praha @@ -3410,8 +3416,10 @@ components: identification: type: object additionalProperties: false + title: ProductsResponseIdentification properties: data: + title: ProductsResponseIdentificationData type: object properties: requestId: @@ -3419,7 +3427,7 @@ components: type: string example: 1654815516083.OX6kx8 browserDetails: - $ref: '#/components/schemas/BrowserDetails' + $ref: "#/components/schemas/BrowserDetails" incognito: description: Flag if user used incognito session. type: boolean @@ -3428,7 +3436,7 @@ components: format: ipv4 example: 8.8.8.8 ipLocation: - $ref: '#/components/schemas/IPLocation' + $ref: "#/components/schemas/IPLocation" timestamp: description: >- Timestamp of the event with millisecond precision in Unix @@ -3437,10 +3445,11 @@ components: format: int64 example: 1654815516086 time: + title: Time description: Time expressed according to ISO 8601 in UTC format. type: string format: date-time - example: '2022-06-09T22:58:36Z' + example: "2022-06-09T22:58:36Z" url: description: Page URL from which identification request was sent. type: string @@ -3459,21 +3468,21 @@ components: type: string example: someID confidence: - $ref: '#/components/schemas/Confidence' + $ref: "#/components/schemas/Confidence" visitorFound: description: >- Attribute represents if a visitor had been identified before. type: boolean firstSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: "#/components/schemas/StSeenAt" example: - global: '2022-05-05T18:28:54.535Z' - subscription: '2022-06-09T22:58:05.576Z' + global: "2022-05-05T18:28:54.535Z" + subscription: "2022-06-09T22:58:05.576Z" lastSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: "#/components/schemas/StSeenAt" example: - global: '2022-06-09T22:58:35.795Z' + global: "2022-06-09T22:58:35.795Z" subscription: null visitorId: type: string @@ -3493,18 +3502,19 @@ components: - visitorFound - visitorId botd: + title: ProductsResponseBotd type: object additionalProperties: false properties: data: - $ref: '#/components/schemas/BotdResult' + $ref: "#/components/schemas/BotdResult" EventResponse: description: Contains event from activated products - BOTD and Identification type: object additionalProperties: false properties: products: - $ref: '#/components/schemas/ProductsResponse' + $ref: "#/components/schemas/ProductsResponse" BotdResult: type: object additionalProperties: false @@ -3516,15 +3526,16 @@ components: example: 8.8.8.8 description: IP address of the requesting browser or bot. time: + title: Time description: >- Time in UTC when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible type: string format: date-time - example: '2022-06-09T22:58:36Z' + example: "2022-06-09T22:58:36Z" bot: - $ref: '#/components/schemas/BotdDetectionResult' + $ref: "#/components/schemas/BotdDetectionResult" example: result: notDetected required: diff --git a/swagger-codegen.log b/swagger-codegen.log new file mode 100644 index 0000000..944722a --- /dev/null +++ b/swagger-codegen.log @@ -0,0 +1,57 @@ +16:14:35.865 [Thread-0] WARN i.s.c.v.g.go.AbstractGoCodegen - map (reserved word) cannot be used as model name. Renamed to model_map +16:14:35.870 [Thread-0] WARN i.s.c.v.g.go.AbstractGoCodegen - map (reserved word) cannot be used as model name. Renamed to model_map +16:14:35.890 [Thread-0] WARN i.s.c.v.g.go.AbstractGoCodegen - map (reserved word) cannot be used as model name. Renamed to model_map +16:14:35.894 [Thread-0] WARN i.s.c.v.g.go.AbstractGoCodegen - map (reserved word) cannot be used as model name. Renamed to model_map +16:14:35.959 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_botd_detection_result.go +16:14:35.963 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/BotdDetectionResult.md +16:14:35.971 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_botd_result.go +16:14:35.974 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/BotdResult.md +16:14:35.980 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_browser_details.go +16:14:35.983 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/BrowserDetails.md +16:14:35.988 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_confidence.go +16:14:35.990 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/Confidence.md +16:14:35.996 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_error_response.go +16:14:35.998 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ErrorResponse.md +16:14:36.002 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_error_response_error.go +16:14:36.003 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ErrorResponseError.md +16:14:36.006 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_event_response.go +16:14:36.008 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/EventResponse.md +16:14:36.011 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_ip_location.go +16:14:36.012 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/IpLocation.md +16:14:36.015 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_ip_location_city.go +16:14:36.016 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/IpLocationCity.md +16:14:36.019 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_location.go +16:14:36.020 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/Location.md +16:14:36.023 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_many_requests_response.go +16:14:36.024 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ManyRequestsResponse.md +16:14:36.027 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_products_response.go +16:14:36.033 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ProductsResponse.md +16:14:36.035 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_products_response_botd.go +16:14:36.037 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ProductsResponseBotd.md +16:14:36.039 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_products_response_identification.go +16:14:36.040 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ProductsResponseIdentification.md +16:14:36.043 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_products_response_identification_data.go +16:14:36.045 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ProductsResponseIdentificationData.md +16:14:36.048 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_response.go +16:14:36.049 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/Response.md +16:14:36.053 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_response_visits.go +16:14:36.056 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ResponseVisits.md +16:14:36.059 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_st_seen_at.go +16:14:36.060 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/StSeenAt.md +16:14:36.062 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_subdivision.go +16:14:36.066 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/Subdivision.md +16:14:36.070 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_visit.go +16:14:36.071 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/Visit.md +16:14:36.074 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_webhook_visit.go +16:14:36.075 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/WebhookVisit.md +16:14:36.106 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/api_fingerprint.go +16:14:36.110 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/FingerprintApi.md +16:14:36.174 [Thread-0] INFO i.s.codegen.v3.DefaultGenerator - Skipped generation of /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/api/swagger.yaml due to rule in .swagger-codegen-ignore +16:14:36.177 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/README.md +16:14:36.177 [Thread-0] INFO i.s.codegen.v3.DefaultGenerator - Skipped generation of /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/git_push.sh due to rule in .swagger-codegen-ignore +16:14:36.177 [Thread-0] INFO i.s.codegen.v3.DefaultGenerator - Skipped generation of /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/.gitignore due to rule in .swagger-codegen-ignore +16:14:36.178 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/configuration.go +16:14:36.180 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/client.go +16:14:36.181 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/response.go +16:14:36.181 [Thread-0] INFO i.s.codegen.v3.DefaultGenerator - Skipped generation of /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/.travis.yml due to rule in .swagger-codegen-ignore +16:14:36.182 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/.swagger-codegen/VERSION From 474d94ac6e8dbb2bc183ed215192036fd2311581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Wed, 14 Sep 2022 10:31:04 +0100 Subject: [PATCH 13/26] chore: remove debug log --- swagger-codegen.log | 57 --------------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 swagger-codegen.log diff --git a/swagger-codegen.log b/swagger-codegen.log deleted file mode 100644 index 944722a..0000000 --- a/swagger-codegen.log +++ /dev/null @@ -1,57 +0,0 @@ -16:14:35.865 [Thread-0] WARN i.s.c.v.g.go.AbstractGoCodegen - map (reserved word) cannot be used as model name. Renamed to model_map -16:14:35.870 [Thread-0] WARN i.s.c.v.g.go.AbstractGoCodegen - map (reserved word) cannot be used as model name. Renamed to model_map -16:14:35.890 [Thread-0] WARN i.s.c.v.g.go.AbstractGoCodegen - map (reserved word) cannot be used as model name. Renamed to model_map -16:14:35.894 [Thread-0] WARN i.s.c.v.g.go.AbstractGoCodegen - map (reserved word) cannot be used as model name. Renamed to model_map -16:14:35.959 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_botd_detection_result.go -16:14:35.963 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/BotdDetectionResult.md -16:14:35.971 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_botd_result.go -16:14:35.974 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/BotdResult.md -16:14:35.980 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_browser_details.go -16:14:35.983 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/BrowserDetails.md -16:14:35.988 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_confidence.go -16:14:35.990 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/Confidence.md -16:14:35.996 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_error_response.go -16:14:35.998 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ErrorResponse.md -16:14:36.002 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_error_response_error.go -16:14:36.003 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ErrorResponseError.md -16:14:36.006 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_event_response.go -16:14:36.008 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/EventResponse.md -16:14:36.011 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_ip_location.go -16:14:36.012 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/IpLocation.md -16:14:36.015 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_ip_location_city.go -16:14:36.016 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/IpLocationCity.md -16:14:36.019 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_location.go -16:14:36.020 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/Location.md -16:14:36.023 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_many_requests_response.go -16:14:36.024 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ManyRequestsResponse.md -16:14:36.027 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_products_response.go -16:14:36.033 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ProductsResponse.md -16:14:36.035 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_products_response_botd.go -16:14:36.037 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ProductsResponseBotd.md -16:14:36.039 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_products_response_identification.go -16:14:36.040 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ProductsResponseIdentification.md -16:14:36.043 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_products_response_identification_data.go -16:14:36.045 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ProductsResponseIdentificationData.md -16:14:36.048 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_response.go -16:14:36.049 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/Response.md -16:14:36.053 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_response_visits.go -16:14:36.056 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/ResponseVisits.md -16:14:36.059 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_st_seen_at.go -16:14:36.060 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/StSeenAt.md -16:14:36.062 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_subdivision.go -16:14:36.066 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/Subdivision.md -16:14:36.070 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_visit.go -16:14:36.071 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/Visit.md -16:14:36.074 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/model_webhook_visit.go -16:14:36.075 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/WebhookVisit.md -16:14:36.106 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/api_fingerprint.go -16:14:36.110 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/docs/FingerprintApi.md -16:14:36.174 [Thread-0] INFO i.s.codegen.v3.DefaultGenerator - Skipped generation of /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/api/swagger.yaml due to rule in .swagger-codegen-ignore -16:14:36.177 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/README.md -16:14:36.177 [Thread-0] INFO i.s.codegen.v3.DefaultGenerator - Skipped generation of /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/git_push.sh due to rule in .swagger-codegen-ignore -16:14:36.177 [Thread-0] INFO i.s.codegen.v3.DefaultGenerator - Skipped generation of /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/.gitignore due to rule in .swagger-codegen-ignore -16:14:36.178 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/configuration.go -16:14:36.180 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/client.go -16:14:36.181 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/response.go -16:14:36.181 [Thread-0] INFO i.s.codegen.v3.DefaultGenerator - Skipped generation of /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/.travis.yml due to rule in .swagger-codegen-ignore -16:14:36.182 [Thread-0] INFO i.s.codegen.v3.AbstractGenerator - writing file /Users/przemyslawzydek/IdeaProjects/fingerprint-pro-server-api-go-sdk/./sdk/.swagger-codegen/VERSION From 0dfd9a6ca1553ced275dc393554d16b043447f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Wed, 14 Sep 2022 11:03:17 +0100 Subject: [PATCH 14/26] chore: update schema --- generate.go | 1 - res/fingerprint-server-api.yaml | 990 ++++++++++++++++---------------- 2 files changed, 495 insertions(+), 496 deletions(-) diff --git a/generate.go b/generate.go index 2c965de..57fc4e1 100644 --- a/generate.go +++ b/generate.go @@ -121,7 +121,6 @@ func generateSwagger() { log.Fatal(cmdErr) } - os.WriteFile("./swagger-codegen.log", out, 0644) fmt.Println(string(out)) } diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml index 0fbc064..afe0c85 100644 --- a/res/fingerprint-server-api.yaml +++ b/res/fingerprint-server-api.yaml @@ -4,7 +4,7 @@ info: description: >- Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. - version: "3" + version: '3' contact: name: Fingerprint Support email: support@fingerprint.com @@ -43,12 +43,12 @@ paths: schema: type: string responses: - "200": + '200': description: OK content: application/json: schema: - $ref: "#/components/schemas/EventResponse" + $ref: '#/components/schemas/EventResponse' examples: example: summary: Example response @@ -60,7 +60,7 @@ paths: requestId: 0KSh65EnVoB85JBmloQK incognito: true linkedId: somelinkedId - time: "2019-05-21T16:40:13Z" + time: '2019-05-21T16:40:13Z' timestamp: 1582299576512 url: https://www.example.com/login ip: 61.127.217.15 @@ -68,7 +68,7 @@ paths: accuracyRadius: 10 latitude: 49.982 longitude: 36.2566 - postalCode: "61202" + postalCode: '61202' timezone: Europe/Dusseldorf city: name: Dusseldorf @@ -79,37 +79,37 @@ paths: code: DE name: Germany subdivisions: - - isoCode: "63" + - isoCode: '63' name: North Rhine-Westphalia browserDetails: browserName: Chrome - browserMajorVersion: "74" + browserMajorVersion: '74' browserFullVersion: 74.0.3729 os: Windows - osVersion: "7" + osVersion: '7' device: Other userAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) .... confidence: score: 0.97 visitorFound: true firstSeenAt: - global: "2022-03-16T11:26:45.362Z" - subscription: "2022-03-16T11:31:01.101Z" + global: '2022-03-16T11:26:45.362Z' + subscription: '2022-03-16T11:31:01.101Z' lastSeenAt: - global: "2022-03-16T11:28:34.023Z" + global: '2022-03-16T11:28:34.023Z' subscription: null botd: data: bot: result: notDetected ip: 61.127.217.15 - time: "2019-05-21T16:40:13Z" - "400": + time: '2019-05-21T16:40:13Z' + '400': description: Bad Request content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" + $ref: '#/components/schemas/ErrorResponse' examples: example: summary: Example response @@ -117,12 +117,12 @@ paths: error: code: RequestIdCannotBeParsed message: invalid format of request id - "403": + '403': description: Forbidden content: application/json: schema: - $ref: "#/components/schemas/ErrorResponse" + $ref: '#/components/schemas/ErrorResponse' examples: example: summary: Example response @@ -130,7 +130,7 @@ paths: error: code: TokenRequired message: secret key is required - "429": + '429': description: Too Many Requests headers: Retry-After: @@ -144,7 +144,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ManyRequestsResponse" + $ref: '#/components/schemas/ManyRequestsResponse' /visitors/{visitor_id}: get: tags: @@ -187,12 +187,12 @@ paths: format: int32 minimum: 0 responses: - "200": + '200': description: OK content: application/json: schema: - $ref: "#/components/schemas/Response" + $ref: '#/components/schemas/Response' examples: limit1: summary: Request with limit=1 @@ -202,7 +202,7 @@ paths: - requestId: 1655373953086.DDlfmP browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -229,21 +229,21 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "10" + - isoCode: '10' name: Hlavni mesto Praha timestamp: 1655373953094 - time: "2022-06-16T10:05:53Z" + time: '2022-06-16T10:05:53Z' url: https://dashboard.fingerprint.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-16T10:03:00.912Z" - subscription: "2022-06-16T10:03:00.912Z" + global: '2022-06-16T10:03:00.912Z' + subscription: '2022-06-16T10:03:00.912Z' lastTimestamp: 1655373953086 paginationKey: 1655373953086.DDlfmP limit500: @@ -254,7 +254,7 @@ paths: - requestId: 1655373780901.HhjRFX browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -270,7 +270,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: "190924" + postalCode: '190924' timezone: Europe/Moscow city: name: St Petersburg @@ -284,22 +284,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1655373780912 - time: "2022-06-16T10:03:00Z" + time: '2022-06-16T10:03:00Z' url: https://fingerprint.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-16T05:27:30.578Z" - subscription: "2022-06-16T05:27:30.578Z" + global: '2022-06-16T05:27:30.578Z' + subscription: '2022-06-16T05:27:30.578Z' - requestId: 1655357250568.vqejDF browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -326,25 +326,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "10" + - isoCode: '10' name: Hlavni mesto Praha timestamp: 1655357250578 - time: "2022-06-16T05:27:30Z" + time: '2022-06-16T05:27:30Z' url: https://fingerprint.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-15T15:28:33.479Z" - subscription: "2022-06-15T15:28:33.479Z" + global: '2022-06-15T15:28:33.479Z' + subscription: '2022-06-15T15:28:33.479Z' - requestId: 1655306913474.kFQsQx browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -371,25 +371,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "10" + - isoCode: '10' name: Hlavni mesto Praha timestamp: 1655306913479 - time: "2022-06-15T15:28:33Z" + time: '2022-06-15T15:28:33Z' url: https://fingerprint.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-15T08:47:34.677Z" - subscription: "2022-06-15T08:47:34.677Z" + global: '2022-06-15T08:47:34.677Z' + subscription: '2022-06-15T08:47:34.677Z' - requestId: 1655282854672.vz4ZlN browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -416,25 +416,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "10" + - isoCode: '10' name: Hlavni mesto Praha timestamp: 1655282854677 - time: "2022-06-15T08:47:34Z" + time: '2022-06-15T08:47:34Z' url: https://fingerprint.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-14T14:19:42.753Z" - subscription: "2022-06-14T14:19:42.753Z" + global: '2022-06-14T14:19:42.753Z' + subscription: '2022-06-14T14:19:42.753Z' - requestId: 1655216382743.RDRa4h browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -450,7 +450,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: "190924" + postalCode: '190924' timezone: Europe/Moscow city: name: St Petersburg @@ -464,22 +464,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1655216382753 - time: "2022-06-14T14:19:42Z" + time: '2022-06-14T14:19:42Z' url: https://fingerprint.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-13T07:53:19.878Z" - subscription: "2022-06-13T07:53:19.878Z" + global: '2022-06-13T07:53:19.878Z' + subscription: '2022-06-13T07:53:19.878Z' - requestId: 1655106799870.C8m8hR browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -503,22 +503,22 @@ paths: code: EU name: Europe timestamp: 1655106799878 - time: "2022-06-13T07:53:19Z" + time: '2022-06-13T07:53:19Z' url: https://fingerprint.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-07T12:54:35.413Z" - subscription: "2022-06-07T12:54:35.413Z" + global: '2022-06-07T12:54:35.413Z' + subscription: '2022-06-07T12:54:35.413Z' - requestId: 1654606475406.2uXCJx browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -544,25 +544,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1654606475413 - time: "2022-06-07T12:54:35Z" + time: '2022-06-07T12:54:35Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-07T09:37:57.43Z" - subscription: "2022-06-07T09:37:57.43Z" + global: '2022-06-07T09:37:57.43Z' + subscription: '2022-06-07T09:37:57.43Z' - requestId: 1654594677423.pCHmKJ browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -578,7 +578,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: "190924" + postalCode: '190924' timezone: Europe/Moscow city: name: St Petersburg @@ -592,22 +592,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1654594677430 - time: "2022-06-07T09:37:57Z" + time: '2022-06-07T09:37:57Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-07T09:37:50.109Z" - subscription: "2022-06-07T09:37:50.109Z" + global: '2022-06-07T09:37:50.109Z' + subscription: '2022-06-07T09:37:50.109Z' - requestId: 1654594670097.Lmodmj browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -623,7 +623,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: "190924" + postalCode: '190924' timezone: Europe/Moscow city: name: St Petersburg @@ -637,22 +637,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1654594670109 - time: "2022-06-07T09:37:50Z" + time: '2022-06-07T09:37:50Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-07T08:31:31.9Z" - subscription: "2022-06-07T08:31:31.9Z" + global: '2022-06-07T08:31:31.9Z' + subscription: '2022-06-07T08:31:31.9Z' - requestId: 1654590691894.aCYqYE browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -668,7 +668,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: "190924" + postalCode: '190924' timezone: Europe/Moscow city: name: St Petersburg @@ -682,22 +682,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1654590691900 - time: "2022-06-07T08:31:31Z" + time: '2022-06-07T08:31:31Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-06T09:05:25.954Z" - subscription: "2022-06-06T09:05:25.954Z" + global: '2022-06-06T09:05:25.954Z' + subscription: '2022-06-06T09:05:25.954Z' - requestId: 1654506325946.ijIwzu browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -723,25 +723,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1654506325954 - time: "2022-06-06T09:05:25Z" + time: '2022-06-06T09:05:25Z' url: https://fingerprintcom.netlify.app/blog/name-change/ tag: {} confidence: score: 0.99 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-02T16:58:53.635Z" - subscription: "2022-06-02T16:58:53.635Z" + global: '2022-06-02T16:58:53.635Z' + subscription: '2022-06-02T16:58:53.635Z' - requestId: 1654189133629.0V1gtF browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -767,25 +767,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1654189133635 - time: "2022-06-02T16:58:53Z" + time: '2022-06-02T16:58:53Z' url: https://fingerprintcom.netlify.app/blog/name-change/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-06-02T16:58:51.483Z" - subscription: "2022-06-02T16:58:51.483Z" + global: '2022-06-02T16:58:51.483Z' + subscription: '2022-06-02T16:58:51.483Z' - requestId: 1654189131472.r49Bbh browserDetails: browserName: Chrome - browserMajorVersion: "102" + browserMajorVersion: '102' browserFullVersion: 102.0.5005 os: Mac OS X osVersion: 10.15.7 @@ -811,25 +811,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1654189131483 - time: "2022-06-02T16:58:51Z" + time: '2022-06-02T16:58:51Z' url: https://fingerprintcom.netlify.app/ tag: {} confidence: score: 0.95 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-27T14:52:26.624Z" - subscription: "2022-05-27T14:52:26.624Z" + global: '2022-05-27T14:52:26.624Z' + subscription: '2022-05-27T14:52:26.624Z' - requestId: 1653663146617.o8KpJO browserDetails: browserName: Chrome - browserMajorVersion: "101" + browserMajorVersion: '101' browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -855,25 +855,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1653663146624 - time: "2022-05-27T14:52:26Z" + time: '2022-05-27T14:52:26Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-20T09:50:06.7Z" - subscription: "2022-05-20T09:50:06.7Z" + global: '2022-05-20T09:50:06.7Z' + subscription: '2022-05-20T09:50:06.7Z' - requestId: 1653040206694.Q5Csig browserDetails: browserName: Chrome - browserMajorVersion: "101" + browserMajorVersion: '101' browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -899,25 +899,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1653040206700 - time: "2022-05-20T09:50:06Z" + time: '2022-05-20T09:50:06Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-19T16:27:38.029Z" - subscription: "2022-05-19T16:27:38.029Z" + global: '2022-05-19T16:27:38.029Z' + subscription: '2022-05-19T16:27:38.029Z' - requestId: 1652977658020.xbfYhA browserDetails: browserName: Chrome - browserMajorVersion: "101" + browserMajorVersion: '101' browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -943,25 +943,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1652977658029 - time: "2022-05-19T16:27:38Z" + time: '2022-05-19T16:27:38Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-17T15:09:32.666Z" - subscription: "2022-05-17T15:09:32.666Z" + global: '2022-05-17T15:09:32.666Z' + subscription: '2022-05-17T15:09:32.666Z' - requestId: 1652800172657.xA22Pd browserDetails: browserName: Chrome - browserMajorVersion: "101" + browserMajorVersion: '101' browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -987,25 +987,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1652800172666 - time: "2022-05-17T15:09:32Z" + time: '2022-05-17T15:09:32Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-17T14:18:17.631Z" - subscription: "2022-05-17T14:18:17.631Z" + global: '2022-05-17T14:18:17.631Z' + subscription: '2022-05-17T14:18:17.631Z' - requestId: 1652797097626.faAMJO browserDetails: browserName: Chrome - browserMajorVersion: "101" + browserMajorVersion: '101' browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -1031,25 +1031,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1652797097631 - time: "2022-05-17T14:18:17Z" + time: '2022-05-17T14:18:17Z' url: https://fingerprintjs.com/careers/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-17T10:16:04.809Z" - subscription: "2022-05-17T10:16:04.809Z" + global: '2022-05-17T10:16:04.809Z' + subscription: '2022-05-17T10:16:04.809Z' - requestId: 1652782564800.MWH0GO browserDetails: browserName: Chrome - browserMajorVersion: "101" + browserMajorVersion: '101' browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -1075,25 +1075,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1652782564809 - time: "2022-05-17T10:16:04Z" + time: '2022-05-17T10:16:04Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-16T06:47:01.511Z" - subscription: "2022-05-16T06:47:01.511Z" + global: '2022-05-16T06:47:01.511Z' + subscription: '2022-05-16T06:47:01.511Z' - requestId: 1652683621505.1tOjuc browserDetails: browserName: Chrome - browserMajorVersion: "101" + browserMajorVersion: '101' browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -1109,7 +1109,7 @@ paths: accuracyRadius: 1000 latitude: 59.8983 longitude: 30.2618 - postalCode: "190924" + postalCode: '190924' timezone: Europe/Moscow city: name: St Petersburg @@ -1123,22 +1123,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1652683621511 - time: "2022-05-16T06:47:01Z" + time: '2022-05-16T06:47:01Z' url: https://fingerprintjs.com/products/bot-detection/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-16T06:45:49.586Z" - subscription: "2022-05-16T06:45:49.586Z" + global: '2022-05-16T06:45:49.586Z' + subscription: '2022-05-16T06:45:49.586Z' - requestId: 1652683586557.67Faeg browserDetails: browserName: Chrome - browserMajorVersion: "101" + browserMajorVersion: '101' browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -1154,7 +1154,7 @@ paths: accuracyRadius: 1000 latitude: 59.8983 longitude: 30.2618 - postalCode: "190924" + postalCode: '190924' timezone: Europe/Moscow city: name: St Petersburg @@ -1168,22 +1168,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1652683586562 - time: "2022-05-16T06:46:26Z" + time: '2022-05-16T06:46:26Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 0.94 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-16T06:45:49.586Z" - subscription: "2022-05-16T06:45:49.586Z" + global: '2022-05-16T06:45:49.586Z' + subscription: '2022-05-16T06:45:49.586Z' - requestId: 1652683549513.aVRqEP browserDetails: browserName: Chrome - browserMajorVersion: "101" + browserMajorVersion: '101' browserFullVersion: 101.0.4951 os: Mac OS X osVersion: 10.15.7 @@ -1199,7 +1199,7 @@ paths: accuracyRadius: 1000 latitude: 59.8983 longitude: 30.2618 - postalCode: "190924" + postalCode: '190924' timezone: Europe/Moscow city: name: St Petersburg @@ -1213,22 +1213,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1652683549586 - time: "2022-05-16T06:45:49Z" + time: '2022-05-16T06:45:49Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-05T10:11:25.96Z" - subscription: "2022-05-05T10:11:25.96Z" + global: '2022-05-05T10:11:25.96Z' + subscription: '2022-05-05T10:11:25.96Z' - requestId: 1651745485951.Oj68me browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1254,25 +1254,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1651745485960 - time: "2022-05-05T10:11:25Z" + time: '2022-05-05T10:11:25Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-05T09:33:40.155Z" - subscription: "2022-05-05T09:33:40.155Z" + global: '2022-05-05T09:33:40.155Z' + subscription: '2022-05-05T09:33:40.155Z' - requestId: 1651743220004.W02rhx browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1298,25 +1298,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1651743220155 - time: "2022-05-05T09:33:40Z" + time: '2022-05-05T09:33:40Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-05-03T15:26:32.826Z" - subscription: "2022-05-03T15:26:32.826Z" + global: '2022-05-03T15:26:32.826Z' + subscription: '2022-05-03T15:26:32.826Z' - requestId: 1651591592822.Is9u93 browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1342,25 +1342,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1651591592826 - time: "2022-05-03T15:26:32Z" + time: '2022-05-03T15:26:32Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-29T13:23:37.049Z" - subscription: "2022-04-29T13:23:37.049Z" + global: '2022-04-29T13:23:37.049Z' + subscription: '2022-04-29T13:23:37.049Z' - requestId: 1651238617044.rMVPGS browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1386,25 +1386,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1651238617049 - time: "2022-04-29T13:23:37Z" + time: '2022-04-29T13:23:37Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-29T10:37:53.333Z" - subscription: "2022-04-29T10:37:53.333Z" + global: '2022-04-29T10:37:53.333Z' + subscription: '2022-04-29T10:37:53.333Z' - requestId: 1651228673329.QZI2Cu browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1420,7 +1420,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: "190924" + postalCode: '190924' timezone: Europe/Moscow city: name: St Petersburg @@ -1434,22 +1434,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1651228673333 - time: "2022-04-29T10:37:53Z" + time: '2022-04-29T10:37:53Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-28T13:58:06.323Z" - subscription: "2022-04-28T13:58:06.323Z" + global: '2022-04-28T13:58:06.323Z' + subscription: '2022-04-28T13:58:06.323Z' - requestId: 1651154286221.YvuOCP browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1465,7 +1465,7 @@ paths: accuracyRadius: 20 latitude: 50.0971 longitude: 8.5952 - postalCode: "65933" + postalCode: '65933' timezone: Europe/Berlin city: name: Frankfurt am Main @@ -1479,22 +1479,22 @@ paths: - isoCode: HE name: Hesse timestamp: 1651154286323 - time: "2022-04-28T13:58:06Z" + time: '2022-04-28T13:58:06Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-28T12:16:02.564Z" - subscription: "2022-04-28T12:16:02.564Z" + global: '2022-04-28T12:16:02.564Z' + subscription: '2022-04-28T12:16:02.564Z' - requestId: 1651148162556.dySgif browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1510,7 +1510,7 @@ paths: accuracyRadius: 20 latitude: 50.0971 longitude: 8.5952 - postalCode: "65933" + postalCode: '65933' timezone: Europe/Berlin city: name: Frankfurt am Main @@ -1524,22 +1524,22 @@ paths: - isoCode: HE name: Hesse timestamp: 1651148162564 - time: "2022-04-28T12:16:02Z" + time: '2022-04-28T12:16:02Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-28T11:57:13.267Z" - subscription: "2022-04-28T11:57:13.267Z" + global: '2022-04-28T11:57:13.267Z' + subscription: '2022-04-28T11:57:13.267Z' - requestId: 1651147033260.SxmFvL browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1555,7 +1555,7 @@ paths: accuracyRadius: 20 latitude: 50.0971 longitude: 8.5952 - postalCode: "65933" + postalCode: '65933' timezone: Europe/Berlin city: name: Frankfurt am Main @@ -1569,22 +1569,22 @@ paths: - isoCode: HE name: Hesse timestamp: 1651147033267 - time: "2022-04-28T11:57:13Z" + time: '2022-04-28T11:57:13Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-28T11:57:06.24Z" - subscription: "2022-04-28T11:57:06.24Z" + global: '2022-04-28T11:57:06.24Z' + subscription: '2022-04-28T11:57:06.24Z' - requestId: 1651147026139.aAZ8TO browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1600,7 +1600,7 @@ paths: accuracyRadius: 20 latitude: 50.0971 longitude: 8.5952 - postalCode: "65933" + postalCode: '65933' timezone: Europe/Berlin city: name: Frankfurt am Main @@ -1614,22 +1614,22 @@ paths: - isoCode: HE name: Hesse timestamp: 1651147026240 - time: "2022-04-28T11:57:06Z" + time: '2022-04-28T11:57:06Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-26T14:10:31.908Z" - subscription: "2022-04-26T14:10:31.908Z" + global: '2022-04-26T14:10:31.908Z' + subscription: '2022-04-26T14:10:31.908Z' - requestId: 1650982231903.eG0b6v browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1653,22 +1653,22 @@ paths: code: EU name: Europe timestamp: 1650982231908 - time: "2022-04-26T14:10:31Z" + time: '2022-04-26T14:10:31Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-26T11:43:37.373Z" - subscription: "2022-04-26T11:43:37.373Z" + global: '2022-04-26T11:43:37.373Z' + subscription: '2022-04-26T11:43:37.373Z' - requestId: 1650973417360.xupFFD browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1692,22 +1692,22 @@ paths: code: EU name: Europe timestamp: 1650973417373 - time: "2022-04-26T11:43:37Z" + time: '2022-04-26T11:43:37Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-26T11:43:30.111Z" - subscription: "2022-04-26T11:43:30.111Z" + global: '2022-04-26T11:43:30.111Z' + subscription: '2022-04-26T11:43:30.111Z' - requestId: 1650973410104.AQD4qu browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1731,22 +1731,22 @@ paths: code: EU name: Europe timestamp: 1650973410111 - time: "2022-04-26T11:43:30Z" + time: '2022-04-26T11:43:30Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-26T11:22:34.148Z" - subscription: "2022-04-26T11:22:34.148Z" + global: '2022-04-26T11:22:34.148Z' + subscription: '2022-04-26T11:22:34.148Z' - requestId: 1650972154133.lSWE8a browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1770,22 +1770,22 @@ paths: code: EU name: Europe timestamp: 1650972154148 - time: "2022-04-26T11:22:34Z" + time: '2022-04-26T11:22:34Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-26T11:22:03.83Z" - subscription: "2022-04-26T11:22:03.83Z" + global: '2022-04-26T11:22:03.83Z' + subscription: '2022-04-26T11:22:03.83Z' - requestId: 1650972123824.xk8MUR browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1809,22 +1809,22 @@ paths: code: EU name: Europe timestamp: 1650972123830 - time: "2022-04-26T11:22:03Z" + time: '2022-04-26T11:22:03Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-25T09:46:15.458Z" - subscription: "2022-04-25T09:46:15.458Z" + global: '2022-04-25T09:46:15.458Z' + subscription: '2022-04-25T09:46:15.458Z' - requestId: 1650879975452.kfuowM browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1840,7 +1840,7 @@ paths: accuracyRadius: 5 latitude: 59.8983 longitude: 30.2618 - postalCode: "190924" + postalCode: '190924' timezone: Europe/Moscow city: name: St Petersburg @@ -1854,22 +1854,22 @@ paths: - isoCode: SPE name: St.-Petersburg timestamp: 1650879975458 - time: "2022-04-25T09:46:15Z" + time: '2022-04-25T09:46:15Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-22T16:51:44.816Z" - subscription: "2022-04-22T16:51:44.816Z" + global: '2022-04-22T16:51:44.816Z' + subscription: '2022-04-22T16:51:44.816Z' - requestId: 1650646304808.xQbAju browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1893,22 +1893,22 @@ paths: code: EU name: Europe timestamp: 1650646304816 - time: "2022-04-22T16:51:44Z" + time: '2022-04-22T16:51:44Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-21T11:43:33.116Z" - subscription: "2022-04-21T11:43:33.116Z" + global: '2022-04-21T11:43:33.116Z' + subscription: '2022-04-21T11:43:33.116Z' - requestId: 1650541413105.leAPLz browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1932,22 +1932,22 @@ paths: code: EU name: Europe timestamp: 1650541413116 - time: "2022-04-21T11:43:33Z" + time: '2022-04-21T11:43:33Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-20T17:11:54.717Z" - subscription: "2022-04-20T17:11:54.717Z" + global: '2022-04-20T17:11:54.717Z' + subscription: '2022-04-20T17:11:54.717Z' - requestId: 1650474714710.M1IGsl browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -1971,22 +1971,22 @@ paths: code: EU name: Europe timestamp: 1650474714717 - time: "2022-04-20T17:11:54Z" + time: '2022-04-20T17:11:54Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-20T17:11:47.217Z" - subscription: "2022-04-20T17:11:47.217Z" + global: '2022-04-20T17:11:47.217Z' + subscription: '2022-04-20T17:11:47.217Z' - requestId: 1650474707211.CEUuZk browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2010,22 +2010,22 @@ paths: code: EU name: Europe timestamp: 1650474707217 - time: "2022-04-20T17:11:47Z" + time: '2022-04-20T17:11:47Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-20T17:11:12.076Z" - subscription: "2022-04-20T17:11:12.076Z" + global: '2022-04-20T17:11:12.076Z' + subscription: '2022-04-20T17:11:12.076Z' - requestId: 1650474672071.Pz4WsK browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2049,25 +2049,25 @@ paths: code: EU name: Europe timestamp: 1650474672076 - time: "2022-04-20T17:11:12Z" + time: '2022-04-20T17:11:12Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T12:29:06.692Z" - subscription: "2022-04-19T12:29:06.692Z" + global: '2022-04-19T12:29:06.692Z' + subscription: '2022-04-19T12:29:06.692Z' - requestId: 1650371346684.1d7sgv browserDetails: browserName: Chrome Mobile - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Android - osVersion: "6.0" + osVersion: '6.0' device: Nexus 5 userAgent: >- Mozilla/5.0 (Linux; Android 6.0; Nexus 5 @@ -2088,22 +2088,22 @@ paths: code: EU name: Europe timestamp: 1650371346692 - time: "2022-04-19T12:29:06Z" + time: '2022-04-19T12:29:06Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T12:29:02.15Z" - subscription: "2022-04-19T12:29:02.15Z" + global: '2022-04-19T12:29:02.15Z' + subscription: '2022-04-19T12:29:02.15Z' - requestId: 1650371342145.oWyfRx browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2127,22 +2127,22 @@ paths: code: EU name: Europe timestamp: 1650371342150 - time: "2022-04-19T12:29:02Z" + time: '2022-04-19T12:29:02Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T11:35:14.729Z" - subscription: "2022-04-19T11:35:14.729Z" + global: '2022-04-19T11:35:14.729Z' + subscription: '2022-04-19T11:35:14.729Z' - requestId: 1650368114723.YEXcHI browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2166,25 +2166,25 @@ paths: code: EU name: Europe timestamp: 1650368114729 - time: "2022-04-19T11:35:14Z" + time: '2022-04-19T11:35:14Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T11:13:33.107Z" - subscription: "2022-04-19T11:13:33.107Z" + global: '2022-04-19T11:13:33.107Z' + subscription: '2022-04-19T11:13:33.107Z' - requestId: 1650366813101.SvUZC1 browserDetails: browserName: Chrome Mobile - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Android - osVersion: "6.0" + osVersion: '6.0' device: Nexus 5 userAgent: >- Mozilla/5.0 (Linux; Android 6.0; Nexus 5 @@ -2205,22 +2205,22 @@ paths: code: EU name: Europe timestamp: 1650366813107 - time: "2022-04-19T11:13:33Z" + time: '2022-04-19T11:13:33Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T11:13:28.453Z" - subscription: "2022-04-19T11:13:28.453Z" + global: '2022-04-19T11:13:28.453Z' + subscription: '2022-04-19T11:13:28.453Z' - requestId: 1650366808426.Hy6j7v browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2244,22 +2244,22 @@ paths: code: EU name: Europe timestamp: 1650366808453 - time: "2022-04-19T11:13:28Z" + time: '2022-04-19T11:13:28Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T11:07:05.19Z" - subscription: "2022-04-19T11:07:05.19Z" + global: '2022-04-19T11:07:05.19Z' + subscription: '2022-04-19T11:07:05.19Z' - requestId: 1650366425184.xvYkdr browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2283,22 +2283,22 @@ paths: code: EU name: Europe timestamp: 1650366425190 - time: "2022-04-19T11:07:05Z" + time: '2022-04-19T11:07:05Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T11:07:00.483Z" - subscription: "2022-04-19T11:07:00.483Z" + global: '2022-04-19T11:07:00.483Z' + subscription: '2022-04-19T11:07:00.483Z' - requestId: 1650366420377.VR5pDX browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2322,22 +2322,22 @@ paths: code: EU name: Europe timestamp: 1650366420483 - time: "2022-04-19T11:07:00Z" + time: '2022-04-19T11:07:00Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T10:37:45.279Z" - subscription: "2022-04-19T10:37:45.279Z" + global: '2022-04-19T10:37:45.279Z' + subscription: '2022-04-19T10:37:45.279Z' - requestId: 1650364665274.qq31O4 browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2361,25 +2361,25 @@ paths: code: EU name: Europe timestamp: 1650364665279 - time: "2022-04-19T10:37:45Z" + time: '2022-04-19T10:37:45Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T10:22:58.87Z" - subscription: "2022-04-19T10:22:58.87Z" + global: '2022-04-19T10:22:58.87Z' + subscription: '2022-04-19T10:22:58.87Z' - requestId: 1650363778864.tsVBjO browserDetails: browserName: Chrome Mobile - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Android - osVersion: "6.0" + osVersion: '6.0' device: Nexus 5 userAgent: >- Mozilla/5.0 (Linux; Android 6.0; Nexus 5 @@ -2400,25 +2400,25 @@ paths: code: EU name: Europe timestamp: 1650363778870 - time: "2022-04-19T10:22:58Z" + time: '2022-04-19T10:22:58Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T10:22:46.894Z" - subscription: "2022-04-19T10:22:46.894Z" + global: '2022-04-19T10:22:46.894Z' + subscription: '2022-04-19T10:22:46.894Z' - requestId: 1650363766889.KuVDpm browserDetails: browserName: Chrome Mobile - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Android - osVersion: "6.0" + osVersion: '6.0' device: Nexus 5 userAgent: >- Mozilla/5.0 (Linux; Android 6.0; Nexus 5 @@ -2439,22 +2439,22 @@ paths: code: EU name: Europe timestamp: 1650363766894 - time: "2022-04-19T10:22:46Z" + time: '2022-04-19T10:22:46Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T10:07:01.528Z" - subscription: "2022-04-19T10:07:01.528Z" + global: '2022-04-19T10:07:01.528Z' + subscription: '2022-04-19T10:07:01.528Z' - requestId: 1650362821521.dXH2Ce browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2478,22 +2478,22 @@ paths: code: EU name: Europe timestamp: 1650362821528 - time: "2022-04-19T10:07:01Z" + time: '2022-04-19T10:07:01Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-19T10:02:42.46Z" - subscription: "2022-04-19T10:02:42.46Z" + global: '2022-04-19T10:02:42.46Z' + subscription: '2022-04-19T10:02:42.46Z' - requestId: 1650362562448.a5cPLU browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2517,22 +2517,22 @@ paths: code: EU name: Europe timestamp: 1650362562460 - time: "2022-04-19T10:02:42Z" + time: '2022-04-19T10:02:42Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-18T17:06:30.834Z" - subscription: "2022-04-18T17:06:30.834Z" + global: '2022-04-18T17:06:30.834Z' + subscription: '2022-04-18T17:06:30.834Z' - requestId: 1650301590829.YXGX7h browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2556,22 +2556,22 @@ paths: code: EU name: Europe timestamp: 1650301590834 - time: "2022-04-18T17:06:30Z" + time: '2022-04-18T17:06:30Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-18T12:23:30.446Z" - subscription: "2022-04-18T12:23:30.446Z" + global: '2022-04-18T12:23:30.446Z' + subscription: '2022-04-18T12:23:30.446Z' - requestId: 1650284610441.lJrX4M browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2595,22 +2595,22 @@ paths: code: EU name: Europe timestamp: 1650284610446 - time: "2022-04-18T12:23:30Z" + time: '2022-04-18T12:23:30Z' url: https://fingerprintjs.com/blog/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-04-06T14:53:00.526Z" - subscription: "2022-04-06T14:53:00.526Z" + global: '2022-04-06T14:53:00.526Z' + subscription: '2022-04-06T14:53:00.526Z' - requestId: 1649256780522.WAXWf2 browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2636,25 +2636,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1649256780526 - time: "2022-04-06T14:53:00Z" + time: '2022-04-06T14:53:00Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-03-18T11:08:35.698Z" - subscription: "2022-03-18T11:08:35.698Z" + global: '2022-03-18T11:08:35.698Z' + subscription: '2022-03-18T11:08:35.698Z' - requestId: 1649256780520.RRC4PR browserDetails: browserName: Chrome - browserMajorVersion: "100" + browserMajorVersion: '100' browserFullVersion: 100.0.4896 os: Mac OS X osVersion: 10.15.7 @@ -2680,25 +2680,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1649256780525 - time: "2022-04-06T14:53:00Z" + time: '2022-04-06T14:53:00Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-03-18T11:08:35.698Z" - subscription: "2022-03-18T11:08:35.698Z" + global: '2022-03-18T11:08:35.698Z' + subscription: '2022-03-18T11:08:35.698Z' - requestId: 1647601715689.iocXfW browserDetails: browserName: Chrome - browserMajorVersion: "98" + browserMajorVersion: '98' browserFullVersion: 98.0.4758 os: Mac OS X osVersion: 10.15.7 @@ -2724,25 +2724,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1647601715698 - time: "2022-03-18T11:08:35Z" + time: '2022-03-18T11:08:35Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-03-16T08:21:23.62Z" - subscription: "2022-03-16T08:21:23.62Z" + global: '2022-03-16T08:21:23.62Z' + subscription: '2022-03-16T08:21:23.62Z' - requestId: 1647418883615.Vck2NA browserDetails: browserName: Chrome - browserMajorVersion: "98" + browserMajorVersion: '98' browserFullVersion: 98.0.4758 os: Mac OS X osVersion: 10.15.7 @@ -2768,25 +2768,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1647418883620 - time: "2022-03-16T08:21:23Z" + time: '2022-03-16T08:21:23Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-03-16T08:21:18.398Z" - subscription: "2022-03-16T08:21:18.398Z" + global: '2022-03-16T08:21:18.398Z' + subscription: '2022-03-16T08:21:18.398Z' - requestId: 1647418878391.NZDmht browserDetails: browserName: Chrome - browserMajorVersion: "98" + browserMajorVersion: '98' browserFullVersion: 98.0.4758 os: Mac OS X osVersion: 10.15.7 @@ -2812,25 +2812,25 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1647418878398 - time: "2022-03-16T08:21:18Z" + time: '2022-03-16T08:21:18Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-03-15T11:46:51.858Z" - subscription: "2022-03-15T11:46:51.858Z" + global: '2022-03-15T11:46:51.858Z' + subscription: '2022-03-15T11:46:51.858Z' - requestId: 1647344811836.RvNkL5 browserDetails: browserName: Chrome - browserMajorVersion: "98" + browserMajorVersion: '98' browserFullVersion: 98.0.4758 os: Mac OS X osVersion: 10.15.7 @@ -2856,22 +2856,22 @@ paths: code: EU name: Europe subdivisions: - - isoCode: "00" + - isoCode: '00' name: Belgrade timestamp: 1647344811858 - time: "2022-03-15T11:46:51Z" + time: '2022-03-15T11:46:51Z' url: https://fingerprintjs.com/ tag: {} confidence: score: 1 visitorFound: true firstSeenAt: - global: "2022-02-04T11:31:20Z" - subscription: "2022-02-04T11:31:20Z" + global: '2022-02-04T11:31:20Z' + subscription: '2022-02-04T11:31:20Z' lastSeenAt: - global: "2022-03-08T12:33:05.677Z" - subscription: "2022-03-08T12:33:05.677Z" - "429": + global: '2022-03-08T12:33:05.677Z' + subscription: '2022-03-08T12:33:05.677Z' + '429': description: Too Many Requests headers: Retry-After: @@ -2885,7 +2885,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/ManyRequestsResponse" + $ref: '#/components/schemas/ManyRequestsResponse' /webhook: trace: tags: @@ -2907,7 +2907,7 @@ paths: application/json: schema: type: object - $ref: "#/components/schemas/WebhookVisit" + $ref: '#/components/schemas/WebhookVisit' example: value: requestId: Px6VxbRC6WBkA39yeNH3 @@ -2918,7 +2918,7 @@ paths: visitorId: 3HNey93AkBW6CRbxV6xP visitorFound: true timestamp: 1554910997788 - time: "2019-10-12T07:20:50.52Z" + time: '2019-10-12T07:20:50.52Z' incognito: false url: https://banking.example.com/signup clientReferrer: https://google.com?search=banking+services @@ -2935,7 +2935,7 @@ paths: name: United States latitude: 41.12933 longitude: -88.9954 - postalCode: "60547" + postalCode: '60547' subdivisions: - isoCode: IL name: Illinois @@ -2943,7 +2943,7 @@ paths: browserDetails: browserName: Chrome browserFullVersion: 73.0.3683.86 - browserMajorVersion: "73" + browserMajorVersion: '73' os: Mac OS X osVersion: 10.14.3 device: Other @@ -2953,10 +2953,10 @@ paths: confidence: score: 0.97 firstSeenAt: - global: "2022-03-16T11:26:45.362Z" - subscription: "2022-03-16T11:31:01.101Z" + global: '2022-03-16T11:26:45.362Z' + subscription: '2022-03-16T11:31:01.101Z' lastSeenAt: - global: "2022-03-16T11:28:34.023Z" + global: '2022-03-16T11:28:34.023Z' subscription: null components: securitySchemes: @@ -2986,7 +2986,7 @@ components: type: string example: 1654815516083.OX6kx8 browserDetails: - $ref: "#/components/schemas/BrowserDetails" + $ref: '#/components/schemas/BrowserDetails' incognito: description: Flag if user used incognito session. type: boolean @@ -2995,7 +2995,7 @@ components: format: ipv4 example: 8.8.8.8 ipLocation: - $ref: "#/components/schemas/IPLocation" + $ref: '#/components/schemas/IPLocation' timestamp: description: >- Timestamp of the event with millisecond precision in Unix @@ -3008,7 +3008,7 @@ components: description: Time expressed according to ISO 8601 in UTC format. type: string format: date-time - example: "2022-06-09T22:58:36Z" + example: '2022-06-09T22:58:36Z' url: description: Page URL from which identification request was sent. type: string @@ -3027,19 +3027,19 @@ components: type: string example: someID confidence: - $ref: "#/components/schemas/Confidence" + $ref: '#/components/schemas/Confidence' visitorFound: description: Attribute represents if a visitor had been identified before. type: boolean firstSeenAt: - $ref: "#/components/schemas/StSeenAt" + $ref: '#/components/schemas/StSeenAt' example: - global: "2022-05-05T18:28:54.535Z" - subscription: "2022-06-09T22:58:05.576Z" + global: '2022-05-05T18:28:54.535Z' + subscription: '2022-06-09T22:58:05.576Z' lastSeenAt: - $ref: "#/components/schemas/StSeenAt" + $ref: '#/components/schemas/StSeenAt' example: - global: "2022-06-09T22:58:35.795Z" + global: '2022-06-09T22:58:35.795Z' subscription: null additionalProperties: false required: @@ -3114,7 +3114,7 @@ components: type: string example: 1654815516083.OX6kx8 browserDetails: - $ref: "#/components/schemas/BrowserDetails" + $ref: '#/components/schemas/BrowserDetails' incognito: description: Flag if user used incognito session. type: boolean @@ -3123,7 +3123,7 @@ components: format: ipv4 example: 8.8.8.8 ipLocation: - $ref: "#/components/schemas/IPLocation" + $ref: '#/components/schemas/IPLocation' timestamp: description: Timestamp of the event with millisecond precision in Unix time. type: integer @@ -3134,7 +3134,7 @@ components: description: Time expressed according to ISO 8601 in UTC format. type: string format: date-time - example: "2022-06-09T22:58:36Z" + example: '2022-06-09T22:58:36Z' url: description: Page URL from which identification request was sent. type: string @@ -3151,19 +3151,19 @@ components: type: string example: someID confidence: - $ref: "#/components/schemas/Confidence" + $ref: '#/components/schemas/Confidence' visitorFound: description: Attribute represents if a visitor had been identified before. type: boolean firstSeenAt: - $ref: "#/components/schemas/StSeenAt" + $ref: '#/components/schemas/StSeenAt' example: - global: "2022-05-05T18:28:54.535Z" - subscription: "2022-06-09T22:58:05.576Z" + global: '2022-05-05T18:28:54.535Z' + subscription: '2022-06-09T22:58:05.576Z' lastSeenAt: - $ref: "#/components/schemas/StSeenAt" + $ref: '#/components/schemas/StSeenAt' example: - global: "2022-06-09T22:58:35.795Z" + global: '2022-06-09T22:58:35.795Z' subscription: null additionalProperties: false required: @@ -3189,7 +3189,7 @@ components: type: string example: 1654815516083.OX6kx8 browserDetails: - $ref: "#/components/schemas/BrowserDetails" + $ref: '#/components/schemas/BrowserDetails' incognito: description: Flag if user used incognito session. type: boolean @@ -3198,7 +3198,7 @@ components: format: ipv4 example: 8.8.8.8 ipLocation: - $ref: "#/components/schemas/IPLocation" + $ref: '#/components/schemas/IPLocation' timestamp: description: Timestamp of the event with millisecond precision in Unix time. type: integer @@ -3209,7 +3209,7 @@ components: description: Time expressed according to ISO 8601 in UTC format. type: string format: date-time - example: "2022-06-09T22:58:36Z" + example: '2022-06-09T22:58:36Z' url: description: Page URL from which identification request was sent. type: string @@ -3226,19 +3226,19 @@ components: type: string example: someID confidence: - $ref: "#/components/schemas/Confidence" + $ref: '#/components/schemas/Confidence' visitorFound: description: Attribute represents if a visitor had been identified before. type: boolean firstSeenAt: - $ref: "#/components/schemas/StSeenAt" + $ref: '#/components/schemas/StSeenAt' example: - global: "2022-05-05T18:28:54.535Z" - subscription: "2022-06-09T22:58:05.576Z" + global: '2022-05-05T18:28:54.535Z' + subscription: '2022-06-09T22:58:05.576Z' lastSeenAt: - $ref: "#/components/schemas/StSeenAt" + $ref: '#/components/schemas/StSeenAt' example: - global: "2022-06-09T22:58:35.795Z" + global: '2022-06-09T22:58:35.795Z' subscription: null required: - browserDetails @@ -3263,7 +3263,7 @@ components: example: Chrome browserMajorVersion: type: string - example: "101" + example: '101' browserFullVersion: type: string example: 101.0.4951 @@ -3272,7 +3272,7 @@ components: example: Windows osVersion: type: string - example: "10" + example: '10' device: type: string example: Other @@ -3359,19 +3359,19 @@ components: type: string example: Prague country: - $ref: "#/components/schemas/Location" + $ref: '#/components/schemas/Location' example: code: US name: United States continent: - $ref: "#/components/schemas/Location" + $ref: '#/components/schemas/Location' example: code: NA name: North America subdivisions: type: array items: - $ref: "#/components/schemas/Subdivision" + $ref: '#/components/schemas/Subdivision' required: - accuracyRadius - continent @@ -3402,7 +3402,7 @@ components: properties: isoCode: type: string - example: "10" + example: '10' name: type: string example: Hlavni mesto Praha @@ -3427,7 +3427,7 @@ components: type: string example: 1654815516083.OX6kx8 browserDetails: - $ref: "#/components/schemas/BrowserDetails" + $ref: '#/components/schemas/BrowserDetails' incognito: description: Flag if user used incognito session. type: boolean @@ -3436,7 +3436,7 @@ components: format: ipv4 example: 8.8.8.8 ipLocation: - $ref: "#/components/schemas/IPLocation" + $ref: '#/components/schemas/IPLocation' timestamp: description: >- Timestamp of the event with millisecond precision in Unix @@ -3449,7 +3449,7 @@ components: description: Time expressed according to ISO 8601 in UTC format. type: string format: date-time - example: "2022-06-09T22:58:36Z" + example: '2022-06-09T22:58:36Z' url: description: Page URL from which identification request was sent. type: string @@ -3468,21 +3468,21 @@ components: type: string example: someID confidence: - $ref: "#/components/schemas/Confidence" + $ref: '#/components/schemas/Confidence' visitorFound: description: >- Attribute represents if a visitor had been identified before. type: boolean firstSeenAt: - $ref: "#/components/schemas/StSeenAt" + $ref: '#/components/schemas/StSeenAt' example: - global: "2022-05-05T18:28:54.535Z" - subscription: "2022-06-09T22:58:05.576Z" + global: '2022-05-05T18:28:54.535Z' + subscription: '2022-06-09T22:58:05.576Z' lastSeenAt: - $ref: "#/components/schemas/StSeenAt" + $ref: '#/components/schemas/StSeenAt' example: - global: "2022-06-09T22:58:35.795Z" + global: '2022-06-09T22:58:35.795Z' subscription: null visitorId: type: string @@ -3507,14 +3507,14 @@ components: additionalProperties: false properties: data: - $ref: "#/components/schemas/BotdResult" + $ref: '#/components/schemas/BotdResult' EventResponse: description: Contains event from activated products - BOTD and Identification type: object additionalProperties: false properties: products: - $ref: "#/components/schemas/ProductsResponse" + $ref: '#/components/schemas/ProductsResponse' BotdResult: type: object additionalProperties: false @@ -3533,9 +3533,9 @@ components: malicious. Otherwise, request replay attacks are possible type: string format: date-time - example: "2022-06-09T22:58:36Z" + example: '2022-06-09T22:58:36Z' bot: - $ref: "#/components/schemas/BotdDetectionResult" + $ref: '#/components/schemas/BotdDetectionResult' example: result: notDetected required: From 57f7a7fda91a1f0ecda8f17531bd85f3a70960e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Wed, 14 Sep 2022 11:08:47 +0100 Subject: [PATCH 15/26] refactor: improve test utils Co-authored-by: necipallef --- test/utils.go | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/test/utils.go b/test/utils.go index 951cb9b..9dac9dd 100644 --- a/test/utils.go +++ b/test/utils.go @@ -2,43 +2,34 @@ package test import ( "encoding/json" - "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" "log" "os" -) -func GetMockResponse(path string) sdk.Response { - var mockResponse sdk.Response + "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" +) +func readFromFileAndUnmarshal(path string, i interface{}) { data, err := os.ReadFile(path) if err != nil { log.Fatal(err) } - err = json.Unmarshal(data, &mockResponse) + err = json.Unmarshal(data, &i) if err != nil { log.Fatal(err) } +} +func GetMockResponse(path string) sdk.Response { + var mockResponse sdk.Response + readFromFileAndUnmarshal(path, mockResponse) return mockResponse } func GetMockEventResponse(path string) sdk.EventResponse { var mockResponse sdk.EventResponse - - data, err := os.ReadFile(path) - - if err != nil { - log.Fatal(err) - } - - err = json.Unmarshal(data, &mockResponse) - - if err != nil { - log.Fatal(err) - } - + readFromFileAndUnmarshal(path, mockResponse) return mockResponse } From 6cfefedc7e6bb9f3a592f1f5b951ab5b35e1a173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Thu, 15 Sep 2022 11:53:08 +0100 Subject: [PATCH 16/26] chore: add nil checks to GetEvent example --- example/events/GetEvent_APIKey.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/example/events/GetEvent_APIKey.go b/example/events/GetEvent_APIKey.go index 1066f91..bfeec51 100644 --- a/example/events/GetEvent_APIKey.go +++ b/example/events/GetEvent_APIKey.go @@ -32,6 +32,12 @@ func main() { log.Fatal(err) } - stringResponse, _ := json.Marshal(response) - fmt.Printf("Got response: %+v", string(stringResponse)) + if response.Products.Botd != nil { + fmt.Printf("Got response with Botd: %s", response.Products.Botd) + } + + if response.Products.Identification != nil { + stringResponse, _ := json.Marshal(response.Products.Identification) + fmt.Printf("Got response with Identification: %s", string(stringResponse)) + } } From b53c4528738f8a093f2bcd8cf133d3fab8e8226c Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 19 Sep 2022 13:11:55 +0000 Subject: [PATCH 17/26] chore(release): 1.1.0 [skip ci] ## [1.1.0](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.0.2...v1.1.0) (2022-09-19) ### Features * introduce /event/{request_id} endpoint ([74a39b6](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/74a39b609b64ef2f9b7eae76972d7e4532b1867b)) --- CHANGELOG.md | 7 +++++++ README.md | 2 +- config.json | 2 +- sdk/api_fingerprint.go | 4 ++-- sdk/configuration.go | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d69792..7e3bc2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.1.0](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.0.2...v1.1.0) (2022-09-19) + + +### Features + +* introduce /event/{request_id} endpoint ([74a39b6](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/74a39b609b64ef2f9b7eae76972d7e4532b1867b)) + ## [1.0.2](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.0.1...v1.0.2) (2022-09-01) diff --git a/README.md b/README.md index 847c9a8..5a5b3f2 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Fingerprint Pro Server API provides a way for validating visitors’ data issued This Go package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: - API version: 3 -- Package version: 1.0.2 +- Package version: 1.1.0 - Build package: io.swagger.codegen.v3.generators.go.GoClientCodegen ## Requirements. diff --git a/config.json b/config.json index 69f657e..f147822 100644 --- a/config.json +++ b/config.json @@ -1,5 +1,5 @@ { - "packageVersion": "1.0.2", + "packageVersion": "1.1.0", "gitRepoId": "fingerprint-pro-server-api-go-sdk", "gitUserId": "fingerprintjs", "packageName": "sdk", diff --git a/sdk/api_fingerprint.go b/sdk/api_fingerprint.go index e3254d7..81e6c0e 100644 --- a/sdk/api_fingerprint.go +++ b/sdk/api_fingerprint.go @@ -46,7 +46,7 @@ func (a *FingerprintApiService) GetEvent(ctx context.Context, requestId string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.0.2") + localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.1.0") // to determine the Content-Type header localVarHttpContentTypes := []string{} @@ -186,7 +186,7 @@ func (a *FingerprintApiService) GetVisits(ctx context.Context, visitorId string, localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.0.2") + localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.1.0") if localVarOptionals != nil { if localVarOptionals.RequestId.IsSet() { diff --git a/sdk/configuration.go b/sdk/configuration.go index 2f52a8e..c23bc57 100644 --- a/sdk/configuration.go +++ b/sdk/configuration.go @@ -93,7 +93,7 @@ func (c *Configuration) AddDefaultHeader(key string, value string) { func NewConfiguration() *Configuration { cfg := &Configuration{ DefaultHeader: make(map[string]string), - UserAgent: "Swagger-Codegen/1.0.2/go", + UserAgent: "Swagger-Codegen/1.1.0/go", region: RegionUS, } cfg.basePath = resolveBasePath(cfg.region) From 3986d6df1306666bb03812be05c408ed91ecf0d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Thu, 22 Sep 2022 12:40:58 +0100 Subject: [PATCH 18/26] docs(README): add different region to code example --- README.md | 4 ++++ template/README.mustache | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/README.md b/README.md index 5a5b3f2..461505c 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,10 @@ import ( func main() { cfg := sdk.NewConfiguration() client := sdk.NewAPIClient(cfg) + + // You can also use sdk.RegionUS or sdk.RegionAsia. Default one is sdk.RegionUS + //cfg.ChangeRegion(sdk.RegionEU) + // Configure authorization, in our case with API Key auth := context.WithValue(context.Background(), sdk.ContextAPIKey, sdk.APIKey{ Key: "SECRET_API_KEY", diff --git a/template/README.mustache b/template/README.mustache index c2ab812..41a2c72 100644 --- a/template/README.mustache +++ b/template/README.mustache @@ -69,6 +69,10 @@ import ( func main() { cfg := sdk.NewConfiguration() client := sdk.NewAPIClient(cfg) + + // You can also use sdk.RegionUS or sdk.RegionAsia. Default one is sdk.RegionUS + //cfg.ChangeRegion(sdk.RegionEU) + // Configure authorization, in our case with API Key auth := context.WithValue(context.Background(), sdk.ContextAPIKey, sdk.APIKey{ Key: "SECRET_API_KEY", From a2342cdc0451982ee5c33bd46704d193a263ddd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20=C5=BBydek?= Date: Mon, 10 Oct 2022 13:56:37 +0300 Subject: [PATCH 19/26] docs(README): add region section --- README.md | 15 +++++++++++++++ template/README.mustache | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/README.md b/README.md index 461505c..fbe961e 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,21 @@ func main() { > cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run visits/GetVisits_APIKey.go > ``` +### Region +If your subscription is in region other than US, you need to change the region in the configuration: +```go + +import ( + "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" +) + +func main() { + cfg := sdk.NewConfiguration() + + cfg.ChangeRegion(sdk.RegionEU) // or sdk.RegionAsia +} +``` + ## Documentation for API Endpoints All URIs are relative to *https://api.fpjs.io* diff --git a/template/README.mustache b/template/README.mustache index 41a2c72..ff5798d 100644 --- a/template/README.mustache +++ b/template/README.mustache @@ -98,6 +98,21 @@ func main() { > cd example && FINGERPRINT_API_KEY=SECRET_API_KEY VISITOR_ID=VISITOR_ID_EXAMPLE go run visits/GetVisits_APIKey.go > ``` +### Region +If your subscription is in region other than US, you need to change the region in the configuration: +```go + +import ( + "github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/sdk" +) + +func main() { + cfg := sdk.NewConfiguration() + + cfg.ChangeRegion(sdk.RegionEU) // or sdk.RegionAsia +} +``` + ## Documentation for API Endpoints All URIs are relative to *{{basePath}}* From 5e0ec6c9c65ec79e20dfbb062c6a7471215852cd Mon Sep 17 00:00:00 2001 From: Ilya Taratukhin Date: Tue, 18 Oct 2022 18:18:51 +0200 Subject: [PATCH 20/26] feat: update schema to support url field for botd result --- docs/BotdResult.md | 1 + res/fingerprint-server-api.yaml | 9 +++++++-- sdk/model_botd_result.go | 6 ++++-- test/mocks/get_event.json | 1 + 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/BotdResult.md b/docs/BotdResult.md index 03490a2..50c666e 100644 --- a/docs/BotdResult.md +++ b/docs/BotdResult.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Ip** | **string** | IP address of the requesting browser or bot. | [default to null] **Time** | [**time.Time**](time.Time.md) | Time in UTC when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible | [default to null] +**Url** | **string** | Page URL from which identification request was sent. | [default to null] **Bot** | [***BotdDetectionResult**](BotdDetectionResult.md) | | [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml index afe0c85..0780780 100644 --- a/res/fingerprint-server-api.yaml +++ b/res/fingerprint-server-api.yaml @@ -102,6 +102,7 @@ paths: data: bot: result: notDetected + url: https://www.example.com/login ip: 61.127.217.15 time: '2019-05-21T16:40:13Z' '400': @@ -3182,7 +3183,6 @@ components: - visitorFound Visit: type: object - additionalProperties: false properties: requestId: description: Unique identifier of the user's identification request. @@ -3517,7 +3517,6 @@ components: $ref: '#/components/schemas/ProductsResponse' BotdResult: type: object - additionalProperties: false description: Contains all the information from BOTD product properties: ip: @@ -3534,12 +3533,18 @@ components: type: string format: date-time example: '2022-06-09T22:58:36Z' + url: + description: Page URL from which identification request was sent. + type: string + format: uri-reference + example: https://b.fpjs.sh/ bot: $ref: '#/components/schemas/BotdDetectionResult' example: result: notDetected required: - bot + - url - ip - time BotdDetectionResult: diff --git a/sdk/model_botd_result.go b/sdk/model_botd_result.go index 49aa8b9..c50a28d 100644 --- a/sdk/model_botd_result.go +++ b/sdk/model_botd_result.go @@ -18,6 +18,8 @@ type BotdResult struct { // IP address of the requesting browser or bot. Ip string `json:"ip"` // Time in UTC when the request from the JS agent was made. We recommend to treat requests that are older than 2 minutes as malicious. Otherwise, request replay attacks are possible - Time *time.Time `json:"time"` - Bot *BotdDetectionResult `json:"bot"` + Time *time.Time `json:"time"` + // Page URL from which identification request was sent. + Url string `json:"url"` + Bot *BotdDetectionResult `json:"bot"` } diff --git a/test/mocks/get_event.json b/test/mocks/get_event.json index 9ed8697..4e1eccd 100644 --- a/test/mocks/get_event.json +++ b/test/mocks/get_event.json @@ -62,6 +62,7 @@ "bot": { "result": "notDetected" }, + "url": "https://www.example.com/login", "ip": "61.127.217.15", "time": "2019-05-21T16:40:13Z" } From 6b1a6b740146eae6f27d303b84fd3a034fd2300e Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 24 Oct 2022 11:02:21 +0000 Subject: [PATCH 21/26] chore(release): 1.2.0 [skip ci] ## [1.2.0](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.1.0...v1.2.0) (2022-10-24) ### Features * update schema to support url field for botd result ([5e0ec6c](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/5e0ec6c9c65ec79e20dfbb062c6a7471215852cd)) ### Documentation * **README:** add different region to code example ([3986d6d](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/3986d6df1306666bb03812be05c408ed91ecf0d9)) * **README:** add region section ([a2342cd](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/a2342cdc0451982ee5c33bd46704d193a263ddd1)) --- CHANGELOG.md | 13 +++++++++++++ README.md | 2 +- config.json | 2 +- sdk/api_fingerprint.go | 4 ++-- sdk/configuration.go | 2 +- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e3bc2d..9459c04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +## [1.2.0](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.1.0...v1.2.0) (2022-10-24) + + +### Features + +* update schema to support url field for botd result ([5e0ec6c](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/5e0ec6c9c65ec79e20dfbb062c6a7471215852cd)) + + +### Documentation + +* **README:** add different region to code example ([3986d6d](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/3986d6df1306666bb03812be05c408ed91ecf0d9)) +* **README:** add region section ([a2342cd](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/commit/a2342cdc0451982ee5c33bd46704d193a263ddd1)) + ## [1.1.0](https://github.com/fingerprintjs/fingerprint-pro-server-api-go-sdk/compare/v1.0.2...v1.1.0) (2022-09-19) diff --git a/README.md b/README.md index fbe961e..0d8ef3a 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Fingerprint Pro Server API provides a way for validating visitors’ data issued This Go package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: - API version: 3 -- Package version: 1.1.0 +- Package version: 1.2.0 - Build package: io.swagger.codegen.v3.generators.go.GoClientCodegen ## Requirements. diff --git a/config.json b/config.json index f147822..9734967 100644 --- a/config.json +++ b/config.json @@ -1,5 +1,5 @@ { - "packageVersion": "1.1.0", + "packageVersion": "1.2.0", "gitRepoId": "fingerprint-pro-server-api-go-sdk", "gitUserId": "fingerprintjs", "packageName": "sdk", diff --git a/sdk/api_fingerprint.go b/sdk/api_fingerprint.go index 81e6c0e..fe5bd10 100644 --- a/sdk/api_fingerprint.go +++ b/sdk/api_fingerprint.go @@ -46,7 +46,7 @@ func (a *FingerprintApiService) GetEvent(ctx context.Context, requestId string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.1.0") + localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.2.0") // to determine the Content-Type header localVarHttpContentTypes := []string{} @@ -186,7 +186,7 @@ func (a *FingerprintApiService) GetVisits(ctx context.Context, visitorId string, localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.1.0") + localVarQueryParams.Add("ii", "fingerprint-pro-server-go-sdk/1.2.0") if localVarOptionals != nil { if localVarOptionals.RequestId.IsSet() { diff --git a/sdk/configuration.go b/sdk/configuration.go index c23bc57..fb95e7c 100644 --- a/sdk/configuration.go +++ b/sdk/configuration.go @@ -93,7 +93,7 @@ func (c *Configuration) AddDefaultHeader(key string, value string) { func NewConfiguration() *Configuration { cfg := &Configuration{ DefaultHeader: make(map[string]string), - UserAgent: "Swagger-Codegen/1.1.0/go", + UserAgent: "Swagger-Codegen/1.2.0/go", region: RegionUS, } cfg.basePath = resolveBasePath(cfg.region) From ee8b50e128129e1c2d8498f42741bfc22d9c6afe Mon Sep 17 00:00:00 2001 From: Juraj Uhlar Date: Tue, 17 Jan 2023 16:02:49 +0000 Subject: [PATCH 22/26] docs: add 'Go' to contributing.md title --- contributing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing.md b/contributing.md index ca55b70..71e6108 100644 --- a/contributing.md +++ b/contributing.md @@ -1,4 +1,4 @@ -# Contributing to Fingerprint Pro Server API SDK +# Contributing to Fingerprint Pro Server API Go SDK ## Structure From 341111f8c583c2e89088a49f080e38b6bca8c656 Mon Sep 17 00:00:00 2001 From: Juraj Uhlar Date: Tue, 17 Jan 2023 16:03:38 +0000 Subject: [PATCH 23/26] chore: scheme -> schema in sync.sh URL --- sync.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sync.sh b/sync.sh index ddd6ff7..022471d 100755 --- a/sync.sh +++ b/sync.sh @@ -1,3 +1,3 @@ #!/bin/bash -curl -o ./res/fingerprint-server-api.yaml https://fingerprintjs.github.io/fingerprint-pro-server-api-openapi/schemes/fingerprint-server-api.yaml +curl -o ./res/fingerprint-server-api.yaml https://fingerprintjs.github.io/fingerprint-pro-server-api-openapi/schemas/fingerprint-server-api.yaml From e1ebf03f267f891e1bcfe852647a8638761b7cec Mon Sep 17 00:00:00 2001 From: Juraj Uhlar Date: Tue, 17 Jan 2023 16:04:49 +0000 Subject: [PATCH 24/26] chore: update open-api definition file --- res/fingerprint-server-api.yaml | 208 +++++++++++++++++++++++++------- 1 file changed, 166 insertions(+), 42 deletions(-) diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml index 0780780..d773979 100644 --- a/res/fingerprint-server-api.yaml +++ b/res/fingerprint-server-api.yaml @@ -2,8 +2,9 @@ openapi: 3.0.3 info: title: Fingerprint Pro Server API description: >- - Fingerprint Pro Server API provides a way for validating visitors’ data - issued by Fingerprint Pro. + Fingerprint Pro Server API allows you to get information about visitors and + about individual events in a server environment. This API can be used for + data exports, decision-making, and data analysis scenarios. version: '3' contact: name: Fingerprint Support @@ -28,17 +29,17 @@ paths: get: tags: - Fingerprint - summary: Get event by request ID + summary: Get event by requestId description: >- This endpoint allows you to get events with all the information from - each activated product - BOTD and Fingerprinting. Use the requestId as a - URL path :request_id parameter. This API method is scoped to a request, - i.e. all returned information is by requestId. + each activated product (Fingerprint Pro or Bot Detection). Use the + requestId as a URL path :request_id parameter. This API method is scoped + to a request, i.e. all returned information is by requestId. operationId: getEvent parameters: - name: request_id in: path - description: Request ID + description: requestId is the unique identifier of each request required: true schema: type: string @@ -50,7 +51,7 @@ paths: schema: $ref: '#/components/schemas/EventResponse' examples: - example: + fullResponse: summary: Example response value: products: @@ -105,39 +106,91 @@ paths: url: https://www.example.com/login ip: 61.127.217.15 time: '2019-05-21T16:40:13Z' - '400': - description: Bad Request + withBotdError: + summary: Example response with BotD error + value: + products: + identification: + data: + visitorId: Ibk1527CUFmcnjLwIs4A9 + requestId: 0KSh65EnVoB85JBmloQK + incognito: true + linkedId: somelinkedId + time: '2019-05-21T16:40:13Z' + timestamp: 1582299576512 + url: https://www.example.com/login + ip: 61.127.217.15 + ipLocation: + accuracyRadius: 10 + latitude: 49.982 + longitude: 36.2566 + postalCode: '61202' + timezone: Europe/Dusseldorf + city: + name: Dusseldorf + continent: + code: EU + name: Europe + country: + code: DE + name: Germany + subdivisions: + - isoCode: '63' + name: North Rhine-Westphalia + browserDetails: + browserName: Chrome + browserMajorVersion: '74' + browserFullVersion: 74.0.3729 + os: Windows + osVersion: '7' + device: Other + userAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) .... + confidence: + score: 0.97 + visitorFound: true + firstSeenAt: + global: '2022-03-16T11:26:45.362Z' + subscription: '2022-03-16T11:31:01.101Z' + lastSeenAt: + global: '2022-03-16T11:28:34.023Z' + subscription: null + botd: + error: + code: Failed + message: internal server error + '403': + description: Forbidden content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: '#/components/schemas/ErrorEvent403Response' examples: example: summary: Example response value: error: - code: RequestIdCannotBeParsed - message: invalid format of request id - '403': - description: Forbidden + code: TokenRequired + message: secret key is required + '404': + description: Bad Request content: application/json: schema: - $ref: '#/components/schemas/ErrorResponse' + $ref: '#/components/schemas/ErrorEvent404Response' examples: example: summary: Example response value: error: - code: TokenRequired - message: secret key is required + code: RequestNotFound + message: request id is not found '429': description: Too Many Requests headers: Retry-After: description: >- - Indicates how long the user should wait before making a - follow-up request. + Indicates how long the user should wait in seconds before + attempting the next request. schema: type: integer format: int32 @@ -151,6 +204,7 @@ paths: tags: - Fingerprint operationId: getVisits + summary: Get visits by visitorId description: >- This endpoint allows you to get a history of visits with all available information. Use the visitorId as a URL path parameter. This API method @@ -163,12 +217,12 @@ paths: type: string example: uYIm7Ksp5rf00SllPhFp - name: request_id - description: Filter events by requestId + description: Filter visits by requestId in: query schema: type: string - name: linked_id - description: Filter events by custom identifier + description: Filter visits by custom identifier in: query schema: type: string @@ -2872,13 +2926,22 @@ paths: lastSeenAt: global: '2022-03-08T12:33:05.677Z' subscription: '2022-03-08T12:33:05.677Z' + '403': + description: Forbidden. Probably ApiKey is missed or provided the wrong one. + content: + text/html: + schema: + type: string + example: > + 403 Forbidden +

403 Forbidden

'429': description: Too Many Requests headers: Retry-After: description: >- - Indicates how long the user should wait before making a - follow-up request. + Indicates how long the user should wait before attempting the + next request. schema: type: integer format: int32 @@ -2900,7 +2963,7 @@ paths: webhook: post: description: >- - You can use HTTP basic authentication and setup credentials in + You can use HTTP basic authentication and set up credentials in your [Fingerprint account](https://dashboard.fingerprint.com/login) requestBody: @@ -3033,12 +3096,12 @@ components: description: Attribute represents if a visitor had been identified before. type: boolean firstSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: '#/components/schemas/SeenAt' example: global: '2022-05-05T18:28:54.535Z' subscription: '2022-06-09T22:58:05.576Z' lastSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: '#/components/schemas/SeenAt' example: global: '2022-06-09T22:58:35.795Z' subscription: null @@ -3078,21 +3141,58 @@ components: description: >- Fields `lastTimestamp` and `paginationKey` added when `limit` or `before` parameter provided and there is more data to show - ErrorResponse: + ErrorEvent403Response: type: object additionalProperties: false properties: error: type: object additionalProperties: false - title: ErrorResponseError + title: ErrorEvent403ResponseError properties: code: type: string + description: | + Error code: + * `TokenRequired` - `Auth-API-Key` header is missing or empty + * `TokenNotFound` - subscription not found for specified secret key + * `SubscriptionNotActive` - subscription is not active + * `WrongRegion` - server and subscription region differ + enum: + - TokenRequired + - TokenNotFound + - SubscriptionNotActive + - WrongRegion example: TokenRequired message: type: string example: secret key is required + required: + - code + - message + ErrorEvent404Response: + type: object + additionalProperties: false + properties: + error: + type: object + additionalProperties: false + title: ErrorEvent404ResponseError + properties: + code: + type: string + description: | + Error code: + * `RequestNotFound` - request not found for specified id + enum: + - RequestNotFound + example: RequestNotFound + message: + type: string + example: request id is not found + required: + - code + - message ManyRequestsResponse: type: object additionalProperties: false @@ -3157,12 +3257,12 @@ components: description: Attribute represents if a visitor had been identified before. type: boolean firstSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: '#/components/schemas/SeenAt' example: global: '2022-05-05T18:28:54.535Z' subscription: '2022-06-09T22:58:05.576Z' lastSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: '#/components/schemas/SeenAt' example: global: '2022-06-09T22:58:35.795Z' subscription: null @@ -3231,12 +3331,12 @@ components: description: Attribute represents if a visitor had been identified before. type: boolean firstSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: '#/components/schemas/SeenAt' example: global: '2022-05-05T18:28:54.535Z' subscription: '2022-06-09T22:58:05.576Z' lastSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: '#/components/schemas/SeenAt' example: global: '2022-06-09T22:58:35.795Z' subscription: null @@ -3307,7 +3407,7 @@ components: required: - score title: Confidence - StSeenAt: + SeenAt: type: object additionalProperties: false properties: @@ -3322,7 +3422,7 @@ components: required: - global - subscription - title: StSeenAt + title: SeenAt IPLocation: type: object additionalProperties: false @@ -3409,8 +3509,8 @@ components: ProductsResponse: type: object description: >- - Contains all the information from each activated product - BOTD and - Identification + Contains all the information from each activated product - Fingerprint + Pro or Bot Detection additionalProperties: false properties: identification: @@ -3475,12 +3575,12 @@ components: before. type: boolean firstSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: '#/components/schemas/SeenAt' example: global: '2022-05-05T18:28:54.535Z' subscription: '2022-06-09T22:58:05.576Z' lastSeenAt: - $ref: '#/components/schemas/StSeenAt' + $ref: '#/components/schemas/SeenAt' example: global: '2022-06-09T22:58:35.795Z' subscription: null @@ -3508,8 +3608,12 @@ components: properties: data: $ref: '#/components/schemas/BotdResult' + error: + $ref: '#/components/schemas/BotdError' EventResponse: - description: Contains event from activated products - BOTD and Identification + description: >- + Contains event from activated products - Fingerprint Pro or Bot + Detection type: object additionalProperties: false properties: @@ -3517,7 +3621,7 @@ components: $ref: '#/components/schemas/ProductsResponse' BotdResult: type: object - description: Contains all the information from BOTD product + description: Contains all the information from Bot Detection product properties: ip: type: string @@ -3537,7 +3641,7 @@ components: description: Page URL from which identification request was sent. type: string format: uri-reference - example: https://b.fpjs.sh/ + example: https://example.com/login bot: $ref: '#/components/schemas/BotdDetectionResult' example: @@ -3565,3 +3669,23 @@ components: - bad required: - result + BotdError: + type: object + additionalProperties: false + properties: + code: + type: string + description: | + Error code: + * `TooManyRequests` - the limit on secret API key requests per second has been exceeded + * `Failed` - internal server error + enum: + - TooManyRequests + - Failed + example: TooManyRequests + message: + type: string + example: too many requests + required: + - code + - message From a328ad6defbeff6cedc6769b87595fb18f56ba9e Mon Sep 17 00:00:00 2001 From: Juraj Uhlar Date: Tue, 17 Jan 2023 16:08:15 +0000 Subject: [PATCH 25/26] feat: Update list of examples in generate.go (new errors) --- generate.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generate.go b/generate.go index 57fc4e1..5108d86 100644 --- a/generate.go +++ b/generate.go @@ -125,7 +125,7 @@ func generateSwagger() { } func getExamples() { - list := []string{"visits_limit_1.json", "visits_limit_500.json", "webhook.json", "get_event.json", "get_event_400_error.json", "get_event_403_error.json"} + list := []string{"visits_limit_1.json", "visits_limit_500.json", "webhook.json", "get_event.json", "get_event_403_error.json", "get_event_404_error.json", "get_event_botd_error.json"} for _, file := range list { cmd := exec.Command("curl", "-o", fmt.Sprintf("./test/mocks/%s", file), fmt.Sprintf("https://fingerprintjs.github.io/fingerprint-pro-server-api-openapi/examples/%s", file)) From 1d94e698850a2f753b7f1398cdd667a6ae5aea10 Mon Sep 17 00:00:00 2001 From: Juraj Uhlar Date: Tue, 17 Jan 2023 16:11:07 +0000 Subject: [PATCH 26/26] feat: generate new source file with updated swagger BREAKING CHANGE: `StSeenAt` type renamed to `SeenAt` --- README.md | 15 +++-- docs/BotdError.md | 10 +++ ...orResponse.md => ErrorEvent403Response.md} | 4 +- docs/ErrorEvent403ResponseError.md | 10 +++ ...ponseError.md => ErrorEvent404Response.md} | 5 +- docs/ErrorEvent404ResponseError.md | 10 +++ docs/FingerprintApi.md | 18 ++--- docs/ProductsResponseBotd.md | 1 + docs/ProductsResponseIdentificationData.md | 4 +- docs/ResponseVisits.md | 4 +- docs/{StSeenAt.md => SeenAt.md} | 2 +- docs/Visit.md | 4 +- docs/WebhookVisit.md | 4 +- sdk/api_fingerprint.go | 32 ++++++--- sdk/client.go | 2 +- sdk/configuration.go | 2 +- sdk/model_botd_detection_result.go | 2 +- sdk/model_botd_error.go | 16 +++++ sdk/model_botd_result.go | 4 +- sdk/model_browser_details.go | 2 +- sdk/model_confidence.go | 2 +- sdk/model_error_event403_response.go | 14 ++++ sdk/model_error_event403_response_error.go | 16 +++++ sdk/model_error_event404_response.go | 14 ++++ sdk/model_error_event404_response_error.go | 16 +++++ sdk/model_event_response.go | 4 +- sdk/model_ip_location.go | 2 +- sdk/model_ip_location_city.go | 2 +- sdk/model_location.go | 2 +- sdk/model_many_requests_response.go | 2 +- sdk/model_products_response.go | 4 +- sdk/model_products_response_botd.go | 5 +- sdk/model_products_response_identification.go | 2 +- ...l_products_response_identification_data.go | 10 +-- sdk/model_response.go | 2 +- sdk/model_response_visits.go | 8 +-- sdk/model_seen_at.go | 19 ++++++ sdk/model_subdivision.go | 2 +- sdk/model_visit.go | 8 +-- sdk/model_webhook_visit.go | 8 +-- sdk/response.go | 2 +- test/mocks/get_event_404_error.json | 6 ++ test/mocks/get_event_botd_error.json | 67 +++++++++++++++++++ 43 files changed, 290 insertions(+), 78 deletions(-) create mode 100644 docs/BotdError.md rename docs/{ErrorResponse.md => ErrorEvent403Response.md} (66%) create mode 100644 docs/ErrorEvent403ResponseError.md rename docs/{ErrorResponseError.md => ErrorEvent404Response.md} (66%) create mode 100644 docs/ErrorEvent404ResponseError.md rename docs/{StSeenAt.md => SeenAt.md} (97%) create mode 100644 sdk/model_botd_error.go create mode 100644 sdk/model_error_event403_response.go create mode 100644 sdk/model_error_event403_response_error.go create mode 100644 sdk/model_error_event404_response.go create mode 100644 sdk/model_error_event404_response_error.go create mode 100644 sdk/model_seen_at.go create mode 100644 test/mocks/get_event_404_error.json create mode 100644 test/mocks/get_event_botd_error.json diff --git a/README.md b/README.md index 0d8ef3a..52de678 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@

# Fingerprint Pro Server Go SDK -Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. +Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. This Go package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project: @@ -111,17 +111,20 @@ All URIs are relative to *https://api.fpjs.io* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- -*FingerprintApi* | [**GetEvent**](docs/FingerprintApi.md#getevent) | **Get** /events/{request_id} | Get event by request ID -*FingerprintApi* | [**GetVisits**](docs/FingerprintApi.md#getvisits) | **Get** /visitors/{visitor_id} | +*FingerprintApi* | [**GetEvent**](docs/FingerprintApi.md#getevent) | **Get** /events/{request_id} | Get event by requestId +*FingerprintApi* | [**GetVisits**](docs/FingerprintApi.md#getvisits) | **Get** /visitors/{visitor_id} | Get visits by visitorId ## Documentation For Models - [BotdDetectionResult](docs/BotdDetectionResult.md) + - [BotdError](docs/BotdError.md) - [BotdResult](docs/BotdResult.md) - [BrowserDetails](docs/BrowserDetails.md) - [Confidence](docs/Confidence.md) - - [ErrorResponse](docs/ErrorResponse.md) - - [ErrorResponseError](docs/ErrorResponseError.md) + - [ErrorEvent403Response](docs/ErrorEvent403Response.md) + - [ErrorEvent403ResponseError](docs/ErrorEvent403ResponseError.md) + - [ErrorEvent404Response](docs/ErrorEvent404Response.md) + - [ErrorEvent404ResponseError](docs/ErrorEvent404ResponseError.md) - [EventResponse](docs/EventResponse.md) - [IpLocation](docs/IpLocation.md) - [IpLocationCity](docs/IpLocationCity.md) @@ -133,7 +136,7 @@ Class | Method | HTTP request | Description - [ProductsResponseIdentificationData](docs/ProductsResponseIdentificationData.md) - [Response](docs/Response.md) - [ResponseVisits](docs/ResponseVisits.md) - - [StSeenAt](docs/StSeenAt.md) + - [SeenAt](docs/SeenAt.md) - [Subdivision](docs/Subdivision.md) - [Visit](docs/Visit.md) - [WebhookVisit](docs/WebhookVisit.md) diff --git a/docs/BotdError.md b/docs/BotdError.md new file mode 100644 index 0000000..3f60c8c --- /dev/null +++ b/docs/BotdError.md @@ -0,0 +1,10 @@ +# BotdError + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Code** | **string** | Error code: * `TooManyRequests` - the limit on secret API key requests per second has been exceeded * `Failed` - internal server error | [default to null] +**Message** | **string** | | [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/ErrorResponse.md b/docs/ErrorEvent403Response.md similarity index 66% rename from docs/ErrorResponse.md rename to docs/ErrorEvent403Response.md index 1f3d0dc..f5b63f1 100644 --- a/docs/ErrorResponse.md +++ b/docs/ErrorEvent403Response.md @@ -1,9 +1,9 @@ -# ErrorResponse +# ErrorEvent403Response ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Error_** | [***ErrorResponseError**](ErrorResponseError.md) | | [optional] [default to null] +**Error_** | [***ErrorEvent403ResponseError**](ErrorEvent403ResponseError.md) | | [optional] [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/ErrorEvent403ResponseError.md b/docs/ErrorEvent403ResponseError.md new file mode 100644 index 0000000..1bc2890 --- /dev/null +++ b/docs/ErrorEvent403ResponseError.md @@ -0,0 +1,10 @@ +# ErrorEvent403ResponseError + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Code** | **string** | Error code: * `TokenRequired` - `Auth-API-Key` header is missing or empty * `TokenNotFound` - subscription not found for specified secret key * `SubscriptionNotActive` - subscription is not active * `WrongRegion` - server and subscription region differ | [default to null] +**Message** | **string** | | [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/ErrorResponseError.md b/docs/ErrorEvent404Response.md similarity index 66% rename from docs/ErrorResponseError.md rename to docs/ErrorEvent404Response.md index 5d3352c..d1419df 100644 --- a/docs/ErrorResponseError.md +++ b/docs/ErrorEvent404Response.md @@ -1,10 +1,9 @@ -# ErrorResponseError +# ErrorEvent404Response ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Code** | **string** | | [optional] [default to null] -**Message** | **string** | | [optional] [default to null] +**Error_** | [***ErrorEvent404ResponseError**](ErrorEvent404ResponseError.md) | | [optional] [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/ErrorEvent404ResponseError.md b/docs/ErrorEvent404ResponseError.md new file mode 100644 index 0000000..6c3a2dd --- /dev/null +++ b/docs/ErrorEvent404ResponseError.md @@ -0,0 +1,10 @@ +# ErrorEvent404ResponseError + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Code** | **string** | Error code: * `RequestNotFound` - request not found for specified id | [default to null] +**Message** | **string** | | [default to null] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + diff --git a/docs/FingerprintApi.md b/docs/FingerprintApi.md index cc8e66f..8220c0f 100644 --- a/docs/FingerprintApi.md +++ b/docs/FingerprintApi.md @@ -4,21 +4,21 @@ All URIs are relative to *https://api.fpjs.io* Method | HTTP request | Description ------------- | ------------- | ------------- -[**GetEvent**](FingerprintApi.md#GetEvent) | **Get** /events/{request_id} | Get event by request ID -[**GetVisits**](FingerprintApi.md#GetVisits) | **Get** /visitors/{visitor_id} | +[**GetEvent**](FingerprintApi.md#GetEvent) | **Get** /events/{request_id} | Get event by requestId +[**GetVisits**](FingerprintApi.md#GetVisits) | **Get** /visitors/{visitor_id} | Get visits by visitorId # **GetEvent** > EventResponse GetEvent(ctx, requestId) -Get event by request ID +Get event by requestId -This endpoint allows you to get events with all the information from each activated product - BOTD and Fingerprinting. Use the requestId as a URL path :request_id parameter. This API method is scoped to a request, i.e. all returned information is by requestId. +This endpoint allows you to get events with all the information from each activated product (Fingerprint Pro or Bot Detection). Use the requestId as a URL path :request_id parameter. This API method is scoped to a request, i.e. all returned information is by requestId. ### Required Parameters Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc. - **requestId** | **string**| Request ID | + **requestId** | **string**| requestId is the unique identifier of each request | ### Return type @@ -37,7 +37,7 @@ Name | Type | Description | Notes # **GetVisits** > Response GetVisits(ctx, visitorId, optional) - +Get visits by visitorId This endpoint allows you to get a history of visits with all available information. Use the visitorId as a URL path parameter. This API method is scoped to a visitor, i.e. all returned information is by visitorId. @@ -54,8 +54,8 @@ Optional parameters are passed through a pointer to a FingerprintApiGetVisitsOpt Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **requestId** | **optional.String**| Filter events by requestId | - **linkedId** | **optional.String**| Filter events by custom identifier | + **requestId** | **optional.String**| Filter visits by requestId | + **linkedId** | **optional.String**| Filter visits by custom identifier | **limit** | **optional.Int32**| Limit scanned results | **before** | **optional.Int32**| Used to paginate results | @@ -70,7 +70,7 @@ Name | Type | Description | Notes ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: application/json + - **Accept**: application/json, text/html [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/docs/ProductsResponseBotd.md b/docs/ProductsResponseBotd.md index 825f1b8..03954e3 100644 --- a/docs/ProductsResponseBotd.md +++ b/docs/ProductsResponseBotd.md @@ -4,6 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **Data** | [***BotdResult**](BotdResult.md) | | [optional] [default to null] +**Error_** | [***BotdError**](BotdError.md) | | [optional] [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/ProductsResponseIdentificationData.md b/docs/ProductsResponseIdentificationData.md index 254b37a..2af2a5b 100644 --- a/docs/ProductsResponseIdentificationData.md +++ b/docs/ProductsResponseIdentificationData.md @@ -15,8 +15,8 @@ Name | Type | Description | Notes **LinkedId** | **string** | A customer-provided id that was sent with identification request. | [optional] [default to null] **Confidence** | [***Confidence**](Confidence.md) | | [default to null] **VisitorFound** | **bool** | Attribute represents if a visitor had been identified before. | [default to null] -**FirstSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] -**LastSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] +**FirstSeenAt** | [***SeenAt**](SeenAt.md) | | [default to null] +**LastSeenAt** | [***SeenAt**](SeenAt.md) | | [default to null] **VisitorId** | **string** | | [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/ResponseVisits.md b/docs/ResponseVisits.md index 1c878c4..590f1a9 100644 --- a/docs/ResponseVisits.md +++ b/docs/ResponseVisits.md @@ -15,8 +15,8 @@ Name | Type | Description | Notes **LinkedId** | **string** | A customer-provided id that was sent with identification request. | [optional] [default to null] **Confidence** | [***Confidence**](Confidence.md) | | [default to null] **VisitorFound** | **bool** | Attribute represents if a visitor had been identified before. | [default to null] -**FirstSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] -**LastSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] +**FirstSeenAt** | [***SeenAt**](SeenAt.md) | | [default to null] +**LastSeenAt** | [***SeenAt**](SeenAt.md) | | [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/StSeenAt.md b/docs/SeenAt.md similarity index 97% rename from docs/StSeenAt.md rename to docs/SeenAt.md index 633a1d8..0857844 100644 --- a/docs/StSeenAt.md +++ b/docs/SeenAt.md @@ -1,4 +1,4 @@ -# StSeenAt +# SeenAt ## Properties Name | Type | Description | Notes diff --git a/docs/Visit.md b/docs/Visit.md index c6b10a5..aa48823 100644 --- a/docs/Visit.md +++ b/docs/Visit.md @@ -15,8 +15,8 @@ Name | Type | Description | Notes **LinkedId** | **string** | A customer-provided id that was sent with identification request. | [optional] [default to null] **Confidence** | [***Confidence**](Confidence.md) | | [default to null] **VisitorFound** | **bool** | Attribute represents if a visitor had been identified before. | [default to null] -**FirstSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] -**LastSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] +**FirstSeenAt** | [***SeenAt**](SeenAt.md) | | [default to null] +**LastSeenAt** | [***SeenAt**](SeenAt.md) | | [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/WebhookVisit.md b/docs/WebhookVisit.md index 42e8574..0d34a76 100644 --- a/docs/WebhookVisit.md +++ b/docs/WebhookVisit.md @@ -17,8 +17,8 @@ Name | Type | Description | Notes **LinkedId** | **string** | A customer-provided id that was sent with identification request. | [optional] [default to null] **Confidence** | [***Confidence**](Confidence.md) | | [default to null] **VisitorFound** | **bool** | Attribute represents if a visitor had been identified before. | [default to null] -**FirstSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] -**LastSeenAt** | [***StSeenAt**](StSeenAt.md) | | [default to null] +**FirstSeenAt** | [***SeenAt**](SeenAt.md) | | [default to null] +**LastSeenAt** | [***SeenAt**](SeenAt.md) | | [default to null] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/sdk/api_fingerprint.go b/sdk/api_fingerprint.go index fe5bd10..c8de362 100644 --- a/sdk/api_fingerprint.go +++ b/sdk/api_fingerprint.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com @@ -22,10 +22,10 @@ import ( type FingerprintApiService service /* -FingerprintApiService Get event by request ID -This endpoint allows you to get events with all the information from each activated product - BOTD and Fingerprinting. Use the requestId as a URL path :request_id parameter. This API method is scoped to a request, i.e. all returned information is by requestId. +FingerprintApiService Get event by requestId +This endpoint allows you to get events with all the information from each activated product (Fingerprint Pro or Bot Detection). Use the requestId as a URL path :request_id parameter. This API method is scoped to a request, i.e. all returned information is by requestId. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - - @param requestId Request ID + - @param requestId requestId is the unique identifier of each request @return EventResponse */ @@ -113,8 +113,8 @@ func (a *FingerprintApiService) GetEvent(ctx context.Context, requestId string) newErr.model = v return localVarReturnValue, localVarHttpResponse, newErr } - if localVarHttpResponse.StatusCode == 400 { - var v ErrorResponse + if localVarHttpResponse.StatusCode == 403 { + var v ErrorEvent403Response err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() @@ -123,8 +123,8 @@ func (a *FingerprintApiService) GetEvent(ctx context.Context, requestId string) newErr.model = v return localVarReturnValue, localVarHttpResponse, newErr } - if localVarHttpResponse.StatusCode == 403 { - var v ErrorResponse + if localVarHttpResponse.StatusCode == 404 { + var v ErrorEvent404Response err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() @@ -150,13 +150,13 @@ func (a *FingerprintApiService) GetEvent(ctx context.Context, requestId string) } /* -FingerprintApiService +FingerprintApiService Get visits by visitorId This endpoint allows you to get a history of visits with all available information. Use the visitorId as a URL path parameter. This API method is scoped to a visitor, i.e. all returned information is by visitorId. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param visitorId * @param optional nil or *FingerprintApiGetVisitsOpts - Optional Parameters: - * @param "RequestId" (optional.String) - Filter events by requestId - * @param "LinkedId" (optional.String) - Filter events by custom identifier + * @param "RequestId" (optional.String) - Filter visits by requestId + * @param "LinkedId" (optional.String) - Filter visits by custom identifier * @param "Limit" (optional.Int32) - Limit scanned results * @param "Before" (optional.Int32) - Used to paginate results @return Response @@ -268,6 +268,16 @@ func (a *FingerprintApiService) GetVisits(ctx context.Context, visitorId string, newErr.model = v return localVarReturnValue, localVarHttpResponse, newErr } + if localVarHttpResponse.StatusCode == 403 { + var v string + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } if localVarHttpResponse.StatusCode == 429 { var v ManyRequestsResponse err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) diff --git a/sdk/client.go b/sdk/client.go index 202be7f..eb944bf 100644 --- a/sdk/client.go +++ b/sdk/client.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/configuration.go b/sdk/configuration.go index fb95e7c..eec684c 100644 --- a/sdk/configuration.go +++ b/sdk/configuration.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/model_botd_detection_result.go b/sdk/model_botd_detection_result.go index 14f8204..f4d946f 100644 --- a/sdk/model_botd_detection_result.go +++ b/sdk/model_botd_detection_result.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/model_botd_error.go b/sdk/model_botd_error.go new file mode 100644 index 0000000..32ca9d9 --- /dev/null +++ b/sdk/model_botd_error.go @@ -0,0 +1,16 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +type BotdError struct { + // Error code: * `TooManyRequests` - the limit on secret API key requests per second has been exceeded * `Failed` - internal server error + Code string `json:"code"` + Message string `json:"message"` +} diff --git a/sdk/model_botd_result.go b/sdk/model_botd_result.go index c50a28d..f318034 100644 --- a/sdk/model_botd_result.go +++ b/sdk/model_botd_result.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com @@ -13,7 +13,7 @@ import ( "time" ) -// Contains all the information from BOTD product +// Contains all the information from Bot Detection product type BotdResult struct { // IP address of the requesting browser or bot. Ip string `json:"ip"` diff --git a/sdk/model_browser_details.go b/sdk/model_browser_details.go index 6f5f12e..0a9269e 100644 --- a/sdk/model_browser_details.go +++ b/sdk/model_browser_details.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/model_confidence.go b/sdk/model_confidence.go index 8009da6..2c650f2 100644 --- a/sdk/model_confidence.go +++ b/sdk/model_confidence.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/model_error_event403_response.go b/sdk/model_error_event403_response.go new file mode 100644 index 0000000..03075f8 --- /dev/null +++ b/sdk/model_error_event403_response.go @@ -0,0 +1,14 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +type ErrorEvent403Response struct { + Error_ *ErrorEvent403ResponseError `json:"error,omitempty"` +} diff --git a/sdk/model_error_event403_response_error.go b/sdk/model_error_event403_response_error.go new file mode 100644 index 0000000..599c4bb --- /dev/null +++ b/sdk/model_error_event403_response_error.go @@ -0,0 +1,16 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +type ErrorEvent403ResponseError struct { + // Error code: * `TokenRequired` - `Auth-API-Key` header is missing or empty * `TokenNotFound` - subscription not found for specified secret key * `SubscriptionNotActive` - subscription is not active * `WrongRegion` - server and subscription region differ + Code string `json:"code"` + Message string `json:"message"` +} diff --git a/sdk/model_error_event404_response.go b/sdk/model_error_event404_response.go new file mode 100644 index 0000000..7614899 --- /dev/null +++ b/sdk/model_error_event404_response.go @@ -0,0 +1,14 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +type ErrorEvent404Response struct { + Error_ *ErrorEvent404ResponseError `json:"error,omitempty"` +} diff --git a/sdk/model_error_event404_response_error.go b/sdk/model_error_event404_response_error.go new file mode 100644 index 0000000..c7ca257 --- /dev/null +++ b/sdk/model_error_event404_response_error.go @@ -0,0 +1,16 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +type ErrorEvent404ResponseError struct { + // Error code: * `RequestNotFound` - request not found for specified id + Code string `json:"code"` + Message string `json:"message"` +} diff --git a/sdk/model_event_response.go b/sdk/model_event_response.go index 86eba86..5055d14 100644 --- a/sdk/model_event_response.go +++ b/sdk/model_event_response.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com @@ -9,7 +9,7 @@ */ package sdk -// Contains event from activated products - BOTD and Identification +// Contains event from activated products - Fingerprint Pro or Bot Detection type EventResponse struct { Products *ProductsResponse `json:"products,omitempty"` } diff --git a/sdk/model_ip_location.go b/sdk/model_ip_location.go index 7aa12a1..5c259bd 100644 --- a/sdk/model_ip_location.go +++ b/sdk/model_ip_location.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/model_ip_location_city.go b/sdk/model_ip_location_city.go index 2f33ffb..da6f23e 100644 --- a/sdk/model_ip_location_city.go +++ b/sdk/model_ip_location_city.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/model_location.go b/sdk/model_location.go index ac91d5b..93df764 100644 --- a/sdk/model_location.go +++ b/sdk/model_location.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/model_many_requests_response.go b/sdk/model_many_requests_response.go index 4a63263..bf0507b 100644 --- a/sdk/model_many_requests_response.go +++ b/sdk/model_many_requests_response.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/model_products_response.go b/sdk/model_products_response.go index 7913d2e..c40658a 100644 --- a/sdk/model_products_response.go +++ b/sdk/model_products_response.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com @@ -9,7 +9,7 @@ */ package sdk -// Contains all the information from each activated product - BOTD and Identification +// Contains all the information from each activated product - Fingerprint Pro or Bot Detection type ProductsResponse struct { Identification *ProductsResponseIdentification `json:"identification,omitempty"` Botd *ProductsResponseBotd `json:"botd,omitempty"` diff --git a/sdk/model_products_response_botd.go b/sdk/model_products_response_botd.go index 585c88a..25c91aa 100644 --- a/sdk/model_products_response_botd.go +++ b/sdk/model_products_response_botd.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com @@ -10,5 +10,6 @@ package sdk type ProductsResponseBotd struct { - Data *BotdResult `json:"data,omitempty"` + Data *BotdResult `json:"data,omitempty"` + Error_ *BotdError `json:"error,omitempty"` } diff --git a/sdk/model_products_response_identification.go b/sdk/model_products_response_identification.go index 80c19cf..80e4047 100644 --- a/sdk/model_products_response_identification.go +++ b/sdk/model_products_response_identification.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/model_products_response_identification_data.go b/sdk/model_products_response_identification_data.go index 79702ba..aba0637 100644 --- a/sdk/model_products_response_identification_data.go +++ b/sdk/model_products_response_identification_data.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com @@ -33,8 +33,8 @@ type ProductsResponseIdentificationData struct { LinkedId string `json:"linkedId,omitempty"` Confidence *Confidence `json:"confidence"` // Attribute represents if a visitor had been identified before. - VisitorFound bool `json:"visitorFound"` - FirstSeenAt *StSeenAt `json:"firstSeenAt"` - LastSeenAt *StSeenAt `json:"lastSeenAt"` - VisitorId string `json:"visitorId"` + VisitorFound bool `json:"visitorFound"` + FirstSeenAt *SeenAt `json:"firstSeenAt"` + LastSeenAt *SeenAt `json:"lastSeenAt"` + VisitorId string `json:"visitorId"` } diff --git a/sdk/model_response.go b/sdk/model_response.go index e27009e..5e9b2d5 100644 --- a/sdk/model_response.go +++ b/sdk/model_response.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/model_response_visits.go b/sdk/model_response_visits.go index 74f2ea2..b7ec5a3 100644 --- a/sdk/model_response_visits.go +++ b/sdk/model_response_visits.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com @@ -33,7 +33,7 @@ type ResponseVisits struct { LinkedId string `json:"linkedId,omitempty"` Confidence *Confidence `json:"confidence"` // Attribute represents if a visitor had been identified before. - VisitorFound bool `json:"visitorFound"` - FirstSeenAt *StSeenAt `json:"firstSeenAt"` - LastSeenAt *StSeenAt `json:"lastSeenAt"` + VisitorFound bool `json:"visitorFound"` + FirstSeenAt *SeenAt `json:"firstSeenAt"` + LastSeenAt *SeenAt `json:"lastSeenAt"` } diff --git a/sdk/model_seen_at.go b/sdk/model_seen_at.go new file mode 100644 index 0000000..0e8153a --- /dev/null +++ b/sdk/model_seen_at.go @@ -0,0 +1,19 @@ +/* + * Fingerprint Pro Server API + * + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. + * + * API version: 3 + * Contact: support@fingerprint.com + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ +package sdk + +import ( + "time" +) + +type SeenAt struct { + Global *time.Time `json:"global"` + Subscription *time.Time `json:"subscription"` +} diff --git a/sdk/model_subdivision.go b/sdk/model_subdivision.go index e2378be..c053ffa 100644 --- a/sdk/model_subdivision.go +++ b/sdk/model_subdivision.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/sdk/model_visit.go b/sdk/model_visit.go index b822470..d968c2b 100644 --- a/sdk/model_visit.go +++ b/sdk/model_visit.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com @@ -33,7 +33,7 @@ type Visit struct { LinkedId string `json:"linkedId,omitempty"` Confidence *Confidence `json:"confidence"` // Attribute represents if a visitor had been identified before. - VisitorFound bool `json:"visitorFound"` - FirstSeenAt *StSeenAt `json:"firstSeenAt"` - LastSeenAt *StSeenAt `json:"lastSeenAt"` + VisitorFound bool `json:"visitorFound"` + FirstSeenAt *SeenAt `json:"firstSeenAt"` + LastSeenAt *SeenAt `json:"lastSeenAt"` } diff --git a/sdk/model_webhook_visit.go b/sdk/model_webhook_visit.go index c4850ef..17f25f1 100644 --- a/sdk/model_webhook_visit.go +++ b/sdk/model_webhook_visit.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com @@ -35,7 +35,7 @@ type WebhookVisit struct { LinkedId string `json:"linkedId,omitempty"` Confidence *Confidence `json:"confidence"` // Attribute represents if a visitor had been identified before. - VisitorFound bool `json:"visitorFound"` - FirstSeenAt *StSeenAt `json:"firstSeenAt"` - LastSeenAt *StSeenAt `json:"lastSeenAt"` + VisitorFound bool `json:"visitorFound"` + FirstSeenAt *SeenAt `json:"firstSeenAt"` + LastSeenAt *SeenAt `json:"lastSeenAt"` } diff --git a/sdk/response.go b/sdk/response.go index e15392e..efad9ef 100644 --- a/sdk/response.go +++ b/sdk/response.go @@ -1,7 +1,7 @@ /* * Fingerprint Pro Server API * - * Fingerprint Pro Server API provides a way for validating visitors’ data issued by Fingerprint Pro. + * Fingerprint Pro Server API allows you to get information about visitors and about individual events in a server environment. This API can be used for data exports, decision-making, and data analysis scenarios. * * API version: 3 * Contact: support@fingerprint.com diff --git a/test/mocks/get_event_404_error.json b/test/mocks/get_event_404_error.json new file mode 100644 index 0000000..389b351 --- /dev/null +++ b/test/mocks/get_event_404_error.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "RequestNotFound", + "message": "request id is not found" + } +} diff --git a/test/mocks/get_event_botd_error.json b/test/mocks/get_event_botd_error.json new file mode 100644 index 0000000..362f969 --- /dev/null +++ b/test/mocks/get_event_botd_error.json @@ -0,0 +1,67 @@ +{ + "products": { + "identification": { + "data": { + "visitorId": "Ibk1527CUFmcnjLwIs4A9", + "requestId": "0KSh65EnVoB85JBmloQK", + "incognito": true, + "linkedId": "somelinkedId", + "time": "2019-05-21T16:40:13Z", + "timestamp": 1582299576512, + "url": "https://www.example.com/login", + "ip": "61.127.217.15", + "ipLocation": { + "accuracyRadius": 10, + "latitude": 49.982, + "longitude": 36.2566, + "postalCode": "61202", + "timezone": "Europe/Dusseldorf", + "city": { + "name": "Dusseldorf" + }, + "continent": { + "code": "EU", + "name": "Europe" + }, + "country": { + "code": "DE", + "name": "Germany" + }, + "subdivisions": [ + { + "isoCode": "63", + "name": "North Rhine-Westphalia" + } + ] + }, + "browserDetails": { + "browserName": "Chrome", + "browserMajorVersion": "74", + "browserFullVersion": "74.0.3729", + "os": "Windows", + "osVersion": "7", + "device": "Other", + "userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ...." + }, + "confidence": { + "score": 0.97 + }, + "visitorFound": true, + "firstSeenAt": { + "global": "2022-03-16T11:26:45.362Z", + "subscription": "2022-03-16T11:31:01.101Z" + }, + "lastSeenAt": { + "global": "2022-03-16T11:28:34.023Z", + "subscription": null + } + } + }, + "botd": { + "error": { + "code": "Failed", + "message": "internal server error" + } + } + } +}