feat: sync Server API v3 schema to v3.7.1 - #227
Conversation
Sync the Server API v3 OpenAPI schema to v3.7.1 and regenerate the SDK
via ./sync.sh + ./generate.sh. Updates error responses, timestamp/proxy
documentation, requires `LabelsInner.label`, documents the `reverse`
default of `false`, and documents that `GET /visitors/{visitor_id}`
returns at most one visit.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014UgqDnqUR4FrS2RarTojEt
This repo now houses both the v4 (main) and legacy v3 (api-v3) SDK packages. Without this, a v3 release marks itself as the GitHub "Latest" release and displaces the v4 release badge. The release workflow here only triggers on pushes to `api-v3`, so a plain `true` is equivalent to a branch-conditional value. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014UgqDnqUR4FrS2RarTojEt
☂️ Python Coverage
Overall Coverage
New FilesNo new covered files... Modified Files
|
There was a problem hiding this comment.
🟡 Changes recommended
Newly added HTTP error-handling branches in the generated API client are not covered by unit tests, increasing regression risk for error deserialization and exception wrapping.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR syncs the Server API v3 OpenAPI schema to v3.7.1 and regenerates the Python SDK artifacts accordingly, plus adjusts the v3 release workflow so v3 releases don’t take the GitHub “Latest” badge from v4.
Changes:
- Updated
res/fingerprint-server-api.yamlto v3.7.1, including new/clarified response codes, parameter defaults, and endpoint/schema documentation tweaks. - Regenerated the SDK code/docs, including
LabelsInner.labelbecoming required (now validated at runtime) and expanded HTTP error handling in the API client. - Updated the v3 release workflow to pass
unmarkReleaseAsLatest: true.
File summaries
| File | Description |
|---|---|
| setup.py | Updated module-level deprecation notice text in the package metadata header. |
| res/fingerprint-server-api.yaml | Synced OpenAPI schema to v3.7.1 (responses, parameter defaults, schema requirements, and descriptions). |
| fingerprint_pro_server_api_sdk/rest.py | Regenerated header/deprecation notice text to match schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_vpn.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_virtual_machine.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_velocity.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_tor.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_tampering.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_suspect_score.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_supplementary_i_ds.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_root_apps.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_remote_control.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_raw_device_attributes.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_rare_device.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_proxy.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_proximity.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_privacy_settings.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_mit_m_attack.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_location_spoofing.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_jailbroken.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_ip_info.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_ip_blocklist.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_high_activity.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_frida.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_factory_reset.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_emulator.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_developer_tools.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/webhook_cloned_app.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/vpn.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/vpn_methods.py | Regenerated model docstrings (clarified ml_prediction description formatting). |
| fingerprint_pro_server_api_sdk/models/vpn_confidence.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/visitors_get_response.py | Updated model docstring to reflect deprecated response shape and single-item visits. |
| fingerprint_pro_server_api_sdk/models/visit.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/virtual_machine.py | Regenerated model docstrings (clarified ml_score description formatting). |
| fingerprint_pro_server_api_sdk/models/velocity.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/velocity_intervals.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/velocity_data.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/tor.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/tampering.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/tag.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/suspect_score.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/supplementary_id.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/search_events_response.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/search_events_response_events.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/sdk.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/root_apps.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/remote_control.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/related_visitors_response.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/related_visitor.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/raw_device_attributes.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/raw_device_attribute.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/raw_device_attribute_error.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/rare_device.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/proxy.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/proxy_details.py | Updated proxy_type docstring to the new structured description from the schema. |
| fingerprint_pro_server_api_sdk/models/proxy_confidence.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/proximity.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/products.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_vpn.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_virtual_machine.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_velocity.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_tor.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_tampering.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_suspect_score.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_root_apps.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_remote_control.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_raw_device_attributes.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_rare_device.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_proxy.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_proximity.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_privacy_settings.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_mit_m_attack.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_location_spoofing.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_labels.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_jailbroken.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_ip_info.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_ip_blocklist.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_incognito.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_identification.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_high_activity.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_frida.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_factory_reset.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_emulator.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_developer_tools.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_cloned_app.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/product_botd.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/privacy_settings.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/mit_m_attack.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/location_spoofing.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/labels.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/labels_inner.py | Enforced label as required (setter raises on None) per updated schema. |
| fingerprint_pro_server_api_sdk/models/jailbroken.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/ip_info.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/ip_info_v6.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/ip_info_v4.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/ip_info_data_center.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/ip_info_asn.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/ip_blocklist.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/ip_blocklist_details.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/integration.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/integration_subintegration.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/incognito.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/identification.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/identification_seen_at.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/identification_confidence.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/high_activity.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/geolocation.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/geolocation_subdivisions.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/geolocation_subdivision.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/geolocation_country.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/geolocation_continent.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/geolocation_city.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/frida.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/factory_reset.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/events_update_request.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/events_get_response.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/error.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/error_response.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/error_code.py | Added RequestReadTimeout enum value per updated schema. |
| fingerprint_pro_server_api_sdk/models/emulator.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/developer_tools.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/deprecated_geolocation.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/cloned_app.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/browser_details.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/botd.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/botd_bot.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/botd_bot_result.py | Regenerated model header/docstrings to match updated schema metadata. |
| fingerprint_pro_server_api_sdk/models/init.py | Regenerated package model exports header/deprecation notice text. |
| fingerprint_pro_server_api_sdk/configuration.py | Regenerated header/deprecation notice text to match schema metadata. |
| fingerprint_pro_server_api_sdk/api/fingerprint_api.py | Updated endpoint docs and expanded error handling (429/504 etc.) to match schema. |
| fingerprint_pro_server_api_sdk/api_client.py | Regenerated header/deprecation notice text to match schema metadata. |
| fingerprint_pro_server_api_sdk/init.py | Regenerated package header/deprecation notice text to match schema metadata. |
| docs/VPNMethods.md | Regenerated model docs (formatting/description adjustments). |
| docs/VisitorsGetResponse.md | Regenerated model docs to reflect deprecated visitors shape and single-item visits. |
| docs/VirtualMachine.md | Regenerated model docs (formatting/description adjustments). |
| docs/ProxyDetails.md | Regenerated model docs for new structured proxy_type description. |
| docs/LabelsInner.md | Marked label as required in docs to match schema. |
| docs/FingerprintApi.md | Regenerated endpoint docs (reverse default, visitors deprecation note, expanded response codes). |
| docs/ErrorCode.md | Added RequestReadTimeout documentation entry. |
| .github/workflows/release.yml | Passed unmarkReleaseAsLatest: true to shared release workflow for v3 branch releases. |
| .changeset/update-schema-v3.7.1.md | Added changeset describing the schema sync and regenerated SDK changes. |
Review details
Suppressed comments (2)
fingerprint_pro_server_api_sdk/api/fingerprint_api.py:508
get_visits_with_http_infonow explicitly handles HTTP 404 and 504, but existing tests only cover 403/429. Please add unit tests for these new status codes to confirm the correct error model is deserialized (ErrorPlainResponse for 404, ErrorResponse for 504) and surfaced viaKnownApiException.
if e.status == 404:
error = self.api_client.deserialize(e, 'ErrorPlainResponse', True)
raise extend_exception(e, error)
if e.status == 429:
error = self.api_client.deserialize(e, 'ErrorPlainResponse', True)
raise extend_exception(e, error)
if e.status == 504:
error = self.api_client.deserialize(e, 'ErrorResponse', True)
raise extend_exception(e, error)
fingerprint_pro_server_api_sdk/api/fingerprint_api.py:802
search_events_with_http_infoadds explicit handling for HTTP 404/429/504, but the test suite currently only asserts 400/403 behavior. Adding tests for these new error branches would ensure deserialization and exception wrapping stay correct as the generated client evolves.
if e.status == 404:
error = self.api_client.deserialize(e, 'ErrorResponse', True)
raise extend_exception(e, error)
if e.status == 429:
error = self.api_client.deserialize(e, 'ErrorResponse', True)
raise extend_exception(e, error)
if e.status == 504:
error = self.api_client.deserialize(e, 'ErrorResponse', True)
raise extend_exception(e, error)
- Files reviewed: 140/142 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
f13078b to
b965884
Compare
🚀 Following releases will be created using changesets from this PR:fingerprint-pro-server-api-python-sdk@8.15.0Minor Changes
|
Syncs the v3 schema to v3.7.1 (from v3.5.2) and regenerates the SDK via
./generate.sh.LabelsInner.labelnow required — setter raisesValueErroronNoneRequestReadTimeoutadded toErrorCode;404/429/504documented on the affected endpointsreversedefaults tofalse(newest first)GET /visitors/{visitor_id}returns at most one item invisits; useGET /events/searchfor multi-event queriesProxyDetails.proxy_type,VPNMethods.ml_prediction,VirtualMachine.ml_scoreNo method signature changes; the only new runtime behavior is the
labelvalidation.Second commit adds
unmarkReleaseAsLatest: truetorelease.ymlso v3 releases stop taking the GitHub "Latest" badge from v4. Plaintruebecause this workflow only triggers onapi-v3.Checks:
./generate.shclean,pytest58 passed, re-generation produces no further diff.🤖 Generated with Claude Code
https://claude.ai/code/session_014UgqDnqUR4FrS2RarTojEt