Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/add-labels-smart-signal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"fingerprint-pro-server-api-php-sdk": minor
---

Add the Labels Smart Signal. The `Products` response now exposes a `labels` field (`ProductLabels`) whose `data` is an array of label predictions (`label`, `prediction`, `mlScore`).
5 changes: 5 additions & 0 deletions .changeset/add-ml-smart-signals.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"fingerprint-pro-server-api-php-sdk": minor
---

Add machine learning-based Smart Signals from the Server API schema: `mlScore` on the `VPN` and `Proxy` results (and their webhook counterparts), and `mlPrediction` on `VPNMethods`. These signals are in beta and only available to select customers.
5 changes: 5 additions & 0 deletions .changeset/add-unknown-proxy-type.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"fingerprint-pro-server-api-php-sdk": minor
---

Add the `unknown` value to the `ProxyDetails` `proxyType` field.
2 changes: 1 addition & 1 deletion .schema-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v3.1.0
v3.5.2
Comment thread
erayaydin marked this conversation as resolved.
4 changes: 4 additions & 0 deletions .swagger-codegen-ignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ src/docs/Model/Tag.md
src/docs/Model/WebhookRawDeviceAttributes.md
src/docs/Model/GeolocationSubdivisions.md
src/docs/Model/GeolocationSubdivision.md
src/docs/Model/Labels.md
src/docs/Model/LabelsInner.md

src/Model/RawDeviceAttribute.php
src/Model/RawDeviceAttributeError.php
Expand All @@ -23,3 +25,5 @@ src/Model/Tag.php
src/Model/WebhookRawDeviceAttributes.php
src/Model/GeolocationSubdivisions.php
src/Model/GeolocationSubdivision.php
src/Model/Labels.php
src/Model/LabelsInner.php
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,7 @@ Class | Method | HTTP request | Description
- [ProductIdentification](docs/Model/ProductIdentification.md)
- [ProductIncognito](docs/Model/ProductIncognito.md)
- [ProductJailbroken](docs/Model/ProductJailbroken.md)
- [ProductLabels](docs/Model/ProductLabels.md)
- [ProductLocationSpoofing](docs/Model/ProductLocationSpoofing.md)
- [ProductMitMAttack](docs/Model/ProductMitMAttack.md)
- [ProductPrivacySettings](docs/Model/ProductPrivacySettings.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/Model/DeveloperTools.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**result** | **bool** | `true` if the browser has DevTools open (Chrome, Firefox) or the Android device has Developer Tools enabled, `false` otherwise. |
**result** | **bool** | `true` if the browser has DevTools open (Chrome, Firefox) or the Android/iOS device has Developer Tools enabled, `false` otherwise. |

[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)

10 changes: 10 additions & 0 deletions docs/Model/ProductLabels.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# ProductLabels

## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**data** | array | | [optional]
**error** | [**\Fingerprint\ServerAPI\Model\Error**](Error.md) | | [optional]

[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)

1 change: 1 addition & 0 deletions docs/Model/Products.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Name | Type | Description | Notes
**mitm_attack** | [**\Fingerprint\ServerAPI\Model\ProductMitMAttack**](ProductMitMAttack.md) | | [optional]
**rare_device** | [**\Fingerprint\ServerAPI\Model\ProductRareDevice**](ProductRareDevice.md) | | [optional]
**proximity** | [**\Fingerprint\ServerAPI\Model\ProductProximity**](ProductProximity.md) | | [optional]
**labels** | [**\Fingerprint\ServerAPI\Model\ProductLabels**](ProductLabels.md) | | [optional]

[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)

1 change: 1 addition & 0 deletions docs/Model/Proxy.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Name | Type | Description | Notes
**result** | **bool** | IP address was used by a public proxy provider or belonged to a known recent residential proxy |
**confidence** | [**\Fingerprint\ServerAPI\Model\ProxyConfidence**](ProxyConfidence.md) | |
**details** | [**\Fingerprint\ServerAPI\Model\ProxyDetails**](ProxyDetails.md) | | [optional]
**ml_score** | **double** | Machine learning-based proxy 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 `proxy` 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]

[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)

2 changes: 1 addition & 1 deletion docs/Model/ProxyDetails.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Proxy detection details (present if proxy is detected)
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**proxy_type** | **string** | 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** | **string** | Residential proxies use real user IP addresses to appear as legitimate traffic, while data center proxies are public proxies hosted in data centers. `unknown` is reported when a proxy is detected solely by the ML model and the IP sources did not determine a specific type. |
**last_seen_at** | [**\DateTime**](\DateTime.md) | ISO 8601 formatted timestamp in UTC with hourly resolution of when this IP was last seen as a proxy when available. | [optional]

[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
Expand Down
1 change: 1 addition & 0 deletions docs/Model/VPN.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**result** | **bool** | VPN or other anonymizing service has been used when sending the request. |
**confidence** | [**\Fingerprint\ServerAPI\Model\VPNConfidence**](VPNConfidence.md) | |
**ml_score** | **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]
**origin_timezone** | **string** | Local timezone which is used in timezoneMismatch method. |
**origin_country** | **string** | Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown). |
**methods** | [**\Fingerprint\ServerAPI\Model\VPNMethods**](VPNMethods.md) | |
Expand Down
1 change: 1 addition & 0 deletions docs/Model/VPNMethods.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Name | Type | Description | Notes
**auxiliary_mobile** | **bool** | This method applies to mobile devices only. Indicates the result of additional methods used to detect a VPN in mobile devices. |
**os_mismatch** | **bool** | The browser runs on a different operating system than the operating system inferred from the request network signature. |
**relay** | **bool** | 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** | **bool** | `true` if the request came from a device running a VPN, `false` otherwise. | [optional]

[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)

2 changes: 1 addition & 1 deletion docs/Model/WebhookDeveloperTools.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**result** | **bool** | `true` if the browser has DevTools open (Chrome, Firefox) or the Android device has Developer Tools enabled, `false` otherwise. | [optional]
**result** | **bool** | `true` if the browser has DevTools open (Chrome, Firefox) or the Android/iOS device has Developer Tools enabled, `false` otherwise. | [optional]

[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)

1 change: 1 addition & 0 deletions docs/Model/WebhookProxy.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Name | Type | Description | Notes
**result** | **bool** | IP address was used by a public proxy provider or belonged to a known recent residential proxy | [optional]
**confidence** | [**\Fingerprint\ServerAPI\Model\ProxyConfidence**](ProxyConfidence.md) | | [optional]
**details** | [**\Fingerprint\ServerAPI\Model\ProxyDetails**](ProxyDetails.md) | | [optional]
**ml_score** | **double** | Machine learning-based proxy 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 `proxy` 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]

[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)

1 change: 1 addition & 0 deletions docs/Model/WebhookVPN.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**result** | **bool** | VPN or other anonymizing service has been used when sending the request. | [optional]
**confidence** | [**\Fingerprint\ServerAPI\Model\VPNConfidence**](VPNConfidence.md) | | [optional]
**ml_score** | **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]
**origin_timezone** | **string** | Local timezone which is used in timezoneMismatch method. | [optional]
**origin_country** | **string** | Country of the request (only for Android SDK version >= 2.4.0, ISO 3166 format or unknown). | [optional]
**methods** | [**\Fingerprint\ServerAPI\Model\VPNMethods**](VPNMethods.md) | | [optional]
Expand Down
99 changes: 94 additions & 5 deletions res/fingerprint-server-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1835,6 +1835,11 @@ components:

This field allows you to differentiate VPN users and relay service
users in your fraud prevention logic.
mlPrediction:
type: boolean
description: >
`true` if the request came from a device running a VPN, `false`
otherwise.
deprecated: true
VPN:
type: object
Expand All @@ -1853,6 +1858,18 @@ components:
request.
confidence:
$ref: '#/components/schemas/VPNConfidence'
mlScore:
type: number
format: double
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/).
originTimezone:
type: string
description: Local timezone which is used in timezoneMismatch method.
Expand Down Expand Up @@ -1897,11 +1914,13 @@ components:
enum:
- residential
- data_center
- unknown
description: >
Residential proxies use real user IP addresses to appear as
legitimate traffic,

while data center proxies are public proxies hosted in data centers
legitimate traffic, while data center proxies are public proxies
hosted in data centers. `unknown` is reported when a proxy is
detected solely by the ML model and the IP sources did not determine
a specific type.
lastSeenAt:
type: string
format: date-time
Expand All @@ -1926,6 +1945,18 @@ components:
$ref: '#/components/schemas/ProxyConfidence'
details:
$ref: '#/components/schemas/ProxyDetails'
mlScore:
type: number
format: double
minimum: 0
maximum: 1
description: >
Machine learning-based proxy 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 `proxy` 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/).
deprecated: true
ProductProxy:
type: object
Expand Down Expand Up @@ -2440,7 +2471,7 @@ components:
type: boolean
description: >
`true` if the browser has DevTools open (Chrome, Firefox) or the
Android device has Developer Tools enabled, `false` otherwise.
Android/iOS device has Developer Tools enabled, `false` otherwise.
deprecated: true
ProductDeveloperTools:
type: object
Expand Down Expand Up @@ -2478,6 +2509,38 @@ components:
error:
$ref: '#/components/schemas/Error'
deprecated: true
Labels:
type: array
items:
type: object
additionalProperties: false
properties:
label:
type: string
prediction:
type: boolean
mlScore:
type: number
format: double
minimum: 0
maximum: 1
description: >
Each label returns a prediction (true or false) for a specific use case
(label field) based on a machine learning score. The machine learning
score is determined by a model trained on customer data for that use
case. This field is in the beta phase and only available to select
customers. If you are interested, please [contact our support
team](https://fingerprint.com/support/).
deprecated: true
ProductLabels:
type: object
additionalProperties: false
properties:
data:
$ref: '#/components/schemas/Labels'
error:
$ref: '#/components/schemas/Error'
deprecated: true
Proximity:
type: object
description: >
Expand Down Expand Up @@ -2589,6 +2652,8 @@ components:
$ref: '#/components/schemas/ProductRareDevice'
proximity:
$ref: '#/components/schemas/ProductProximity'
labels:
$ref: '#/components/schemas/ProductLabels'
deprecated: true
EventsGetResponse:
type: object
Expand Down Expand Up @@ -2840,6 +2905,18 @@ components:
request.
confidence:
$ref: '#/components/schemas/VPNConfidence'
mlScore:
type: number
format: double
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/).
originTimezone:
type: string
description: Local timezone which is used in timezoneMismatch method.
Expand All @@ -2864,6 +2941,18 @@ components:
$ref: '#/components/schemas/ProxyConfidence'
details:
$ref: '#/components/schemas/ProxyDetails'
mlScore:
type: number
format: double
minimum: 0
maximum: 1
description: >
Machine learning-based proxy 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 `proxy` 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/).
deprecated: true
WebhookTampering:
type: object
Expand Down Expand Up @@ -3141,7 +3230,7 @@ components:
type: boolean
description: >
`true` if the browser has DevTools open (Chrome, Firefox) or the
Android device has Developer Tools enabled, `false` otherwise.
Android/iOS device has Developer Tools enabled, `false` otherwise.
deprecated: true
WebhookMitMAttack:
type: object
Expand Down
4 changes: 3 additions & 1 deletion scripts/generate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ docker run --rm -u "$(id -u):$(id -g)" -v "${PWD}:/local" -w /local \
-i ./res/fingerprint-server-api.yaml \
-o ./ \
-c ./config.json \
--type-mapping RawDeviceAttributes=array,WebhookRawDeviceAttributes=array,Tag=array,GeolocationSubdivisions=array
--type-mapping RawDeviceAttributes=array,WebhookRawDeviceAttributes=array,Tag=array,GeolocationSubdivisions=array,Labels=array

# Add `@deprecated` to the `SearchEventsResponseEvents`
sed_in_place \
Expand Down Expand Up @@ -105,6 +105,8 @@ patterns=(
'\[Tag\](docs\/Model\/Tag\.md)'
'\[GeolocationSubdivisions\](docs\/Model\/GeolocationSubdivisions\.md)'
'\[GeolocationSubdivision\](docs\/Model\/GeolocationSubdivision\.md)'
'\[Labels\](docs\/Model\/Labels\.md)'
'\[LabelsInner\](docs\/Model\/LabelsInner\.md)'
)
for pattern in "${patterns[@]}"; do
sed_in_place "/$pattern/d" src/README.md
Expand Down
2 changes: 1 addition & 1 deletion src/Model/DeveloperTools.php
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ public function getResult(): bool
/**
* Sets result.
*
* @param bool $result `true` if the browser has DevTools open (Chrome, Firefox) or the Android device has Developer Tools enabled, `false` otherwise
* @param bool $result `true` if the browser has DevTools open (Chrome, Firefox) or the Android/iOS device has Developer Tools enabled, `false` otherwise
*
* @return $this
*/
Expand Down
Loading
Loading