fingerprint-pro-server-api-sdk 6.0.0.dev1__tar.gz → 7.0.0.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/PKG-INFO +130 -23
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/README.md +126 -20
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/__init__.py +26 -5
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/api/__init__.py +0 -2
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/api/fingerprint_api.py +511 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/api_client.py +73 -115
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/base_model.py +56 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/configuration.py +24 -77
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/__init__.py +22 -5
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/asn.py +9 -63
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/botd_detection_result.py +7 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/botd_result.py +19 -79
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/browser_details.py +19 -83
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/cloned_app_result.py +5 -55
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/common403_error_response.py +97 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/confidence.py +34 -58
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/data_center.py +7 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/deprecated_ip_location.py +25 -87
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/deprecated_ip_location_city.py +63 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/developer_tools_result.py +66 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/emulator_result.py +5 -55
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_common403_response.py +64 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_common429_response.py +64 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_common429_response_error.py +97 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_event404_response.py +64 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/error_event404_response_error.py +9 -61
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_update_event400_response.py +64 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_update_event400_response_error.py +99 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_update_event409_response.py +64 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_update_event409_response_error.py +97 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_visitor400_response.py +64 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_visitor400_response_error.py +97 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_visitor404_response.py +64 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_visitor404_response_error.py +97 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/error_visits403.py +5 -55
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/event_response.py +9 -59
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/event_update_request.py +117 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/factory_reset_result.py +94 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/frida_result.py +5 -55
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/high_activity_result.py +7 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/identification_error.py +7 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/incognito_result.py +5 -55
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/ip_block_list_result.py +8 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/ip_block_list_result_details.py +7 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/ip_info_result.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/ip_info_result_v4.py +14 -67
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/ip_info_result_v6.py +14 -67
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/ip_location.py +25 -87
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/ip_location_city.py +63 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/jailbroken_result.py +5 -55
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/location.py +7 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/location_spoofing_result.py +5 -55
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/privacy_settings_result.py +5 -55
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/product_error.py +7 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/products_response.py +146 -140
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/products_response_botd.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/products_response_identification.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/products_response_identification_data.py +39 -111
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/proxy_result.py +5 -55
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/raw_device_attributes_result.py +3 -51
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/remote_control_result.py +66 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/response.py +12 -67
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/response_visits.py +37 -107
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/root_apps_result.py +5 -55
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/seen_at.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_cloned_app.py +9 -59
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/signal_response_developer_tools.py +89 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_emulator.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_factory_reset.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_frida.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_high_activity.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_incognito.py +10 -60
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_ip_blocklist.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_ip_info.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_jailbroken.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_location_spoofing.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_privacy_settings.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_proxy.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_raw_device_attributes.py +10 -60
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/signal_response_remote_control.py +89 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_root_apps.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_suspect_score.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_tampering.py +10 -60
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_tor.py +9 -59
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/signal_response_velocity.py +89 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_virtual_machine.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/signal_response_vpn.py +9 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/subdivision.py +7 -59
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/suspect_score_result.py +5 -55
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/tampering_result.py +7 -59
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/too_many_requests_response.py +74 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/tor_result.py +5 -55
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/velocity_interval_result.py +118 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/velocity_intervals.py +64 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/models/velocity_result.py +146 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/virtual_machine_result.py +5 -55
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/visit.py +39 -110
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/vpn_result.py +12 -67
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/vpn_result_methods.py +41 -68
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/models/webhook_visit.py +180 -201
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/rest.py +19 -83
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk/webhook.py +30 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk.egg-info/PKG-INFO +130 -23
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk.egg-info/SOURCES.txt +27 -4
- fingerprint_pro_server_api_sdk-7.0.0.dev1/fingerprint_pro_server_api_sdk.egg-info/requires.txt +4 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/setup.cfg +1 -1
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/setup.py +4 -5
- fingerprint_pro_server_api_sdk-7.0.0.dev1/test/test_base_model.py +123 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/test/test_fingerprint_api.py +519 -0
- fingerprint_pro_server_api_sdk-7.0.0.dev1/test/test_webhook_validation.py +42 -0
- fingerprint-pro-server-api-sdk-6.0.0.dev1/fingerprint_pro_server_api_sdk/api/fingerprint_api.py +0 -265
- fingerprint-pro-server-api-sdk-6.0.0.dev1/fingerprint_pro_server_api_sdk/models/deprecated_ip_location_city.py +0 -113
- fingerprint-pro-server-api-sdk-6.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_event403_response.py +0 -113
- fingerprint-pro-server-api-sdk-6.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_event403_response_error.py +0 -149
- fingerprint-pro-server-api-sdk-6.0.0.dev1/fingerprint_pro_server_api_sdk/models/error_event404_response.py +0 -113
- fingerprint-pro-server-api-sdk-6.0.0.dev1/fingerprint_pro_server_api_sdk/models/factory_reset_result.py +0 -145
- fingerprint-pro-server-api-sdk-6.0.0.dev1/fingerprint_pro_server_api_sdk/models/ip_location_city.py +0 -113
- fingerprint-pro-server-api-sdk-6.0.0.dev1/fingerprint_pro_server_api_sdk/models/many_requests_response.py +0 -128
- fingerprint-pro-server-api-sdk-6.0.0.dev1/fingerprint_pro_server_api_sdk.egg-info/requires.txt +0 -4
- fingerprint-pro-server-api-sdk-6.0.0.dev1/test/test_fingerprint_api.py +0 -336
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/LICENSE +0 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/dummy_pool.py +0 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/extend_exception.py +0 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk/sealed.py +0 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk.egg-info/dependency_links.txt +0 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/fingerprint_pro_server_api_sdk.egg-info/top_level.txt +0 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/test/__init__.py +0 -0
- {fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/test/test_sealed.py +0 -0
{fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/PKG-INFO
RENAMED
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: fingerprint-pro-server-api-sdk
|
|
3
|
-
Version:
|
|
3
|
+
Version: 7.0.0.dev1
|
|
4
4
|
Summary: Fingerprint Pro Server API allows you to get information about visitors and about individual 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.
|
|
5
5
|
Home-page: https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk
|
|
6
6
|
Author: Fingerprint
|
|
7
7
|
Author-email: support@fingerprint.com
|
|
8
8
|
License: MIT
|
|
9
9
|
Keywords: Swagger,Fingerprint Pro Server API,browser,detection,fingerprint,identification,fingerprinting,browser-fingerprinting,browser-fingerprint,fraud-detection,fraud,audio-fingerprinting,fingerprintjs,fingerprintjs-pro,visitor-identifier
|
|
10
|
-
Platform: UNKNOWN
|
|
11
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
12
11
|
Classifier: Intended Audience :: Developers
|
|
13
12
|
Classifier: License :: OSI Approved :: MIT License
|
|
14
13
|
Classifier: Programming Language :: Python
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
16
14
|
Classifier: Programming Language :: Python :: 3.9
|
|
17
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -22,6 +20,10 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
22
20
|
Classifier: Topic :: Security
|
|
23
21
|
Description-Content-Type: text/markdown
|
|
24
22
|
License-File: LICENSE
|
|
23
|
+
Requires-Dist: certifi>=2023.7.22
|
|
24
|
+
Requires-Dist: python-dateutil>=2.5.3
|
|
25
|
+
Requires-Dist: urllib3>=1.23
|
|
26
|
+
Requires-Dist: cryptography
|
|
25
27
|
|
|
26
28
|
<p align="center">
|
|
27
29
|
<a href="https://fingerprint.com">
|
|
@@ -47,14 +49,14 @@ The Fingerprint Server Python SDK is an easy way to interact with the Fingerprin
|
|
|
47
49
|
This Python package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:
|
|
48
50
|
|
|
49
51
|
- API version: 3
|
|
50
|
-
- Package version:
|
|
52
|
+
- Package version: 7.0.0.dev1
|
|
51
53
|
- Build package: io.swagger.codegen.v3.generators.python.PythonClientCodegen
|
|
52
54
|
|
|
53
55
|
## Requirements
|
|
54
56
|
|
|
55
57
|
The following Python versions are supported:
|
|
56
58
|
|
|
57
|
-
- Python >= 3.
|
|
59
|
+
- Python >= 3.9
|
|
58
60
|
|
|
59
61
|
## Installation & Usage
|
|
60
62
|
### pip install
|
|
@@ -110,47 +112,88 @@ api_instance = fingerprint_pro_server_api_sdk.FingerprintApi(configuration)
|
|
|
110
112
|
Fetching visits using visitorId:
|
|
111
113
|
```python
|
|
112
114
|
import fingerprint_pro_server_api_sdk
|
|
113
|
-
from fingerprint_pro_server_api_sdk import Response
|
|
114
115
|
from fingerprint_pro_server_api_sdk.rest import ApiException, KnownApiException
|
|
115
116
|
|
|
116
117
|
configuration = fingerprint_pro_server_api_sdk.Configuration(api_key="SECRET_API_KEY")
|
|
117
118
|
api_instance = fingerprint_pro_server_api_sdk.FingerprintApi(configuration)
|
|
118
119
|
|
|
119
|
-
visitor_id = 'visitor_id_example' # str |
|
|
120
|
-
#request_id = 'request_id_example' # str |
|
|
121
|
-
#linked_id = 'linked_id_example' # str | Filter
|
|
122
|
-
limit = 10 # int | Limit scanned results (optional)
|
|
123
|
-
#
|
|
120
|
+
visitor_id = 'visitor_id_example' # str | Unique [visitor identifier](https://dev.fingerprint.com/docs/js-agent#visitorid) issued by Fingerprint Pro.
|
|
121
|
+
#request_id = 'request_id_example' # str | The unique event [identifier](https://dev.fingerprint.com/docs/js-agent#requestid).
|
|
122
|
+
#linked_id = 'linked_id_example' # str | Filter visits by your custom identifier. You can use [`linkedId`](https://dev.fingerprint.com/docs/js-agent#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. (optional)
|
|
123
|
+
limit = 10 # int | Limit scanned results. For performance reasons, the API first scans some number of events before filtering them. Use `limit` to specify how many events are scanned before they are filtered by `requestId` or `linkedId`. Results are always returned sorted by the timestamp (most recent first). By default, the most recent 100 visits are scanned, the maximum is 500. (optional)
|
|
124
|
+
#pagination_key = 'pagination_key_example' # str | Use `paginationKey` to get the next page of results. When more results are available (e.g., you requested 200 results using `limit` parameter, but a total of 600 results are available), the `paginationKey` top-level attribute is added to the response. The key corresponds to the `requestId` of the last returned event. In the following request, use that value in the `paginationKey` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/visitors/:visitorId?limit=200` 2. Use `response.paginationKey` to get the next page of results: `GET api-base-url/visitors/:visitorId?limit=200&paginationKey=1683900801733.Ogvu1j` Pagination happens during scanning and before filtering, so you can get less visits than the `limit` you specified with more available on the next page. When there are no more results available for scanning, the `paginationKey` attribute is not returned. (optional)
|
|
124
125
|
|
|
125
126
|
try:
|
|
126
|
-
api_response
|
|
127
|
+
api_response = api_instance.get_visits(visitor_id, limit=2)
|
|
127
128
|
print(api_response)
|
|
128
129
|
except KnownApiException as e:
|
|
129
130
|
structured_error = e.structured_error
|
|
130
131
|
print("Error: %s\n" % structured_error.error)
|
|
131
132
|
except ApiException as e:
|
|
132
|
-
print("Exception when calling
|
|
133
|
+
print("Exception when calling FingerprintApi->visitors_visitor_id_get: %s\n" % e)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Delete visits using visitorId:
|
|
137
|
+
```python
|
|
138
|
+
import fingerprint_pro_server_api_sdk
|
|
139
|
+
from fingerprint_pro_server_api_sdk.rest import ApiException, KnownApiException
|
|
140
|
+
|
|
141
|
+
configuration = fingerprint_pro_server_api_sdk.Configuration(api_key="SECRET_API_KEY")
|
|
142
|
+
api_instance = fingerprint_pro_server_api_sdk.FingerprintApi(configuration)
|
|
143
|
+
|
|
144
|
+
visitor_id = 'visitor_id_example' # str | Unique [visitor identifier](https://dev.fingerprint.com/docs/js-agent#visitorid) issued by Fingerprint Pro.
|
|
145
|
+
|
|
146
|
+
try:
|
|
147
|
+
api_instance.delete_visitor_data(visitor_id)
|
|
148
|
+
except KnownApiException as e:
|
|
149
|
+
structured_error = e.structured_error
|
|
150
|
+
print("Error: %s\n" % structured_error.error)
|
|
151
|
+
except ApiException as e:
|
|
152
|
+
print("Exception when calling FingerprintApi->delete_visitor_data: %s\n" % e)
|
|
133
153
|
```
|
|
134
154
|
|
|
135
155
|
Fetching events for requestId:
|
|
136
156
|
```python
|
|
137
157
|
import fingerprint_pro_server_api_sdk
|
|
138
|
-
from fingerprint_pro_server_api_sdk import EventResponse
|
|
139
158
|
from fingerprint_pro_server_api_sdk.rest import ApiException, KnownApiException
|
|
140
159
|
|
|
141
160
|
configuration = fingerprint_pro_server_api_sdk.Configuration(api_key="SECRET_API_KEY")
|
|
142
161
|
api_instance = fingerprint_pro_server_api_sdk.FingerprintApi(configuration)
|
|
143
162
|
|
|
144
|
-
request_id = 'request_id_example' # str
|
|
163
|
+
request_id = 'request_id_example' # str | The unique event [identifier](https://dev.fingerprint.com/docs/js-agent#requestid).
|
|
145
164
|
|
|
146
165
|
try:
|
|
147
|
-
events_response
|
|
166
|
+
events_response = api_instance.get_event(request_id)
|
|
148
167
|
|
|
149
168
|
except KnownApiException as e:
|
|
150
169
|
structured_error = e.structured_error
|
|
151
170
|
print("Error code: %s. Error message: %s\n" % (structured_error.error.code, structured_error.error.message))
|
|
152
171
|
except ApiException as e:
|
|
153
|
-
print("Exception when calling
|
|
172
|
+
print("Exception when calling FingerprintApi->get_event: %s\n" % e)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Update event for requestId:
|
|
176
|
+
```python
|
|
177
|
+
import fingerprint_pro_server_api_sdk
|
|
178
|
+
from fingerprint_pro_server_api_sdk import EventUpdateRequest
|
|
179
|
+
from fingerprint_pro_server_api_sdk.rest import ApiException, KnownApiException
|
|
180
|
+
|
|
181
|
+
configuration = fingerprint_pro_server_api_sdk.Configuration(api_key="SECRET_API_KEY")
|
|
182
|
+
api_instance = fingerprint_pro_server_api_sdk.FingerprintApi(configuration)
|
|
183
|
+
|
|
184
|
+
request_id = 'request_id_example' # str | The unique event [identifier](https://dev.fingerprint.com/docs/js-agent#requestid).
|
|
185
|
+
body = EventUpdateRequest(linked_id='foo') # EventUpdateRequest |
|
|
186
|
+
# body = EventUpdateRequest(tag={'bar': 123})
|
|
187
|
+
# body = EventUpdateRequest(suspect=True)
|
|
188
|
+
# body = EventUpdateRequest(linked_id='foo', tag={'bar': 123}, suspect=False)
|
|
189
|
+
|
|
190
|
+
try:
|
|
191
|
+
api_instance.update_event(request_id, body)
|
|
192
|
+
except KnownApiException as e:
|
|
193
|
+
structured_error = e.structured_error
|
|
194
|
+
print("Error code: %s. Error message: %s\n" % (structured_error.error.code, structured_error.error.message))
|
|
195
|
+
except ApiException as e:
|
|
196
|
+
print("Exception when calling FingerprintApi->update_event: %s\n" % e)
|
|
154
197
|
```
|
|
155
198
|
|
|
156
199
|
## Sealed results
|
|
@@ -183,14 +226,60 @@ exit(0)
|
|
|
183
226
|
```
|
|
184
227
|
To learn more, refer to example located in [sealed_results_example.py](sealed_results_example.py).
|
|
185
228
|
|
|
229
|
+
## Webhook signature validation
|
|
230
|
+
|
|
231
|
+
This SDK provides utility method for verifying the HMAC signature of the incoming webhook request.
|
|
232
|
+
```python
|
|
233
|
+
import os
|
|
234
|
+
from flask import Flask, request, jsonify
|
|
235
|
+
from fingerprint_pro_server_api_sdk import Webhook
|
|
236
|
+
|
|
237
|
+
app = Flask(__name__)
|
|
238
|
+
|
|
239
|
+
@app.route('/api/webhook', methods=['POST'])
|
|
240
|
+
def webhook_handler():
|
|
241
|
+
try:
|
|
242
|
+
# Retrieve the secret key from environment variables
|
|
243
|
+
secret = os.getenv("WEBHOOK_SIGNATURE_SECRET")
|
|
244
|
+
if not secret:
|
|
245
|
+
return jsonify({"message": "Secret key is not configured."}), 400
|
|
246
|
+
|
|
247
|
+
# Get the "fpjs-event-signature" header from the incoming request
|
|
248
|
+
header = request.headers.get('fpjs-event-signature')
|
|
249
|
+
if not header:
|
|
250
|
+
return jsonify({"message": "Missing fpjs-event-signature header."}), 400
|
|
251
|
+
|
|
252
|
+
# Read the raw body of the incoming request
|
|
253
|
+
data = request.get_data()
|
|
254
|
+
|
|
255
|
+
# Validate the webhook signature
|
|
256
|
+
is_valid = Webhook.is_valid_webhook_signature(header, data, secret)
|
|
257
|
+
if not is_valid:
|
|
258
|
+
return jsonify({"message": "Webhook signature is invalid."}), 403
|
|
259
|
+
|
|
260
|
+
# Process the webhook data here
|
|
261
|
+
return jsonify({"message": "Webhook received."}), 200
|
|
262
|
+
|
|
263
|
+
except Exception as e:
|
|
264
|
+
# Handle any unexpected errors
|
|
265
|
+
return jsonify({"error": str(e)}), 500
|
|
266
|
+
|
|
267
|
+
if __name__ == '__main__':
|
|
268
|
+
# Start the Flask application on the specified host and port
|
|
269
|
+
app.run(host='0.0.0.0', port=5000)
|
|
270
|
+
```
|
|
271
|
+
To learn more, refer to example located in [webhook_signature_example.py](webhook_signature_example.py).
|
|
272
|
+
|
|
186
273
|
## Documentation for API Endpoints
|
|
187
274
|
|
|
188
275
|
All URIs are relative to *https://api.fpjs.io*
|
|
189
276
|
|
|
190
277
|
Class | Method | HTTP request | Description
|
|
191
278
|
------------ | ------------- | ------------- | -------------
|
|
192
|
-
*FingerprintApi* | [**
|
|
193
|
-
*FingerprintApi* | [**
|
|
279
|
+
*FingerprintApi* | [**delete_visitor_data**](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/FingerprintApi.md#delete_visitor_data) | **DELETE** /visitors/{visitor_id} | Delete data by visitor ID
|
|
280
|
+
*FingerprintApi* | [**get_event**](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/FingerprintApi.md#get_event) | **GET** /events/{request_id} | Get event by request ID
|
|
281
|
+
*FingerprintApi* | [**get_visits**](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/FingerprintApi.md#get_visits) | **GET** /visitors/{visitor_id} | Get visits by visitor ID
|
|
282
|
+
*FingerprintApi* | [**update_event**](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/FingerprintApi.md#update_event) | **PUT** /events/{request_id} | Update an event with a given request ID
|
|
194
283
|
|
|
195
284
|
## Documentation For Models
|
|
196
285
|
|
|
@@ -199,17 +288,29 @@ Class | Method | HTTP request | Description
|
|
|
199
288
|
- [BotdResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/BotdResult.md)
|
|
200
289
|
- [BrowserDetails](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/BrowserDetails.md)
|
|
201
290
|
- [ClonedAppResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ClonedAppResult.md)
|
|
291
|
+
- [Common403ErrorResponse](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/Common403ErrorResponse.md)
|
|
202
292
|
- [Confidence](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/Confidence.md)
|
|
203
293
|
- [DataCenter](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/DataCenter.md)
|
|
204
294
|
- [DeprecatedIPLocation](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/DeprecatedIPLocation.md)
|
|
205
295
|
- [DeprecatedIPLocationCity](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/DeprecatedIPLocationCity.md)
|
|
296
|
+
- [DeveloperToolsResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/DeveloperToolsResult.md)
|
|
206
297
|
- [EmulatorResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/EmulatorResult.md)
|
|
207
|
-
- [
|
|
208
|
-
- [
|
|
298
|
+
- [ErrorCommon403Response](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorCommon403Response.md)
|
|
299
|
+
- [ErrorCommon429Response](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorCommon429Response.md)
|
|
300
|
+
- [ErrorCommon429ResponseError](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorCommon429ResponseError.md)
|
|
209
301
|
- [ErrorEvent404Response](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorEvent404Response.md)
|
|
210
302
|
- [ErrorEvent404ResponseError](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorEvent404ResponseError.md)
|
|
303
|
+
- [ErrorUpdateEvent400Response](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorUpdateEvent400Response.md)
|
|
304
|
+
- [ErrorUpdateEvent400ResponseError](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorUpdateEvent400ResponseError.md)
|
|
305
|
+
- [ErrorUpdateEvent409Response](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorUpdateEvent409Response.md)
|
|
306
|
+
- [ErrorUpdateEvent409ResponseError](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorUpdateEvent409ResponseError.md)
|
|
307
|
+
- [ErrorVisitor400Response](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorVisitor400Response.md)
|
|
308
|
+
- [ErrorVisitor400ResponseError](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorVisitor400ResponseError.md)
|
|
309
|
+
- [ErrorVisitor404Response](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorVisitor404Response.md)
|
|
310
|
+
- [ErrorVisitor404ResponseError](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorVisitor404ResponseError.md)
|
|
211
311
|
- [ErrorVisits403](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ErrorVisits403.md)
|
|
212
312
|
- [EventResponse](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/EventResponse.md)
|
|
313
|
+
- [EventUpdateRequest](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/EventUpdateRequest.md)
|
|
213
314
|
- [FactoryResetResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/FactoryResetResult.md)
|
|
214
315
|
- [FridaResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/FridaResult.md)
|
|
215
316
|
- [HighActivityResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/HighActivityResult.md)
|
|
@@ -225,7 +326,6 @@ Class | Method | HTTP request | Description
|
|
|
225
326
|
- [JailbrokenResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/JailbrokenResult.md)
|
|
226
327
|
- [Location](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/Location.md)
|
|
227
328
|
- [LocationSpoofingResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/LocationSpoofingResult.md)
|
|
228
|
-
- [ManyRequestsResponse](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ManyRequestsResponse.md)
|
|
229
329
|
- [PrivacySettingsResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/PrivacySettingsResult.md)
|
|
230
330
|
- [ProductError](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ProductError.md)
|
|
231
331
|
- [ProductsResponse](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ProductsResponse.md)
|
|
@@ -234,11 +334,13 @@ Class | Method | HTTP request | Description
|
|
|
234
334
|
- [ProductsResponseIdentificationData](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ProductsResponseIdentificationData.md)
|
|
235
335
|
- [ProxyResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ProxyResult.md)
|
|
236
336
|
- [RawDeviceAttributesResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/RawDeviceAttributesResult.md)
|
|
337
|
+
- [RemoteControlResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/RemoteControlResult.md)
|
|
237
338
|
- [Response](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/Response.md)
|
|
238
339
|
- [ResponseVisits](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/ResponseVisits.md)
|
|
239
340
|
- [RootAppsResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/RootAppsResult.md)
|
|
240
341
|
- [SeenAt](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SeenAt.md)
|
|
241
342
|
- [SignalResponseClonedApp](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseClonedApp.md)
|
|
343
|
+
- [SignalResponseDeveloperTools](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseDeveloperTools.md)
|
|
242
344
|
- [SignalResponseEmulator](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseEmulator.md)
|
|
243
345
|
- [SignalResponseFactoryReset](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseFactoryReset.md)
|
|
244
346
|
- [SignalResponseFrida](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseFrida.md)
|
|
@@ -251,16 +353,22 @@ Class | Method | HTTP request | Description
|
|
|
251
353
|
- [SignalResponsePrivacySettings](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponsePrivacySettings.md)
|
|
252
354
|
- [SignalResponseProxy](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseProxy.md)
|
|
253
355
|
- [SignalResponseRawDeviceAttributes](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseRawDeviceAttributes.md)
|
|
356
|
+
- [SignalResponseRemoteControl](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseRemoteControl.md)
|
|
254
357
|
- [SignalResponseRootApps](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseRootApps.md)
|
|
255
358
|
- [SignalResponseSuspectScore](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseSuspectScore.md)
|
|
256
359
|
- [SignalResponseTampering](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseTampering.md)
|
|
257
360
|
- [SignalResponseTor](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseTor.md)
|
|
361
|
+
- [SignalResponseVelocity](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseVelocity.md)
|
|
258
362
|
- [SignalResponseVirtualMachine](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseVirtualMachine.md)
|
|
259
363
|
- [SignalResponseVpn](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SignalResponseVpn.md)
|
|
260
364
|
- [Subdivision](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/Subdivision.md)
|
|
261
365
|
- [SuspectScoreResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/SuspectScoreResult.md)
|
|
262
366
|
- [TamperingResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/TamperingResult.md)
|
|
367
|
+
- [TooManyRequestsResponse](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/TooManyRequestsResponse.md)
|
|
263
368
|
- [TorResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/TorResult.md)
|
|
369
|
+
- [VelocityIntervalResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/VelocityIntervalResult.md)
|
|
370
|
+
- [VelocityIntervals](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/VelocityIntervals.md)
|
|
371
|
+
- [VelocityResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/VelocityResult.md)
|
|
264
372
|
- [VirtualMachineResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/VirtualMachineResult.md)
|
|
265
373
|
- [Visit](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/Visit.md)
|
|
266
374
|
- [VpnResult](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/docs/VpnResult.md)
|
|
@@ -296,4 +404,3 @@ If you need private support, you can email us at [oss-support@fingerprint.com](m
|
|
|
296
404
|
## License
|
|
297
405
|
|
|
298
406
|
This project is licensed under the [MIT License](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/LICENSE).
|
|
299
|
-
|
{fingerprint-pro-server-api-sdk-6.0.0.dev1 → fingerprint_pro_server_api_sdk-7.0.0.dev1}/README.md
RENAMED
|
@@ -26,14 +26,14 @@ The Fingerprint Server Python SDK is an easy way to interact with the Fingerprin
|
|
|
26
26
|
This Python package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:
|
|
27
27
|
|
|
28
28
|
- API version: 3
|
|
29
|
-
- Package version:
|
|
29
|
+
- Package version: 7.0.0.dev1
|
|
30
30
|
- Build package: io.swagger.codegen.v3.generators.python.PythonClientCodegen
|
|
31
31
|
|
|
32
32
|
## Requirements
|
|
33
33
|
|
|
34
34
|
The following Python versions are supported:
|
|
35
35
|
|
|
36
|
-
- Python >= 3.
|
|
36
|
+
- Python >= 3.9
|
|
37
37
|
|
|
38
38
|
## Installation & Usage
|
|
39
39
|
### pip install
|
|
@@ -89,47 +89,88 @@ api_instance = fingerprint_pro_server_api_sdk.FingerprintApi(configuration)
|
|
|
89
89
|
Fetching visits using visitorId:
|
|
90
90
|
```python
|
|
91
91
|
import fingerprint_pro_server_api_sdk
|
|
92
|
-
from fingerprint_pro_server_api_sdk import Response
|
|
93
92
|
from fingerprint_pro_server_api_sdk.rest import ApiException, KnownApiException
|
|
94
93
|
|
|
95
94
|
configuration = fingerprint_pro_server_api_sdk.Configuration(api_key="SECRET_API_KEY")
|
|
96
95
|
api_instance = fingerprint_pro_server_api_sdk.FingerprintApi(configuration)
|
|
97
96
|
|
|
98
|
-
visitor_id = 'visitor_id_example' # str |
|
|
99
|
-
#request_id = 'request_id_example' # str |
|
|
100
|
-
#linked_id = 'linked_id_example' # str | Filter
|
|
101
|
-
limit = 10 # int | Limit scanned results (optional)
|
|
102
|
-
#
|
|
97
|
+
visitor_id = 'visitor_id_example' # str | Unique [visitor identifier](https://dev.fingerprint.com/docs/js-agent#visitorid) issued by Fingerprint Pro.
|
|
98
|
+
#request_id = 'request_id_example' # str | The unique event [identifier](https://dev.fingerprint.com/docs/js-agent#requestid).
|
|
99
|
+
#linked_id = 'linked_id_example' # str | Filter visits by your custom identifier. You can use [`linkedId`](https://dev.fingerprint.com/docs/js-agent#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. (optional)
|
|
100
|
+
limit = 10 # int | Limit scanned results. For performance reasons, the API first scans some number of events before filtering them. Use `limit` to specify how many events are scanned before they are filtered by `requestId` or `linkedId`. Results are always returned sorted by the timestamp (most recent first). By default, the most recent 100 visits are scanned, the maximum is 500. (optional)
|
|
101
|
+
#pagination_key = 'pagination_key_example' # str | Use `paginationKey` to get the next page of results. When more results are available (e.g., you requested 200 results using `limit` parameter, but a total of 600 results are available), the `paginationKey` top-level attribute is added to the response. The key corresponds to the `requestId` of the last returned event. In the following request, use that value in the `paginationKey` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/visitors/:visitorId?limit=200` 2. Use `response.paginationKey` to get the next page of results: `GET api-base-url/visitors/:visitorId?limit=200&paginationKey=1683900801733.Ogvu1j` Pagination happens during scanning and before filtering, so you can get less visits than the `limit` you specified with more available on the next page. When there are no more results available for scanning, the `paginationKey` attribute is not returned. (optional)
|
|
103
102
|
|
|
104
103
|
try:
|
|
105
|
-
api_response
|
|
104
|
+
api_response = api_instance.get_visits(visitor_id, limit=2)
|
|
106
105
|
print(api_response)
|
|
107
106
|
except KnownApiException as e:
|
|
108
107
|
structured_error = e.structured_error
|
|
109
108
|
print("Error: %s\n" % structured_error.error)
|
|
110
109
|
except ApiException as e:
|
|
111
|
-
print("Exception when calling
|
|
110
|
+
print("Exception when calling FingerprintApi->visitors_visitor_id_get: %s\n" % e)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Delete visits using visitorId:
|
|
114
|
+
```python
|
|
115
|
+
import fingerprint_pro_server_api_sdk
|
|
116
|
+
from fingerprint_pro_server_api_sdk.rest import ApiException, KnownApiException
|
|
117
|
+
|
|
118
|
+
configuration = fingerprint_pro_server_api_sdk.Configuration(api_key="SECRET_API_KEY")
|
|
119
|
+
api_instance = fingerprint_pro_server_api_sdk.FingerprintApi(configuration)
|
|
120
|
+
|
|
121
|
+
visitor_id = 'visitor_id_example' # str | Unique [visitor identifier](https://dev.fingerprint.com/docs/js-agent#visitorid) issued by Fingerprint Pro.
|
|
122
|
+
|
|
123
|
+
try:
|
|
124
|
+
api_instance.delete_visitor_data(visitor_id)
|
|
125
|
+
except KnownApiException as e:
|
|
126
|
+
structured_error = e.structured_error
|
|
127
|
+
print("Error: %s\n" % structured_error.error)
|
|
128
|
+
except ApiException as e:
|
|
129
|
+
print("Exception when calling FingerprintApi->delete_visitor_data: %s\n" % e)
|
|
112
130
|
```
|
|
113
131
|
|
|
114
132
|
Fetching events for requestId:
|
|
115
133
|
```python
|
|
116
134
|
import fingerprint_pro_server_api_sdk
|
|
117
|
-
from fingerprint_pro_server_api_sdk import EventResponse
|
|
118
135
|
from fingerprint_pro_server_api_sdk.rest import ApiException, KnownApiException
|
|
119
136
|
|
|
120
137
|
configuration = fingerprint_pro_server_api_sdk.Configuration(api_key="SECRET_API_KEY")
|
|
121
138
|
api_instance = fingerprint_pro_server_api_sdk.FingerprintApi(configuration)
|
|
122
139
|
|
|
123
|
-
request_id = 'request_id_example' # str
|
|
140
|
+
request_id = 'request_id_example' # str | The unique event [identifier](https://dev.fingerprint.com/docs/js-agent#requestid).
|
|
124
141
|
|
|
125
142
|
try:
|
|
126
|
-
events_response
|
|
143
|
+
events_response = api_instance.get_event(request_id)
|
|
144
|
+
|
|
145
|
+
except KnownApiException as e:
|
|
146
|
+
structured_error = e.structured_error
|
|
147
|
+
print("Error code: %s. Error message: %s\n" % (structured_error.error.code, structured_error.error.message))
|
|
148
|
+
except ApiException as e:
|
|
149
|
+
print("Exception when calling FingerprintApi->get_event: %s\n" % e)
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Update event for requestId:
|
|
153
|
+
```python
|
|
154
|
+
import fingerprint_pro_server_api_sdk
|
|
155
|
+
from fingerprint_pro_server_api_sdk import EventUpdateRequest
|
|
156
|
+
from fingerprint_pro_server_api_sdk.rest import ApiException, KnownApiException
|
|
157
|
+
|
|
158
|
+
configuration = fingerprint_pro_server_api_sdk.Configuration(api_key="SECRET_API_KEY")
|
|
159
|
+
api_instance = fingerprint_pro_server_api_sdk.FingerprintApi(configuration)
|
|
160
|
+
|
|
161
|
+
request_id = 'request_id_example' # str | The unique event [identifier](https://dev.fingerprint.com/docs/js-agent#requestid).
|
|
162
|
+
body = EventUpdateRequest(linked_id='foo') # EventUpdateRequest |
|
|
163
|
+
# body = EventUpdateRequest(tag={'bar': 123})
|
|
164
|
+
# body = EventUpdateRequest(suspect=True)
|
|
165
|
+
# body = EventUpdateRequest(linked_id='foo', tag={'bar': 123}, suspect=False)
|
|
127
166
|
|
|
167
|
+
try:
|
|
168
|
+
api_instance.update_event(request_id, body)
|
|
128
169
|
except KnownApiException as e:
|
|
129
170
|
structured_error = e.structured_error
|
|
130
171
|
print("Error code: %s. Error message: %s\n" % (structured_error.error.code, structured_error.error.message))
|
|
131
172
|
except ApiException as e:
|
|
132
|
-
print("Exception when calling
|
|
173
|
+
print("Exception when calling FingerprintApi->update_event: %s\n" % e)
|
|
133
174
|
```
|
|
134
175
|
|
|
135
176
|
## Sealed results
|
|
@@ -162,14 +203,60 @@ exit(0)
|
|
|
162
203
|
```
|
|
163
204
|
To learn more, refer to example located in [sealed_results_example.py](sealed_results_example.py).
|
|
164
205
|
|
|
206
|
+
## Webhook signature validation
|
|
207
|
+
|
|
208
|
+
This SDK provides utility method for verifying the HMAC signature of the incoming webhook request.
|
|
209
|
+
```python
|
|
210
|
+
import os
|
|
211
|
+
from flask import Flask, request, jsonify
|
|
212
|
+
from fingerprint_pro_server_api_sdk import Webhook
|
|
213
|
+
|
|
214
|
+
app = Flask(__name__)
|
|
215
|
+
|
|
216
|
+
@app.route('/api/webhook', methods=['POST'])
|
|
217
|
+
def webhook_handler():
|
|
218
|
+
try:
|
|
219
|
+
# Retrieve the secret key from environment variables
|
|
220
|
+
secret = os.getenv("WEBHOOK_SIGNATURE_SECRET")
|
|
221
|
+
if not secret:
|
|
222
|
+
return jsonify({"message": "Secret key is not configured."}), 400
|
|
223
|
+
|
|
224
|
+
# Get the "fpjs-event-signature" header from the incoming request
|
|
225
|
+
header = request.headers.get('fpjs-event-signature')
|
|
226
|
+
if not header:
|
|
227
|
+
return jsonify({"message": "Missing fpjs-event-signature header."}), 400
|
|
228
|
+
|
|
229
|
+
# Read the raw body of the incoming request
|
|
230
|
+
data = request.get_data()
|
|
231
|
+
|
|
232
|
+
# Validate the webhook signature
|
|
233
|
+
is_valid = Webhook.is_valid_webhook_signature(header, data, secret)
|
|
234
|
+
if not is_valid:
|
|
235
|
+
return jsonify({"message": "Webhook signature is invalid."}), 403
|
|
236
|
+
|
|
237
|
+
# Process the webhook data here
|
|
238
|
+
return jsonify({"message": "Webhook received."}), 200
|
|
239
|
+
|
|
240
|
+
except Exception as e:
|
|
241
|
+
# Handle any unexpected errors
|
|
242
|
+
return jsonify({"error": str(e)}), 500
|
|
243
|
+
|
|
244
|
+
if __name__ == '__main__':
|
|
245
|
+
# Start the Flask application on the specified host and port
|
|
246
|
+
app.run(host='0.0.0.0', port=5000)
|
|
247
|
+
```
|
|
248
|
+
To learn more, refer to example located in [webhook_signature_example.py](webhook_signature_example.py).
|
|
249
|
+
|
|
165
250
|
## Documentation for API Endpoints
|
|
166
251
|
|
|
167
252
|
All URIs are relative to *https://api.fpjs.io*
|
|
168
253
|
|
|
169
254
|
Class | Method | HTTP request | Description
|
|
170
255
|
------------ | ------------- | ------------- | -------------
|
|
171
|
-
*FingerprintApi* | [**
|
|
172
|
-
*FingerprintApi* | [**
|
|
256
|
+
*FingerprintApi* | [**delete_visitor_data**](docs/FingerprintApi.md#delete_visitor_data) | **DELETE** /visitors/{visitor_id} | Delete data by visitor ID
|
|
257
|
+
*FingerprintApi* | [**get_event**](docs/FingerprintApi.md#get_event) | **GET** /events/{request_id} | Get event by request ID
|
|
258
|
+
*FingerprintApi* | [**get_visits**](docs/FingerprintApi.md#get_visits) | **GET** /visitors/{visitor_id} | Get visits by visitor ID
|
|
259
|
+
*FingerprintApi* | [**update_event**](docs/FingerprintApi.md#update_event) | **PUT** /events/{request_id} | Update an event with a given request ID
|
|
173
260
|
|
|
174
261
|
## Documentation For Models
|
|
175
262
|
|
|
@@ -178,17 +265,29 @@ Class | Method | HTTP request | Description
|
|
|
178
265
|
- [BotdResult](docs/BotdResult.md)
|
|
179
266
|
- [BrowserDetails](docs/BrowserDetails.md)
|
|
180
267
|
- [ClonedAppResult](docs/ClonedAppResult.md)
|
|
268
|
+
- [Common403ErrorResponse](docs/Common403ErrorResponse.md)
|
|
181
269
|
- [Confidence](docs/Confidence.md)
|
|
182
270
|
- [DataCenter](docs/DataCenter.md)
|
|
183
271
|
- [DeprecatedIPLocation](docs/DeprecatedIPLocation.md)
|
|
184
272
|
- [DeprecatedIPLocationCity](docs/DeprecatedIPLocationCity.md)
|
|
273
|
+
- [DeveloperToolsResult](docs/DeveloperToolsResult.md)
|
|
185
274
|
- [EmulatorResult](docs/EmulatorResult.md)
|
|
186
|
-
- [
|
|
187
|
-
- [
|
|
275
|
+
- [ErrorCommon403Response](docs/ErrorCommon403Response.md)
|
|
276
|
+
- [ErrorCommon429Response](docs/ErrorCommon429Response.md)
|
|
277
|
+
- [ErrorCommon429ResponseError](docs/ErrorCommon429ResponseError.md)
|
|
188
278
|
- [ErrorEvent404Response](docs/ErrorEvent404Response.md)
|
|
189
279
|
- [ErrorEvent404ResponseError](docs/ErrorEvent404ResponseError.md)
|
|
280
|
+
- [ErrorUpdateEvent400Response](docs/ErrorUpdateEvent400Response.md)
|
|
281
|
+
- [ErrorUpdateEvent400ResponseError](docs/ErrorUpdateEvent400ResponseError.md)
|
|
282
|
+
- [ErrorUpdateEvent409Response](docs/ErrorUpdateEvent409Response.md)
|
|
283
|
+
- [ErrorUpdateEvent409ResponseError](docs/ErrorUpdateEvent409ResponseError.md)
|
|
284
|
+
- [ErrorVisitor400Response](docs/ErrorVisitor400Response.md)
|
|
285
|
+
- [ErrorVisitor400ResponseError](docs/ErrorVisitor400ResponseError.md)
|
|
286
|
+
- [ErrorVisitor404Response](docs/ErrorVisitor404Response.md)
|
|
287
|
+
- [ErrorVisitor404ResponseError](docs/ErrorVisitor404ResponseError.md)
|
|
190
288
|
- [ErrorVisits403](docs/ErrorVisits403.md)
|
|
191
289
|
- [EventResponse](docs/EventResponse.md)
|
|
290
|
+
- [EventUpdateRequest](docs/EventUpdateRequest.md)
|
|
192
291
|
- [FactoryResetResult](docs/FactoryResetResult.md)
|
|
193
292
|
- [FridaResult](docs/FridaResult.md)
|
|
194
293
|
- [HighActivityResult](docs/HighActivityResult.md)
|
|
@@ -204,7 +303,6 @@ Class | Method | HTTP request | Description
|
|
|
204
303
|
- [JailbrokenResult](docs/JailbrokenResult.md)
|
|
205
304
|
- [Location](docs/Location.md)
|
|
206
305
|
- [LocationSpoofingResult](docs/LocationSpoofingResult.md)
|
|
207
|
-
- [ManyRequestsResponse](docs/ManyRequestsResponse.md)
|
|
208
306
|
- [PrivacySettingsResult](docs/PrivacySettingsResult.md)
|
|
209
307
|
- [ProductError](docs/ProductError.md)
|
|
210
308
|
- [ProductsResponse](docs/ProductsResponse.md)
|
|
@@ -213,11 +311,13 @@ Class | Method | HTTP request | Description
|
|
|
213
311
|
- [ProductsResponseIdentificationData](docs/ProductsResponseIdentificationData.md)
|
|
214
312
|
- [ProxyResult](docs/ProxyResult.md)
|
|
215
313
|
- [RawDeviceAttributesResult](docs/RawDeviceAttributesResult.md)
|
|
314
|
+
- [RemoteControlResult](docs/RemoteControlResult.md)
|
|
216
315
|
- [Response](docs/Response.md)
|
|
217
316
|
- [ResponseVisits](docs/ResponseVisits.md)
|
|
218
317
|
- [RootAppsResult](docs/RootAppsResult.md)
|
|
219
318
|
- [SeenAt](docs/SeenAt.md)
|
|
220
319
|
- [SignalResponseClonedApp](docs/SignalResponseClonedApp.md)
|
|
320
|
+
- [SignalResponseDeveloperTools](docs/SignalResponseDeveloperTools.md)
|
|
221
321
|
- [SignalResponseEmulator](docs/SignalResponseEmulator.md)
|
|
222
322
|
- [SignalResponseFactoryReset](docs/SignalResponseFactoryReset.md)
|
|
223
323
|
- [SignalResponseFrida](docs/SignalResponseFrida.md)
|
|
@@ -230,16 +330,22 @@ Class | Method | HTTP request | Description
|
|
|
230
330
|
- [SignalResponsePrivacySettings](docs/SignalResponsePrivacySettings.md)
|
|
231
331
|
- [SignalResponseProxy](docs/SignalResponseProxy.md)
|
|
232
332
|
- [SignalResponseRawDeviceAttributes](docs/SignalResponseRawDeviceAttributes.md)
|
|
333
|
+
- [SignalResponseRemoteControl](docs/SignalResponseRemoteControl.md)
|
|
233
334
|
- [SignalResponseRootApps](docs/SignalResponseRootApps.md)
|
|
234
335
|
- [SignalResponseSuspectScore](docs/SignalResponseSuspectScore.md)
|
|
235
336
|
- [SignalResponseTampering](docs/SignalResponseTampering.md)
|
|
236
337
|
- [SignalResponseTor](docs/SignalResponseTor.md)
|
|
338
|
+
- [SignalResponseVelocity](docs/SignalResponseVelocity.md)
|
|
237
339
|
- [SignalResponseVirtualMachine](docs/SignalResponseVirtualMachine.md)
|
|
238
340
|
- [SignalResponseVpn](docs/SignalResponseVpn.md)
|
|
239
341
|
- [Subdivision](docs/Subdivision.md)
|
|
240
342
|
- [SuspectScoreResult](docs/SuspectScoreResult.md)
|
|
241
343
|
- [TamperingResult](docs/TamperingResult.md)
|
|
344
|
+
- [TooManyRequestsResponse](docs/TooManyRequestsResponse.md)
|
|
242
345
|
- [TorResult](docs/TorResult.md)
|
|
346
|
+
- [VelocityIntervalResult](docs/VelocityIntervalResult.md)
|
|
347
|
+
- [VelocityIntervals](docs/VelocityIntervals.md)
|
|
348
|
+
- [VelocityResult](docs/VelocityResult.md)
|
|
243
349
|
- [VirtualMachineResult](docs/VirtualMachineResult.md)
|
|
244
350
|
- [Visit](docs/Visit.md)
|
|
245
351
|
- [VpnResult](docs/VpnResult.md)
|
|
@@ -274,4 +380,4 @@ If you need private support, you can email us at [oss-support@fingerprint.com](m
|
|
|
274
380
|
|
|
275
381
|
## License
|
|
276
382
|
|
|
277
|
-
This project is licensed under the [MIT License](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/LICENSE).
|
|
383
|
+
This project is licensed under the [MIT License](https://github.com/fingerprintjs/fingerprint-pro-server-api-python-sdk/blob/main/LICENSE).
|