From ef17f19e7badc984004d82857935c0daf42b28a3 Mon Sep 17 00:00:00 2001 From: mcnulty-fp Date: Wed, 1 Jul 2026 15:03:23 +0000 Subject: [PATCH 1/4] feat: sync OpenAPI schema to v3.4.2 --- .changeset/add-parameter-example.md | 5 + .changeset/edge-response-core-fields.md | 5 + .changeset/edge-response-proxy-vpn-fields.md | 5 + .changeset/edge-tags.md | 5 + .changeset/events-device-os-fields.md | 5 + .changeset/events-search-source-filter.md | 5 + ...preserve-schema-examples-in-sdk-schemas.md | 5 + ...w-device-attributes-battery-android-ios.md | 5 + .changeset/rename-search-events-inline.md | 5 + .changeset/sad-ducks-jump.md | 5 + .changeset/salty-views-wish.md | 5 + .changeset/swift-banks-yawn.md | 5 + .changeset/yellow-corners-find.md | 5 + .schema-version | 2 +- README.md | 1 + docs/Event.md | 18 +- docs/EventUpdate.md | 2 +- docs/FingerprintApi.md | 48 +- docs/IPInfoV4.md | 2 +- docs/IPInfoV6.md | 2 +- docs/Integration.md | 4 +- docs/IntegrationSubintegration.md | 4 +- docs/ProxyDetails.md | 3 +- docs/RawDeviceAttributes.md | 6 +- docs/SDK.md | 2 +- docs/SearchEventsSource.md | 12 + docs/VpnMethods.md | 1 + res/fingerprint-server-api.yaml | 1620 +++++++++++------ .../fingerprint/v4/api/FingerprintApi.java | 29 +- .../com/fingerprint/v4/model/BotInfo.java | 2 +- .../fingerprint/v4/model/BotInfoCategory.java | 2 +- .../v4/model/BotInfoConfidence.java | 2 +- .../fingerprint/v4/model/BotInfoIdentity.java | 2 +- .../com/fingerprint/v4/model/BotResult.java | 2 +- .../fingerprint/v4/model/BrowserDetails.java | 2 +- .../java/com/fingerprint/v4/model/Canvas.java | 2 +- .../java/com/fingerprint/v4/model/Emoji.java | 2 +- .../java/com/fingerprint/v4/model/Error.java | 2 +- .../com/fingerprint/v4/model/ErrorCode.java | 2 +- .../fingerprint/v4/model/ErrorResponse.java | 2 +- .../java/com/fingerprint/v4/model/Event.java | 134 +- .../fingerprint/v4/model/EventRuleAction.java | 2 +- .../v4/model/EventRuleActionAllow.java | 2 +- .../v4/model/EventRuleActionBlock.java | 2 +- .../com/fingerprint/v4/model/EventSearch.java | 2 +- .../com/fingerprint/v4/model/EventUpdate.java | 4 +- .../fingerprint/v4/model/FontPreferences.java | 2 +- .../com/fingerprint/v4/model/Geolocation.java | 2 +- .../model/GeolocationSubdivisionsInner.java | 2 +- .../com/fingerprint/v4/model/IPBlockList.java | 2 +- .../java/com/fingerprint/v4/model/IPInfo.java | 2 +- .../com/fingerprint/v4/model/IPInfoV4.java | 4 +- .../com/fingerprint/v4/model/IPInfoV6.java | 4 +- .../fingerprint/v4/model/Identification.java | 2 +- .../v4/model/IdentificationConfidence.java | 2 +- .../IncrementalIdentificationStatus.java | 2 +- .../com/fingerprint/v4/model/Integration.java | 6 +- .../v4/model/IntegrationSubintegration.java | 6 +- .../com/fingerprint/v4/model/LabelsInner.java | 2 +- .../fingerprint/v4/model/PluginsInner.java | 2 +- .../v4/model/PluginsInnerMimeTypesInner.java | 2 +- .../com/fingerprint/v4/model/Proximity.java | 2 +- .../fingerprint/v4/model/ProxyConfidence.java | 2 +- .../fingerprint/v4/model/ProxyDetails.java | 8 +- .../v4/model/RareDevicePercentileBucket.java | 2 +- .../v4/model/RawDeviceAttributes.java | 75 +- .../v4/model/RequestHeaderModifications.java | 2 +- .../v4/model/RuleActionHeaderField.java | 2 +- .../fingerprint/v4/model/RuleActionType.java | 2 +- .../java/com/fingerprint/v4/model/SDK.java | 4 +- .../fingerprint/v4/model/SearchEventsBot.java | 2 +- .../v4/model/SearchEventsBotInfo.java | 2 +- ...EventsIncrementalIdentificationStatus.java | 2 +- ...earchEventsRareDevicePercentileBucket.java | 2 +- .../v4/model/SearchEventsSdkPlatform.java | 2 +- .../v4/model/SearchEventsSource.java | 51 + .../v4/model/SearchEventsVpnConfidence.java | 2 +- .../v4/model/SupplementaryIDHighRecall.java | 2 +- .../v4/model/TamperingConfidence.java | 2 +- .../v4/model/TamperingDetails.java | 2 +- .../fingerprint/v4/model/TouchSupport.java | 2 +- .../com/fingerprint/v4/model/Velocity.java | 2 +- .../fingerprint/v4/model/VelocityData.java | 2 +- .../fingerprint/v4/model/VpnConfidence.java | 2 +- .../com/fingerprint/v4/model/VpnMethods.java | 37 +- .../com/fingerprint/v4/model/WebGlBasics.java | 2 +- .../fingerprint/v4/model/WebGlExtensions.java | 2 +- .../com/fingerprint/v4/sdk/ApiClient.java | 2 +- .../com/fingerprint/v4/sdk/ApiException.java | 2 +- .../com/fingerprint/v4/sdk/ApiResponse.java | 2 +- .../com/fingerprint/v4/sdk/Configuration.java | 2 +- .../java/com/fingerprint/v4/sdk/JSON.java | 2 +- .../fingerprint/v4/sdk/JavaTimeFormatter.java | 2 +- .../java/com/fingerprint/v4/sdk/Pair.java | 2 +- .../fingerprint/v4/sdk/RFC3339DateFormat.java | 2 +- .../v4/sdk/RFC3339InstantDeserializer.java | 2 +- .../v4/sdk/RFC3339JavaTimeModule.java | 2 +- .../v4/sdk/ServerConfiguration.java | 2 +- .../fingerprint/v4/sdk/ServerVariable.java | 2 +- .../com/fingerprint/v4/sdk/StringUtil.java | 2 +- .../fingerprint/v4/sdk/auth/ApiKeyAuth.java | 2 +- .../v4/sdk/auth/Authentication.java | 2 +- .../v4/sdk/auth/HttpBasicAuth.java | 2 +- .../v4/sdk/auth/HttpBearerAuth.java | 2 +- .../mocks/errors/400_edge_ip_required.json | 6 + .../mocks/errors/400_edge_unknown_field.json | 6 + .../errors/400_request_read_timeout.json | 6 + .../mocks/errors/413_payload_too_large.json | 6 + .../resources/mocks/events/get_event_200.json | 7 +- .../get_event_200_with_unknown_field.json | 304 ++++ .../mocks/events/get_event_ruleset_200.json | 7 +- .../events/get_event_with_bot_info_200.json | 7 +- .../events/search/get_event_search_200.json | 9 +- 113 files changed, 1942 insertions(+), 698 deletions(-) create mode 100644 .changeset/add-parameter-example.md create mode 100644 .changeset/edge-response-core-fields.md create mode 100644 .changeset/edge-response-proxy-vpn-fields.md create mode 100644 .changeset/edge-tags.md create mode 100644 .changeset/events-device-os-fields.md create mode 100644 .changeset/events-search-source-filter.md create mode 100644 .changeset/preserve-schema-examples-in-sdk-schemas.md create mode 100644 .changeset/raw-device-attributes-battery-android-ios.md create mode 100644 .changeset/rename-search-events-inline.md create mode 100644 .changeset/sad-ducks-jump.md create mode 100644 .changeset/salty-views-wish.md create mode 100644 .changeset/swift-banks-yawn.md create mode 100644 .changeset/yellow-corners-find.md create mode 100644 docs/SearchEventsSource.md create mode 100644 sdk/src/main/java/com/fingerprint/v4/model/SearchEventsSource.java create mode 100644 sdk/src/test/resources/mocks/errors/400_edge_ip_required.json create mode 100644 sdk/src/test/resources/mocks/errors/400_edge_unknown_field.json create mode 100644 sdk/src/test/resources/mocks/errors/400_request_read_timeout.json create mode 100644 sdk/src/test/resources/mocks/errors/413_payload_too_large.json create mode 100644 sdk/src/test/resources/mocks/events/get_event_200_with_unknown_field.json diff --git a/.changeset/add-parameter-example.md b/.changeset/add-parameter-example.md new file mode 100644 index 00000000..b5e70fa4 --- /dev/null +++ b/.changeset/add-parameter-example.md @@ -0,0 +1,5 @@ +--- +'java-sdk': patch +--- + +Add `example` properties for operation parameters to SDK schemas \ No newline at end of file diff --git a/.changeset/edge-response-core-fields.md b/.changeset/edge-response-core-fields.md new file mode 100644 index 00000000..6183bb10 --- /dev/null +++ b/.changeset/edge-response-core-fields.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +Add required `event_id` and `timestamp` and optional `linked_id` and `url` to `EdgeResponse`; add `linked_id` to `EdgeRequest` diff --git a/.changeset/edge-response-proxy-vpn-fields.md b/.changeset/edge-response-proxy-vpn-fields.md new file mode 100644 index 00000000..ffa894dd --- /dev/null +++ b/.changeset/edge-response-proxy-vpn-fields.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +Add `proxy`, `proxy_confidence`, `proxy_details`, `vpn`, `vpn_confidence`, and `vpn_methods` to `EdgeResponse` diff --git a/.changeset/edge-tags.md b/.changeset/edge-tags.md new file mode 100644 index 00000000..68185316 --- /dev/null +++ b/.changeset/edge-tags.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +Add `tags` to `EdgeResponse` and `EdgeRequest` diff --git a/.changeset/events-device-os-fields.md b/.changeset/events-device-os-fields.md new file mode 100644 index 00000000..0e9e5de7 --- /dev/null +++ b/.changeset/events-device-os-fields.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events**: Add `device`, `os`, and `os_version` to `Event` diff --git a/.changeset/events-search-source-filter.md b/.changeset/events-search-source-filter.md new file mode 100644 index 00000000..8ec78eb0 --- /dev/null +++ b/.changeset/events-search-source-filter.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events-search**: Add `source` query parameter to filter events by `edge` (Automation Intelligence) source diff --git a/.changeset/preserve-schema-examples-in-sdk-schemas.md b/.changeset/preserve-schema-examples-in-sdk-schemas.md new file mode 100644 index 00000000..2c45ac48 --- /dev/null +++ b/.changeset/preserve-schema-examples-in-sdk-schemas.md @@ -0,0 +1,5 @@ +--- +'java-sdk': patch +--- + +Preserve schema-level `examples` in SDK schemas, removing only request and response body examples diff --git a/.changeset/raw-device-attributes-battery-android-ios.md b/.changeset/raw-device-attributes-battery-android-ios.md new file mode 100644 index 00000000..094789d2 --- /dev/null +++ b/.changeset/raw-device-attributes-battery-android-ios.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events**: Add `battery_level` and `battery_low_power_mode` to `RawDeviceAttributes` diff --git a/.changeset/rename-search-events-inline.md b/.changeset/rename-search-events-inline.md new file mode 100644 index 00000000..0e94ebe8 --- /dev/null +++ b/.changeset/rename-search-events-inline.md @@ -0,0 +1,5 @@ +--- +'java-sdk': patch +--- + +**events-search**: Rename `SearchEventsInline` to `SearchEventsSource` in server SDKs schema \ No newline at end of file diff --git a/.changeset/sad-ducks-jump.md b/.changeset/sad-ducks-jump.md new file mode 100644 index 00000000..2ea5b678 --- /dev/null +++ b/.changeset/sad-ducks-jump.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events**: Add `ml_prediction` to `vpn_methods` \ No newline at end of file diff --git a/.changeset/salty-views-wish.md b/.changeset/salty-views-wish.md new file mode 100644 index 00000000..588a1e39 --- /dev/null +++ b/.changeset/salty-views-wish.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events**: Add `vpn_ml_score` to `Event` \ No newline at end of file diff --git a/.changeset/swift-banks-yawn.md b/.changeset/swift-banks-yawn.md new file mode 100644 index 00000000..e7b48be4 --- /dev/null +++ b/.changeset/swift-banks-yawn.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +Added VPN mlScore and mlPrediction to v3 events and events search \ No newline at end of file diff --git a/.changeset/yellow-corners-find.md b/.changeset/yellow-corners-find.md new file mode 100644 index 00000000..840a0131 --- /dev/null +++ b/.changeset/yellow-corners-find.md @@ -0,0 +1,5 @@ +--- +'java-sdk': minor +--- + +**events-search**: Document 404 response for `searchEvents` operation \ No newline at end of file diff --git a/.schema-version b/.schema-version index 56e50151..5e05a378 100644 --- a/.schema-version +++ b/.schema-version @@ -1 +1 @@ -v3.3.1 \ No newline at end of file +v3.4.2 \ No newline at end of file diff --git a/README.md b/README.md index c47ddc4f..789030b5 100644 --- a/README.md +++ b/README.md @@ -343,6 +343,7 @@ Class | Method | HTTP request | Description - [SearchEventsIncrementalIdentificationStatus](docs/SearchEventsIncrementalIdentificationStatus.md) - [SearchEventsRareDevicePercentileBucket](docs/SearchEventsRareDevicePercentileBucket.md) - [SearchEventsSdkPlatform](docs/SearchEventsSdkPlatform.md) + - [SearchEventsSource](docs/SearchEventsSource.md) - [SearchEventsVpnConfidence](docs/SearchEventsVpnConfidence.md) - [SupplementaryIDHighRecall](docs/SupplementaryIDHighRecall.md) - [TamperingConfidence](docs/TamperingConfidence.md) diff --git a/docs/Event.md b/docs/Event.md index 953cdadd..323aa11a 100644 --- a/docs/Event.md +++ b/docs/Event.md @@ -8,23 +8,26 @@ Contains results from Fingerprint Identification and all active Smart Signals. | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**eventId** | **String** | Unique identifier of the user's request. The first portion of the event_id is a unix epoch milliseconds timestamp For example: `1758130560902.8tRtrH` | | +|**eventId** | **String** | Unique identifier of the user's request. The first portion of the event_id is a unix epoch milliseconds timestamp. | | |**timestamp** | **Long** | Timestamp of the event with millisecond precision in Unix time. | | |**incrementalIdentificationStatus** | [**IncrementalIdentificationStatus**](IncrementalIdentificationStatus.md) | | [optional] | |**linkedId** | **String** | A customer-provided id that was sent with the request. | [optional] | -|**environmentId** | **String** | Environment Id of the event. For example: `ae_47abaca3db2c7c43` | [optional] | +|**environmentId** | **String** | Environment Id of the event. | [optional] | |**suspect** | **Boolean** | Field is `true` if you have previously set the `suspect` flag for this event using the [Server API Update event endpoint](https://docs.fingerprint.com/reference/server-api-v4-update-event). | [optional] | |**sdk** | [**SDK**](SDK.md) | | [optional] | |**replayed** | **Boolean** | `true` if we determined that this payload was replayed, `false` otherwise. | [optional] | |**identification** | [**Identification**](Identification.md) | | [optional] | |**supplementaryIdHighRecall** | [**SupplementaryIDHighRecall**](SupplementaryIDHighRecall.md) | | [optional] | |**tags** | **Map<String, Object>** | A customer-provided value or an object that was sent with the identification request or updated later. | [optional] | -|**url** | **String** | Page URL from which the request was sent. For example `https://example.com/` | [optional] | -|**bundleId** | **String** | Bundle Id of the iOS application integrated with the Fingerprint SDK for the event. For example: `com.foo.app` | [optional] | -|**packageName** | **String** | Package name of the Android application integrated with the Fingerprint SDK for the event. For example: `com.foo.app` | [optional] | +|**url** | **String** | Page URL from which the request was sent. | [optional] | +|**bundleId** | **String** | Bundle Id of the iOS application integrated with the Fingerprint SDK for the event. | [optional] | +|**packageName** | **String** | Package name of the Android application integrated with the Fingerprint SDK for the event. | [optional] | |**ipAddress** | **String** | IP address of the requesting browser or bot. | [optional] | -|**userAgent** | **String** | User Agent of the client, for example: `Mozilla/5.0 (Windows NT 6.1; Win64; x64) ....` | [optional] | -|**clientReferrer** | **String** | Client Referrer field corresponds to the `document.referrer` field gathered during an identification request. The value is an empty string if the user navigated to the page directly (not through a link, but, for example, by using a bookmark) For example: `https://example.com/blog/my-article` | [optional] | +|**userAgent** | **String** | User Agent of the client. | [optional] | +|**device** | **String** | Device model or family extracted from the user agent string. On web, this field is also present inside `browser_details`. | [optional] | +|**os** | **String** | Operating system family extracted from the user agent string. On web, this field is also present inside `browser_details`. | [optional] | +|**osVersion** | **String** | Operating system version string extracted from the user agent string. On web, this field is also present inside `browser_details`. | [optional] | +|**clientReferrer** | **String** | Client Referrer field corresponds to the `document.referrer` field gathered during an identification request. The value is an empty string if the user navigated to the page directly (not through a link, but, for example, by using a bookmark). | [optional] | |**browserDetails** | [**BrowserDetails**](BrowserDetails.md) | | [optional] | |**proximity** | [**Proximity**](Proximity.md) | | [optional] | |**bot** | [**BotResult**](BotResult.md) | | [optional] | @@ -59,6 +62,7 @@ Contains results from Fingerprint Identification and all active Smart Signals. |**virtualMachineMlScore** | **Double** | Machine learning–based virtual machine score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `virtual_machine` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). | [optional] | |**vpn** | **Boolean** | VPN or other anonymizing service has been used when sending the request. | [optional] | |**vpnConfidence** | [**VpnConfidence**](VpnConfidence.md) | | [optional] | +|**vpnMlScore** | **Double** | Machine learning–based VPN score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `vpn` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). | [optional] | |**vpnOriginTimezone** | **String** | Local timezone which is used in timezone_mismatch method. | [optional] | |**vpnOriginCountry** | **String** | Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown). | [optional] | |**vpnMethods** | [**VpnMethods**](VpnMethods.md) | | [optional] | diff --git a/docs/EventUpdate.md b/docs/EventUpdate.md index ba5dd259..ba0a103f 100644 --- a/docs/EventUpdate.md +++ b/docs/EventUpdate.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**linkedId** | **String** | Linked Id value to assign to the existing event | [optional] | +|**linkedId** | **String** | Linked ID value to assign to the existing event | [optional] | |**tags** | **Map<String, Object>** | A customer-provided value or an object that was sent with the identification request or updated later. | [optional] | |**suspect** | **Boolean** | Suspect flag indicating observed suspicious or fraudulent event | [optional] | diff --git a/docs/FingerprintApi.md b/docs/FingerprintApi.md index 69d13104..38f02c23 100644 --- a/docs/FingerprintApi.md +++ b/docs/FingerprintApi.md @@ -73,7 +73,7 @@ public class FingerprintApiExample { Region.ASIA */ FingerprintApi api = new FingerprintApi(FPJS_API_SECRET, Region.EUROPE); - String visitorId = "visitorId_example"; // String | The [visitor ID](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) you want to delete. + String visitorId = "Ibk1527CUFmcnjLwIs4A9"; // String | The [visitor ID](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) you want to delete. try { api.deleteVisitorData(visitorId); } catch (ApiException e) { @@ -152,8 +152,8 @@ public class FingerprintApiExample { Region.ASIA */ FingerprintApi api = new FingerprintApi(FPJS_API_SECRET, Region.EUROPE); - String eventId = "eventId_example"; // String | The unique [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id) of each identification request (`requestId` can be used in its place). - String rulesetId = "rulesetId_example"; // String | The ID of the ruleset to evaluate against the event, producing the action to take for this event. The resulting action is returned in the `rule_action` attribute of the response. + String eventId = "1708102555327.NLOjmg"; // String | The unique [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id) of each identification request (`requestId` can be used in its place). + String rulesetId = "D6N9Kbk9HRWrIWGz"; // String | The ID of the ruleset to evaluate against the event, producing the action to take for this event. The resulting action is returned in the `rule_action` attribute of the response. try { Event result = api.getEvent(eventId, new FingerprintApi.GetEventOptionalParams() .setRulesetId(rulesetId)); @@ -267,10 +267,10 @@ public class FingerprintApiExample { Region.ASIA */ FingerprintApi api = new FingerprintApi(FPJS_API_SECRET, Region.EUROPE); - Integer limit = 10; // Integer | Maximum number of events to return. Results are selected from the time range (`start`, `end`), ordered by `reverse`, then truncated to provided `limit` size. So `reverse=true` returns the oldest N=`limit` events, otherwise the newest N=`limit` events. - String paginationKey = "paginationKey_example"; // String | Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 100 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` - String visitorId = "visitorId_example"; // String | Unique [visitor identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) issued by Fingerprint Identification and all active Smart Signals. Filter events by matching Visitor ID (`identification.visitor_id` property). - String highRecallId = "highRecallId_example"; // String | The High Recall ID is a supplementary browser identifier designed for use cases that require wider coverage over precision. Compared to the standard visitor ID, the High Recall ID strives to match incoming browsers more generously (rather than precisely) with existing browsers and thus identifies fewer browsers as new. The High Recall ID is best suited for use cases that are sensitive to browsers being identified as new and where mismatched browsers are not detrimental. Filter events by matching High Recall ID (`supplementary_id_high_recall.visitor_id` property). + Integer limit = 10; // Integer | Maximum number of events to return. Defaults to 10 when omitted. Results are selected from the time range (`start`, `end`), ordered by `reverse`, then truncated to provided `limit` size. So `reverse=true` returns the oldest N=`limit` events, otherwise the newest N=`limit` events. + String paginationKey = "S9rgMMUb4z3X5t5pr_tSgoSZlmyF0O8X7kCV2m981-iY1LmRTjraa1rTk3L-hQExnDWCi0RA-zAIjaVSTNO2AN2eqQWgzT0RjbieMxRfSdkM-HmOhdOgdQvYfPG3vqU1DJKh4Q"; // String | Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 100 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=S9rgMMUb4z3X5t5pr_tSgoSZlmyF0O8X7kCV2m981-iY1LmRTjraa1rTk3L-hQExnDWCi0RA-zAIjaVSTNO2AN2eqQWgzT0RjbieMxRfSdkM-HmOhdOgdQvYfPG3vqU1DJKh4Q` + String visitorId = "Ibk1527CUFmcnjLwIs4A9"; // String | Unique [visitor identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) issued by Fingerprint Identification and all active Smart Signals. Filter events by matching Visitor ID (`identification.visitor_id` property). + String highRecallId = "Ibk1527CUFmcnjLwIs4A9"; // String | The High Recall ID is a supplementary browser identifier designed for use cases that require wider coverage over precision. Compared to the standard visitor ID, the High Recall ID strives to match incoming browsers more generously (rather than precisely) with existing browsers and thus identifies fewer browsers as new. The High Recall ID is best suited for use cases that are sensitive to browsers being identified as new and where mismatched browsers are not detrimental. Filter events by matching High Recall ID (`supplementary_id_high_recall.visitor_id` property). SearchEventsBot bot = SearchEventsBot.fromValue("all"); // SearchEventsBot | Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `bot` property set to a valid value are returned. Events without a `bot` Smart Signal result are left out of the response. SearchEventsBotInfo botInfo = SearchEventsBotInfo.fromValue("all"); // SearchEventsBotInfo | Filter events by their Bot Info result, specifically: - `all` - events where any kind of bot was detected. - `none` - events where no bot was detected. List botInfoCategory = Arrays.asList(); // List | Filter events by their Bot Info Category. Multiple categories can be provided using the repeated keys syntax. For example, `bot_info_category=ai_agent&bot_info_category=ai_assistant`, will match events with a Bot Info Category of `ai_agent` or `ai_assistant`. Other notations like comma-separated or bracket notation are not supported. @@ -278,13 +278,13 @@ public class FingerprintApiExample { List botInfoConfidence = Arrays.asList(); // List | Filter events by their Bot Info Confidence. Multiple confidences can be provided using the repeated keys syntax. For example, `bot_info_confidence=high&bot_info_confidence=medium`, will match events with a Bot Info Confidence of `high` or `medium`. Other notations like comma-separated or bracket notation are not supported. List botInfoProvider = Arrays.asList(); // List | Filter events by their Bot Info Provider. The provider must match exactly, partial or wildcard matching is not supported. Multiple Providers can be provided using the repeated keys syntax. For example, `bot_info_provider=OpenAI&bot_info_provider=AWS`, will match events with a Bot Info Provider of `OpenAI` or `AWS`. Other notations like comma-separated or bracket notation are not supported. List botInfoName = Arrays.asList(); // List | Filter events by their Bot Info Name. The name must match exactly, partial or wildcard matching is not supported. Multiple Names can be provided using the repeated keys syntax. For example, `bot_info_name=ChatGPT%20Agent&bot_info_name=Bedrock%20AgentCore`, will match events with a Bot Info Name of `ChatGPT Agent` or `Bedrock AgentCore`. Other notations like comma-separated or bracket notation are not supported. - String ipAddress = "ipAddress_example"; // String | Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 - String asn = "asn_example"; // String | Filter events by the ASN associated with the event's IP address. This corresponds to the `ip_info.(v4|v6).asn` property in the response. - String linkedId = "linkedId_example"; // String | Filter events by your custom identifier. You can use [linked Ids](https://docs.fingerprint.com/reference/js-agent-v4-get-function#linkedid) to associate identification requests with your own identifier, for example, session Id, purchase Id, or transaction Id. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. - String url = "url_example"; // String | Filter events by the URL (`url` property) associated with the event. - String bundleId = "bundleId_example"; // String | Filter events by the Bundle ID (iOS) associated with the event. - String packageName = "packageName_example"; // String | Filter events by the Package Name (Android) associated with the event. - String origin = "origin_example"; // String | Filter events by the origin field of the event. This is applicable to web events only (e.g., https://example.com) + String ipAddress = "61.127.217.15"; // String | Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 + String asn = "12876"; // String | Filter events by the ASN associated with the event's IP address. This corresponds to the `ip_info.(v4|v6).asn` property in the response. + String linkedId = "somelinkedId"; // String | Filter events by your custom identifier. You can use [linked Ids](https://docs.fingerprint.com/reference/js-agent-v4-get-function#linkedid) to associate identification requests with your own identifier, for example, session Id, purchase Id, or transaction Id. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. + String url = "https://example.com/login"; // String | Filter events by the URL (`url` property) associated with the event. + String bundleId = "com.example.app"; // String | Filter events by the Bundle ID (iOS) associated with the event. + String packageName = "com.example.app"; // String | Filter events by the Package Name (Android) associated with the event. + String origin = "https://example.com"; // String | Filter events by the origin field of the event. This is applicable to web events only (e.g., https://example.com) Long start = 1767225600000L; // Long | Include events that happened after this point (with timestamp greater than or equal to the provided `start` Unix milliseconds value). Defaults to 7 days ago. Setting `start` does not change the default of `now` for `end`/`end_date_time` — adjust it separately if needed. OffsetDateTime startDateTime = OffsetDateTime.parse("2026-01-01T00:00:00Z"); // OffsetDateTime | Include events that happened after this point (with timestamp greater than or equal to the provided `start_date_time` RFC3339 timestamp). Defaults to 7 days ago. Setting `start_date_time` does not the default of `now` for `end`/`end_date_time` — adjust it separately if needed. This parameter is an alias for `start`. Long end = 1769903999000L; // Long | Include events that happened before this point (with timestamp less than or equal the provided `end` Unix milliseconds value). Defaults to now. Setting `end` does not change the default of `7 days ago` for `start`/`start_date_time` — adjust it separately if needed. @@ -304,21 +304,22 @@ public class FingerprintApiExample { Boolean emulator = true; // Boolean | Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `emulator` property set to `true` or `false` are returned. Events without an `emulator` Smart Signal result are left out of the response. Boolean rootApps = true; // Boolean | Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `root_apps` property set to `true` or `false` are returned. Events without a `root_apps` Smart Signal result are left out of the response. SearchEventsVpnConfidence vpnConfidence = SearchEventsVpnConfidence.fromValue("high"); // SearchEventsVpnConfidence | Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `vpn.confidence` property set to a valid value are returned. Events without a `vpn` Smart Signal result are left out of the response. - Float minSuspectScore = 3.4F; // Float | Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. + Float minSuspectScore = 7.5F; // Float | Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. Boolean developerTools = true; // Boolean | Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `developer_tools` property set to `true` or `false` are returned. Events without a `developer_tools` Smart Signal result are left out of the response. Boolean locationSpoofing = true; // Boolean | Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `location_spoofing` property set to `true` or `false` are returned. Events without a `location_spoofing` Smart Signal result are left out of the response. Boolean mitmAttack = true; // Boolean | Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `mitm_attack` property set to `true` or `false` are returned. Events without a `mitm_attack` Smart Signal result are left out of the response. Boolean rareDevice = true; // Boolean | Filter events by Device Rarity detection result. > Note: When using this parameter, only events with the `rare_device` property set to `true` or `false` are returned. Events without a Device Rarity Smart Signal result are left out of the response. > This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). SearchEventsRareDevicePercentileBucket rareDevicePercentileBucket = SearchEventsRareDevicePercentileBucket.fromValue(" This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). Boolean proxy = true; // Boolean | Filter events by Proxy detection result. > Note: When using this parameter, only events with the `proxy` property set to `true` or `false` are returned. Events without a `proxy` Smart Signal result are left out of the response. - String sdkVersion = "sdkVersion_example"; // String | Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` + String sdkVersion = "3.11.14"; // String | Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` SearchEventsSdkPlatform sdkPlatform = SearchEventsSdkPlatform.fromValue("js"); // SearchEventsSdkPlatform | Filter events by the SDK Platform associated with the identification event (`sdk.platform` property) . `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. List environment = Arrays.asList(); // List | Filter for events by providing one or more environment IDs (`environment_id` property). ### Array syntax To provide multiple environment IDs, use the repeated keys syntax (`environment=env1&environment=env2`). Other notations like comma-separated (`environment=env1,env2`) or bracket notation (`environment[]=env1&environment[]=env2`) are not supported. - String proximityId = "proximityId_example"; // String | Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. - Long totalHits = 56L; // Long | When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. + String proximityId = "C9rJYBlOFsAfBwQ"; // String | Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. + Long totalHits = 100L; // Long | When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. Boolean torNode = true; // Boolean | Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. SearchEventsIncrementalIdentificationStatus incrementalIdentificationStatus = SearchEventsIncrementalIdentificationStatus.fromValue("partially_completed"); // SearchEventsIncrementalIdentificationStatus | Filter events by their incremental identification status (`incremental_identification_status` property). Non incremental identification events are left out of the response. Boolean simulator = true; // Boolean | Filter events by iOS Simulator Detection result. > Note: When using this parameter, only events with the `simulator` property set to `true` or `false` are returned. Events without a `simulator` Smart Signal result are left out of the response. + List source = Arrays.asList(); // List | Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. try { EventSearch result = api.searchEvents(new FingerprintApi.SearchEventsOptionalParams() .setLimit(limit) @@ -372,7 +373,8 @@ public class FingerprintApiExample { .setTotalHits(totalHits) .setTorNode(torNode) .setIncrementalIdentificationStatus(incrementalIdentificationStatus) - .setSimulator(simulator)); + .setSimulator(simulator) + .setSource(source)); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling FingerprintApi.searchEvents:" + e.getMessage()); @@ -395,8 +397,8 @@ Object containing optional parameters for API method. Supports a fluent interfac | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **limit** | **Integer**| Maximum number of events to return. Results are selected from the time range (`start`, `end`), ordered by `reverse`, then truncated to provided `limit` size. So `reverse=true` returns the oldest N=`limit` events, otherwise the newest N=`limit` events. | [optional] [default to 10] | -| **paginationKey** | **String**| Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 100 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` | [optional] | +| **limit** | **Integer**| Maximum number of events to return. Defaults to 10 when omitted. Results are selected from the time range (`start`, `end`), ordered by `reverse`, then truncated to provided `limit` size. So `reverse=true` returns the oldest N=`limit` events, otherwise the newest N=`limit` events. | [optional] | +| **paginationKey** | **String**| Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 100 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=S9rgMMUb4z3X5t5pr_tSgoSZlmyF0O8X7kCV2m981-iY1LmRTjraa1rTk3L-hQExnDWCi0RA-zAIjaVSTNO2AN2eqQWgzT0RjbieMxRfSdkM-HmOhdOgdQvYfPG3vqU1DJKh4Q` | [optional] | | **visitorId** | **String**| Unique [visitor identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) issued by Fingerprint Identification and all active Smart Signals. Filter events by matching Visitor ID (`identification.visitor_id` property). | [optional] | | **highRecallId** | **String**| The High Recall ID is a supplementary browser identifier designed for use cases that require wider coverage over precision. Compared to the standard visitor ID, the High Recall ID strives to match incoming browsers more generously (rather than precisely) with existing browsers and thus identifies fewer browsers as new. The High Recall ID is best suited for use cases that are sensitive to browsers being identified as new and where mismatched browsers are not detrimental. Filter events by matching High Recall ID (`supplementary_id_high_recall.visitor_id` property). | [optional] | | **bot** | **SearchEventsBot**| Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `bot` property set to a valid value are returned. Events without a `bot` Smart Signal result are left out of the response. | [optional] [enum: all, good, bad, none] | @@ -447,6 +449,7 @@ Object containing optional parameters for API method. Supports a fluent interfac | **torNode** | **Boolean**| Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. | [optional] | | **incrementalIdentificationStatus** | **SearchEventsIncrementalIdentificationStatus**| Filter events by their incremental identification status (`incremental_identification_status` property). Non incremental identification events are left out of the response. | [optional] [enum: partially_completed, completed] | | **simulator** | **Boolean**| Filter events by iOS Simulator Detection result. > Note: When using this parameter, only events with the `simulator` property set to `true` or `false` are returned. Events without a `simulator` Smart Signal result are left out of the response. | [optional] | +| **source** | **List<SearchEventsSource>**| Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. | [optional] | ### Return type @@ -467,6 +470,7 @@ Object containing optional parameters for API method. Supports a fluent interfac | **200** | Events matching the filter(s). | - | | **400** | Bad request. One or more supplied search parameters are invalid, or a required parameter is missing. | - | | **403** | Forbidden. Access to this API is denied. | - | +| **404** | Not found. The requested visitor does not exist in this workspace's data. | - | | **500** | Workspace error. | - | @@ -514,7 +518,7 @@ public class FingerprintApiExample { Region.ASIA */ FingerprintApi api = new FingerprintApi(FPJS_API_SECRET, Region.EUROPE); - String eventId = "eventId_example"; // String | The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id). + String eventId = "1708102555327.NLOjmg"; // String | The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id). EventUpdate eventUpdate = new EventUpdate(); // EventUpdate | try { api.updateEvent(eventId, eventUpdate); diff --git a/docs/IPInfoV4.md b/docs/IPInfoV4.md index 418148c8..1d9bf8e6 100644 --- a/docs/IPInfoV4.md +++ b/docs/IPInfoV4.md @@ -13,7 +13,7 @@ |**asnName** | **String** | | [optional] | |**asnNetwork** | **String** | | [optional] | |**asnType** | **String** | | [optional] | -|**datacenterResult** | **Boolean** | | [optional] | +|**datacenterResult** | **Boolean** | When true, the request originated from a datacenter. | [optional] | |**datacenterName** | **String** | | [optional] | diff --git a/docs/IPInfoV6.md b/docs/IPInfoV6.md index dfd01e64..6f4ba98d 100644 --- a/docs/IPInfoV6.md +++ b/docs/IPInfoV6.md @@ -13,7 +13,7 @@ |**asnName** | **String** | | [optional] | |**asnNetwork** | **String** | | [optional] | |**asnType** | **String** | | [optional] | -|**datacenterResult** | **Boolean** | | [optional] | +|**datacenterResult** | **Boolean** | When true, the request originated from a datacenter. | [optional] | |**datacenterName** | **String** | | [optional] | diff --git a/docs/Integration.md b/docs/Integration.md index bb9d12a4..cb5626dd 100644 --- a/docs/Integration.md +++ b/docs/Integration.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**name** | **String** | The name of the specific integration, e.g. \"fingerprint-pro-react\". | [optional] | -|**version** | **String** | The version of the specific integration, e.g. \"3.11.10\". | [optional] | +|**name** | **String** | The name of the specific integration. | [optional] | +|**version** | **String** | The version of the specific integration. | [optional] | |**subintegration** | [**IntegrationSubintegration**](IntegrationSubintegration.md) | | [optional] | diff --git a/docs/IntegrationSubintegration.md b/docs/IntegrationSubintegration.md index 4ccc429b..8a1186ef 100644 --- a/docs/IntegrationSubintegration.md +++ b/docs/IntegrationSubintegration.md @@ -7,8 +7,8 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**name** | **String** | The name of the specific subintegration, e.g. \"preact\". | [optional] | -|**version** | **String** | The version of the specific subintegration, e.g. \"10.21.0\". | [optional] | +|**name** | **String** | The name of the specific subintegration. | [optional] | +|**version** | **String** | The version of the specific subintegration. | [optional] | diff --git a/docs/ProxyDetails.md b/docs/ProxyDetails.md index 85a60f19..fa3a7196 100644 --- a/docs/ProxyDetails.md +++ b/docs/ProxyDetails.md @@ -8,7 +8,7 @@ Proxy detection details (present if `proxy` is `true`) | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**proxyType** | [**ProxyTypeEnum**](#ProxyTypeEnum) | Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers | | +|**proxyType** | [**ProxyTypeEnum**](#ProxyTypeEnum) | Proxy type: * `residential` - proxies that route through residential and telecom IP addresses to appear as legitimate traffic * `data_center` - proxies which route through data centers * `unknown` - reported when a proxy is detected solely by the ML model and the IP sources did not determine a specific type | | |**lastSeenAt** | **Long** | Unix millisecond timestamp with hourly resolution of when this IP was last seen as a proxy | [optional] | |**provider** | **String** | String representing the last proxy service provider detected when this IP was synced. An IP can be shared by multiple service providers. | [optional] | @@ -20,6 +20,7 @@ Proxy detection details (present if `proxy` is `true`) |---- | -----| | RESIDENTIAL | "residential" | | DATA_CENTER | "data_center" | +| UNKNOWN | "unknown" | | UNSUPPORTED_VALUE_SDK_UPGRADE_REQUIRED | "unsupported_value_sdk_upgrade_required" | diff --git a/docs/RawDeviceAttributes.md b/docs/RawDeviceAttributes.md index ca02035f..c86bc136 100644 --- a/docs/RawDeviceAttributes.md +++ b/docs/RawDeviceAttributes.md @@ -11,10 +11,10 @@ A curated subset of raw browser/device attributes that the API surface exposes. |**fontPreferences** | [**FontPreferences**](FontPreferences.md) | | [optional] | |**emoji** | [**Emoji**](Emoji.md) | | [optional] | |**fonts** | **List<String>** | List of fonts detected on the device. | [optional] | -|**deviceMemory** | **Integer** | Rounded amount of RAM (in gigabytes) reported by the browser. | [optional] | +|**deviceMemory** | **Integer** | Rounded amount of RAM in gigabytes. | [optional] | |**timezone** | **String** | Timezone identifier detected on the client. | [optional] | |**canvas** | [**Canvas**](Canvas.md) | | [optional] | -|**languages** | **List<List<String>>** | Navigator languages reported by the agent including fallbacks. Each inner array represents ordered language preferences reported by different APIs. Available for both browsers and iOS devices | [optional] | +|**languages** | **List<List<String>>** | Navigator languages reported by the agent including fallbacks. Each inner array represents ordered language preferences reported by different APIs. Available for browsers, iOS, and Android devices. | [optional] | |**webglExtensions** | [**WebGlExtensions**](WebGlExtensions.md) | | [optional] | |**webglBasics** | [**WebGlBasics**](WebGlBasics.md) | | [optional] | |**screenResolution** | **List<Integer>** | Current screen resolution. Available for both browsers and iOS devices | [optional] | @@ -37,6 +37,8 @@ A curated subset of raw browser/device attributes that the API surface exposes. |**deviceManufacturer** | **String** | Device manufacturer string. Available only for Android and iOS devices. | [optional] | |**fontHash** | **String** | Unique identifier for the user’s installed fonts. | [optional] | |**timezoneOffset** | **String** | UTC offset in \"±HH:MM\" format derived from the detected IANA timezone. | [optional] | +|**batteryLevel** | **Integer** | Battery charge level as a percentage (0-100). Available only for Android and iOS devices. | [optional] | +|**batteryLowPowerMode** | **Boolean** | Whether the device's low power mode is enabled. Available only for Android and iOS devices. | [optional] | diff --git a/docs/SDK.md b/docs/SDK.md index 3a902aef..29b5a6dc 100644 --- a/docs/SDK.md +++ b/docs/SDK.md @@ -9,7 +9,7 @@ Contains information about the SDK used to perform the request. | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**platform** | [**PlatformEnum**](#PlatformEnum) | Platform of the SDK used for the identification request. | | -|**version** | **String** | Version string of the SDK used for the identification request. For example: `\"3.12.1\"` | | +|**version** | **String** | Version string of the SDK used for the identification request. | | |**integrations** | [**List<Integration>**](Integration.md) | | [optional] | diff --git a/docs/SearchEventsSource.md b/docs/SearchEventsSource.md new file mode 100644 index 00000000..63ffa6d2 --- /dev/null +++ b/docs/SearchEventsSource.md @@ -0,0 +1,12 @@ + + +# SearchEventsSource +## Enum + + +* `EDGE` (value: `"edge"`) + +* `UNSUPPORTED_VALUE_SDK_UPGRADE_REQUIRED` (value: `"unsupported_value_sdk_upgrade_required"`) + + + diff --git a/docs/VpnMethods.md b/docs/VpnMethods.md index 67915a90..142a7a45 100644 --- a/docs/VpnMethods.md +++ b/docs/VpnMethods.md @@ -12,6 +12,7 @@ |**auxiliaryMobile** | **Boolean** | This method applies to mobile devices only. Indicates the result of additional methods used to detect a VPN in mobile devices. | [optional] | |**osMismatch** | **Boolean** | The browser runs on a different operating system than the operating system inferred from the request network signature. | [optional] | |**relay** | **Boolean** | Request IP address belongs to a relay service provider, indicating the use of relay services like [Apple Private relay](https://support.apple.com/en-us/102602) or [Cloudflare Warp](https://developers.cloudflare.com/warp-client/). * Like VPNs, relay services anonymize the visitor's true IP address. * Unlike traditional VPNs, relay services don't let visitors spoof their location by choosing an exit node in a different country. This field allows you to differentiate VPN users and relay service users in your fraud prevention logic. | [optional] | +|**mlPrediction** | **Boolean** | `true` if the request came from a device running a VPN, `false` otherwise. | [optional] | diff --git a/res/fingerprint-server-api.yaml b/res/fingerprint-server-api.yaml index e79abc26..68ffc32a 100644 --- a/res/fingerprint-server-api.yaml +++ b/res/fingerprint-server-api.yaml @@ -8,6 +8,9 @@ info: Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + + The API also supports collection of Automation Intelligence for requests to + your server in edge, pre-origin, or middleware contexts. version: '4' contact: name: Fingerprint Support @@ -53,6 +56,9 @@ paths: required: true schema: type: string + examples: + - 1708102555327.NLOjmg + example: 1708102555327.NLOjmg description: >- The unique [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id) @@ -63,6 +69,9 @@ paths: required: false schema: type: string + examples: + - D6N9Kbk9HRWrIWGz + example: D6N9Kbk9HRWrIWGz description: > The ID of the ruleset to evaluate against the event, producing the action to take for this event. @@ -138,6 +147,9 @@ paths: required: true schema: type: string + examples: + - 1708102555327.NLOjmg + example: 1708102555327.NLOjmg description: >- The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id). @@ -246,17 +258,24 @@ paths: format: int32 minimum: 1 maximum: 100 - default: 10 + examples: + - 10 example: 10 description: > - Maximum number of events to return. Results are selected from the - time range (`start`, `end`), ordered by `reverse`, then truncated to - provided `limit` size. So `reverse=true` returns the oldest - N=`limit` events, otherwise the newest N=`limit` events. + Maximum number of events to return. Defaults to 10 when omitted. + Results are selected from the time range (`start`, `end`), ordered + by `reverse`, then truncated to provided `limit` size. So + `reverse=true` returns the oldest N=`limit` events, otherwise the + newest N=`limit` events. - name: pagination_key in: query schema: type: string + examples: + - >- + S9rgMMUb4z3X5t5pr_tSgoSZlmyF0O8X7kCV2m981-iY1LmRTjraa1rTk3L-hQExnDWCi0RA-zAIjaVSTNO2AN2eqQWgzT0RjbieMxRfSdkM-HmOhdOgdQvYfPG3vqU1DJKh4Q + example: >- + S9rgMMUb4z3X5t5pr_tSgoSZlmyF0O8X7kCV2m981-iY1LmRTjraa1rTk3L-hQExnDWCi0RA-zAIjaVSTNO2AN2eqQWgzT0RjbieMxRfSdkM-HmOhdOgdQvYfPG3vqU1DJKh4Q description: > Use `pagination_key` to get the next page of results. @@ -274,11 +293,15 @@ paths: api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: - `GET api-base-url/events?limit=100&pagination_key=1740815825085` + `GET + api-base-url/events?limit=100&pagination_key=S9rgMMUb4z3X5t5pr_tSgoSZlmyF0O8X7kCV2m981-iY1LmRTjraa1rTk3L-hQExnDWCi0RA-zAIjaVSTNO2AN2eqQWgzT0RjbieMxRfSdkM-HmOhdOgdQvYfPG3vqU1DJKh4Q` - name: visitor_id in: query schema: type: string + examples: + - Ibk1527CUFmcnjLwIs4A9 + example: Ibk1527CUFmcnjLwIs4A9 description: > Unique [visitor identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) @@ -291,6 +314,9 @@ paths: in: query schema: type: string + examples: + - Ibk1527CUFmcnjLwIs4A9 + example: Ibk1527CUFmcnjLwIs4A9 description: > The High Recall ID is a supplementary browser identifier designed for use cases that require wider coverage over precision. Compared @@ -382,6 +408,9 @@ paths: type: array items: type: string + examples: + - OpenAI + example: OpenAI description: > Filter events by their Bot Info Provider. The provider must match exactly, partial or wildcard matching is not supported. @@ -399,6 +428,9 @@ paths: type: array items: type: string + examples: + - ChatGPT-User + example: ChatGPT-User description: > Filter events by their Bot Info Name. The name must match exactly, partial or wildcard matching is not supported. @@ -414,6 +446,9 @@ paths: in: query schema: type: string + examples: + - 61.127.217.15 + example: 61.127.217.15 description: > Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is @@ -424,6 +459,9 @@ paths: in: query schema: type: string + examples: + - '12876' + example: '12876' description: > Filter events by the ASN associated with the event's IP address. @@ -433,6 +471,9 @@ paths: in: query schema: type: string + examples: + - somelinkedId + example: somelinkedId description: > Filter events by your custom identifier. @@ -447,18 +488,27 @@ paths: in: query schema: type: string + examples: + - https://example.com/login + example: https://example.com/login description: | Filter events by the URL (`url` property) associated with the event. - name: bundle_id in: query schema: type: string + examples: + - com.example.app + example: com.example.app description: | Filter events by the Bundle ID (iOS) associated with the event. - name: package_name in: query schema: type: string + examples: + - com.example.app + example: com.example.app description: > Filter events by the Package Name (Android) associated with the event. @@ -466,6 +516,9 @@ paths: in: query schema: type: string + examples: + - https://example.com + example: https://example.com description: > Filter events by the origin field of the event. This is applicable to web events only (e.g., https://example.com) @@ -478,9 +531,11 @@ paths: default of `now` for `end`/`end_date_time` — adjust it separately if needed. schema: + examples: + - 1767225600000 + example: 1767225600000 type: integer format: int64 - example: 1767225600000 x-parameter-alias: start_date_time - name: start_date_time in: query @@ -491,9 +546,11 @@ paths: not the default of `now` for `end`/`end_date_time` — adjust it separately if needed. This parameter is an alias for `start`. schema: + examples: + - '2026-01-01T00:00:00Z' + example: '2026-01-01T00:00:00Z' type: string format: date-time - example: '2026-01-01T00:00:00Z' x-aliased-parameter-name: start - name: end in: query @@ -503,9 +560,11 @@ paths: to now. Setting `end` does not change the default of `7 days ago` for `start`/`start_date_time` — adjust it separately if needed. schema: + examples: + - 1769903999000 + example: 1769903999000 type: integer format: int64 - example: 1769903999000 x-parameter-alias: end_date_time - name: end_date_time in: query @@ -516,9 +575,11 @@ paths: of `7 days ago` for `start`/`start_date_time` — adjust it separately if needed. This parameter is an alias for `end`. schema: + examples: + - '2026-01-31T23:59:59Z' + example: '2026-01-31T23:59:59Z' type: string format: date-time - example: '2026-01-31T23:59:59Z' x-aliased-parameter-name: end - name: reverse in: query @@ -683,6 +744,9 @@ paths: schema: type: number format: float + examples: + - 7.5 + example: 7.5 description: > Filter events with Suspect Score result above a provided minimum threshold. @@ -777,6 +841,9 @@ paths: in: query schema: type: string + examples: + - 3.11.14 + example: 3.11.14 description: > Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` @@ -813,11 +880,17 @@ paths: type: array items: type: string + examples: + - ae_47abaca3db2c7c43 + example: ae_47abaca3db2c7c43 style: form - name: proximity_id in: query schema: type: string + examples: + - C9rJYBlOFsAfBwQ + example: C9rJYBlOFsAfBwQ description: > Filter events by the most precise Proximity ID provided by default. @@ -831,6 +904,9 @@ paths: format: int64 minimum: 1 maximum: 1000 + examples: + - 100 + example: 100 description: > When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified @@ -864,6 +940,24 @@ paths: > Note: When using this parameter, only events with the `simulator` property set to `true` or `false` are returned. Events without a `simulator` Smart Signal result are left out of the response. + - name: source + in: query + required: false + schema: + type: array + maxItems: 1 + items: + $ref: '#/components/schemas/SearchEventsSource' + description: > + Selects the source of events to search. When omitted, only + traditional identification events generated from devices are + returned (the default behavior). When set to `edge`, only Automation + Intelligence (Edge) events are returned. + + + > Note: The Automation Intelligence API is in public preview testing + phase. If you encounter any issues, please + [contact](https://fingerprint.com/support/) our support team. responses: '200': description: Events matching the filter(s). @@ -885,6 +979,14 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + '404': + description: >- + Not found. The requested visitor does not exist in this workspace's + data. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' '500': description: Workspace error. content: @@ -967,6 +1069,9 @@ paths: required: true schema: type: string + examples: + - Ibk1527CUFmcnjLwIs4A9 + example: Ibk1527CUFmcnjLwIs4A9 description: >- The [visitor ID](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) @@ -1010,130 +1115,662 @@ components: Add your Secret API Key to the Authorization header using the standard Bearer format: `Authorization: Bearer ` schemas: + LinkedId: + type: string + examples: + - somelinkedId + description: A customer-provided id that was sent with the request. + Tags: + type: object + description: >- + A customer-provided value or an object that was sent with the + identification request or updated later. + additionalProperties: true + required: [] EventId: type: string + examples: + - 1708102555327.NLOjmg description: > Unique identifier of the user's request. The first portion of the - event_id is a unix epoch milliseconds timestamp For example: - `1758130560902.8tRtrH` + event_id is a unix epoch milliseconds timestamp. Timestamp: description: Timestamp of the event with millisecond precision in Unix time. type: integer format: int64 - IncrementalIdentificationStatus: + examples: + - 1708102555327 + Url: type: string - description: > - Only included for requests using incremental identification. - - - `partially_completed` - Indicates this event corresponds to a - 'minimal' request. Smart Signals, even if included in your plan, are not - computed; hence, their values must be ignored. - - - `completed` - Indicates this event corresponds to a 'complete' - request. Smart Signals, if included in your plan, are computed; hence, - their values are valid and relevant. - enum: - - partially_completed - - completed - LinkedId: + examples: + - https://www.example.com/login + description: Page URL from which the request was sent. + BotInfoCategory: type: string - description: A customer-provided id that was sent with the request. - EnvironmentId: + enum: + - advertising_and_marketing + - aggregator + - ai_agent + - ai_assistant + - ai_browser + - ai_crawler + - ai_search + - browser_automation + - ecommerce + - monitoring_and_analytics + - other + - scraping + - security + - search_engine_crawler + - search_engine_optimization + - unknown + description: | + The type and purpose of the bot. + BotInfoIdentity: type: string + enum: + - verified + - signed + - spoofed + - unknown description: | - Environment Id of the event. For example: `ae_47abaca3db2c7c43` - Suspect: - type: boolean - description: >- - Field is `true` if you have previously set the `suspect` flag for this - event using the [Server API Update event - endpoint](https://docs.fingerprint.com/reference/server-api-v4-update-event). - Integration: + The verification status of the bot's identity: + * `verified` - well-known bot with publicly verifiable identity, directed by the bot provider. + * `signed` - bot that signs its platform via Web Bot Auth, directed by the bot provider's customers. + * `spoofed` - bot that claims a public identity but fails verification. + * `unknown` - bot that does not publish a verifiable identity. + BotInfoConfidence: + type: string + enum: + - low + - medium + - high + description: Confidence level of the bot identification. + BotInfo: type: object + description: Extended bot information. + required: + - category + - provider + - name + - identity + - confidence properties: + category: + type: string + description: | + The type and purpose of the bot. + provider: + type: string + description: The organization or company operating the bot. + examples: + - Anthropic + - Browserbase + - Google + - OpenAI + provider_url: + type: string + examples: + - https://fingerprint.com + description: The URL of the bot provider's website. name: type: string - description: The name of the specific integration, e.g. "fingerprint-pro-react". - version: + description: The specific name or identifier of the bot. + examples: + - ClaudeBot + - Browserbase Agent + - Googlebot + - GPTBot + - ChatGPT-User + identity: type: string - description: The version of the specific integration, e.g. "3.11.10". - subintegration: - type: object - properties: - name: - type: string - description: The name of the specific subintegration, e.g. "preact". - version: - type: string - description: The version of the specific subintegration, e.g. "10.21.0". - SDK: + enum: + - verified + - signed + - spoofed + - unknown + description: | + The verification status of the bot's identity: + * `verified` - well-known bot with publicly verifiable identity, directed by the bot provider. + * `signed` - bot that signs its platform via Web Bot Auth, directed by the bot provider's customers. + * `spoofed` - bot that claims a public identity but fails verification. + * `unknown` - bot that does not publish a verifiable identity. + confidence: + type: string + enum: + - low + - medium + - high + description: Confidence level of the bot identification. + Geolocation: type: object - description: Contains information about the SDK used to perform the request. - required: - - platform - - version + required: [] properties: - platform: + accuracy_radius: + type: integer + examples: + - 20 + minimum: 0 + description: >- + The IP address is likely to be within this radius (in km) of the + specified location. + latitude: + type: number + format: double + examples: + - 50.05 + minimum: -90 + maximum: 90 + longitude: + type: number + format: double + examples: + - 14.4 + minimum: -180 + maximum: 180 + postal_code: type: string - enum: - - js - - android - - ios - - unknown - description: Platform of the SDK used for the identification request. - version: + examples: + - 150 00 + timezone: type: string - description: > - Version string of the SDK used for the identification request. For - example: `"3.12.1"` - integrations: + format: timezone + examples: + - Europe/Prague + city_name: + type: string + examples: + - Prague + country_code: + type: string + examples: + - CZ + minLength: 2 + maxLength: 2 + country_name: + type: string + examples: + - Czechia + continent_code: + type: string + examples: + - EU + minLength: 2 + maxLength: 2 + continent_name: + type: string + examples: + - Europe + subdivisions: type: array items: - $ref: '#/components/schemas/Integration' - Replayed: - type: boolean - description: > - `true` if we determined that this payload was replayed, `false` - otherwise. - IdentificationConfidence: + type: object + required: + - iso_code + - name + properties: + iso_code: + type: string + examples: + - '10' + name: + type: string + examples: + - Hlavni mesto Praha + IPInfoV4: type: object - description: >- - The confidence score represents the probability of a false-positive - identification. To learn more, visit [Confidence - Score](https://docs.fingerprint.com/docs/identification-accuracy-and-confidence#confidence-score). - Please note that the confidence score is not yet supported for [High - Recall - ID](https://docs.fingerprint.com/docs/supplementary-identifiers-highrecall). required: - - score + - address properties: - score: - type: number - format: double - minimum: 0 - maximum: 1 - description: >- - A floating-point number between 0 and 1 that represents the - probability of a false-positive identification. For High Recall ID, - this value is 0. - version: + address: type: string - description: >- - The version name of the method used to calculate the confidence - score. For High Recall ID, this value is "Not Supported". - comment: + format: ipv4 + examples: + - 94.142.239.124 + geolocation: + $ref: '#/components/schemas/Geolocation' + asn: type: string - Identification: + examples: + - '396982' + - '16509' + - '701' + asn_name: + type: string + examples: + - Google LLC + - Amazon.com, Inc. + - Verizon Business + asn_network: + type: string + examples: + - 34.160.0.0/12 + - 3.208.0.0/12 + - 173.56.0.0/16 + asn_type: + type: string + examples: + - hosting + - isp + - business + - education + datacenter_result: + type: boolean + description: When true, the request originated from a datacenter. + datacenter_name: + type: string + examples: + - Google Cloud + - Amazon AWS + IPInfoV6: type: object required: - - visitor_id - - visitor_found + - address properties: - visitor_id: + address: type: string - description: >- - String of 20 characters that uniquely identifies the visitor's - browser or mobile device. + format: ipv6 + examples: + - 2001:db8:3333:4444:5555:6666:7777:8888 + geolocation: + $ref: '#/components/schemas/Geolocation' + asn: + type: string + examples: + - '396982' + - '16509' + - '701' + asn_name: + type: string + examples: + - Google LLC + - Amazon.com, Inc. + - Verizon Business + asn_network: + type: string + examples: + - 2001:4860:4801:10::/64 + - 2600:1f00::/24 + - 2001:4868:800::/40 + asn_type: + type: string + examples: + - hosting + - isp + - business + - education + datacenter_result: + type: boolean + description: When true, the request originated from a datacenter. + datacenter_name: + type: string + examples: + - Google Cloud + - Amazon AWS + IPInfo: + type: object + description: >- + Details about the request IP address. Has separate fields for v4 and v6 + IP address versions. + required: [] + properties: + v4: + $ref: '#/components/schemas/IPInfoV4' + v6: + $ref: '#/components/schemas/IPInfoV6' + Proxy: + type: boolean + description: > + IP address was used by a public proxy provider or belonged to a known + recent residential proxy + ProxyConfidence: + type: string + enum: + - low + - medium + - high + description: > + Confidence level of the proxy detection. If a proxy is not detected, + confidence is "high". If it's detected, can be "low", "medium", or + "high". + ProxyDetails: + type: object + description: Proxy detection details (present if `proxy` is `true`) + required: + - proxy_type + properties: + proxy_type: + type: string + enum: + - residential + - data_center + - unknown + description: | + Proxy type: + * `residential` - proxies that route through residential and telecom IP addresses to appear as legitimate traffic + * `data_center` - proxies which route through data centers + * `unknown` - reported when a proxy is detected solely by the ML model and the IP sources did not determine a specific type + last_seen_at: + type: integer + format: int64 + examples: + - 1708102555327 + description: > + Unix millisecond timestamp with hourly resolution of when this IP + was last seen as a proxy + provider: + type: string + examples: + - Massive + description: > + String representing the last proxy service provider detected when + this + + IP was synced. An IP can be shared by multiple service providers. + Vpn: + type: boolean + description: | + VPN or other anonymizing service has been used when sending the request. + VpnConfidence: + type: string + enum: + - low + - medium + - high + description: >- + A confidence rating for the VPN detection result — "low", "medium", or + "high". Depends on the combination of results returned from all VPN + detection methods. + VpnMethods: + type: object + required: [] + properties: + timezone_mismatch: + type: boolean + x-platforms: + - android + - ios + - browser + description: >- + The browser timezone doesn't match the timezone inferred from the + request IP address. + public_vpn: + type: boolean + x-platforms: + - android + - ios + - browser + description: >- + Request IP address is owned and used by a public VPN service + provider. + auxiliary_mobile: + type: boolean + x-platforms: + - android + - ios + - browser + description: >- + This method applies to mobile devices only. Indicates the result of + additional methods used to detect a VPN in mobile devices. + os_mismatch: + type: boolean + x-platforms: + - browser + description: >- + The browser runs on a different operating system than the operating + system inferred from the request network signature. + relay: + type: boolean + x-platforms: + - android + - ios + - browser + description: > + Request IP address belongs to a relay service provider, indicating + the use of relay services like [Apple Private + relay](https://support.apple.com/en-us/102602) or [Cloudflare + Warp](https://developers.cloudflare.com/warp-client/). + + + * Like VPNs, relay services anonymize the visitor's true IP address. + + * Unlike traditional VPNs, relay services don't let visitors spoof + their location by choosing an exit node in a different country. + + + This field allows you to differentiate VPN users and relay service + users in your fraud prevention logic. + ml_prediction: + type: boolean + x-platforms: + - browser + description: > + `true` if the request came from a device running a VPN, `false` + otherwise. + ErrorCode: + type: string + enum: + - request_cannot_be_parsed + - request_read_timeout + - secret_api_key_required + - secret_api_key_not_found + - public_api_key_required + - public_api_key_not_found + - subscription_not_active + - wrong_region + - feature_not_enabled + - visitor_not_found + - too_many_requests + - state_not_ready + - failed + - event_not_found + - missing_module + - payload_too_large + - service_unavailable + - ruleset_not_found + description: > + Error code: + + * `request_cannot_be_parsed` - The query parameters or JSON payload + contains some errors + that prevented us from parsing it (wrong type/surpassed limits). + * `request_read_timeout` - The request body could not be read before the + connection timed out. + + * `secret_api_key_required` - secret API key in header is missing or + empty. + + * `secret_api_key_not_found` - No Fingerprint workspace found for + specified secret API key. + + * `public_api_key_required` - public API key in header is missing or + empty. + + * `public_api_key_not_found` - No Fingerprint workspace found for + specified public API key. + + * `subscription_not_active` - Fingerprint workspace is not active. + + * `wrong_region` - Server and workspace region differ. + + * `feature_not_enabled` - This feature (for example, Delete API) is not + enabled for your workspace. + + * `visitor_not_found` - The specified visitor ID was not found. It never + existed or it may have already been deleted. + + * `too_many_requests` - The limit on secret API key requests per second + has been exceeded. + + * `state_not_ready` - The event specified with event ID is + not ready for updates yet. Try again. + This error happens in rare cases when update API is called immediately + after receiving the event ID on the client. In case you need to send + information right away, we recommend using the JS agent API instead. + * `failed` - Internal server error. + + * `event_not_found` - The specified event ID was not found. It never + existed, expired, or it has been deleted. + + * `missing_module` - The request is invalid because it is missing a + required module. + + * `payload_too_large` - The request payload is too large and cannot be + processed. + + * `service_unavailable` - The service was unable to process the request. + + * `ruleset_not_found` - The specified ruleset was not found. It never + existed or it has been deleted. + Error: + type: object + required: + - code + - message + properties: + code: + $ref: '#/components/schemas/ErrorCode' + message: + type: string + examples: + - Forbidden + ErrorResponse: + type: object + required: + - error + properties: + error: + $ref: '#/components/schemas/Error' + IncrementalIdentificationStatus: + type: string + description: > + Only included for requests using incremental identification. + + - `partially_completed` - Indicates this event corresponds to a + 'minimal' request. Smart Signals, even if included in your plan, are not + computed; hence, their values must be ignored. + + - `completed` - Indicates this event corresponds to a 'complete' + request. Smart Signals, if included in your plan, are computed; hence, + their values are valid and relevant. + enum: + - partially_completed + - completed + EnvironmentId: + type: string + examples: + - ae_47abaca3db2c7c43 + description: Environment Id of the event. + Suspect: + type: boolean + description: >- + Field is `true` if you have previously set the `suspect` flag for this + event using the [Server API Update event + endpoint](https://docs.fingerprint.com/reference/server-api-v4-update-event). + Integration: + type: object + required: [] + properties: + name: + type: string + examples: + - fingerprint-pro-react + description: The name of the specific integration. + version: + type: string + examples: + - 3.11.10 + description: The version of the specific integration. + subintegration: + type: object + required: [] + properties: + name: + type: string + examples: + - preact + description: The name of the specific subintegration. + version: + type: string + examples: + - 10.21.0 + description: The version of the specific subintegration. + SDK: + type: object + description: Contains information about the SDK used to perform the request. + required: + - platform + - version + properties: + platform: + type: string + enum: + - js + - android + - ios + - unknown + description: Platform of the SDK used for the identification request. + version: + type: string + examples: + - 3.11.10 + description: Version string of the SDK used for the identification request. + integrations: + type: array + items: + $ref: '#/components/schemas/Integration' + Replayed: + type: boolean + description: > + `true` if we determined that this payload was replayed, `false` + otherwise. + IdentificationConfidence: + type: object + description: >- + The confidence score represents the probability of a false-positive + identification. To learn more, visit [Confidence + Score](https://docs.fingerprint.com/docs/identification-accuracy-and-confidence#confidence-score). + Please note that the confidence score is not yet supported for [High + Recall + ID](https://docs.fingerprint.com/docs/supplementary-identifiers-highrecall). + required: + - score + properties: + score: + type: number + format: double + examples: + - 0.97 + minimum: 0 + maximum: 1 + description: >- + A floating-point number between 0 and 1 that represents the + probability of a false-positive identification. For High Recall ID, + this value is 0. + version: + type: string + examples: + - '1.1' + description: >- + The version name of the method used to calculate the confidence + score. For High Recall ID, this value is "Not Supported". + comment: + type: string + examples: + - Low confidence due to bot signals + Identification: + type: object + required: + - visitor_id + - visitor_found + properties: + visitor_id: + type: string + examples: + - Ibk1527CUFmcnjLwIs4A9 + description: >- + String of 20 characters that uniquely identifies the visitor's + browser or mobile device. confidence: $ref: '#/components/schemas/IdentificationConfidence' visitor_found: @@ -1142,6 +1779,8 @@ components: first_seen_at: type: integer format: int64 + examples: + - 1708102555327 description: > Unix epoch time milliseconds timestamp indicating the time at which this visitor ID was first seen. example: `1758069706642` - @@ -1149,6 +1788,8 @@ components: last_seen_at: type: integer format: int64 + examples: + - 1708102555327 description: > Unix epoch time milliseconds timestamp indicating the time at which this visitor ID was last seen. example: `1758069706642` - @@ -1169,6 +1810,8 @@ components: properties: visitor_id: type: string + examples: + - 0jnGMkPYXX37DqVa4ZIO3f_hr description: >- The High Recall identifier for the visitor's browser. It is an alphanumeric string with a maximum length of 25 characters. @@ -1182,6 +1825,8 @@ components: first_seen_at: type: integer format: int64 + examples: + - 1778086556130 description: > Unix epoch timestamp (in milliseconds) indicating when the browser was first identified. example: `1758069706642` - Corresponding to @@ -1189,47 +1834,72 @@ components: last_seen_at: type: integer format: int64 + examples: + - 1778604975494 description: > Unix epoch timestamp (in milliseconds) corresponding to the most recent visit by this browser. example: `1758069706642` - Corresponding to Wed Sep 17 2025 00:41:46 GMT+0000 - Tags: - type: object - description: >- - A customer-provided value or an object that was sent with the - identification request or updated later. - additionalProperties: true - Url: - type: string - description: > - Page URL from which the request was sent. For example - `https://example.com/` BundleId: type: string + examples: + - com.foo.app description: > Bundle Id of the iOS application integrated with the Fingerprint SDK for - the event. For example: `com.foo.app` + the event. PackageName: type: string + examples: + - com.foo.app description: > Package name of the Android application integrated with the Fingerprint - SDK for the event. For example: `com.foo.app` + SDK for the event. IpAddress: type: string + examples: + - 61.127.217.15 description: IP address of the requesting browser or bot. UserAgent: type: string + examples: + - Mozilla/5.0 (Windows NT 6.1; Win64; x64) .... + description: User Agent of the client. + Device: + type: string + examples: + - Generic Smartphone + - Desktop + - iPhone + description: > + Device model or family extracted from the user agent string. On web, + this field is also present inside `browser_details`. + Os: + type: string + examples: + - Windows + - iOS + - Android + description: > + Operating system family extracted from the user agent string. On web, + this field is also present inside `browser_details`. + OsVersion: + type: string + examples: + - '17.4' + - '14' + - '10' description: > - User Agent of the client, for example: `Mozilla/5.0 (Windows NT 6.1; - Win64; x64) ....` + Operating system version string extracted from the user agent string. On + web, this field is also present inside `browser_details`. ClientReferrer: type: string + examples: + - https://example.com/blog/my-article description: > Client Referrer field corresponds to the `document.referrer` field gathered during an identification request. The value is an empty string if the user navigated to the page directly (not through a link, but, for - example, by using a bookmark) For example: - `https://example.com/blog/my-article` + example, by using a bookmark). BrowserDetails: type: object required: @@ -1242,16 +1912,28 @@ components: properties: browser_name: type: string + examples: + - Chrome browser_major_version: type: string + examples: + - '74' browser_full_version: type: string + examples: + - 74.0.3729 os: type: string + examples: + - Windows os_version: type: string + examples: + - '7' device: type: string + examples: + - Other Proximity: type: object description: > @@ -1264,6 +1946,8 @@ components: properties: id: type: string + examples: + - w1aTfd4MCvl description: | A stable privacy-preserving identifier for a given proximity zone. precision_radius: @@ -1284,6 +1968,8 @@ components: confidence: type: number format: float + examples: + - 0.95 minimum: 0 maximum: 1 description: > @@ -1304,92 +1990,10 @@ components: * `not_detected` - the visitor is not a bot BotType: type: string + examples: + - fingerprint_agent description: | Additional classification of the bot type if detected. - BotInfoCategory: - type: string - enum: - - advertising_and_marketing - - aggregator - - ai_agent - - ai_assistant - - ai_browser - - ai_crawler - - ai_search - - browser_automation - - ecommerce - - monitoring_and_analytics - - other - - scraping - - security - - search_engine_crawler - - search_engine_optimization - - unknown - description: | - The type and purpose of the bot. - BotInfoIdentity: - type: string - enum: - - verified - - signed - - spoofed - - unknown - description: | - The verification status of the bot's identity: - * `verified` - well-known bot with publicly verifiable identity, directed by the bot provider. - * `signed` - bot that signs its platform via Web Bot Auth, directed by the bot provider's customers. - * `spoofed` - bot that claims a public identity but fails verification. - * `unknown` - bot that does not publish a verifiable identity. - BotInfoConfidence: - type: string - enum: - - low - - medium - - high - description: Confidence level of the bot identification. - BotInfo: - type: object - description: Extended bot information. - required: - - category - - provider - - name - - identity - - confidence - properties: - category: - type: string - description: | - The type and purpose of the bot. - provider: - type: string - description: The organization or company operating the bot. - provider_url: - type: string - description: The URL of the bot provider's website. - name: - type: string - description: The specific name or identifier of the bot. - identity: - type: string - enum: - - verified - - signed - - spoofed - - unknown - description: | - The verification status of the bot's identity: - * `verified` - well-known bot with publicly verifiable identity, directed by the bot provider. - * `signed` - bot that signs its platform via Web Bot Auth, directed by the bot provider's customers. - * `spoofed` - bot that claims a public identity but fails verification. - * `unknown` - bot that does not publish a verifiable identity. - confidence: - type: string - enum: - - low - - medium - - high - description: Confidence level of the bot identification. ClonedApp: type: boolean description: > @@ -1418,186 +2022,43 @@ components: FactoryReset: type: integer format: int64 + examples: + - 1708102555327 description: > - The time of the most recent factory reset that happened on the **mobile - device** is expressed as Unix epoch time. When a factory reset cannot be - detected on the mobile device or when the request is initiated from a - browser, this field will correspond to the *epoch* time (i.e 1 Jan 1970 - UTC) as a value of 0. See [Factory Reset - Detection](https://docs.fingerprint.com/docs/smart-signals-reference#factory-reset-detection) - to learn more about this Smart Signal. - Frida: - type: boolean - description: > - [Frida](https://frida.re/docs/) detection for Android and iOS devices. - There are 2 values: - - * `true` - Frida detected - - * `false` - No signs of Frida or the client is not a mobile device. - IPBlockList: - type: object - properties: - email_spam: - type: boolean - description: IP address was part of a known email spam attack (SMTP). - attack_source: - type: boolean - description: IP address was part of a known network attack (SSH/HTTPS). - tor_node: - type: boolean - description: IP address was part of known TOR network activity. - Geolocation: - type: object - properties: - accuracy_radius: - type: integer - minimum: 0 - description: >- - The IP address is likely to be within this radius (in km) of the - specified location. - latitude: - type: number - format: double - minimum: -90 - maximum: 90 - longitude: - type: number - format: double - minimum: -180 - maximum: 180 - postal_code: - type: string - timezone: - type: string - format: timezone - city_name: - type: string - country_code: - type: string - minLength: 2 - maxLength: 2 - country_name: - type: string - continent_code: - type: string - minLength: 2 - maxLength: 2 - continent_name: - type: string - subdivisions: - type: array - items: - type: object - required: - - iso_code - - name - properties: - iso_code: - type: string - name: - type: string - IPInfoV4: - type: object - required: - - address - properties: - address: - type: string - format: ipv4 - geolocation: - $ref: '#/components/schemas/Geolocation' - asn: - type: string - asn_name: - type: string - asn_network: - type: string - asn_type: - type: string - datacenter_result: - type: boolean - datacenter_name: - type: string - IPInfoV6: - type: object - required: - - address - properties: - address: - type: string - format: ipv6 - geolocation: - $ref: '#/components/schemas/Geolocation' - asn: - type: string - asn_name: - type: string - asn_network: - type: string - asn_type: - type: string - datacenter_result: - type: boolean - datacenter_name: - type: string - IPInfo: - type: object - description: >- - Details about the request IP address. Has separate fields for v4 and v6 - IP address versions. - properties: - v4: - $ref: '#/components/schemas/IPInfoV4' - v6: - $ref: '#/components/schemas/IPInfoV6' - Proxy: - type: boolean - description: > - IP address was used by a public proxy provider or belonged to a known - recent residential proxy - ProxyConfidence: - type: string - enum: - - low - - medium - - high + The time of the most recent factory reset that happened on the **mobile + device** is expressed as Unix epoch time. When a factory reset cannot be + detected on the mobile device or when the request is initiated from a + browser, this field will correspond to the *epoch* time (i.e 1 Jan 1970 + UTC) as a value of 0. See [Factory Reset + Detection](https://docs.fingerprint.com/docs/smart-signals-reference#factory-reset-detection) + to learn more about this Smart Signal. + Frida: + type: boolean description: > - Confidence level of the proxy detection. If a proxy is not detected, - confidence is "high". If it's detected, can be "low", "medium", or - "high". - ProxyDetails: - type: object - description: Proxy detection details (present if `proxy` is `true`) - required: - - proxy_type - properties: - proxy_type: - type: string - enum: - - residential - - data_center - description: > - Residential proxies use real user IP addresses to appear as - legitimate traffic, + [Frida](https://frida.re/docs/) detection for Android and iOS devices. + There are 2 values: - while data center proxies are public proxies hosted in data centers - last_seen_at: - type: integer - format: int64 - description: > - Unix millisecond timestamp with hourly resolution of when this IP - was last seen as a proxy - provider: - type: string - description: > - String representing the last proxy service provider detected when - this + * `true` - Frida detected - IP was synced. An IP can be shared by multiple service providers. + * `false` - No signs of Frida or the client is not a mobile device. + IPBlockList: + type: object + required: [] + properties: + email_spam: + type: boolean + description: IP address was part of a known email spam attack (SMTP). + attack_source: + type: boolean + description: IP address was part of a known network attack (SSH/HTTPS). + tor_node: + type: boolean + description: IP address was part of known TOR network activity. ProxyMLScore: type: number format: double + examples: + - 0.2 minimum: 0 maximum: 1 description: > @@ -1650,12 +2111,18 @@ components: Android. RulesetId: type: string + examples: + - rs_b1k1blhqpOX3kU description: The ID of the evaluated ruleset. RuleId: type: string + examples: + - r_uE0af8497PFAOD description: The ID of the rule that matched the identification event. RuleExpression: type: string + examples: + - bot in ["bad"] || incognito description: The expression of the rule that matched the identification event. RuleActionType: type: string @@ -1671,21 +2138,28 @@ components: properties: name: type: string + examples: + - Content-Type description: The header field name. value: type: string + examples: + - application/json description: The value of the header field. RequestHeaderModifications: type: object description: >- The set of header modifications to apply, in the following order: remove, set, append. + required: [] properties: remove: type: array description: The list of headers to remove. items: type: string + examples: + - X-Forwarded-For set: type: array description: >- @@ -1721,9 +2195,13 @@ components: - type StatusCode: type: integer + examples: + - 200 description: A valid HTTP status code. RuleActionBody: type: string + examples: + - '{"title":"Forbidden"}' description: The response body to send to the client. EventRuleActionBlock: description: >- @@ -1776,6 +2254,8 @@ components: * `false` - No signs of simulator or the client is not iOS. SuspectScore: type: integer + examples: + - 8 description: > Suspect Score is an easy way to integrate Smart Signals into your fraud protection work flow. It is a weighted representation of all Smart @@ -1828,6 +2308,8 @@ components: TamperingMlScore: type: number format: double + examples: + - 0.5 minimum: 0 maximum: 1 description: > @@ -1838,10 +2320,13 @@ components: anti_detect_browser fields conveniently captures that fact) TamperingDetails: type: object + required: [] properties: anomaly_score: type: number format: double + examples: + - 0.5 minimum: 0 maximum: 1 x-platforms: @@ -1883,16 +2368,22 @@ components: properties: 5_minutes: type: integer + examples: + - 1 description: > Count for the last 5 minutes of velocity data, from the time of the event. 1_hour: type: integer + examples: + - 5 description: > Count for the last 1 hour of velocity data, from the time of the event. 24_hours: type: integer + examples: + - 5 description: > The `24_hours` interval of `distinct_ip`, `distinct_linked_id`, `distinct_country`, `distinct_ip_by_linked_id` and @@ -1940,6 +2431,7 @@ components: if the associated event does not have the required data, such as a linked_id. + required: [] properties: distinct_ip: $ref: '#/components/schemas/VelocityData' @@ -1963,6 +2455,8 @@ components: VirtualMachineMLScore: type: number format: double + examples: + - 0.5 minimum: 0 maximum: 1 description: > @@ -1973,87 +2467,33 @@ components: currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). - Vpn: - type: boolean - description: | - VPN or other anonymizing service has been used when sending the request. - VpnConfidence: - type: string - enum: - - low - - medium - - high - description: >- - A confidence rating for the VPN detection result — "low", "medium", or - "high". Depends on the combination of results returned from all VPN - detection methods. + VpnMLScore: + type: number + format: double + examples: + - 0.2 + minimum: 0 + maximum: 1 + description: > + Machine learning–based VPN score, represented as a floating-point value + between 0 and 1 (inclusive), with up to three decimal places of + precision. A higher score means a higher confidence in the positive + `vpn` detection result. This Smart Signal is currently in beta and only + available to select customers. If you are interested, please [contact + our support team](https://fingerprint.com/support/). VpnOriginTimezone: type: string + examples: + - Europe/Berlin description: | Local timezone which is used in timezone_mismatch method. VpnOriginCountry: type: string + examples: + - DE description: > Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown). - VpnMethods: - type: object - properties: - timezone_mismatch: - type: boolean - x-platforms: - - android - - ios - - browser - description: >- - The browser timezone doesn't match the timezone inferred from the - request IP address. - public_vpn: - type: boolean - x-platforms: - - android - - ios - - browser - description: >- - Request IP address is owned and used by a public VPN service - provider. - auxiliary_mobile: - type: boolean - x-platforms: - - android - - ios - - browser - description: >- - This method applies to mobile devices only. Indicates the result of - additional methods used to detect a VPN in mobile devices. - os_mismatch: - type: boolean - x-platforms: - - browser - description: >- - The browser runs on a different operating system than the operating - system inferred from the request network signature. - relay: - type: boolean - x-platforms: - - android - - ios - - browser - description: > - Request IP address belongs to a relay service provider, indicating - the use of relay services like [Apple Private - relay](https://support.apple.com/en-us/102602) or [Cloudflare - Warp](https://developers.cloudflare.com/warp-client/). - - - * Like VPNs, relay services anonymize the visitor's true IP address. - - * Unlike traditional VPNs, relay services don't let visitors spoof - their location by choosing an exit node in a different country. - - - This field allows you to differentiate VPN users and relay service - users in your fraud prevention logic. HighActivity: type: boolean description: Flag indicating if the request came from a high-activity visitor. @@ -2091,134 +2531,206 @@ components: Baseline measurement of canonical fonts rendered on the device. Numeric width metrics, in CSS pixels, for the canonical fonts collected by the agent. + required: [] properties: default: type: number format: double + examples: + - 147.5625 serif: type: number format: double + examples: + - 147.5625 sans: type: number format: double + examples: + - 144.015625 mono: type: number format: double + examples: + - 133.0625 apple: type: number format: double + examples: + - 147.5625 min: type: number format: double + examples: + - 9.234375 system: type: number format: double + examples: + - 146.09375 Emoji: type: object description: Bounding box metrics describing how the emoji glyph renders. + required: [] properties: font: type: string + examples: + - Times description: Font family reported by the browser when drawing the emoji. width: type: number format: double + examples: + - 1600 height: type: number format: double + examples: + - 18 top: type: number format: double + examples: + - 14 bottom: type: number format: double + examples: + - 32 left: type: number format: double + examples: + - 8 right: type: number format: double + examples: + - 1608 x: type: number format: double + examples: + - 8 'y': type: number format: double + examples: + - 14 Fonts: type: array description: List of fonts detected on the device. items: type: string - example: - - Arial Unicode MS - - Gill Sans - - Helvetica Neue - - Menlo + examples: + - Arial Unicode MS + examples: + - - Arial Unicode MS + - Gill Sans + - Helvetica Neue + - Menlo DeviceMemory: type: integer format: int32 minimum: 0 - example: 8 - description: Rounded amount of RAM (in gigabytes) reported by the browser. + examples: + - 8 + description: Rounded amount of RAM in gigabytes. Timezone: type: string + examples: + - America/Sao_Paulo description: Timezone identifier detected on the client. Canvas: type: object description: Canvas fingerprint containing winding flag plus geometry/text hashes. + required: [] properties: winding: type: boolean geometry: type: string + examples: + - db3c1462576a399a03ae93d0ab9eb5c4 description: Hash of geometry rendering output or `unsupported` markers. text: type: string + examples: + - 70c3d3f7eb4408dc37a6bf8af1c51029 description: Hash of text rendering output or `unsupported` markers. Languages: type: array description: > Navigator languages reported by the agent including fallbacks. Each inner array represents ordered language preferences reported by - different APIs. Available for both browsers and iOS devices + different APIs. Available for browsers, iOS, and Android devices. items: type: array items: type: string + examples: + - en-US WebGlExtensions: type: object description: Hashes of WebGL context attributes and extension support. + required: [] properties: context_attributes: type: string + examples: + - 6b1ed336830d2bc96442a9d76373252a parameters: type: string + examples: + - ea118c48e308bc4b0677118bbb3019ec shader_precisions: type: string + examples: + - f223dfbcd580cf142da156d93790eb83 extensions: type: string + examples: + - 57233d7b10f89fcd1ff95e3837ccd72d extension_parameters: type: string + examples: + - 86a8abb36f0cb30b5946dec0c761d042 unsupported_extensions: type: array items: type: string + examples: + - WEBGL_compressed_texture_s3tc_srgb WebGlBasics: type: object description: Render and vendor strings reported by the WebGL context. + required: [] properties: version: type: string + examples: + - WebGL 1.0 (OpenGL ES 2.0 Chromium) vendor: type: string + examples: + - WebKit vendor_unmasked: type: string + examples: + - Google Inc. (Apple) renderer: type: string + examples: + - WebKit WebGL renderer_unmasked: type: string + examples: + - 'ANGLE (Apple, ANGLE Metal Renderer: Apple M4, Unspecified Version)' shading_language_version: type: string + examples: + - WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium) ScreenResolution: type: array description: Current screen resolution. Available for both browsers and iOS devices @@ -2227,9 +2739,12 @@ components: items: type: integer format: int32 + examples: + - 1920 TouchSupport: type: object description: Browser-reported touch capabilities. + required: [] properties: touch_event: type: boolean @@ -2238,12 +2753,18 @@ components: max_touch_points: type: integer format: int64 + examples: + - 0 Oscpu: type: string + examples: + - Windows NT 6.1; Win64; x64 description: Navigator `oscpu` string. Architecture: type: integer format: int32 + examples: + - 127 description: Integer representing the CPU architecture exposed by the browser. CookiesEnabled: type: boolean @@ -2251,9 +2772,13 @@ components: HardwareConcurrency: type: integer format: int32 + examples: + - 10 description: Number of logical CPU cores reported by the browser. DateTimeLocale: type: string + examples: + - en-US description: > Locale derived from the Intl.DateTimeFormat API. Negative values indicate known error states. The negative statuses can be: @@ -2267,13 +2792,19 @@ components: is undefined or null. Vendor: type: string + examples: + - Google Inc. description: Navigator vendor string. ColorDepth: type: integer format: int32 + examples: + - 24 description: Screen color depth in bits. Platform: type: string + examples: + - MacIntel description: Navigator platform string. SessionStorage: type: boolean @@ -2284,6 +2815,8 @@ components: Audio: type: number format: double + examples: + - 124.04347745512496 description: > AudioContext fingerprint or negative status when unavailable. The negative statuses can be: @@ -2303,19 +2836,30 @@ components: properties: name: type: string + examples: + - PDF Viewer description: type: string + examples: + - Portable Document Format mimeTypes: type: array items: type: object + required: [] properties: type: type: string + examples: + - application/pdf suffixes: type: string + examples: + - pdf description: type: string + examples: + - Portable Document Format required: - name IndexedDb: @@ -2323,25 +2867,51 @@ components: description: Whether IndexedDB is available. Math: type: string + examples: + - 5f030fa7d2e5f9f757bfaf81642eb1a6 description: Hash of Math APIs used for entropy collection. DeviceModel: type: string + examples: + - iPhone 15 Pro description: Device model string. Available only for Android and iOS devices. DeviceManufacturer: type: string + examples: + - Apple description: Device manufacturer string. Available only for Android and iOS devices. FontHash: type: string + examples: + - e9f96f6c0e2c0b3a7a8b1d2c3e4f5a6b description: Unique identifier for the user’s installed fonts. TimezoneOffset: type: string + examples: + - '+02:00' description: UTC offset in "±HH:MM" format derived from the detected IANA timezone. + BatteryLevel: + type: integer + format: int32 + minimum: 0 + maximum: 100 + examples: + - 75 + description: >- + Battery charge level as a percentage (0-100). Available only for Android + and iOS devices. + BatteryLowPowerMode: + type: boolean + description: >- + Whether the device's low power mode is enabled. Available only for + Android and iOS devices. RawDeviceAttributes: type: object description: > A curated subset of raw browser/device attributes that the API surface exposes. Each property contains a value or object with the data for the collected signal. + required: [] properties: font_preferences: $ref: '#/components/schemas/FontPreferences' @@ -2401,6 +2971,10 @@ components: $ref: '#/components/schemas/FontHash' timezone_offset: $ref: '#/components/schemas/TimezoneOffset' + battery_level: + $ref: '#/components/schemas/BatteryLevel' + battery_low_power_mode: + $ref: '#/components/schemas/BatteryLowPowerMode' Labels: type: array items: @@ -2410,11 +2984,15 @@ components: properties: label: type: string + examples: + - automation_tool prediction: type: boolean ml_score: type: number format: double + examples: + - 0.95 minimum: 0 maximum: 1 description: > @@ -2521,6 +3099,24 @@ components: - android - ios - browser + device: + $ref: '#/components/schemas/Device' + x-platforms: + - android + - ios + - browser + os: + $ref: '#/components/schemas/Os' + x-platforms: + - android + - ios + - browser + os_version: + $ref: '#/components/schemas/OsVersion' + x-platforms: + - android + - ios + - browser client_referrer: $ref: '#/components/schemas/ClientReferrer' x-platforms: @@ -2534,6 +3130,7 @@ components: x-platforms: - android - ios + - browser bot: $ref: '#/components/schemas/BotResult' x-platforms: @@ -2692,6 +3289,10 @@ components: - android - ios - browser + vpn_ml_score: + $ref: '#/components/schemas/VpnMLScore' + x-platforms: + - browser vpn_origin_timezone: $ref: '#/components/schemas/VpnOriginTimezone' x-platforms: @@ -2735,110 +3336,22 @@ components: - browser - ios - android - ErrorCode: - type: string - enum: - - request_cannot_be_parsed - - request_read_timeout - - secret_api_key_required - - secret_api_key_not_found - - public_api_key_required - - public_api_key_not_found - - subscription_not_active - - wrong_region - - feature_not_enabled - - visitor_not_found - - too_many_requests - - state_not_ready - - failed - - event_not_found - - missing_module - - payload_too_large - - service_unavailable - - ruleset_not_found - description: > - Error code: - - * `request_cannot_be_parsed` - The query parameters or JSON payload - contains some errors - that prevented us from parsing it (wrong type/surpassed limits). - * `request_read_timeout` - The request body could not be read before the - connection timed out. - - * `secret_api_key_required` - secret API key in header is missing or - empty. - - * `secret_api_key_not_found` - No Fingerprint workspace found for - specified secret API key. - - * `public_api_key_required` - public API key in header is missing or - empty. - - * `public_api_key_not_found` - No Fingerprint workspace found for - specified public API key. - - * `subscription_not_active` - Fingerprint workspace is not active. - - * `wrong_region` - Server and workspace region differ. - - * `feature_not_enabled` - This feature (for example, Delete API) is not - enabled for your workspace. - - * `visitor_not_found` - The specified visitor ID was not found. It never - existed or it may have already been deleted. - - * `too_many_requests` - The limit on secret API key requests per second - has been exceeded. - - * `state_not_ready` - The event specified with event ID is - not ready for updates yet. Try again. - This error happens in rare cases when update API is called immediately - after receiving the event ID on the client. In case you need to send - information right away, we recommend using the JS agent API instead. - * `failed` - Internal server error. - - * `event_not_found` - The specified event ID was not found. It never - existed, expired, or it has been deleted. - - * `missing_module` - The request is invalid because it is missing a - required module. - - * `payload_too_large` - The request payload is too large and cannot be - processed. - - * `service_unavailable` - The service was unable to process the request. - - * `ruleset_not_found` - The specified ruleset was not found. It never - existed or it has been deleted. - Error: - type: object - required: - - code - - message - properties: - code: - $ref: '#/components/schemas/ErrorCode' - message: - type: string - ErrorResponse: - type: object - required: - - error - properties: - error: - $ref: '#/components/schemas/Error' EventUpdate: type: object + required: [] properties: linked_id: type: string - description: Linked Id value to assign to the existing event + examples: + - somelinkedId + description: Linked ID value to assign to the existing event tags: type: object description: >- A customer-provided value or an object that was sent with the identification request or updated later. additionalProperties: true + required: [] suspect: type: boolean description: Suspect flag indicating observed suspicious or fraudulent event @@ -2857,12 +3370,17 @@ components: $ref: '#/components/schemas/Event' pagination_key: type: string + examples: + - >- + S9rgMMUb4z3X5t5pr_tSgoSZlmyF0O8X7kCV2m981-iY1LmRTjraa1rTk3L-hQExnDWCi0RA-zAIjaVSTNO2AN2eqQWgzT0RjbieMxRfSdkM-HmOhdOgdQvYfPG3vqU1DJKh4Q description: >- Use this value in the `pagination_key` parameter to request the next page of search results. total_hits: type: integer format: int64 + examples: + - 100 description: >- This value represents the total number of events matching the search query, up to the limit provided in the `total_hits` query parameter. @@ -2962,3 +3480,7 @@ components: Filter events by their incremental identification status (`incremental_identification_status` property). Non incremental identification events are left out of the response. + SearchEventsSource: + type: string + enum: + - edge diff --git a/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java b/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java index 4baf6e58..31fd29a3 100644 --- a/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java +++ b/sdk/src/main/java/com/fingerprint/v4/api/FingerprintApi.java @@ -11,6 +11,7 @@ import com.fingerprint.v4.model.SearchEventsIncrementalIdentificationStatus; import com.fingerprint.v4.model.SearchEventsRareDevicePercentileBucket; import com.fingerprint.v4.model.SearchEventsSdkPlatform; +import com.fingerprint.v4.model.SearchEventsSource; import com.fingerprint.v4.model.SearchEventsVpnConfidence; import com.fingerprint.v4.sdk.ApiClient; import com.fingerprint.v4.sdk.ApiException; @@ -326,16 +327,17 @@ public static class SearchEventsOptionalParams { private Boolean torNode; private SearchEventsIncrementalIdentificationStatus incrementalIdentificationStatus; private Boolean simulator; + private List source; /** - * getter for limit - Maximum number of events to return. Results are selected from the time range (`start`, `end`), ordered by `reverse`, then truncated to provided `limit` size. So `reverse=true` returns the oldest N=`limit` events, otherwise the newest N=`limit` events. + * getter for limit - Maximum number of events to return. Defaults to 10 when omitted. Results are selected from the time range (`start`, `end`), ordered by `reverse`, then truncated to provided `limit` size. So `reverse=true` returns the oldest N=`limit` events, otherwise the newest N=`limit` events. */ public Integer getLimit() { return limit; } /** - * setter for limit - Maximum number of events to return. Results are selected from the time range (`start`, `end`), ordered by `reverse`, then truncated to provided `limit` size. So `reverse=true` returns the oldest N=`limit` events, otherwise the newest N=`limit` events. + * setter for limit - Maximum number of events to return. Defaults to 10 when omitted. Results are selected from the time range (`start`, `end`), ordered by `reverse`, then truncated to provided `limit` size. So `reverse=true` returns the oldest N=`limit` events, otherwise the newest N=`limit` events. */ public SearchEventsOptionalParams setLimit(Integer limit) { this.limit = limit; @@ -343,14 +345,14 @@ public SearchEventsOptionalParams setLimit(Integer limit) { } /** - * getter for paginationKey - Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 100 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` + * getter for paginationKey - Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 100 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=S9rgMMUb4z3X5t5pr_tSgoSZlmyF0O8X7kCV2m981-iY1LmRTjraa1rTk3L-hQExnDWCi0RA-zAIjaVSTNO2AN2eqQWgzT0RjbieMxRfSdkM-HmOhdOgdQvYfPG3vqU1DJKh4Q` */ public String getPaginationKey() { return paginationKey; } /** - * setter for paginationKey - Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 100 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` + * setter for paginationKey - Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 100 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=S9rgMMUb4z3X5t5pr_tSgoSZlmyF0O8X7kCV2m981-iY1LmRTjraa1rTk3L-hQExnDWCi0RA-zAIjaVSTNO2AN2eqQWgzT0RjbieMxRfSdkM-HmOhdOgdQvYfPG3vqU1DJKh4Q` */ public SearchEventsOptionalParams setPaginationKey(String paginationKey) { this.paginationKey = paginationKey; @@ -1137,6 +1139,21 @@ public SearchEventsOptionalParams setSimulator(Boolean simulator) { this.simulator = simulator; return this; } + + /** + * getter for source - Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. + */ + public List getSource() { + return source; + } + + /** + * setter for source - Selects the source of events to search. When omitted, only traditional identification events generated from devices are returned (the default behavior). When set to `edge`, only Automation Intelligence (Edge) events are returned. > Note: The Automation Intelligence API is in public preview testing phase. If you encounter any issues, please [contact](https://fingerprint.com/support/) our support team. + */ + public SearchEventsOptionalParams setSource(List source) { + this.source = source; + return this; + } } /** @@ -1151,6 +1168,7 @@ public SearchEventsOptionalParams setSimulator(Boolean simulator) { * 200 Events matching the filter(s). - * 400 Bad request. One or more supplied search parameters are invalid, or a required parameter is missing. - * 403 Forbidden. Access to this API is denied. - + * 404 Not found. The requested visitor does not exist in this workspace's data. - * 500 Workspace error. - * */ @@ -1171,6 +1189,7 @@ public EventSearch searchEvents(SearchEventsOptionalParams searchEventsOptionalP * 200 Events matching the filter(s). - * 400 Bad request. One or more supplied search parameters are invalid, or a required parameter is missing. - * 403 Forbidden. Access to this API is denied. - + * 404 Not found. The requested visitor does not exist in this workspace's data. - * 500 Workspace error. - * */ @@ -1321,6 +1340,8 @@ public ApiResponse searchEventsWithHttpInfo( searchEventsOptionalParams.getIncrementalIdentificationStatus())); localVarQueryParams.addAll( apiClient.parameterToPairs("", "simulator", searchEventsOptionalParams.getSimulator())); + localVarQueryParams.addAll( + apiClient.parameterToPairs("multi", "source", searchEventsOptionalParams.getSource())); } final String localVarAccept = apiClient.selectHeaderAccept("application/json"); diff --git a/sdk/src/main/java/com/fingerprint/v4/model/BotInfo.java b/sdk/src/main/java/com/fingerprint/v4/model/BotInfo.java index 063d1459..de1d69fe 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/BotInfo.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/BotInfo.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/BotInfoCategory.java b/sdk/src/main/java/com/fingerprint/v4/model/BotInfoCategory.java index 92c2c6a0..2fa42b25 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/BotInfoCategory.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/BotInfoCategory.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/BotInfoConfidence.java b/sdk/src/main/java/com/fingerprint/v4/model/BotInfoConfidence.java index cecaf219..b0f4065f 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/BotInfoConfidence.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/BotInfoConfidence.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/BotInfoIdentity.java b/sdk/src/main/java/com/fingerprint/v4/model/BotInfoIdentity.java index 35694297..1b8a33d9 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/BotInfoIdentity.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/BotInfoIdentity.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/BotResult.java b/sdk/src/main/java/com/fingerprint/v4/model/BotResult.java index 6fc37756..42d49188 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/BotResult.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/BotResult.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/BrowserDetails.java b/sdk/src/main/java/com/fingerprint/v4/model/BrowserDetails.java index 43101738..8ab4434f 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/BrowserDetails.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/BrowserDetails.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/Canvas.java b/sdk/src/main/java/com/fingerprint/v4/model/Canvas.java index 30e3a51a..39d0bbd1 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/Canvas.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/Canvas.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/Emoji.java b/sdk/src/main/java/com/fingerprint/v4/model/Emoji.java index 2338f0c7..7a8ba19b 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/Emoji.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/Emoji.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/Error.java b/sdk/src/main/java/com/fingerprint/v4/model/Error.java index a282337d..dd41ea7f 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/Error.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/Error.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/ErrorCode.java b/sdk/src/main/java/com/fingerprint/v4/model/ErrorCode.java index f5e67298..782b6706 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/ErrorCode.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/ErrorCode.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/ErrorResponse.java b/sdk/src/main/java/com/fingerprint/v4/model/ErrorResponse.java index 49b0be48..565dcb49 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/ErrorResponse.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/ErrorResponse.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/Event.java b/sdk/src/main/java/com/fingerprint/v4/model/Event.java index 6b53ada5..d6aa7b45 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/Event.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/Event.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com @@ -41,6 +41,9 @@ Event.JSON_PROPERTY_PACKAGE_NAME, Event.JSON_PROPERTY_IP_ADDRESS, Event.JSON_PROPERTY_USER_AGENT, + Event.JSON_PROPERTY_DEVICE, + Event.JSON_PROPERTY_OS, + Event.JSON_PROPERTY_OS_VERSION, Event.JSON_PROPERTY_CLIENT_REFERRER, Event.JSON_PROPERTY_BROWSER_DETAILS, Event.JSON_PROPERTY_PROXIMITY, @@ -76,6 +79,7 @@ Event.JSON_PROPERTY_VIRTUAL_MACHINE_ML_SCORE, Event.JSON_PROPERTY_VPN, Event.JSON_PROPERTY_VPN_CONFIDENCE, + Event.JSON_PROPERTY_VPN_ML_SCORE, Event.JSON_PROPERTY_VPN_ORIGIN_TIMEZONE, Event.JSON_PROPERTY_VPN_ORIGIN_COUNTRY, Event.JSON_PROPERTY_VPN_METHODS, @@ -141,6 +145,15 @@ public class Event { public static final String JSON_PROPERTY_USER_AGENT = "user_agent"; @jakarta.annotation.Nullable private String userAgent; + public static final String JSON_PROPERTY_DEVICE = "device"; + @jakarta.annotation.Nullable private String device; + + public static final String JSON_PROPERTY_OS = "os"; + @jakarta.annotation.Nullable private String os; + + public static final String JSON_PROPERTY_OS_VERSION = "os_version"; + @jakarta.annotation.Nullable private String osVersion; + public static final String JSON_PROPERTY_CLIENT_REFERRER = "client_referrer"; @jakarta.annotation.Nullable private String clientReferrer; @@ -246,6 +259,9 @@ public class Event { public static final String JSON_PROPERTY_VPN_CONFIDENCE = "vpn_confidence"; @jakarta.annotation.Nullable private VpnConfidence vpnConfidence; + public static final String JSON_PROPERTY_VPN_ML_SCORE = "vpn_ml_score"; + @jakarta.annotation.Nullable private Double vpnMlScore; + public static final String JSON_PROPERTY_VPN_ORIGIN_TIMEZONE = "vpn_origin_timezone"; @jakarta.annotation.Nullable private String vpnOriginTimezone; @@ -279,7 +295,7 @@ public Event eventId(@jakarta.annotation.Nonnull String eventId) { } /** - * Unique identifier of the user's request. The first portion of the event_id is a unix epoch milliseconds timestamp For example: `1758130560902.8tRtrH` + * Unique identifier of the user's request. The first portion of the event_id is a unix epoch milliseconds timestamp. * @return eventId */ @jakarta.annotation.Nonnull @@ -371,7 +387,7 @@ public Event environmentId(@jakarta.annotation.Nullable String environmentId) { } /** - * Environment Id of the event. For example: `ae_47abaca3db2c7c43` + * Environment Id of the event. * @return environmentId */ @jakarta.annotation.Nullable @@ -535,7 +551,7 @@ public Event url(@jakarta.annotation.Nullable String url) { } /** - * Page URL from which the request was sent. For example `https://example.com/` + * Page URL from which the request was sent. * @return url */ @jakarta.annotation.Nullable @@ -557,7 +573,7 @@ public Event bundleId(@jakarta.annotation.Nullable String bundleId) { } /** - * Bundle Id of the iOS application integrated with the Fingerprint SDK for the event. For example: `com.foo.app` + * Bundle Id of the iOS application integrated with the Fingerprint SDK for the event. * @return bundleId */ @jakarta.annotation.Nullable @@ -579,7 +595,7 @@ public Event packageName(@jakarta.annotation.Nullable String packageName) { } /** - * Package name of the Android application integrated with the Fingerprint SDK for the event. For example: `com.foo.app` + * Package name of the Android application integrated with the Fingerprint SDK for the event. * @return packageName */ @jakarta.annotation.Nullable @@ -623,7 +639,7 @@ public Event userAgent(@jakarta.annotation.Nullable String userAgent) { } /** - * User Agent of the client, for example: `Mozilla/5.0 (Windows NT 6.1; Win64; x64) ....` + * User Agent of the client. * @return userAgent */ @jakarta.annotation.Nullable @@ -639,13 +655,79 @@ public void setUserAgent(@jakarta.annotation.Nullable String userAgent) { this.userAgent = userAgent; } + public Event device(@jakarta.annotation.Nullable String device) { + this.device = device; + return this; + } + + /** + * Device model or family extracted from the user agent string. On web, this field is also present inside `browser_details`. + * @return device + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_DEVICE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDevice() { + return device; + } + + @JsonProperty(value = JSON_PROPERTY_DEVICE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setDevice(@jakarta.annotation.Nullable String device) { + this.device = device; + } + + public Event os(@jakarta.annotation.Nullable String os) { + this.os = os; + return this; + } + + /** + * Operating system family extracted from the user agent string. On web, this field is also present inside `browser_details`. + * @return os + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_OS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getOs() { + return os; + } + + @JsonProperty(value = JSON_PROPERTY_OS, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOs(@jakarta.annotation.Nullable String os) { + this.os = os; + } + + public Event osVersion(@jakarta.annotation.Nullable String osVersion) { + this.osVersion = osVersion; + return this; + } + + /** + * Operating system version string extracted from the user agent string. On web, this field is also present inside `browser_details`. + * @return osVersion + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_OS_VERSION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getOsVersion() { + return osVersion; + } + + @JsonProperty(value = JSON_PROPERTY_OS_VERSION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setOsVersion(@jakarta.annotation.Nullable String osVersion) { + this.osVersion = osVersion; + } + public Event clientReferrer(@jakarta.annotation.Nullable String clientReferrer) { this.clientReferrer = clientReferrer; return this; } /** - * Client Referrer field corresponds to the `document.referrer` field gathered during an identification request. The value is an empty string if the user navigated to the page directly (not through a link, but, for example, by using a bookmark) For example: `https://example.com/blog/my-article` + * Client Referrer field corresponds to the `document.referrer` field gathered during an identification request. The value is an empty string if the user navigated to the page directly (not through a link, but, for example, by using a bookmark). * @return clientReferrer */ @jakarta.annotation.Nullable @@ -1417,6 +1499,30 @@ public void setVpnConfidence(@jakarta.annotation.Nullable VpnConfidence vpnConfi this.vpnConfidence = vpnConfidence; } + public Event vpnMlScore(@jakarta.annotation.Nullable Double vpnMlScore) { + this.vpnMlScore = vpnMlScore; + return this; + } + + /** + * Machine learning–based VPN score, represented as a floating-point value between 0 and 1 (inclusive), with up to three decimal places of precision. A higher score means a higher confidence in the positive `vpn` detection result. This Smart Signal is currently in beta and only available to select customers. If you are interested, please [contact our support team](https://fingerprint.com/support/). + * minimum: 0 + * maximum: 1 + * @return vpnMlScore + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_VPN_ML_SCORE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Double getVpnMlScore() { + return vpnMlScore; + } + + @JsonProperty(value = JSON_PROPERTY_VPN_ML_SCORE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setVpnMlScore(@jakarta.annotation.Nullable Double vpnMlScore) { + this.vpnMlScore = vpnMlScore; + } + public Event vpnOriginTimezone(@jakarta.annotation.Nullable String vpnOriginTimezone) { this.vpnOriginTimezone = vpnOriginTimezone; return this; @@ -1634,6 +1740,9 @@ public boolean equals(Object o) { && Objects.equals(this.packageName, event.packageName) && Objects.equals(this.ipAddress, event.ipAddress) && Objects.equals(this.userAgent, event.userAgent) + && Objects.equals(this.device, event.device) + && Objects.equals(this.os, event.os) + && Objects.equals(this.osVersion, event.osVersion) && Objects.equals(this.clientReferrer, event.clientReferrer) && Objects.equals(this.browserDetails, event.browserDetails) && Objects.equals(this.proximity, event.proximity) @@ -1669,6 +1778,7 @@ public boolean equals(Object o) { && Objects.equals(this.virtualMachineMlScore, event.virtualMachineMlScore) && Objects.equals(this.vpn, event.vpn) && Objects.equals(this.vpnConfidence, event.vpnConfidence) + && Objects.equals(this.vpnMlScore, event.vpnMlScore) && Objects.equals(this.vpnOriginTimezone, event.vpnOriginTimezone) && Objects.equals(this.vpnOriginCountry, event.vpnOriginCountry) && Objects.equals(this.vpnMethods, event.vpnMethods) @@ -1698,6 +1808,9 @@ public int hashCode() { packageName, ipAddress, userAgent, + device, + os, + osVersion, clientReferrer, browserDetails, proximity, @@ -1733,6 +1846,7 @@ public int hashCode() { virtualMachineMlScore, vpn, vpnConfidence, + vpnMlScore, vpnOriginTimezone, vpnOriginCountry, vpnMethods, @@ -1767,6 +1881,9 @@ public String toString() { sb.append(" packageName: ").append(toIndentedString(packageName)).append("\n"); sb.append(" ipAddress: ").append(toIndentedString(ipAddress)).append("\n"); sb.append(" userAgent: ").append(toIndentedString(userAgent)).append("\n"); + sb.append(" device: ").append(toIndentedString(device)).append("\n"); + sb.append(" os: ").append(toIndentedString(os)).append("\n"); + sb.append(" osVersion: ").append(toIndentedString(osVersion)).append("\n"); sb.append(" clientReferrer: ").append(toIndentedString(clientReferrer)).append("\n"); sb.append(" browserDetails: ").append(toIndentedString(browserDetails)).append("\n"); sb.append(" proximity: ").append(toIndentedString(proximity)).append("\n"); @@ -1808,6 +1925,7 @@ public String toString() { .append("\n"); sb.append(" vpn: ").append(toIndentedString(vpn)).append("\n"); sb.append(" vpnConfidence: ").append(toIndentedString(vpnConfidence)).append("\n"); + sb.append(" vpnMlScore: ").append(toIndentedString(vpnMlScore)).append("\n"); sb.append(" vpnOriginTimezone: ").append(toIndentedString(vpnOriginTimezone)).append("\n"); sb.append(" vpnOriginCountry: ").append(toIndentedString(vpnOriginCountry)).append("\n"); sb.append(" vpnMethods: ").append(toIndentedString(vpnMethods)).append("\n"); diff --git a/sdk/src/main/java/com/fingerprint/v4/model/EventRuleAction.java b/sdk/src/main/java/com/fingerprint/v4/model/EventRuleAction.java index 481907c0..77f2889b 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/EventRuleAction.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/EventRuleAction.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/EventRuleActionAllow.java b/sdk/src/main/java/com/fingerprint/v4/model/EventRuleActionAllow.java index 38e31a2d..4ff0cd81 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/EventRuleActionAllow.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/EventRuleActionAllow.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/EventRuleActionBlock.java b/sdk/src/main/java/com/fingerprint/v4/model/EventRuleActionBlock.java index 47500110..de8f3284 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/EventRuleActionBlock.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/EventRuleActionBlock.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/EventSearch.java b/sdk/src/main/java/com/fingerprint/v4/model/EventSearch.java index 46d334d3..3490a5df 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/EventSearch.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/EventSearch.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/EventUpdate.java b/sdk/src/main/java/com/fingerprint/v4/model/EventUpdate.java index 21f6d3e3..5ee85cae 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/EventUpdate.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/EventUpdate.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com @@ -48,7 +48,7 @@ public EventUpdate linkedId(@jakarta.annotation.Nullable String linkedId) { } /** - * Linked Id value to assign to the existing event + * Linked ID value to assign to the existing event * @return linkedId */ @jakarta.annotation.Nullable diff --git a/sdk/src/main/java/com/fingerprint/v4/model/FontPreferences.java b/sdk/src/main/java/com/fingerprint/v4/model/FontPreferences.java index 95b8bc85..8133a1c8 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/FontPreferences.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/FontPreferences.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/Geolocation.java b/sdk/src/main/java/com/fingerprint/v4/model/Geolocation.java index c555264b..33e9e8c6 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/Geolocation.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/Geolocation.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/GeolocationSubdivisionsInner.java b/sdk/src/main/java/com/fingerprint/v4/model/GeolocationSubdivisionsInner.java index ee79c14b..7c3cfd46 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/GeolocationSubdivisionsInner.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/GeolocationSubdivisionsInner.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/IPBlockList.java b/sdk/src/main/java/com/fingerprint/v4/model/IPBlockList.java index 7866c9f3..f5485a17 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/IPBlockList.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/IPBlockList.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/IPInfo.java b/sdk/src/main/java/com/fingerprint/v4/model/IPInfo.java index 4746b89b..f75afbd9 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/IPInfo.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/IPInfo.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/IPInfoV4.java b/sdk/src/main/java/com/fingerprint/v4/model/IPInfoV4.java index 1e339e32..16ac6b94 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/IPInfoV4.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/IPInfoV4.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com @@ -198,7 +198,7 @@ public IPInfoV4 datacenterResult(@jakarta.annotation.Nullable Boolean datacenter } /** - * Get datacenterResult + * When true, the request originated from a datacenter. * @return datacenterResult */ @jakarta.annotation.Nullable diff --git a/sdk/src/main/java/com/fingerprint/v4/model/IPInfoV6.java b/sdk/src/main/java/com/fingerprint/v4/model/IPInfoV6.java index 4ebc709c..7f66504e 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/IPInfoV6.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/IPInfoV6.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com @@ -198,7 +198,7 @@ public IPInfoV6 datacenterResult(@jakarta.annotation.Nullable Boolean datacenter } /** - * Get datacenterResult + * When true, the request originated from a datacenter. * @return datacenterResult */ @jakarta.annotation.Nullable diff --git a/sdk/src/main/java/com/fingerprint/v4/model/Identification.java b/sdk/src/main/java/com/fingerprint/v4/model/Identification.java index 1249673e..55634612 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/Identification.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/Identification.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/IdentificationConfidence.java b/sdk/src/main/java/com/fingerprint/v4/model/IdentificationConfidence.java index e2e90e28..2783ffe3 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/IdentificationConfidence.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/IdentificationConfidence.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/IncrementalIdentificationStatus.java b/sdk/src/main/java/com/fingerprint/v4/model/IncrementalIdentificationStatus.java index 215b3989..49107e47 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/IncrementalIdentificationStatus.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/IncrementalIdentificationStatus.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/Integration.java b/sdk/src/main/java/com/fingerprint/v4/model/Integration.java index c0a3d95f..66f4d85a 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/Integration.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/Integration.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com @@ -46,7 +46,7 @@ public Integration name(@jakarta.annotation.Nullable String name) { } /** - * The name of the specific integration, e.g. \"fingerprint-pro-react\". + * The name of the specific integration. * @return name */ @jakarta.annotation.Nullable @@ -68,7 +68,7 @@ public Integration version(@jakarta.annotation.Nullable String version) { } /** - * The version of the specific integration, e.g. \"3.11.10\". + * The version of the specific integration. * @return version */ @jakarta.annotation.Nullable diff --git a/sdk/src/main/java/com/fingerprint/v4/model/IntegrationSubintegration.java b/sdk/src/main/java/com/fingerprint/v4/model/IntegrationSubintegration.java index 3f984120..f3693921 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/IntegrationSubintegration.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/IntegrationSubintegration.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com @@ -44,7 +44,7 @@ public IntegrationSubintegration name(@jakarta.annotation.Nullable String name) } /** - * The name of the specific subintegration, e.g. \"preact\". + * The name of the specific subintegration. * @return name */ @jakarta.annotation.Nullable @@ -66,7 +66,7 @@ public IntegrationSubintegration version(@jakarta.annotation.Nullable String ver } /** - * The version of the specific subintegration, e.g. \"10.21.0\". + * The version of the specific subintegration. * @return version */ @jakarta.annotation.Nullable diff --git a/sdk/src/main/java/com/fingerprint/v4/model/LabelsInner.java b/sdk/src/main/java/com/fingerprint/v4/model/LabelsInner.java index 1d25f262..3012d430 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/LabelsInner.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/LabelsInner.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/PluginsInner.java b/sdk/src/main/java/com/fingerprint/v4/model/PluginsInner.java index f7344861..3361f0d0 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/PluginsInner.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/PluginsInner.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/PluginsInnerMimeTypesInner.java b/sdk/src/main/java/com/fingerprint/v4/model/PluginsInnerMimeTypesInner.java index b384f245..497e921e 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/PluginsInnerMimeTypesInner.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/PluginsInnerMimeTypesInner.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/Proximity.java b/sdk/src/main/java/com/fingerprint/v4/model/Proximity.java index 95e7b643..702bad9b 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/Proximity.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/Proximity.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/ProxyConfidence.java b/sdk/src/main/java/com/fingerprint/v4/model/ProxyConfidence.java index 4e076d75..5c138186 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/ProxyConfidence.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/ProxyConfidence.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/ProxyDetails.java b/sdk/src/main/java/com/fingerprint/v4/model/ProxyDetails.java index d4d7e484..427a40ca 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/ProxyDetails.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/ProxyDetails.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com @@ -32,13 +32,15 @@ comments = "Generator version: 7.16.0") public class ProxyDetails { /** - * Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers + * Proxy type: * `residential` - proxies that route through residential and telecom IP addresses to appear as legitimate traffic * `data_center` - proxies which route through data centers * `unknown` - reported when a proxy is detected solely by the ML model and the IP sources did not determine a specific type */ public enum ProxyTypeEnum { RESIDENTIAL(String.valueOf("residential")), DATA_CENTER(String.valueOf("data_center")), + UNKNOWN(String.valueOf("unknown")), + UNSUPPORTED_VALUE_SDK_UPGRADE_REQUIRED("unsupported_value_sdk_upgrade_required"); private String value; @@ -85,7 +87,7 @@ public ProxyDetails proxyType(@jakarta.annotation.Nonnull ProxyTypeEnum proxyTyp } /** - * Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers + * Proxy type: * `residential` - proxies that route through residential and telecom IP addresses to appear as legitimate traffic * `data_center` - proxies which route through data centers * `unknown` - reported when a proxy is detected solely by the ML model and the IP sources did not determine a specific type * @return proxyType */ @jakarta.annotation.Nonnull diff --git a/sdk/src/main/java/com/fingerprint/v4/model/RareDevicePercentileBucket.java b/sdk/src/main/java/com/fingerprint/v4/model/RareDevicePercentileBucket.java index 9fdefc6f..9a8fc130 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/RareDevicePercentileBucket.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/RareDevicePercentileBucket.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/RawDeviceAttributes.java b/sdk/src/main/java/com/fingerprint/v4/model/RawDeviceAttributes.java index 585c376d..f570446f 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/RawDeviceAttributes.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/RawDeviceAttributes.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com @@ -51,7 +51,9 @@ RawDeviceAttributes.JSON_PROPERTY_DEVICE_MODEL, RawDeviceAttributes.JSON_PROPERTY_DEVICE_MANUFACTURER, RawDeviceAttributes.JSON_PROPERTY_FONT_HASH, - RawDeviceAttributes.JSON_PROPERTY_TIMEZONE_OFFSET + RawDeviceAttributes.JSON_PROPERTY_TIMEZONE_OFFSET, + RawDeviceAttributes.JSON_PROPERTY_BATTERY_LEVEL, + RawDeviceAttributes.JSON_PROPERTY_BATTERY_LOW_POWER_MODE }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -144,6 +146,12 @@ public class RawDeviceAttributes { public static final String JSON_PROPERTY_TIMEZONE_OFFSET = "timezone_offset"; @jakarta.annotation.Nullable private String timezoneOffset; + public static final String JSON_PROPERTY_BATTERY_LEVEL = "battery_level"; + @jakarta.annotation.Nullable private Integer batteryLevel; + + public static final String JSON_PROPERTY_BATTERY_LOW_POWER_MODE = "battery_low_power_mode"; + @jakarta.annotation.Nullable private Boolean batteryLowPowerMode; + public RawDeviceAttributes() {} public RawDeviceAttributes fontPreferences( @@ -227,7 +235,7 @@ public RawDeviceAttributes deviceMemory(@jakarta.annotation.Nullable Integer dev } /** - * Rounded amount of RAM (in gigabytes) reported by the browser. + * Rounded amount of RAM in gigabytes. * minimum: 0 * @return deviceMemory */ @@ -302,7 +310,7 @@ public RawDeviceAttributes addLanguagesItem(List languagesItem) { } /** - * Navigator languages reported by the agent including fallbacks. Each inner array represents ordered language preferences reported by different APIs. Available for both browsers and iOS devices + * Navigator languages reported by the agent including fallbacks. Each inner array represents ordered language preferences reported by different APIs. Available for browsers, iOS, and Android devices. * @return languages */ @jakarta.annotation.Nullable @@ -822,6 +830,53 @@ public void setTimezoneOffset(@jakarta.annotation.Nullable String timezoneOffset this.timezoneOffset = timezoneOffset; } + public RawDeviceAttributes batteryLevel(@jakarta.annotation.Nullable Integer batteryLevel) { + this.batteryLevel = batteryLevel; + return this; + } + + /** + * Battery charge level as a percentage (0-100). Available only for Android and iOS devices. + * minimum: 0 + * maximum: 100 + * @return batteryLevel + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_BATTERY_LEVEL, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getBatteryLevel() { + return batteryLevel; + } + + @JsonProperty(value = JSON_PROPERTY_BATTERY_LEVEL, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBatteryLevel(@jakarta.annotation.Nullable Integer batteryLevel) { + this.batteryLevel = batteryLevel; + } + + public RawDeviceAttributes batteryLowPowerMode( + @jakarta.annotation.Nullable Boolean batteryLowPowerMode) { + this.batteryLowPowerMode = batteryLowPowerMode; + return this; + } + + /** + * Whether the device's low power mode is enabled. Available only for Android and iOS devices. + * @return batteryLowPowerMode + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_BATTERY_LOW_POWER_MODE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getBatteryLowPowerMode() { + return batteryLowPowerMode; + } + + @JsonProperty(value = JSON_PROPERTY_BATTERY_LOW_POWER_MODE, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setBatteryLowPowerMode(@jakarta.annotation.Nullable Boolean batteryLowPowerMode) { + this.batteryLowPowerMode = batteryLowPowerMode; + } + /** * Return true if this RawDeviceAttributes object is equal to o. */ @@ -862,7 +917,9 @@ public boolean equals(Object o) { && Objects.equals(this.deviceModel, rawDeviceAttributes.deviceModel) && Objects.equals(this.deviceManufacturer, rawDeviceAttributes.deviceManufacturer) && Objects.equals(this.fontHash, rawDeviceAttributes.fontHash) - && Objects.equals(this.timezoneOffset, rawDeviceAttributes.timezoneOffset); + && Objects.equals(this.timezoneOffset, rawDeviceAttributes.timezoneOffset) + && Objects.equals(this.batteryLevel, rawDeviceAttributes.batteryLevel) + && Objects.equals(this.batteryLowPowerMode, rawDeviceAttributes.batteryLowPowerMode); } @Override @@ -896,7 +953,9 @@ public int hashCode() { deviceModel, deviceManufacturer, fontHash, - timezoneOffset); + timezoneOffset, + batteryLevel, + batteryLowPowerMode); } @Override @@ -934,6 +993,10 @@ public String toString() { sb.append(" deviceManufacturer: ").append(toIndentedString(deviceManufacturer)).append("\n"); sb.append(" fontHash: ").append(toIndentedString(fontHash)).append("\n"); sb.append(" timezoneOffset: ").append(toIndentedString(timezoneOffset)).append("\n"); + sb.append(" batteryLevel: ").append(toIndentedString(batteryLevel)).append("\n"); + sb.append(" batteryLowPowerMode: ") + .append(toIndentedString(batteryLowPowerMode)) + .append("\n"); sb.append("}"); return sb.toString(); } diff --git a/sdk/src/main/java/com/fingerprint/v4/model/RequestHeaderModifications.java b/sdk/src/main/java/com/fingerprint/v4/model/RequestHeaderModifications.java index a59b93f8..67454463 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/RequestHeaderModifications.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/RequestHeaderModifications.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/RuleActionHeaderField.java b/sdk/src/main/java/com/fingerprint/v4/model/RuleActionHeaderField.java index bc2f0d57..8c48527c 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/RuleActionHeaderField.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/RuleActionHeaderField.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/RuleActionType.java b/sdk/src/main/java/com/fingerprint/v4/model/RuleActionType.java index c89f8720..9a64475f 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/RuleActionType.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/RuleActionType.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/SDK.java b/sdk/src/main/java/com/fingerprint/v4/model/SDK.java index 52f51f84..db1a5016 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/SDK.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/SDK.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com @@ -113,7 +113,7 @@ public SDK version(@jakarta.annotation.Nonnull String version) { } /** - * Version string of the SDK used for the identification request. For example: `\"3.12.1\"` + * Version string of the SDK used for the identification request. * @return version */ @jakarta.annotation.Nonnull diff --git a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsBot.java b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsBot.java index 6663be5f..88a0cb23 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsBot.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsBot.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsBotInfo.java b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsBotInfo.java index 270b9aad..e8242ff4 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsBotInfo.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsBotInfo.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsIncrementalIdentificationStatus.java b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsIncrementalIdentificationStatus.java index 3060fa85..40d07a2f 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsIncrementalIdentificationStatus.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsIncrementalIdentificationStatus.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsRareDevicePercentileBucket.java b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsRareDevicePercentileBucket.java index 0cded05e..5c8edb49 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsRareDevicePercentileBucket.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsRareDevicePercentileBucket.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsSdkPlatform.java b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsSdkPlatform.java index 1e8fa911..792baf9a 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsSdkPlatform.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsSdkPlatform.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsSource.java b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsSource.java new file mode 100644 index 00000000..9ce0d26a --- /dev/null +++ b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsSource.java @@ -0,0 +1,51 @@ +/* + * Server API + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. + * + * The version of the OpenAPI document: 4 + * Contact: support@fingerprint.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.fingerprint.v4.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Gets or Sets SearchEventsSource + */ +public enum SearchEventsSource { + EDGE("edge"), + + UNSUPPORTED_VALUE_SDK_UPGRADE_REQUIRED("unsupported_value_sdk_upgrade_required"); + + private String value; + + SearchEventsSource(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static SearchEventsSource fromValue(String value) { + for (SearchEventsSource b : SearchEventsSource.values()) { + if (b.value.equals(value)) { + return b; + } + } + return UNSUPPORTED_VALUE_SDK_UPGRADE_REQUIRED; + } +} diff --git a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsVpnConfidence.java b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsVpnConfidence.java index 556e2d51..86a52574 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsVpnConfidence.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/SearchEventsVpnConfidence.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/SupplementaryIDHighRecall.java b/sdk/src/main/java/com/fingerprint/v4/model/SupplementaryIDHighRecall.java index a0de99f8..ee2f49be 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/SupplementaryIDHighRecall.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/SupplementaryIDHighRecall.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/TamperingConfidence.java b/sdk/src/main/java/com/fingerprint/v4/model/TamperingConfidence.java index 41574fe8..2d31a26c 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/TamperingConfidence.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/TamperingConfidence.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/TamperingDetails.java b/sdk/src/main/java/com/fingerprint/v4/model/TamperingDetails.java index 53e6e532..7e6b3c63 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/TamperingDetails.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/TamperingDetails.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/TouchSupport.java b/sdk/src/main/java/com/fingerprint/v4/model/TouchSupport.java index 6010dcfa..ab2d0027 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/TouchSupport.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/TouchSupport.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/Velocity.java b/sdk/src/main/java/com/fingerprint/v4/model/Velocity.java index 4a94bf1e..494c5f78 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/Velocity.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/Velocity.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/VelocityData.java b/sdk/src/main/java/com/fingerprint/v4/model/VelocityData.java index cdb2db6f..949a1122 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/VelocityData.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/VelocityData.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/VpnConfidence.java b/sdk/src/main/java/com/fingerprint/v4/model/VpnConfidence.java index f76aec4c..7e4d080c 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/VpnConfidence.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/VpnConfidence.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/VpnMethods.java b/sdk/src/main/java/com/fingerprint/v4/model/VpnMethods.java index 8c373085..6e5dd916 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/VpnMethods.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/VpnMethods.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com @@ -25,7 +25,8 @@ VpnMethods.JSON_PROPERTY_PUBLIC_VPN, VpnMethods.JSON_PROPERTY_AUXILIARY_MOBILE, VpnMethods.JSON_PROPERTY_OS_MISMATCH, - VpnMethods.JSON_PROPERTY_RELAY + VpnMethods.JSON_PROPERTY_RELAY, + VpnMethods.JSON_PROPERTY_ML_PREDICTION }) @jakarta.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", @@ -46,6 +47,9 @@ public class VpnMethods { public static final String JSON_PROPERTY_RELAY = "relay"; @jakarta.annotation.Nullable private Boolean relay; + public static final String JSON_PROPERTY_ML_PREDICTION = "ml_prediction"; + @jakarta.annotation.Nullable private Boolean mlPrediction; + public VpnMethods() {} public VpnMethods timezoneMismatch(@jakarta.annotation.Nullable Boolean timezoneMismatch) { @@ -158,6 +162,28 @@ public void setRelay(@jakarta.annotation.Nullable Boolean relay) { this.relay = relay; } + public VpnMethods mlPrediction(@jakarta.annotation.Nullable Boolean mlPrediction) { + this.mlPrediction = mlPrediction; + return this; + } + + /** + * `true` if the request came from a device running a VPN, `false` otherwise. + * @return mlPrediction + */ + @jakarta.annotation.Nullable + @JsonProperty(value = JSON_PROPERTY_ML_PREDICTION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getMlPrediction() { + return mlPrediction; + } + + @JsonProperty(value = JSON_PROPERTY_ML_PREDICTION, required = false) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public void setMlPrediction(@jakarta.annotation.Nullable Boolean mlPrediction) { + this.mlPrediction = mlPrediction; + } + /** * Return true if this VpnMethods object is equal to o. */ @@ -174,12 +200,14 @@ public boolean equals(Object o) { && Objects.equals(this.publicVpn, vpnMethods.publicVpn) && Objects.equals(this.auxiliaryMobile, vpnMethods.auxiliaryMobile) && Objects.equals(this.osMismatch, vpnMethods.osMismatch) - && Objects.equals(this.relay, vpnMethods.relay); + && Objects.equals(this.relay, vpnMethods.relay) + && Objects.equals(this.mlPrediction, vpnMethods.mlPrediction); } @Override public int hashCode() { - return Objects.hash(timezoneMismatch, publicVpn, auxiliaryMobile, osMismatch, relay); + return Objects.hash( + timezoneMismatch, publicVpn, auxiliaryMobile, osMismatch, relay, mlPrediction); } @Override @@ -191,6 +219,7 @@ public String toString() { sb.append(" auxiliaryMobile: ").append(toIndentedString(auxiliaryMobile)).append("\n"); sb.append(" osMismatch: ").append(toIndentedString(osMismatch)).append("\n"); sb.append(" relay: ").append(toIndentedString(relay)).append("\n"); + sb.append(" mlPrediction: ").append(toIndentedString(mlPrediction)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/sdk/src/main/java/com/fingerprint/v4/model/WebGlBasics.java b/sdk/src/main/java/com/fingerprint/v4/model/WebGlBasics.java index 4d85e314..d0f88d34 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/WebGlBasics.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/WebGlBasics.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/model/WebGlExtensions.java b/sdk/src/main/java/com/fingerprint/v4/model/WebGlExtensions.java index 60402b49..1e9f680d 100644 --- a/sdk/src/main/java/com/fingerprint/v4/model/WebGlExtensions.java +++ b/sdk/src/main/java/com/fingerprint/v4/model/WebGlExtensions.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/ApiClient.java b/sdk/src/main/java/com/fingerprint/v4/sdk/ApiClient.java index 1c11abfe..dc5ee781 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/ApiClient.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/ApiClient.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/ApiException.java b/sdk/src/main/java/com/fingerprint/v4/sdk/ApiException.java index 92347e0c..ebc9644a 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/ApiException.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/ApiException.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/ApiResponse.java b/sdk/src/main/java/com/fingerprint/v4/sdk/ApiResponse.java index 1c8be77f..5502cc58 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/ApiResponse.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/ApiResponse.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/Configuration.java b/sdk/src/main/java/com/fingerprint/v4/sdk/Configuration.java index e326a165..b50134e5 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/Configuration.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/Configuration.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/JSON.java b/sdk/src/main/java/com/fingerprint/v4/sdk/JSON.java index 63f7d2c2..2102d388 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/JSON.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/JSON.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/JavaTimeFormatter.java b/sdk/src/main/java/com/fingerprint/v4/sdk/JavaTimeFormatter.java index 7098ab65..8a4662e2 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/JavaTimeFormatter.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/JavaTimeFormatter.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/Pair.java b/sdk/src/main/java/com/fingerprint/v4/sdk/Pair.java index 4a7e5e84..fc4b4cee 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/Pair.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/Pair.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339DateFormat.java b/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339DateFormat.java index f1274bc6..cd2035c1 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339DateFormat.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339DateFormat.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339InstantDeserializer.java b/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339InstantDeserializer.java index b8fad96a..2d25ad6c 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339InstantDeserializer.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339InstantDeserializer.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339JavaTimeModule.java b/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339JavaTimeModule.java index 1a9d2001..5a006f72 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339JavaTimeModule.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/RFC3339JavaTimeModule.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/ServerConfiguration.java b/sdk/src/main/java/com/fingerprint/v4/sdk/ServerConfiguration.java index 6802aecb..f542c855 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/ServerConfiguration.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/ServerConfiguration.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/ServerVariable.java b/sdk/src/main/java/com/fingerprint/v4/sdk/ServerVariable.java index bc2f24a9..35315222 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/ServerVariable.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/ServerVariable.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/StringUtil.java b/sdk/src/main/java/com/fingerprint/v4/sdk/StringUtil.java index 91624321..4c3e01d5 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/StringUtil.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/StringUtil.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/auth/ApiKeyAuth.java b/sdk/src/main/java/com/fingerprint/v4/sdk/auth/ApiKeyAuth.java index f0845da8..8077fc4b 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/auth/ApiKeyAuth.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/auth/ApiKeyAuth.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/auth/Authentication.java b/sdk/src/main/java/com/fingerprint/v4/sdk/auth/Authentication.java index 07bf1177..eab5bed0 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/auth/Authentication.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/auth/Authentication.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/auth/HttpBasicAuth.java b/sdk/src/main/java/com/fingerprint/v4/sdk/auth/HttpBasicAuth.java index 66abf632..9d27cfdc 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/auth/HttpBasicAuth.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/auth/HttpBasicAuth.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/main/java/com/fingerprint/v4/sdk/auth/HttpBearerAuth.java b/sdk/src/main/java/com/fingerprint/v4/sdk/auth/HttpBearerAuth.java index 5cce4f59..8778dbc6 100644 --- a/sdk/src/main/java/com/fingerprint/v4/sdk/auth/HttpBearerAuth.java +++ b/sdk/src/main/java/com/fingerprint/v4/sdk/auth/HttpBearerAuth.java @@ -1,6 +1,6 @@ /* * Server API - * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. + * Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device. The API also supports collection of Automation Intelligence for requests to your server in edge, pre-origin, or middleware contexts. * * The version of the OpenAPI document: 4 * Contact: support@fingerprint.com diff --git a/sdk/src/test/resources/mocks/errors/400_edge_ip_required.json b/sdk/src/test/resources/mocks/errors/400_edge_ip_required.json new file mode 100644 index 00000000..8f055f8f --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/400_edge_ip_required.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "request_cannot_be_parsed", + "message": "at least one of ipv4_address or ipv6_address is required" + } +} diff --git a/sdk/src/test/resources/mocks/errors/400_edge_unknown_field.json b/sdk/src/test/resources/mocks/errors/400_edge_unknown_field.json new file mode 100644 index 00000000..c0a153ef --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/400_edge_unknown_field.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "request_cannot_be_parsed", + "message": "request body contains an unknown field \"unknown\"" + } +} \ No newline at end of file diff --git a/sdk/src/test/resources/mocks/errors/400_request_read_timeout.json b/sdk/src/test/resources/mocks/errors/400_request_read_timeout.json new file mode 100644 index 00000000..89daaca8 --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/400_request_read_timeout.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "request_read_timeout", + "message": "request read timeout" + } +} \ No newline at end of file diff --git a/sdk/src/test/resources/mocks/errors/413_payload_too_large.json b/sdk/src/test/resources/mocks/errors/413_payload_too_large.json new file mode 100644 index 00000000..96fec77e --- /dev/null +++ b/sdk/src/test/resources/mocks/errors/413_payload_too_large.json @@ -0,0 +1,6 @@ +{ + "error": { + "code": "request_cannot_be_parsed", + "message": "payload too large" + } +} diff --git a/sdk/src/test/resources/mocks/events/get_event_200.json b/sdk/src/test/resources/mocks/events/get_event_200.json index ee1978a2..d2922970 100644 --- a/sdk/src/test/resources/mocks/events/get_event_200.json +++ b/sdk/src/test/resources/mocks/events/get_event_200.json @@ -7,6 +7,9 @@ "url": "https://www.example.com/login?hope{this{works[!", "ip_address": "61.127.217.15", "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ....", + "device": "Other", + "os": "Windows", + "os_version": "7", "client_referrer": "https://example.com/blog/my-article", "browser_details": { "browser_name": "Chrome", @@ -115,6 +118,7 @@ "proxy_ml_score": 0.2, "vpn": false, "vpn_confidence": "high", + "vpn_ml_score": 0.2, "vpn_origin_timezone": "Europe/Berlin", "vpn_origin_country": "unknown", "vpn_methods": { @@ -122,7 +126,8 @@ "public_vpn": false, "auxiliary_mobile": false, "os_mismatch": false, - "relay": false + "relay": false, + "ml_prediction": false }, "incognito": false, "tampering": false, diff --git a/sdk/src/test/resources/mocks/events/get_event_200_with_unknown_field.json b/sdk/src/test/resources/mocks/events/get_event_200_with_unknown_field.json new file mode 100644 index 00000000..499e6faa --- /dev/null +++ b/sdk/src/test/resources/mocks/events/get_event_200_with_unknown_field.json @@ -0,0 +1,304 @@ +{ + "linked_id": "somelinkedId", + "tags": {}, + "timestamp": 1708102555327, + "event_id": "1708102555327.NLOjmg", + "incremental_identification_status": "completed", + "url": "https://www.example.com/login?hope{this{works[!", + "ip_address": "61.127.217.15", + "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ....", + "device": "Other", + "os": "Windows", + "os_version": "7", + "client_referrer": "https://example.com/blog/my-article", + "browser_details": { + "browser_name": "Chrome", + "browser_major_version": "74", + "browser_full_version": "74.0.3729", + "os": "Windows", + "os_version": "7", + "device": "Other", + "unknown_sub_field": "unknown_sub_field_value" + }, + "identification": { + "visitor_id": "Ibk1527CUFmcnjLwIs4A9", + "confidence": { + "score": 0.97, + "version": "1.1" + }, + "visitor_found": false, + "first_seen_at": 1708102555327, + "last_seen_at": 1708102555327 + }, + "supplementary_id_high_recall": { + "visitor_id": "0jnGMkPYXX37DqVa4ZIO3f_hr", + "visitor_found": true, + "confidence": { + "score": 0, + "version": "Not Supported" + }, + "first_seen_at": 1778086556130, + "last_seen_at": 1778604975494 + }, + "proximity": { + "id": "w1aTfd4MCvl", + "precision_radius": 10, + "confidence": 0.95 + }, + "bot": "not_detected", + "root_apps": false, + "emulator": false, + "ip_info": { + "v4": { + "address": "94.142.239.124", + "geolocation": { + "accuracy_radius": 20, + "latitude": 50.05, + "longitude": 14.4, + "postal_code": "150 00", + "timezone": "Europe/Prague", + "city_name": "Prague", + "country_code": "CZ", + "country_name": "Czechia", + "continent_code": "EU", + "continent_name": "Europe", + "subdivisions": [ + { + "iso_code": "10", + "name": "Hlavni mesto Praha" + } + ] + }, + "asn": "7922", + "asn_name": "COMCAST-7922", + "asn_network": "73.136.0.0/13", + "asn_type": "isp", + "datacenter_result": true, + "datacenter_name": "DediPath" + }, + "v6": { + "address": "2001:db8:3333:4444:5555:6666:7777:8888", + "geolocation": { + "accuracy_radius": 5, + "latitude": 49.982, + "longitude": 36.2566, + "postal_code": "10112", + "timezone": "Europe/Berlin", + "city_name": "Berlin", + "country_code": "DE", + "country_name": "Germany", + "continent_code": "EU", + "continent_name": "Europe", + "subdivisions": [ + { + "iso_code": "BE", + "name": "Land Berlin" + } + ] + }, + "asn": "6805", + "asn_name": "Telefonica Germany", + "asn_network": "2a02:3100::/24", + "asn_type": "isp", + "datacenter_result": false, + "datacenter_name": "" + } + }, + "ip_blocklist": { + "email_spam": false, + "attack_source": false, + "tor_node": false + }, + "proxy": true, + "proxy_confidence": "low", + "proxy_details": { + "proxy_type": "residential", + "last_seen_at": 1708102555327, + "provider": "Massive" + }, + "proxy_ml_score": 0.2, + "vpn": false, + "vpn_confidence": "high", + "vpn_ml_score": 0.2, + "vpn_origin_timezone": "Europe/Berlin", + "vpn_origin_country": "unknown", + "vpn_methods": { + "timezone_mismatch": false, + "public_vpn": false, + "auxiliary_mobile": false, + "os_mismatch": false, + "relay": false, + "ml_prediction": false + }, + "incognito": false, + "tampering": false, + "tampering_confidence": "high", + "tampering_ml_score": 0.3231, + "tampering_details": { + "anomaly_score": 0.1955, + "anti_detect_browser": false + }, + "cloned_app": false, + "factory_reset_timestamp": 0, + "jailbroken": false, + "simulator": false, + "frida": false, + "privacy_settings": false, + "virtual_machine": false, + "virtual_machine_ml_score": 0.2, + "location_spoofing": false, + "velocity": { + "distinct_ip": { + "5_minutes": 1, + "1_hour": 1, + "24_hours": 1 + }, + "distinct_country": { + "5_minutes": 1, + "1_hour": 2, + "24_hours": 2 + }, + "events": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "ip_events": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "distinct_ip_by_linked_id": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + }, + "distinct_visitor_id_by_linked_id": { + "5_minutes": 1, + "1_hour": 5, + "24_hours": 5 + } + }, + "developer_tools": false, + "mitm_attack": false, + "sdk": { + "platform": "js", + "version": "3.11.10", + "integrations": [ + { + "name": "fingerprint-pro-react", + "version": "3.11.10", + "subintegration": { + "name": "preact", + "version": "10.21.0" + } + } + ] + }, + "replayed": false, + "high_activity_device": false, + "raw_device_attributes": { + "math": "5f030fa7d2e5f9f757bfaf81642eb1a6", + "vendor": "Google Inc.", + "plugins": [ + { + "description": "Portable Document Format", + "mimeTypes": [ + { + "suffixes": "pdf", + "type": "application/pdf" + }, + { + "suffixes": "pdf", + "type": "text/pdf" + } + ], + "name": "PDF Viewer" + } + ], + "webgl_extensions": { + "context_attributes": "6b1ed336830d2bc96442a9d76373252a", + "extension_parameters": "86a8abb36f0cb30b5946dec0c761d042", + "extensions": "57233d7b10f89fcd1ff95e3837ccd72d", + "parameters": "ea118c48e308bc4b0677118bbb3019ec", + "shader_precisions": "f223dfbcd580cf142da156d93790eb83", + "unsupported_extensions": [] + }, + "cookies_enabled": true, + "webgl_basics": { + "renderer": "WebKit WebGL", + "renderer_unmasked": "ANGLE (Apple, ANGLE Metal Renderer: Apple M4, Unspecified Version)", + "shading_language_version": "WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)", + "vendor": "WebKit", + "vendor_unmasked": "Google Inc. (Apple)", + "version": "WebGL 1.0 (OpenGL ES 2.0 Chromium)" + }, + "canvas": { + "geometry": "db3c1462576a399a03ae93d0ab9eb5c4", + "text": "70c3d3f7eb4408dc37a6bf8af1c51029", + "winding": true + }, + "hardware_concurrency": 10, + "languages": [ + [ + "en-US" + ] + ], + "color_depth": 24, + "fonts": [ + "Arial Unicode MS", + "Gill Sans", + "Helvetica Neue", + "Menlo" + ], + "indexed_db": true, + "touch_support": { + "max_touch_points": 0, + "touch_event": false, + "touch_start": false + }, + "device_memory": 8, + "oscpu": "Windows NT 6.1; Win64; x64", + "architecture": 127, + "screen_resolution": [ + 1920, + 1080 + ], + "timezone": "America/Sao_Paulo", + "emoji": { + "bottom": 32, + "font": "Times", + "height": 18, + "left": 8, + "right": 1608, + "top": 14, + "width": 1600, + "x": 8, + "y": 14 + }, + "font_preferences": { + "apple": 147.5625, + "default": 147.5625, + "min": 9.234375, + "mono": 133.0625, + "sans": 144.015625, + "serif": 147.5625, + "system": 146.09375 + }, + "platform": "MacIntel", + "local_storage": true, + "session_storage": true, + "date_time_locale": "en-US", + "audio": 124.04347745512496 + }, + "rare_device": false, + "rare_device_percentile_bucket": " Date: Wed, 1 Jul 2026 10:28:45 -0500 Subject: [PATCH 2/4] chore: remove unneeded changesets --- .changeset/add-parameter-example.md | 5 ----- .changeset/edge-response-core-fields.md | 5 ----- .changeset/edge-response-proxy-vpn-fields.md | 5 ----- .changeset/edge-tags.md | 5 ----- .changeset/preserve-schema-examples-in-sdk-schemas.md | 5 ----- .changeset/rename-search-events-inline.md | 5 ----- .changeset/swift-banks-yawn.md | 5 ----- 7 files changed, 35 deletions(-) delete mode 100644 .changeset/add-parameter-example.md delete mode 100644 .changeset/edge-response-core-fields.md delete mode 100644 .changeset/edge-response-proxy-vpn-fields.md delete mode 100644 .changeset/edge-tags.md delete mode 100644 .changeset/preserve-schema-examples-in-sdk-schemas.md delete mode 100644 .changeset/rename-search-events-inline.md delete mode 100644 .changeset/swift-banks-yawn.md diff --git a/.changeset/add-parameter-example.md b/.changeset/add-parameter-example.md deleted file mode 100644 index b5e70fa4..00000000 --- a/.changeset/add-parameter-example.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'java-sdk': patch ---- - -Add `example` properties for operation parameters to SDK schemas \ No newline at end of file diff --git a/.changeset/edge-response-core-fields.md b/.changeset/edge-response-core-fields.md deleted file mode 100644 index 6183bb10..00000000 --- a/.changeset/edge-response-core-fields.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'java-sdk': minor ---- - -Add required `event_id` and `timestamp` and optional `linked_id` and `url` to `EdgeResponse`; add `linked_id` to `EdgeRequest` diff --git a/.changeset/edge-response-proxy-vpn-fields.md b/.changeset/edge-response-proxy-vpn-fields.md deleted file mode 100644 index ffa894dd..00000000 --- a/.changeset/edge-response-proxy-vpn-fields.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'java-sdk': minor ---- - -Add `proxy`, `proxy_confidence`, `proxy_details`, `vpn`, `vpn_confidence`, and `vpn_methods` to `EdgeResponse` diff --git a/.changeset/edge-tags.md b/.changeset/edge-tags.md deleted file mode 100644 index 68185316..00000000 --- a/.changeset/edge-tags.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'java-sdk': minor ---- - -Add `tags` to `EdgeResponse` and `EdgeRequest` diff --git a/.changeset/preserve-schema-examples-in-sdk-schemas.md b/.changeset/preserve-schema-examples-in-sdk-schemas.md deleted file mode 100644 index 2c45ac48..00000000 --- a/.changeset/preserve-schema-examples-in-sdk-schemas.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'java-sdk': patch ---- - -Preserve schema-level `examples` in SDK schemas, removing only request and response body examples diff --git a/.changeset/rename-search-events-inline.md b/.changeset/rename-search-events-inline.md deleted file mode 100644 index 0e94ebe8..00000000 --- a/.changeset/rename-search-events-inline.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'java-sdk': patch ---- - -**events-search**: Rename `SearchEventsInline` to `SearchEventsSource` in server SDKs schema \ No newline at end of file diff --git a/.changeset/swift-banks-yawn.md b/.changeset/swift-banks-yawn.md deleted file mode 100644 index e7b48be4..00000000 --- a/.changeset/swift-banks-yawn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'java-sdk': minor ---- - -Added VPN mlScore and mlPrediction to v3 events and events search \ No newline at end of file From 416fff7ecd3b439d0ee53b905a3b831f6f4b8469 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:54:51 +0000 Subject: [PATCH 3/4] test: cover source param and unknown-field event deserialization --- .../v4/api/FingerprintApiTest.java | 48 ++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java b/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java index f20ece9f..cbefab78 100644 --- a/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java +++ b/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java @@ -223,6 +223,46 @@ public void getEventTest() throws ApiException { assertTrue(response.getTags().isEmpty()); } + /** + * Validates that the SDK can deserialize an event response that contains unknown fields, ignoring + * them without failing. + * + * @throws ApiException if the Api call fails + */ + @Test + public void getEventWithUnknownFieldTest() throws ApiException { + addMock( + "getEvent", + MOCK_REQUEST_ID, + invocation -> { + return mockFileToResponse( + 200, invocation, "mocks/events/get_event_200_with_unknown_field.json", Event.class); + }); + + Event response = api.getEvent(MOCK_REQUEST_ID); + assertNotNull(response); + assertNotNull(response.getIdentification()); + assertEquals("Ibk1527CUFmcnjLwIs4A9", response.getIdentification().getVisitorId()); + + assertFalse(response.getClonedApp()); + assertFalse(response.getEmulator()); + assertFalse(response.getFrida()); + assertFalse(response.getJailbroken()); + assertFalse(response.getIpBlocklist().getEmailSpam()); + assertFalse(response.getIpBlocklist().getTorNode()); + assertTrue(response.getProxy()); + assertEquals(ProxyDetails.ProxyTypeEnum.RESIDENTIAL, response.getProxyDetails().getProxyType()); + assertEquals(1708102555327L, response.getProxyDetails().getLastSeenAt()); + assertFalse(response.getTampering()); + assertFalse(response.getVpn()); + assertFalse(response.getVirtualMachine()); + assertInstanceOf(VelocityData.class, response.getVelocity().getDistinctCountry()); + assertFalse(response.getLocationSpoofing()); + assertEquals(0L, response.getFactoryResetTimestamp()); + assertNotNull(response.getTags()); + assertTrue(response.getTags().isEmpty()); + } + @Test public void updateEventLinkedIdRequest() throws ApiException { final String LINKED_ID = "myLinkedId"; @@ -482,6 +522,7 @@ public void searchEventsMaximumParamsTest() throws ApiException { final SearchEventsIncrementalIdentificationStatus INCREMENTAL_IDENTIFICATION_STATUS = SearchEventsIncrementalIdentificationStatus.PARTIALLY_COMPLETED; final Boolean SIMULATOR = true; + final List SOURCE = Arrays.asList(SearchEventsSource.EDGE); Map expectedQueryParams = new HashMap<>(); expectedQueryParams.put("limit", String.valueOf(LIMIT)); @@ -534,7 +575,8 @@ public void searchEventsMaximumParamsTest() throws ApiException { + BOT_INFO_IDENTITY.size() + BOT_INFO_CONFIDENCE.size() + BOT_INFO_PROVIDER.size() - + BOT_INFO_NAME.size(); + + BOT_INFO_NAME.size() + + SOURCE.size(); addMock( "searchEvents", @@ -553,6 +595,7 @@ public void searchEventsMaximumParamsTest() throws ApiException { assertListContainsPairs(queryParams, "bot_info_confidence", BOT_INFO_CONFIDENCE); assertListContainsPairs(queryParams, "bot_info_provider", BOT_INFO_PROVIDER); assertListContainsPairs(queryParams, "bot_info_name", BOT_INFO_NAME); + assertListContainsPairs(queryParams, "source", SOURCE); return mockFileToResponse( 200, invocation, "mocks/events/search/get_event_search_200.json", EventSearch.class); @@ -608,7 +651,8 @@ public void searchEventsMaximumParamsTest() throws ApiException { .setTorNode(TOR_NODE) .setHighRecallId(HIGH_RECALL_ID) .setIncrementalIdentificationStatus(INCREMENTAL_IDENTIFICATION_STATUS) - .setSimulator(SIMULATOR)); + .setSimulator(SIMULATOR) + .setSource(SOURCE)); List events = response.getEvents(); assertEquals(events.size(), 1); } From 99d6cb2c955d5548201b75fd7fdb6618a637aaa1 Mon Sep 17 00:00:00 2001 From: Dan McNulty Date: Wed, 1 Jul 2026 11:06:17 -0500 Subject: [PATCH 4/4] chore: simplify assertions in `getEventWithUnknownFieldTest` - Remove unnecessary assertions in `getEventWithUnknownFieldTest`. The test is confirming that an unknown field doesn't trigger unexpected errors in deserialization. --- .../fingerprint/v4/api/FingerprintApiTest.java | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java b/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java index cbefab78..0a2f1f3b 100644 --- a/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java +++ b/sdk/src/test/java/com/fingerprint/v4/api/FingerprintApiTest.java @@ -243,24 +243,6 @@ public void getEventWithUnknownFieldTest() throws ApiException { assertNotNull(response); assertNotNull(response.getIdentification()); assertEquals("Ibk1527CUFmcnjLwIs4A9", response.getIdentification().getVisitorId()); - - assertFalse(response.getClonedApp()); - assertFalse(response.getEmulator()); - assertFalse(response.getFrida()); - assertFalse(response.getJailbroken()); - assertFalse(response.getIpBlocklist().getEmailSpam()); - assertFalse(response.getIpBlocklist().getTorNode()); - assertTrue(response.getProxy()); - assertEquals(ProxyDetails.ProxyTypeEnum.RESIDENTIAL, response.getProxyDetails().getProxyType()); - assertEquals(1708102555327L, response.getProxyDetails().getLastSeenAt()); - assertFalse(response.getTampering()); - assertFalse(response.getVpn()); - assertFalse(response.getVirtualMachine()); - assertInstanceOf(VelocityData.class, response.getVelocity().getDistinctCountry()); - assertFalse(response.getLocationSpoofing()); - assertEquals(0L, response.getFactoryResetTimestamp()); - assertNotNull(response.getTags()); - assertTrue(response.getTags().isEmpty()); } @Test