Coverage for fingerprint_server_sdk / api / fingerprint_api.py: 68%

237 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-03-11 18:41 +0000

1""" 

2Server API 

3Fingerprint Server API allows you to get, search, and update Events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. 

4Server 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 

6The version of the OpenAPI document: 4 

7Contact: support@fingerprint.com 

8Generated by OpenAPI Generator (https://openapi-generator.tech) 

9 

10Do not edit the class manually. 

11""" # noqa: E501 

12 

13from typing import Annotated, Any, Optional, Union # noqa: UP035 

14 

15from pydantic import Field, StrictBool, StrictFloat, StrictInt, StrictStr, validate_call 

16 

17from fingerprint_server_sdk.api_client import ApiClient, RequestSerialized 

18from fingerprint_server_sdk.api_response import ApiResponse 

19from fingerprint_server_sdk.configuration import Configuration 

20from fingerprint_server_sdk.models.event import Event 

21from fingerprint_server_sdk.models.event_search import EventSearch 

22from fingerprint_server_sdk.models.event_update import EventUpdate 

23from fingerprint_server_sdk.models.search_events_bot import SearchEventsBot 

24from fingerprint_server_sdk.models.search_events_sdk_platform import SearchEventsSdkPlatform 

25from fingerprint_server_sdk.models.search_events_vpn_confidence import SearchEventsVpnConfidence 

26from fingerprint_server_sdk.rest import RESTResponseType 

27 

28# Type alias for query and form parameter values 

29ParamValue = Union[str, int, float, bool, list[str]] 

30 

31 

32class FingerprintApi: 

33 """Fingerprint Python Server SDK 

34 

35 Fingerprint (https://fingerprint.com) is a device intelligence platform offering industry-leading accuracy. Fingerprint Server API allows you to search, update, and delete identification 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. 

36 

37 :param configuration: API client configuration. 

38 """ 

39 

40 def __init__(self, configuration: Configuration) -> None: 

41 self.api_client = ApiClient(configuration) 

42 

43 @validate_call 

44 def delete_visitor_data( 

45 self, 

46 visitor_id: Annotated[ 

47 StrictStr, 

48 Field( 

49 description='The [visitor ID](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) you want to delete.' 

50 ), 

51 ], 

52 _request_timeout: Union[ 

53 None, 

54 Annotated[StrictFloat, Field(gt=0)], 

55 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

56 ] = None, 

57 _request_auth: Optional[dict[StrictStr, Any]] = None, 

58 _content_type: Optional[StrictStr] = None, 

59 _headers: Optional[dict[StrictStr, Any]] = None, 

60 ) -> None: 

61 """Delete data by visitor ID 

62 

63 Request deleting all data associated with the specified visitor ID. This API is useful for compliance with privacy regulations. ### Which data is deleted? - Browser (or device) properties - Identification requests made from this browser (or device) #### Browser (or device) properties - Represents the data that Fingerprint collected from this specific browser (or device) and everything inferred and derived from it. - Upon request to delete, this data is deleted asynchronously (typically within a few minutes) and it will no longer be used to identify this browser (or device) for your [Fingerprint Workspace](https://docs.fingerprint.com/docs/glossary#fingerprint-workspace). #### Identification requests made from this browser (or device) - Fingerprint stores the identification requests made from a browser (or device) for up to 30 (or 90) days depending on your plan. To learn more, see [Data Retention](https://docs.fingerprint.com/docs/regions#data-retention). - Upon request to delete, the identification requests that were made by this browser - Within the past 10 days are deleted within 24 hrs. - Outside of 10 days are allowed to purge as per your data retention period. ### Corollary After requesting to delete a visitor ID, - If the same browser (or device) requests to identify, it will receive a different visitor ID. - If you request [`/v4/events` API](https://docs.fingerprint.com/reference/server-api-v4-get-event) with an `event_id` that was made outside of the 10 days, you will still receive a valid response. ### Interested? Please [contact our support team](https://fingerprint.com/support/) to enable it for you. Otherwise, you will receive a 403. 

64 

65 :param visitor_id: The [visitor ID](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) you want to delete. (required) 

66 :type visitor_id: str 

67 :param _request_timeout: timeout setting for this request. If one 

68 number provided, it will be total request 

69 timeout. It can also be a pair (tuple) of 

70 (connection, read) timeouts. 

71 :type _request_timeout: int, tuple(int, int), optional 

72 :param _request_auth: set to override the auth_settings for an a single 

73 request; this effectively ignores the 

74 authentication in the spec for a single request. 

75 :type _request_auth: dict, optional 

76 :param _content_type: force content-type for the request. 

77 :type _content_type: str, Optional 

78 :param _headers: set to override the headers for a single 

79 request; this effectively ignores the headers 

80 in the spec for a single request. 

81 :type _headers: dict, optional 

82 :return: Returns the result object. 

83 """ # noqa: E501 

84 

85 _param = self._delete_visitor_data_serialize( 

86 visitor_id=visitor_id, 

87 _request_auth=_request_auth, 

88 _content_type=_content_type, 

89 _headers=_headers, 

90 ) 

91 

92 _response_types_map: dict[str, Optional[str]] = { 

93 '200': None, 

94 '400': 'ErrorResponse', 

95 '403': 'ErrorResponse', 

96 '404': 'ErrorResponse', 

97 '429': 'ErrorResponse', 

98 } 

99 

100 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

101 response_data.read() 

102 self.api_client.response_deserialize( 

103 response_data=response_data, 

104 response_types_map=_response_types_map, 

105 ) 

106 

107 @validate_call 

108 def delete_visitor_data_with_http_info( 

109 self, 

110 visitor_id: Annotated[ 

111 StrictStr, 

112 Field( 

113 description='The [visitor ID](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) you want to delete.' 

114 ), 

115 ], 

116 _request_timeout: Union[ 

117 None, 

118 Annotated[StrictFloat, Field(gt=0)], 

119 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

120 ] = None, 

121 _request_auth: Optional[dict[StrictStr, Any]] = None, 

122 _content_type: Optional[StrictStr] = None, 

123 _headers: Optional[dict[StrictStr, Any]] = None, 

124 ) -> ApiResponse[None]: 

125 """Delete data by visitor ID 

126 

127 Request deleting all data associated with the specified visitor ID. This API is useful for compliance with privacy regulations. ### Which data is deleted? - Browser (or device) properties - Identification requests made from this browser (or device) #### Browser (or device) properties - Represents the data that Fingerprint collected from this specific browser (or device) and everything inferred and derived from it. - Upon request to delete, this data is deleted asynchronously (typically within a few minutes) and it will no longer be used to identify this browser (or device) for your [Fingerprint Workspace](https://docs.fingerprint.com/docs/glossary#fingerprint-workspace). #### Identification requests made from this browser (or device) - Fingerprint stores the identification requests made from a browser (or device) for up to 30 (or 90) days depending on your plan. To learn more, see [Data Retention](https://docs.fingerprint.com/docs/regions#data-retention). - Upon request to delete, the identification requests that were made by this browser - Within the past 10 days are deleted within 24 hrs. - Outside of 10 days are allowed to purge as per your data retention period. ### Corollary After requesting to delete a visitor ID, - If the same browser (or device) requests to identify, it will receive a different visitor ID. - If you request [`/v4/events` API](https://docs.fingerprint.com/reference/server-api-v4-get-event) with an `event_id` that was made outside of the 10 days, you will still receive a valid response. ### Interested? Please [contact our support team](https://fingerprint.com/support/) to enable it for you. Otherwise, you will receive a 403. 

128 

129 :param visitor_id: The [visitor ID](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) you want to delete. (required) 

130 :type visitor_id: str 

131 :param _request_timeout: timeout setting for this request. If one 

132 number provided, it will be total request 

133 timeout. It can also be a pair (tuple) of 

134 (connection, read) timeouts. 

135 :type _request_timeout: int, tuple(int, int), optional 

136 :param _request_auth: set to override the auth_settings for an a single 

137 request; this effectively ignores the 

138 authentication in the spec for a single request. 

139 :type _request_auth: dict, optional 

140 :param _content_type: force content-type for the request. 

141 :type _content_type: str, Optional 

142 :param _headers: set to override the headers for a single 

143 request; this effectively ignores the headers 

144 in the spec for a single request. 

145 :type _headers: dict, optional 

146 :return: Returns the result object. 

147 """ # noqa: E501 

148 

149 _param = self._delete_visitor_data_serialize( 

150 visitor_id=visitor_id, 

151 _request_auth=_request_auth, 

152 _content_type=_content_type, 

153 _headers=_headers, 

154 ) 

155 

156 _response_types_map: dict[str, Optional[str]] = { 

157 '200': None, 

158 '400': 'ErrorResponse', 

159 '403': 'ErrorResponse', 

160 '404': 'ErrorResponse', 

161 '429': 'ErrorResponse', 

162 } 

163 

164 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

165 response_data.read() 

166 return self.api_client.response_deserialize( 

167 response_data=response_data, 

168 response_types_map=_response_types_map, 

169 ) 

170 

171 @validate_call 

172 def delete_visitor_data_without_preload_content( 

173 self, 

174 visitor_id: Annotated[ 

175 StrictStr, 

176 Field( 

177 description='The [visitor ID](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) you want to delete.' 

178 ), 

179 ], 

180 _request_timeout: Union[ 

181 None, 

182 Annotated[StrictFloat, Field(gt=0)], 

183 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

184 ] = None, 

185 _request_auth: Optional[dict[StrictStr, Any]] = None, 

186 _content_type: Optional[StrictStr] = None, 

187 _headers: Optional[dict[StrictStr, Any]] = None, 

188 ) -> RESTResponseType: 

189 """Delete data by visitor ID 

190 

191 Request deleting all data associated with the specified visitor ID. This API is useful for compliance with privacy regulations. ### Which data is deleted? - Browser (or device) properties - Identification requests made from this browser (or device) #### Browser (or device) properties - Represents the data that Fingerprint collected from this specific browser (or device) and everything inferred and derived from it. - Upon request to delete, this data is deleted asynchronously (typically within a few minutes) and it will no longer be used to identify this browser (or device) for your [Fingerprint Workspace](https://docs.fingerprint.com/docs/glossary#fingerprint-workspace). #### Identification requests made from this browser (or device) - Fingerprint stores the identification requests made from a browser (or device) for up to 30 (or 90) days depending on your plan. To learn more, see [Data Retention](https://docs.fingerprint.com/docs/regions#data-retention). - Upon request to delete, the identification requests that were made by this browser - Within the past 10 days are deleted within 24 hrs. - Outside of 10 days are allowed to purge as per your data retention period. ### Corollary After requesting to delete a visitor ID, - If the same browser (or device) requests to identify, it will receive a different visitor ID. - If you request [`/v4/events` API](https://docs.fingerprint.com/reference/server-api-v4-get-event) with an `event_id` that was made outside of the 10 days, you will still receive a valid response. ### Interested? Please [contact our support team](https://fingerprint.com/support/) to enable it for you. Otherwise, you will receive a 403. 

192 

193 :param visitor_id: The [visitor ID](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) you want to delete. (required) 

194 :type visitor_id: str 

195 :param _request_timeout: timeout setting for this request. If one 

196 number provided, it will be total request 

197 timeout. It can also be a pair (tuple) of 

198 (connection, read) timeouts. 

199 :type _request_timeout: int, tuple(int, int), optional 

200 :param _request_auth: set to override the auth_settings for an a single 

201 request; this effectively ignores the 

202 authentication in the spec for a single request. 

203 :type _request_auth: dict, optional 

204 :param _content_type: force content-type for the request. 

205 :type _content_type: str, Optional 

206 :param _headers: set to override the headers for a single 

207 request; this effectively ignores the headers 

208 in the spec for a single request. 

209 :type _headers: dict, optional 

210 :return: Returns the result object. 

211 """ # noqa: E501 

212 

213 _param = self._delete_visitor_data_serialize( 

214 visitor_id=visitor_id, 

215 _request_auth=_request_auth, 

216 _content_type=_content_type, 

217 _headers=_headers, 

218 ) 

219 

220 _response_types_map: dict[str, Optional[str]] = { 

221 '200': None, 

222 '400': 'ErrorResponse', 

223 '403': 'ErrorResponse', 

224 '404': 'ErrorResponse', 

225 '429': 'ErrorResponse', 

226 } 

227 

228 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

229 return response_data.response 

230 

231 def _delete_visitor_data_serialize( 

232 self, 

233 visitor_id: str, 

234 _request_auth: Optional[dict[StrictStr, Any]], 

235 _content_type: Optional[StrictStr], 

236 _headers: Optional[dict[StrictStr, Any]], 

237 ) -> RequestSerialized: 

238 

239 _collection_formats: dict[str, str] = {} 

240 

241 _path_params: dict[str, str] = {} 

242 _query_params: list[tuple[str, ParamValue]] = [] 

243 _header_params: dict[str, Optional[str]] = _headers or {} 

244 _form_params: list[tuple[str, ParamValue]] = [] 

245 _files: dict[ 

246 str, 

247 Union[str, bytes, list[str], list[bytes], tuple[str, bytes], list[tuple[str, bytes]]], 

248 ] = {} 

249 _body_params: Optional[Any] = None 

250 

251 # process the path parameters 

252 if visitor_id is not None: 

253 _path_params['visitor_id'] = visitor_id 

254 

255 # set the HTTP header `Accept` 

256 if 'Accept' not in _header_params: 

257 _header_params['Accept'] = self.api_client.select_header_accept(['application/json']) 

258 

259 # authentication setting 

260 _auth_settings: list[str] = ['bearerAuth'] 

261 

262 return self.api_client.param_serialize( 

263 method='DELETE', 

264 resource_path='/visitors/{visitor_id}', 

265 path_params=_path_params, 

266 query_params=_query_params, 

267 header_params=_header_params, 

268 body=_body_params, 

269 post_params=_form_params, 

270 files=_files, 

271 auth_settings=_auth_settings, 

272 collection_formats=_collection_formats, 

273 _request_auth=_request_auth, 

274 ) 

275 

276 @validate_call 

277 def get_event( 

278 self, 

279 event_id: Annotated[ 

280 StrictStr, 

281 Field( 

282 description='The unique [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id) of each identification request (`requestId` can be used in its place).' 

283 ), 

284 ], 

285 ruleset_id: Annotated[ 

286 Optional[StrictStr], 

287 Field( 

288 description='The ID of the ruleset to evaluate against the event, producing the action to take for this event. The resulting action is returned in the `rule_action` attribute of the response. ' 

289 ), 

290 ] = None, 

291 _request_timeout: Union[ 

292 None, 

293 Annotated[StrictFloat, Field(gt=0)], 

294 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

295 ] = None, 

296 _request_auth: Optional[dict[StrictStr, Any]] = None, 

297 _content_type: Optional[StrictStr] = None, 

298 _headers: Optional[dict[StrictStr, Any]] = None, 

299 ) -> Event: 

300 """Get an event by event ID 

301 

302 Get a detailed analysis of an individual identification event, including Smart Signals. Use `event_id` as the URL path parameter. This API method is scoped to a request, i.e. all returned information is by `event_id`. 

303 

304 :param event_id: The unique [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id) of each identification request (`requestId` can be used in its place). (required) 

305 :type event_id: str 

306 :param ruleset_id: The ID of the ruleset to evaluate against the event, producing the action to take for this event. The resulting action is returned in the `rule_action` attribute of the response. 

307 :type ruleset_id: str 

308 :param _request_timeout: timeout setting for this request. If one 

309 number provided, it will be total request 

310 timeout. It can also be a pair (tuple) of 

311 (connection, read) timeouts. 

312 :type _request_timeout: int, tuple(int, int), optional 

313 :param _request_auth: set to override the auth_settings for an a single 

314 request; this effectively ignores the 

315 authentication in the spec for a single request. 

316 :type _request_auth: dict, optional 

317 :param _content_type: force content-type for the request. 

318 :type _content_type: str, Optional 

319 :param _headers: set to override the headers for a single 

320 request; this effectively ignores the headers 

321 in the spec for a single request. 

322 :type _headers: dict, optional 

323 :return: Returns the result object. 

324 """ # noqa: E501 

325 

326 _param = self._get_event_serialize( 

327 event_id=event_id, 

328 ruleset_id=ruleset_id, 

329 _request_auth=_request_auth, 

330 _content_type=_content_type, 

331 _headers=_headers, 

332 ) 

333 

334 _response_types_map: dict[str, Optional[str]] = { 

335 '200': 'Event', 

336 '400': 'ErrorResponse', 

337 '403': 'ErrorResponse', 

338 '404': 'ErrorResponse', 

339 '429': 'ErrorResponse', 

340 '500': 'ErrorResponse', 

341 } 

342 

343 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

344 response_data.read() 

345 return self.api_client.response_deserialize( 

346 response_data=response_data, 

347 response_types_map=_response_types_map, 

348 ).data 

349 

350 @validate_call 

351 def get_event_with_http_info( 

352 self, 

353 event_id: Annotated[ 

354 StrictStr, 

355 Field( 

356 description='The unique [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id) of each identification request (`requestId` can be used in its place).' 

357 ), 

358 ], 

359 ruleset_id: Annotated[ 

360 Optional[StrictStr], 

361 Field( 

362 description='The ID of the ruleset to evaluate against the event, producing the action to take for this event. The resulting action is returned in the `rule_action` attribute of the response. ' 

363 ), 

364 ] = None, 

365 _request_timeout: Union[ 

366 None, 

367 Annotated[StrictFloat, Field(gt=0)], 

368 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

369 ] = None, 

370 _request_auth: Optional[dict[StrictStr, Any]] = None, 

371 _content_type: Optional[StrictStr] = None, 

372 _headers: Optional[dict[StrictStr, Any]] = None, 

373 ) -> ApiResponse[Event]: 

374 """Get an event by event ID 

375 

376 Get a detailed analysis of an individual identification event, including Smart Signals. Use `event_id` as the URL path parameter. This API method is scoped to a request, i.e. all returned information is by `event_id`. 

377 

378 :param event_id: The unique [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id) of each identification request (`requestId` can be used in its place). (required) 

379 :type event_id: str 

380 :param ruleset_id: The ID of the ruleset to evaluate against the event, producing the action to take for this event. The resulting action is returned in the `rule_action` attribute of the response. 

381 :type ruleset_id: str 

382 :param _request_timeout: timeout setting for this request. If one 

383 number provided, it will be total request 

384 timeout. It can also be a pair (tuple) of 

385 (connection, read) timeouts. 

386 :type _request_timeout: int, tuple(int, int), optional 

387 :param _request_auth: set to override the auth_settings for an a single 

388 request; this effectively ignores the 

389 authentication in the spec for a single request. 

390 :type _request_auth: dict, optional 

391 :param _content_type: force content-type for the request. 

392 :type _content_type: str, Optional 

393 :param _headers: set to override the headers for a single 

394 request; this effectively ignores the headers 

395 in the spec for a single request. 

396 :type _headers: dict, optional 

397 :return: Returns the result object. 

398 """ # noqa: E501 

399 

400 _param = self._get_event_serialize( 

401 event_id=event_id, 

402 ruleset_id=ruleset_id, 

403 _request_auth=_request_auth, 

404 _content_type=_content_type, 

405 _headers=_headers, 

406 ) 

407 

408 _response_types_map: dict[str, Optional[str]] = { 

409 '200': 'Event', 

410 '400': 'ErrorResponse', 

411 '403': 'ErrorResponse', 

412 '404': 'ErrorResponse', 

413 '429': 'ErrorResponse', 

414 '500': 'ErrorResponse', 

415 } 

416 

417 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

418 response_data.read() 

419 return self.api_client.response_deserialize( 

420 response_data=response_data, 

421 response_types_map=_response_types_map, 

422 ) 

423 

424 @validate_call 

425 def get_event_without_preload_content( 

426 self, 

427 event_id: Annotated[ 

428 StrictStr, 

429 Field( 

430 description='The unique [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id) of each identification request (`requestId` can be used in its place).' 

431 ), 

432 ], 

433 ruleset_id: Annotated[ 

434 Optional[StrictStr], 

435 Field( 

436 description='The ID of the ruleset to evaluate against the event, producing the action to take for this event. The resulting action is returned in the `rule_action` attribute of the response. ' 

437 ), 

438 ] = None, 

439 _request_timeout: Union[ 

440 None, 

441 Annotated[StrictFloat, Field(gt=0)], 

442 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

443 ] = None, 

444 _request_auth: Optional[dict[StrictStr, Any]] = None, 

445 _content_type: Optional[StrictStr] = None, 

446 _headers: Optional[dict[StrictStr, Any]] = None, 

447 ) -> RESTResponseType: 

448 """Get an event by event ID 

449 

450 Get a detailed analysis of an individual identification event, including Smart Signals. Use `event_id` as the URL path parameter. This API method is scoped to a request, i.e. all returned information is by `event_id`. 

451 

452 :param event_id: The unique [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id) of each identification request (`requestId` can be used in its place). (required) 

453 :type event_id: str 

454 :param ruleset_id: The ID of the ruleset to evaluate against the event, producing the action to take for this event. The resulting action is returned in the `rule_action` attribute of the response. 

455 :type ruleset_id: str 

456 :param _request_timeout: timeout setting for this request. If one 

457 number provided, it will be total request 

458 timeout. It can also be a pair (tuple) of 

459 (connection, read) timeouts. 

460 :type _request_timeout: int, tuple(int, int), optional 

461 :param _request_auth: set to override the auth_settings for an a single 

462 request; this effectively ignores the 

463 authentication in the spec for a single request. 

464 :type _request_auth: dict, optional 

465 :param _content_type: force content-type for the request. 

466 :type _content_type: str, Optional 

467 :param _headers: set to override the headers for a single 

468 request; this effectively ignores the headers 

469 in the spec for a single request. 

470 :type _headers: dict, optional 

471 :return: Returns the result object. 

472 """ # noqa: E501 

473 

474 _param = self._get_event_serialize( 

475 event_id=event_id, 

476 ruleset_id=ruleset_id, 

477 _request_auth=_request_auth, 

478 _content_type=_content_type, 

479 _headers=_headers, 

480 ) 

481 

482 _response_types_map: dict[str, Optional[str]] = { 

483 '200': 'Event', 

484 '400': 'ErrorResponse', 

485 '403': 'ErrorResponse', 

486 '404': 'ErrorResponse', 

487 '429': 'ErrorResponse', 

488 '500': 'ErrorResponse', 

489 } 

490 

491 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

492 return response_data.response 

493 

494 def _get_event_serialize( 

495 self, 

496 event_id: str, 

497 ruleset_id: Optional[str], 

498 _request_auth: Optional[dict[StrictStr, Any]], 

499 _content_type: Optional[StrictStr], 

500 _headers: Optional[dict[StrictStr, Any]], 

501 ) -> RequestSerialized: 

502 

503 _collection_formats: dict[str, str] = {} 

504 

505 _path_params: dict[str, str] = {} 

506 _query_params: list[tuple[str, ParamValue]] = [] 

507 _header_params: dict[str, Optional[str]] = _headers or {} 

508 _form_params: list[tuple[str, ParamValue]] = [] 

509 _files: dict[ 

510 str, 

511 Union[str, bytes, list[str], list[bytes], tuple[str, bytes], list[tuple[str, bytes]]], 

512 ] = {} 

513 _body_params: Optional[Any] = None 

514 

515 # process the path parameters 

516 if event_id is not None: 

517 _path_params['event_id'] = event_id 

518 

519 # process the query parameters 

520 if ruleset_id is not None: 

521 _query_params.append(('ruleset_id', ruleset_id)) 

522 

523 # set the HTTP header `Accept` 

524 if 'Accept' not in _header_params: 

525 _header_params['Accept'] = self.api_client.select_header_accept(['application/json']) 

526 

527 # authentication setting 

528 _auth_settings: list[str] = ['bearerAuth'] 

529 

530 return self.api_client.param_serialize( 

531 method='GET', 

532 resource_path='/events/{event_id}', 

533 path_params=_path_params, 

534 query_params=_query_params, 

535 header_params=_header_params, 

536 body=_body_params, 

537 post_params=_form_params, 

538 files=_files, 

539 auth_settings=_auth_settings, 

540 collection_formats=_collection_formats, 

541 _request_auth=_request_auth, 

542 ) 

543 

544 @validate_call 

545 def search_events( 

546 self, 

547 limit: Annotated[ 

548 Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], 

549 Field(description='Limit the number of events returned. '), 

550 ] = None, 

551 pagination_key: Annotated[ 

552 Optional[StrictStr], 

553 Field( 

554 description='Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` ' 

555 ), 

556 ] = None, 

557 visitor_id: Annotated[ 

558 Optional[StrictStr], 

559 Field( 

560 description='Unique [visitor identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this `visitor_id`. ' 

561 ), 

562 ] = None, 

563 bot: Annotated[ 

564 Optional[SearchEventsBot], 

565 Field( 

566 description='Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `bot` property set to a valid value are returned. Events without a `bot` Smart Signal result are left out of the response. ' 

567 ), 

568 ] = None, 

569 ip_address: Annotated[ 

570 Optional[StrictStr], 

571 Field( 

572 description='Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 ' 

573 ), 

574 ] = None, 

575 asn: Annotated[ 

576 Optional[StrictStr], 

577 Field( 

578 description="Filter events by the ASN associated with the event's IP address. This corresponds to the `ip_info.(v4|v6).asn` property in the response. " 

579 ), 

580 ] = None, 

581 linked_id: Annotated[ 

582 Optional[StrictStr], 

583 Field( 

584 description='Filter events by your custom identifier. You can use [linked Ids](https://docs.fingerprint.com/reference/js-agent-v4-get-function#linkedid) to associate identification requests with your own identifier, for example, session Id, purchase Id, or transaction Id. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. ' 

585 ), 

586 ] = None, 

587 url: Annotated[ 

588 Optional[StrictStr], 

589 Field( 

590 description='Filter events by the URL (`url` property) associated with the event. ' 

591 ), 

592 ] = None, 

593 bundle_id: Annotated[ 

594 Optional[StrictStr], 

595 Field(description='Filter events by the Bundle ID (iOS) associated with the event. '), 

596 ] = None, 

597 package_name: Annotated[ 

598 Optional[StrictStr], 

599 Field( 

600 description='Filter events by the Package Name (Android) associated with the event. ' 

601 ), 

602 ] = None, 

603 origin: Annotated[ 

604 Optional[StrictStr], 

605 Field( 

606 description='Filter events by the origin field of the event. This is applicable to web events only (e.g., https://example.com) ' 

607 ), 

608 ] = None, 

609 start: Annotated[ 

610 Optional[StrictInt], 

611 Field( 

612 description='Filter events with a timestamp greater than the start time, in Unix time (milliseconds). ' 

613 ), 

614 ] = None, 

615 end: Annotated[ 

616 Optional[StrictInt], 

617 Field( 

618 description='Filter events with a timestamp smaller than the end time, in Unix time (milliseconds). ' 

619 ), 

620 ] = None, 

621 reverse: Annotated[ 

622 Optional[StrictBool], Field(description='Sort events in reverse timestamp order. ') 

623 ] = None, 

624 suspect: Annotated[ 

625 Optional[StrictBool], 

626 Field( 

627 description='Filter events previously tagged as suspicious via the [Update API](https://docs.fingerprint.com/reference/server-api-v4-update-event). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. ' 

628 ), 

629 ] = None, 

630 vpn: Annotated[ 

631 Optional[StrictBool], 

632 Field( 

633 description='Filter events by VPN Detection result. > Note: When using this parameter, only events with the `vpn` property set to `true` or `false` are returned. Events without a `vpn` Smart Signal result are left out of the response. ' 

634 ), 

635 ] = None, 

636 virtual_machine: Annotated[ 

637 Optional[StrictBool], 

638 Field( 

639 description='Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `virtual_machine` property set to `true` or `false` are returned. Events without a `virtual_machine` Smart Signal result are left out of the response. ' 

640 ), 

641 ] = None, 

642 tampering: Annotated[ 

643 Optional[StrictBool], 

644 Field( 

645 description='Filter events by Browser Tampering Detection result. > Note: When using this parameter, only events with the `tampering.result` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. ' 

646 ), 

647 ] = None, 

648 anti_detect_browser: Annotated[ 

649 Optional[StrictBool], 

650 Field( 

651 description='Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `tampering.anti_detect_browser` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. ' 

652 ), 

653 ] = None, 

654 incognito: Annotated[ 

655 Optional[StrictBool], 

656 Field( 

657 description='Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `incognito` property set to `true` or `false` are returned. Events without an `incognito` Smart Signal result are left out of the response. ' 

658 ), 

659 ] = None, 

660 privacy_settings: Annotated[ 

661 Optional[StrictBool], 

662 Field( 

663 description='Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `privacy_settings` property set to `true` or `false` are returned. Events without a `privacy_settings` Smart Signal result are left out of the response. ' 

664 ), 

665 ] = None, 

666 jailbroken: Annotated[ 

667 Optional[StrictBool], 

668 Field( 

669 description='Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `jailbroken` property set to `true` or `false` are returned. Events without a `jailbroken` Smart Signal result are left out of the response. ' 

670 ), 

671 ] = None, 

672 frida: Annotated[ 

673 Optional[StrictBool], 

674 Field( 

675 description='Filter events by Frida Detection result. > Note: When using this parameter, only events with the `frida` property set to `true` or `false` are returned. Events without a `frida` Smart Signal result are left out of the response. ' 

676 ), 

677 ] = None, 

678 factory_reset: Annotated[ 

679 Optional[StrictBool], 

680 Field( 

681 description='Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with a `factory_reset` time. Events without a `factory_reset` Smart Signal result are left out of the response. ' 

682 ), 

683 ] = None, 

684 cloned_app: Annotated[ 

685 Optional[StrictBool], 

686 Field( 

687 description='Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `cloned_app` property set to `true` or `false` are returned. Events without a `cloned_app` Smart Signal result are left out of the response. ' 

688 ), 

689 ] = None, 

690 emulator: Annotated[ 

691 Optional[StrictBool], 

692 Field( 

693 description='Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `emulator` property set to `true` or `false` are returned. Events without an `emulator` Smart Signal result are left out of the response. ' 

694 ), 

695 ] = None, 

696 root_apps: Annotated[ 

697 Optional[StrictBool], 

698 Field( 

699 description='Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `root_apps` property set to `true` or `false` are returned. Events without a `root_apps` Smart Signal result are left out of the response. ' 

700 ), 

701 ] = None, 

702 vpn_confidence: Annotated[ 

703 Optional[SearchEventsVpnConfidence], 

704 Field( 

705 description='Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `vpn.confidence` property set to a valid value are returned. Events without a `vpn` Smart Signal result are left out of the response. ' 

706 ), 

707 ] = None, 

708 min_suspect_score: Annotated[ 

709 Optional[Union[StrictFloat, StrictInt]], 

710 Field( 

711 description='Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. ' 

712 ), 

713 ] = None, 

714 developer_tools: Annotated[ 

715 Optional[StrictBool], 

716 Field( 

717 description='Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `developer_tools` property set to `true` or `false` are returned. Events without a `developer_tools` Smart Signal result are left out of the response. ' 

718 ), 

719 ] = None, 

720 location_spoofing: Annotated[ 

721 Optional[StrictBool], 

722 Field( 

723 description='Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `location_spoofing` property set to `true` or `false` are returned. Events without a `location_spoofing` Smart Signal result are left out of the response. ' 

724 ), 

725 ] = None, 

726 mitm_attack: Annotated[ 

727 Optional[StrictBool], 

728 Field( 

729 description='Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `mitm_attack` property set to `true` or `false` are returned. Events without a `mitm_attack` Smart Signal result are left out of the response. ' 

730 ), 

731 ] = None, 

732 proxy: Annotated[ 

733 Optional[StrictBool], 

734 Field( 

735 description='Filter events by Proxy detection result. > Note: When using this parameter, only events with the `proxy` property set to `true` or `false` are returned. Events without a `proxy` Smart Signal result are left out of the response. ' 

736 ), 

737 ] = None, 

738 sdk_version: Annotated[ 

739 Optional[StrictStr], 

740 Field( 

741 description='Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` ' 

742 ), 

743 ] = None, 

744 sdk_platform: Annotated[ 

745 Optional[SearchEventsSdkPlatform], 

746 Field( 

747 description='Filter events by the SDK Platform associated with the identification event (`sdk.platform` property) . `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. ' 

748 ), 

749 ] = None, 

750 environment: Annotated[ 

751 Optional[list[StrictStr]], 

752 Field( 

753 description='Filter for events by providing one or more environment IDs (`environment_id` property). ' 

754 ), 

755 ] = None, 

756 proximity_id: Annotated[ 

757 Optional[StrictStr], 

758 Field( 

759 description='Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. ' 

760 ), 

761 ] = None, 

762 total_hits: Annotated[ 

763 Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], 

764 Field( 

765 description='When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. ' 

766 ), 

767 ] = None, 

768 tor_node: Annotated[ 

769 Optional[StrictBool], 

770 Field( 

771 description='Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. ' 

772 ), 

773 ] = None, 

774 _request_timeout: Union[ 

775 None, 

776 Annotated[StrictFloat, Field(gt=0)], 

777 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

778 ] = None, 

779 _request_auth: Optional[dict[StrictStr, Any]] = None, 

780 _content_type: Optional[StrictStr] = None, 

781 _headers: Optional[dict[StrictStr, Any]] = None, 

782 ) -> EventSearch: 

783 """Search events 

784 

785 ## Search The `/v4/events` endpoint provides a convenient way to search for past events based on specific parameters. Typical use cases and queries include: - Searching for events associated with a single `visitor_id` within a time range to get historical behavior of a visitor. - Searching for events associated with a single `linked_id` within a time range to get all events associated with your internal account identifier. - Excluding all bot traffic from the query (`good` and `bad` bots) If you don't provide `start` or `end` parameters, the default search range is the **last 7 days**. ### Filtering events with the `suspect` flag The `/v4/events` endpoint unlocks a powerful method for fraud protection analytics. The `suspect` flag is exposed in all events where it was previously set by the update API. You can also apply the `suspect` query parameter as a filter to find all potentially fraudulent activity that you previously marked as `suspect`. This helps identify patterns of fraudulent behavior. ### Environment scoping If you use a secret key that is scoped to an environment, you will only get events associated with the same environment. With a workspace-scoped environment, you will get events from all environments. Smart Signals not activated for your workspace or are not included in the response. 

786 

787 :param limit: Limit the number of events returned. 

788 :type limit: int 

789 :param pagination_key: Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` 

790 :type pagination_key: str 

791 :param visitor_id: Unique [visitor identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this `visitor_id`. 

792 :type visitor_id: str 

793 :param bot: Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `bot` property set to a valid value are returned. Events without a `bot` Smart Signal result are left out of the response. 

794 :type bot: SearchEventsBot 

795 :param ip_address: Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 

796 :type ip_address: str 

797 :param asn: Filter events by the ASN associated with the event's IP address. This corresponds to the `ip_info.(v4|v6).asn` property in the response. 

798 :type asn: str 

799 :param linked_id: Filter events by your custom identifier. You can use [linked Ids](https://docs.fingerprint.com/reference/js-agent-v4-get-function#linkedid) to associate identification requests with your own identifier, for example, session Id, purchase Id, or transaction Id. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. 

800 :type linked_id: str 

801 :param url: Filter events by the URL (`url` property) associated with the event. 

802 :type url: str 

803 :param bundle_id: Filter events by the Bundle ID (iOS) associated with the event. 

804 :type bundle_id: str 

805 :param package_name: Filter events by the Package Name (Android) associated with the event. 

806 :type package_name: str 

807 :param origin: Filter events by the origin field of the event. This is applicable to web events only (e.g., https://example.com) 

808 :type origin: str 

809 :param start: Filter events with a timestamp greater than the start time, in Unix time (milliseconds). 

810 :type start: int 

811 :param end: Filter events with a timestamp smaller than the end time, in Unix time (milliseconds). 

812 :type end: int 

813 :param reverse: Sort events in reverse timestamp order. 

814 :type reverse: bool 

815 :param suspect: Filter events previously tagged as suspicious via the [Update API](https://docs.fingerprint.com/reference/server-api-v4-update-event). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. 

816 :type suspect: bool 

817 :param vpn: Filter events by VPN Detection result. > Note: When using this parameter, only events with the `vpn` property set to `true` or `false` are returned. Events without a `vpn` Smart Signal result are left out of the response. 

818 :type vpn: bool 

819 :param virtual_machine: Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `virtual_machine` property set to `true` or `false` are returned. Events without a `virtual_machine` Smart Signal result are left out of the response. 

820 :type virtual_machine: bool 

821 :param tampering: Filter events by Browser Tampering Detection result. > Note: When using this parameter, only events with the `tampering.result` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. 

822 :type tampering: bool 

823 :param anti_detect_browser: Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `tampering.anti_detect_browser` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. 

824 :type anti_detect_browser: bool 

825 :param incognito: Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `incognito` property set to `true` or `false` are returned. Events without an `incognito` Smart Signal result are left out of the response. 

826 :type incognito: bool 

827 :param privacy_settings: Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `privacy_settings` property set to `true` or `false` are returned. Events without a `privacy_settings` Smart Signal result are left out of the response. 

828 :type privacy_settings: bool 

829 :param jailbroken: Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `jailbroken` property set to `true` or `false` are returned. Events without a `jailbroken` Smart Signal result are left out of the response. 

830 :type jailbroken: bool 

831 :param frida: Filter events by Frida Detection result. > Note: When using this parameter, only events with the `frida` property set to `true` or `false` are returned. Events without a `frida` Smart Signal result are left out of the response. 

832 :type frida: bool 

833 :param factory_reset: Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with a `factory_reset` time. Events without a `factory_reset` Smart Signal result are left out of the response. 

834 :type factory_reset: bool 

835 :param cloned_app: Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `cloned_app` property set to `true` or `false` are returned. Events without a `cloned_app` Smart Signal result are left out of the response. 

836 :type cloned_app: bool 

837 :param emulator: Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `emulator` property set to `true` or `false` are returned. Events without an `emulator` Smart Signal result are left out of the response. 

838 :type emulator: bool 

839 :param root_apps: Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `root_apps` property set to `true` or `false` are returned. Events without a `root_apps` Smart Signal result are left out of the response. 

840 :type root_apps: bool 

841 :param vpn_confidence: Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `vpn.confidence` property set to a valid value are returned. Events without a `vpn` Smart Signal result are left out of the response. 

842 :type vpn_confidence: SearchEventsVpnConfidence 

843 :param min_suspect_score: Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. 

844 :type min_suspect_score: float 

845 :param developer_tools: Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `developer_tools` property set to `true` or `false` are returned. Events without a `developer_tools` Smart Signal result are left out of the response. 

846 :type developer_tools: bool 

847 :param location_spoofing: Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `location_spoofing` property set to `true` or `false` are returned. Events without a `location_spoofing` Smart Signal result are left out of the response. 

848 :type location_spoofing: bool 

849 :param mitm_attack: Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `mitm_attack` property set to `true` or `false` are returned. Events without a `mitm_attack` Smart Signal result are left out of the response. 

850 :type mitm_attack: bool 

851 :param proxy: Filter events by Proxy detection result. > Note: When using this parameter, only events with the `proxy` property set to `true` or `false` are returned. Events without a `proxy` Smart Signal result are left out of the response. 

852 :type proxy: bool 

853 :param sdk_version: Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` 

854 :type sdk_version: str 

855 :param sdk_platform: Filter events by the SDK Platform associated with the identification event (`sdk.platform` property) . `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. 

856 :type sdk_platform: SearchEventsSdkPlatform 

857 :param environment: Filter for events by providing one or more environment IDs (`environment_id` property). 

858 :type environment: List[str] 

859 :param proximity_id: Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. 

860 :type proximity_id: str 

861 :param total_hits: When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. 

862 :type total_hits: int 

863 :param tor_node: Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. 

864 :type tor_node: bool 

865 :param _request_timeout: timeout setting for this request. If one 

866 number provided, it will be total request 

867 timeout. It can also be a pair (tuple) of 

868 (connection, read) timeouts. 

869 :type _request_timeout: int, tuple(int, int), optional 

870 :param _request_auth: set to override the auth_settings for an a single 

871 request; this effectively ignores the 

872 authentication in the spec for a single request. 

873 :type _request_auth: dict, optional 

874 :param _content_type: force content-type for the request. 

875 :type _content_type: str, Optional 

876 :param _headers: set to override the headers for a single 

877 request; this effectively ignores the headers 

878 in the spec for a single request. 

879 :type _headers: dict, optional 

880 :return: Returns the result object. 

881 """ # noqa: E501 

882 

883 _param = self._search_events_serialize( 

884 limit=limit, 

885 pagination_key=pagination_key, 

886 visitor_id=visitor_id, 

887 bot=bot, 

888 ip_address=ip_address, 

889 asn=asn, 

890 linked_id=linked_id, 

891 url=url, 

892 bundle_id=bundle_id, 

893 package_name=package_name, 

894 origin=origin, 

895 start=start, 

896 end=end, 

897 reverse=reverse, 

898 suspect=suspect, 

899 vpn=vpn, 

900 virtual_machine=virtual_machine, 

901 tampering=tampering, 

902 anti_detect_browser=anti_detect_browser, 

903 incognito=incognito, 

904 privacy_settings=privacy_settings, 

905 jailbroken=jailbroken, 

906 frida=frida, 

907 factory_reset=factory_reset, 

908 cloned_app=cloned_app, 

909 emulator=emulator, 

910 root_apps=root_apps, 

911 vpn_confidence=vpn_confidence, 

912 min_suspect_score=min_suspect_score, 

913 developer_tools=developer_tools, 

914 location_spoofing=location_spoofing, 

915 mitm_attack=mitm_attack, 

916 proxy=proxy, 

917 sdk_version=sdk_version, 

918 sdk_platform=sdk_platform, 

919 environment=environment, 

920 proximity_id=proximity_id, 

921 total_hits=total_hits, 

922 tor_node=tor_node, 

923 _request_auth=_request_auth, 

924 _content_type=_content_type, 

925 _headers=_headers, 

926 ) 

927 

928 _response_types_map: dict[str, Optional[str]] = { 

929 '200': 'EventSearch', 

930 '400': 'ErrorResponse', 

931 '403': 'ErrorResponse', 

932 '500': 'ErrorResponse', 

933 } 

934 

935 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

936 response_data.read() 

937 return self.api_client.response_deserialize( 

938 response_data=response_data, 

939 response_types_map=_response_types_map, 

940 ).data 

941 

942 @validate_call 

943 def search_events_with_http_info( 

944 self, 

945 limit: Annotated[ 

946 Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], 

947 Field(description='Limit the number of events returned. '), 

948 ] = None, 

949 pagination_key: Annotated[ 

950 Optional[StrictStr], 

951 Field( 

952 description='Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` ' 

953 ), 

954 ] = None, 

955 visitor_id: Annotated[ 

956 Optional[StrictStr], 

957 Field( 

958 description='Unique [visitor identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this `visitor_id`. ' 

959 ), 

960 ] = None, 

961 bot: Annotated[ 

962 Optional[SearchEventsBot], 

963 Field( 

964 description='Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `bot` property set to a valid value are returned. Events without a `bot` Smart Signal result are left out of the response. ' 

965 ), 

966 ] = None, 

967 ip_address: Annotated[ 

968 Optional[StrictStr], 

969 Field( 

970 description='Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 ' 

971 ), 

972 ] = None, 

973 asn: Annotated[ 

974 Optional[StrictStr], 

975 Field( 

976 description="Filter events by the ASN associated with the event's IP address. This corresponds to the `ip_info.(v4|v6).asn` property in the response. " 

977 ), 

978 ] = None, 

979 linked_id: Annotated[ 

980 Optional[StrictStr], 

981 Field( 

982 description='Filter events by your custom identifier. You can use [linked Ids](https://docs.fingerprint.com/reference/js-agent-v4-get-function#linkedid) to associate identification requests with your own identifier, for example, session Id, purchase Id, or transaction Id. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. ' 

983 ), 

984 ] = None, 

985 url: Annotated[ 

986 Optional[StrictStr], 

987 Field( 

988 description='Filter events by the URL (`url` property) associated with the event. ' 

989 ), 

990 ] = None, 

991 bundle_id: Annotated[ 

992 Optional[StrictStr], 

993 Field(description='Filter events by the Bundle ID (iOS) associated with the event. '), 

994 ] = None, 

995 package_name: Annotated[ 

996 Optional[StrictStr], 

997 Field( 

998 description='Filter events by the Package Name (Android) associated with the event. ' 

999 ), 

1000 ] = None, 

1001 origin: Annotated[ 

1002 Optional[StrictStr], 

1003 Field( 

1004 description='Filter events by the origin field of the event. This is applicable to web events only (e.g., https://example.com) ' 

1005 ), 

1006 ] = None, 

1007 start: Annotated[ 

1008 Optional[StrictInt], 

1009 Field( 

1010 description='Filter events with a timestamp greater than the start time, in Unix time (milliseconds). ' 

1011 ), 

1012 ] = None, 

1013 end: Annotated[ 

1014 Optional[StrictInt], 

1015 Field( 

1016 description='Filter events with a timestamp smaller than the end time, in Unix time (milliseconds). ' 

1017 ), 

1018 ] = None, 

1019 reverse: Annotated[ 

1020 Optional[StrictBool], Field(description='Sort events in reverse timestamp order. ') 

1021 ] = None, 

1022 suspect: Annotated[ 

1023 Optional[StrictBool], 

1024 Field( 

1025 description='Filter events previously tagged as suspicious via the [Update API](https://docs.fingerprint.com/reference/server-api-v4-update-event). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. ' 

1026 ), 

1027 ] = None, 

1028 vpn: Annotated[ 

1029 Optional[StrictBool], 

1030 Field( 

1031 description='Filter events by VPN Detection result. > Note: When using this parameter, only events with the `vpn` property set to `true` or `false` are returned. Events without a `vpn` Smart Signal result are left out of the response. ' 

1032 ), 

1033 ] = None, 

1034 virtual_machine: Annotated[ 

1035 Optional[StrictBool], 

1036 Field( 

1037 description='Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `virtual_machine` property set to `true` or `false` are returned. Events without a `virtual_machine` Smart Signal result are left out of the response. ' 

1038 ), 

1039 ] = None, 

1040 tampering: Annotated[ 

1041 Optional[StrictBool], 

1042 Field( 

1043 description='Filter events by Browser Tampering Detection result. > Note: When using this parameter, only events with the `tampering.result` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. ' 

1044 ), 

1045 ] = None, 

1046 anti_detect_browser: Annotated[ 

1047 Optional[StrictBool], 

1048 Field( 

1049 description='Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `tampering.anti_detect_browser` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. ' 

1050 ), 

1051 ] = None, 

1052 incognito: Annotated[ 

1053 Optional[StrictBool], 

1054 Field( 

1055 description='Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `incognito` property set to `true` or `false` are returned. Events without an `incognito` Smart Signal result are left out of the response. ' 

1056 ), 

1057 ] = None, 

1058 privacy_settings: Annotated[ 

1059 Optional[StrictBool], 

1060 Field( 

1061 description='Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `privacy_settings` property set to `true` or `false` are returned. Events without a `privacy_settings` Smart Signal result are left out of the response. ' 

1062 ), 

1063 ] = None, 

1064 jailbroken: Annotated[ 

1065 Optional[StrictBool], 

1066 Field( 

1067 description='Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `jailbroken` property set to `true` or `false` are returned. Events without a `jailbroken` Smart Signal result are left out of the response. ' 

1068 ), 

1069 ] = None, 

1070 frida: Annotated[ 

1071 Optional[StrictBool], 

1072 Field( 

1073 description='Filter events by Frida Detection result. > Note: When using this parameter, only events with the `frida` property set to `true` or `false` are returned. Events without a `frida` Smart Signal result are left out of the response. ' 

1074 ), 

1075 ] = None, 

1076 factory_reset: Annotated[ 

1077 Optional[StrictBool], 

1078 Field( 

1079 description='Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with a `factory_reset` time. Events without a `factory_reset` Smart Signal result are left out of the response. ' 

1080 ), 

1081 ] = None, 

1082 cloned_app: Annotated[ 

1083 Optional[StrictBool], 

1084 Field( 

1085 description='Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `cloned_app` property set to `true` or `false` are returned. Events without a `cloned_app` Smart Signal result are left out of the response. ' 

1086 ), 

1087 ] = None, 

1088 emulator: Annotated[ 

1089 Optional[StrictBool], 

1090 Field( 

1091 description='Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `emulator` property set to `true` or `false` are returned. Events without an `emulator` Smart Signal result are left out of the response. ' 

1092 ), 

1093 ] = None, 

1094 root_apps: Annotated[ 

1095 Optional[StrictBool], 

1096 Field( 

1097 description='Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `root_apps` property set to `true` or `false` are returned. Events without a `root_apps` Smart Signal result are left out of the response. ' 

1098 ), 

1099 ] = None, 

1100 vpn_confidence: Annotated[ 

1101 Optional[SearchEventsVpnConfidence], 

1102 Field( 

1103 description='Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `vpn.confidence` property set to a valid value are returned. Events without a `vpn` Smart Signal result are left out of the response. ' 

1104 ), 

1105 ] = None, 

1106 min_suspect_score: Annotated[ 

1107 Optional[Union[StrictFloat, StrictInt]], 

1108 Field( 

1109 description='Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. ' 

1110 ), 

1111 ] = None, 

1112 developer_tools: Annotated[ 

1113 Optional[StrictBool], 

1114 Field( 

1115 description='Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `developer_tools` property set to `true` or `false` are returned. Events without a `developer_tools` Smart Signal result are left out of the response. ' 

1116 ), 

1117 ] = None, 

1118 location_spoofing: Annotated[ 

1119 Optional[StrictBool], 

1120 Field( 

1121 description='Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `location_spoofing` property set to `true` or `false` are returned. Events without a `location_spoofing` Smart Signal result are left out of the response. ' 

1122 ), 

1123 ] = None, 

1124 mitm_attack: Annotated[ 

1125 Optional[StrictBool], 

1126 Field( 

1127 description='Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `mitm_attack` property set to `true` or `false` are returned. Events without a `mitm_attack` Smart Signal result are left out of the response. ' 

1128 ), 

1129 ] = None, 

1130 proxy: Annotated[ 

1131 Optional[StrictBool], 

1132 Field( 

1133 description='Filter events by Proxy detection result. > Note: When using this parameter, only events with the `proxy` property set to `true` or `false` are returned. Events without a `proxy` Smart Signal result are left out of the response. ' 

1134 ), 

1135 ] = None, 

1136 sdk_version: Annotated[ 

1137 Optional[StrictStr], 

1138 Field( 

1139 description='Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` ' 

1140 ), 

1141 ] = None, 

1142 sdk_platform: Annotated[ 

1143 Optional[SearchEventsSdkPlatform], 

1144 Field( 

1145 description='Filter events by the SDK Platform associated with the identification event (`sdk.platform` property) . `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. ' 

1146 ), 

1147 ] = None, 

1148 environment: Annotated[ 

1149 Optional[list[StrictStr]], 

1150 Field( 

1151 description='Filter for events by providing one or more environment IDs (`environment_id` property). ' 

1152 ), 

1153 ] = None, 

1154 proximity_id: Annotated[ 

1155 Optional[StrictStr], 

1156 Field( 

1157 description='Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. ' 

1158 ), 

1159 ] = None, 

1160 total_hits: Annotated[ 

1161 Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], 

1162 Field( 

1163 description='When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. ' 

1164 ), 

1165 ] = None, 

1166 tor_node: Annotated[ 

1167 Optional[StrictBool], 

1168 Field( 

1169 description='Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. ' 

1170 ), 

1171 ] = None, 

1172 _request_timeout: Union[ 

1173 None, 

1174 Annotated[StrictFloat, Field(gt=0)], 

1175 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

1176 ] = None, 

1177 _request_auth: Optional[dict[StrictStr, Any]] = None, 

1178 _content_type: Optional[StrictStr] = None, 

1179 _headers: Optional[dict[StrictStr, Any]] = None, 

1180 ) -> ApiResponse[EventSearch]: 

1181 """Search events 

1182 

1183 ## Search The `/v4/events` endpoint provides a convenient way to search for past events based on specific parameters. Typical use cases and queries include: - Searching for events associated with a single `visitor_id` within a time range to get historical behavior of a visitor. - Searching for events associated with a single `linked_id` within a time range to get all events associated with your internal account identifier. - Excluding all bot traffic from the query (`good` and `bad` bots) If you don't provide `start` or `end` parameters, the default search range is the **last 7 days**. ### Filtering events with the `suspect` flag The `/v4/events` endpoint unlocks a powerful method for fraud protection analytics. The `suspect` flag is exposed in all events where it was previously set by the update API. You can also apply the `suspect` query parameter as a filter to find all potentially fraudulent activity that you previously marked as `suspect`. This helps identify patterns of fraudulent behavior. ### Environment scoping If you use a secret key that is scoped to an environment, you will only get events associated with the same environment. With a workspace-scoped environment, you will get events from all environments. Smart Signals not activated for your workspace or are not included in the response. 

1184 

1185 :param limit: Limit the number of events returned. 

1186 :type limit: int 

1187 :param pagination_key: Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` 

1188 :type pagination_key: str 

1189 :param visitor_id: Unique [visitor identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this `visitor_id`. 

1190 :type visitor_id: str 

1191 :param bot: Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `bot` property set to a valid value are returned. Events without a `bot` Smart Signal result are left out of the response. 

1192 :type bot: SearchEventsBot 

1193 :param ip_address: Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 

1194 :type ip_address: str 

1195 :param asn: Filter events by the ASN associated with the event's IP address. This corresponds to the `ip_info.(v4|v6).asn` property in the response. 

1196 :type asn: str 

1197 :param linked_id: Filter events by your custom identifier. You can use [linked Ids](https://docs.fingerprint.com/reference/js-agent-v4-get-function#linkedid) to associate identification requests with your own identifier, for example, session Id, purchase Id, or transaction Id. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. 

1198 :type linked_id: str 

1199 :param url: Filter events by the URL (`url` property) associated with the event. 

1200 :type url: str 

1201 :param bundle_id: Filter events by the Bundle ID (iOS) associated with the event. 

1202 :type bundle_id: str 

1203 :param package_name: Filter events by the Package Name (Android) associated with the event. 

1204 :type package_name: str 

1205 :param origin: Filter events by the origin field of the event. This is applicable to web events only (e.g., https://example.com) 

1206 :type origin: str 

1207 :param start: Filter events with a timestamp greater than the start time, in Unix time (milliseconds). 

1208 :type start: int 

1209 :param end: Filter events with a timestamp smaller than the end time, in Unix time (milliseconds). 

1210 :type end: int 

1211 :param reverse: Sort events in reverse timestamp order. 

1212 :type reverse: bool 

1213 :param suspect: Filter events previously tagged as suspicious via the [Update API](https://docs.fingerprint.com/reference/server-api-v4-update-event). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. 

1214 :type suspect: bool 

1215 :param vpn: Filter events by VPN Detection result. > Note: When using this parameter, only events with the `vpn` property set to `true` or `false` are returned. Events without a `vpn` Smart Signal result are left out of the response. 

1216 :type vpn: bool 

1217 :param virtual_machine: Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `virtual_machine` property set to `true` or `false` are returned. Events without a `virtual_machine` Smart Signal result are left out of the response. 

1218 :type virtual_machine: bool 

1219 :param tampering: Filter events by Browser Tampering Detection result. > Note: When using this parameter, only events with the `tampering.result` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. 

1220 :type tampering: bool 

1221 :param anti_detect_browser: Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `tampering.anti_detect_browser` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. 

1222 :type anti_detect_browser: bool 

1223 :param incognito: Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `incognito` property set to `true` or `false` are returned. Events without an `incognito` Smart Signal result are left out of the response. 

1224 :type incognito: bool 

1225 :param privacy_settings: Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `privacy_settings` property set to `true` or `false` are returned. Events without a `privacy_settings` Smart Signal result are left out of the response. 

1226 :type privacy_settings: bool 

1227 :param jailbroken: Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `jailbroken` property set to `true` or `false` are returned. Events without a `jailbroken` Smart Signal result are left out of the response. 

1228 :type jailbroken: bool 

1229 :param frida: Filter events by Frida Detection result. > Note: When using this parameter, only events with the `frida` property set to `true` or `false` are returned. Events without a `frida` Smart Signal result are left out of the response. 

1230 :type frida: bool 

1231 :param factory_reset: Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with a `factory_reset` time. Events without a `factory_reset` Smart Signal result are left out of the response. 

1232 :type factory_reset: bool 

1233 :param cloned_app: Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `cloned_app` property set to `true` or `false` are returned. Events without a `cloned_app` Smart Signal result are left out of the response. 

1234 :type cloned_app: bool 

1235 :param emulator: Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `emulator` property set to `true` or `false` are returned. Events without an `emulator` Smart Signal result are left out of the response. 

1236 :type emulator: bool 

1237 :param root_apps: Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `root_apps` property set to `true` or `false` are returned. Events without a `root_apps` Smart Signal result are left out of the response. 

1238 :type root_apps: bool 

1239 :param vpn_confidence: Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `vpn.confidence` property set to a valid value are returned. Events without a `vpn` Smart Signal result are left out of the response. 

1240 :type vpn_confidence: SearchEventsVpnConfidence 

1241 :param min_suspect_score: Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. 

1242 :type min_suspect_score: float 

1243 :param developer_tools: Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `developer_tools` property set to `true` or `false` are returned. Events without a `developer_tools` Smart Signal result are left out of the response. 

1244 :type developer_tools: bool 

1245 :param location_spoofing: Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `location_spoofing` property set to `true` or `false` are returned. Events without a `location_spoofing` Smart Signal result are left out of the response. 

1246 :type location_spoofing: bool 

1247 :param mitm_attack: Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `mitm_attack` property set to `true` or `false` are returned. Events without a `mitm_attack` Smart Signal result are left out of the response. 

1248 :type mitm_attack: bool 

1249 :param proxy: Filter events by Proxy detection result. > Note: When using this parameter, only events with the `proxy` property set to `true` or `false` are returned. Events without a `proxy` Smart Signal result are left out of the response. 

1250 :type proxy: bool 

1251 :param sdk_version: Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` 

1252 :type sdk_version: str 

1253 :param sdk_platform: Filter events by the SDK Platform associated with the identification event (`sdk.platform` property) . `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. 

1254 :type sdk_platform: SearchEventsSdkPlatform 

1255 :param environment: Filter for events by providing one or more environment IDs (`environment_id` property). 

1256 :type environment: List[str] 

1257 :param proximity_id: Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. 

1258 :type proximity_id: str 

1259 :param total_hits: When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. 

1260 :type total_hits: int 

1261 :param tor_node: Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. 

1262 :type tor_node: bool 

1263 :param _request_timeout: timeout setting for this request. If one 

1264 number provided, it will be total request 

1265 timeout. It can also be a pair (tuple) of 

1266 (connection, read) timeouts. 

1267 :type _request_timeout: int, tuple(int, int), optional 

1268 :param _request_auth: set to override the auth_settings for an a single 

1269 request; this effectively ignores the 

1270 authentication in the spec for a single request. 

1271 :type _request_auth: dict, optional 

1272 :param _content_type: force content-type for the request. 

1273 :type _content_type: str, Optional 

1274 :param _headers: set to override the headers for a single 

1275 request; this effectively ignores the headers 

1276 in the spec for a single request. 

1277 :type _headers: dict, optional 

1278 :return: Returns the result object. 

1279 """ # noqa: E501 

1280 

1281 _param = self._search_events_serialize( 

1282 limit=limit, 

1283 pagination_key=pagination_key, 

1284 visitor_id=visitor_id, 

1285 bot=bot, 

1286 ip_address=ip_address, 

1287 asn=asn, 

1288 linked_id=linked_id, 

1289 url=url, 

1290 bundle_id=bundle_id, 

1291 package_name=package_name, 

1292 origin=origin, 

1293 start=start, 

1294 end=end, 

1295 reverse=reverse, 

1296 suspect=suspect, 

1297 vpn=vpn, 

1298 virtual_machine=virtual_machine, 

1299 tampering=tampering, 

1300 anti_detect_browser=anti_detect_browser, 

1301 incognito=incognito, 

1302 privacy_settings=privacy_settings, 

1303 jailbroken=jailbroken, 

1304 frida=frida, 

1305 factory_reset=factory_reset, 

1306 cloned_app=cloned_app, 

1307 emulator=emulator, 

1308 root_apps=root_apps, 

1309 vpn_confidence=vpn_confidence, 

1310 min_suspect_score=min_suspect_score, 

1311 developer_tools=developer_tools, 

1312 location_spoofing=location_spoofing, 

1313 mitm_attack=mitm_attack, 

1314 proxy=proxy, 

1315 sdk_version=sdk_version, 

1316 sdk_platform=sdk_platform, 

1317 environment=environment, 

1318 proximity_id=proximity_id, 

1319 total_hits=total_hits, 

1320 tor_node=tor_node, 

1321 _request_auth=_request_auth, 

1322 _content_type=_content_type, 

1323 _headers=_headers, 

1324 ) 

1325 

1326 _response_types_map: dict[str, Optional[str]] = { 

1327 '200': 'EventSearch', 

1328 '400': 'ErrorResponse', 

1329 '403': 'ErrorResponse', 

1330 '500': 'ErrorResponse', 

1331 } 

1332 

1333 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

1334 response_data.read() 

1335 return self.api_client.response_deserialize( 

1336 response_data=response_data, 

1337 response_types_map=_response_types_map, 

1338 ) 

1339 

1340 @validate_call 

1341 def search_events_without_preload_content( 

1342 self, 

1343 limit: Annotated[ 

1344 Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], 

1345 Field(description='Limit the number of events returned. '), 

1346 ] = None, 

1347 pagination_key: Annotated[ 

1348 Optional[StrictStr], 

1349 Field( 

1350 description='Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` ' 

1351 ), 

1352 ] = None, 

1353 visitor_id: Annotated[ 

1354 Optional[StrictStr], 

1355 Field( 

1356 description='Unique [visitor identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this `visitor_id`. ' 

1357 ), 

1358 ] = None, 

1359 bot: Annotated[ 

1360 Optional[SearchEventsBot], 

1361 Field( 

1362 description='Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `bot` property set to a valid value are returned. Events without a `bot` Smart Signal result are left out of the response. ' 

1363 ), 

1364 ] = None, 

1365 ip_address: Annotated[ 

1366 Optional[StrictStr], 

1367 Field( 

1368 description='Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 ' 

1369 ), 

1370 ] = None, 

1371 asn: Annotated[ 

1372 Optional[StrictStr], 

1373 Field( 

1374 description="Filter events by the ASN associated with the event's IP address. This corresponds to the `ip_info.(v4|v6).asn` property in the response. " 

1375 ), 

1376 ] = None, 

1377 linked_id: Annotated[ 

1378 Optional[StrictStr], 

1379 Field( 

1380 description='Filter events by your custom identifier. You can use [linked Ids](https://docs.fingerprint.com/reference/js-agent-v4-get-function#linkedid) to associate identification requests with your own identifier, for example, session Id, purchase Id, or transaction Id. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. ' 

1381 ), 

1382 ] = None, 

1383 url: Annotated[ 

1384 Optional[StrictStr], 

1385 Field( 

1386 description='Filter events by the URL (`url` property) associated with the event. ' 

1387 ), 

1388 ] = None, 

1389 bundle_id: Annotated[ 

1390 Optional[StrictStr], 

1391 Field(description='Filter events by the Bundle ID (iOS) associated with the event. '), 

1392 ] = None, 

1393 package_name: Annotated[ 

1394 Optional[StrictStr], 

1395 Field( 

1396 description='Filter events by the Package Name (Android) associated with the event. ' 

1397 ), 

1398 ] = None, 

1399 origin: Annotated[ 

1400 Optional[StrictStr], 

1401 Field( 

1402 description='Filter events by the origin field of the event. This is applicable to web events only (e.g., https://example.com) ' 

1403 ), 

1404 ] = None, 

1405 start: Annotated[ 

1406 Optional[StrictInt], 

1407 Field( 

1408 description='Filter events with a timestamp greater than the start time, in Unix time (milliseconds). ' 

1409 ), 

1410 ] = None, 

1411 end: Annotated[ 

1412 Optional[StrictInt], 

1413 Field( 

1414 description='Filter events with a timestamp smaller than the end time, in Unix time (milliseconds). ' 

1415 ), 

1416 ] = None, 

1417 reverse: Annotated[ 

1418 Optional[StrictBool], Field(description='Sort events in reverse timestamp order. ') 

1419 ] = None, 

1420 suspect: Annotated[ 

1421 Optional[StrictBool], 

1422 Field( 

1423 description='Filter events previously tagged as suspicious via the [Update API](https://docs.fingerprint.com/reference/server-api-v4-update-event). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. ' 

1424 ), 

1425 ] = None, 

1426 vpn: Annotated[ 

1427 Optional[StrictBool], 

1428 Field( 

1429 description='Filter events by VPN Detection result. > Note: When using this parameter, only events with the `vpn` property set to `true` or `false` are returned. Events without a `vpn` Smart Signal result are left out of the response. ' 

1430 ), 

1431 ] = None, 

1432 virtual_machine: Annotated[ 

1433 Optional[StrictBool], 

1434 Field( 

1435 description='Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `virtual_machine` property set to `true` or `false` are returned. Events without a `virtual_machine` Smart Signal result are left out of the response. ' 

1436 ), 

1437 ] = None, 

1438 tampering: Annotated[ 

1439 Optional[StrictBool], 

1440 Field( 

1441 description='Filter events by Browser Tampering Detection result. > Note: When using this parameter, only events with the `tampering.result` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. ' 

1442 ), 

1443 ] = None, 

1444 anti_detect_browser: Annotated[ 

1445 Optional[StrictBool], 

1446 Field( 

1447 description='Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `tampering.anti_detect_browser` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. ' 

1448 ), 

1449 ] = None, 

1450 incognito: Annotated[ 

1451 Optional[StrictBool], 

1452 Field( 

1453 description='Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `incognito` property set to `true` or `false` are returned. Events without an `incognito` Smart Signal result are left out of the response. ' 

1454 ), 

1455 ] = None, 

1456 privacy_settings: Annotated[ 

1457 Optional[StrictBool], 

1458 Field( 

1459 description='Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `privacy_settings` property set to `true` or `false` are returned. Events without a `privacy_settings` Smart Signal result are left out of the response. ' 

1460 ), 

1461 ] = None, 

1462 jailbroken: Annotated[ 

1463 Optional[StrictBool], 

1464 Field( 

1465 description='Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `jailbroken` property set to `true` or `false` are returned. Events without a `jailbroken` Smart Signal result are left out of the response. ' 

1466 ), 

1467 ] = None, 

1468 frida: Annotated[ 

1469 Optional[StrictBool], 

1470 Field( 

1471 description='Filter events by Frida Detection result. > Note: When using this parameter, only events with the `frida` property set to `true` or `false` are returned. Events without a `frida` Smart Signal result are left out of the response. ' 

1472 ), 

1473 ] = None, 

1474 factory_reset: Annotated[ 

1475 Optional[StrictBool], 

1476 Field( 

1477 description='Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with a `factory_reset` time. Events without a `factory_reset` Smart Signal result are left out of the response. ' 

1478 ), 

1479 ] = None, 

1480 cloned_app: Annotated[ 

1481 Optional[StrictBool], 

1482 Field( 

1483 description='Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `cloned_app` property set to `true` or `false` are returned. Events without a `cloned_app` Smart Signal result are left out of the response. ' 

1484 ), 

1485 ] = None, 

1486 emulator: Annotated[ 

1487 Optional[StrictBool], 

1488 Field( 

1489 description='Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `emulator` property set to `true` or `false` are returned. Events without an `emulator` Smart Signal result are left out of the response. ' 

1490 ), 

1491 ] = None, 

1492 root_apps: Annotated[ 

1493 Optional[StrictBool], 

1494 Field( 

1495 description='Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `root_apps` property set to `true` or `false` are returned. Events without a `root_apps` Smart Signal result are left out of the response. ' 

1496 ), 

1497 ] = None, 

1498 vpn_confidence: Annotated[ 

1499 Optional[SearchEventsVpnConfidence], 

1500 Field( 

1501 description='Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `vpn.confidence` property set to a valid value are returned. Events without a `vpn` Smart Signal result are left out of the response. ' 

1502 ), 

1503 ] = None, 

1504 min_suspect_score: Annotated[ 

1505 Optional[Union[StrictFloat, StrictInt]], 

1506 Field( 

1507 description='Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. ' 

1508 ), 

1509 ] = None, 

1510 developer_tools: Annotated[ 

1511 Optional[StrictBool], 

1512 Field( 

1513 description='Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `developer_tools` property set to `true` or `false` are returned. Events without a `developer_tools` Smart Signal result are left out of the response. ' 

1514 ), 

1515 ] = None, 

1516 location_spoofing: Annotated[ 

1517 Optional[StrictBool], 

1518 Field( 

1519 description='Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `location_spoofing` property set to `true` or `false` are returned. Events without a `location_spoofing` Smart Signal result are left out of the response. ' 

1520 ), 

1521 ] = None, 

1522 mitm_attack: Annotated[ 

1523 Optional[StrictBool], 

1524 Field( 

1525 description='Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `mitm_attack` property set to `true` or `false` are returned. Events without a `mitm_attack` Smart Signal result are left out of the response. ' 

1526 ), 

1527 ] = None, 

1528 proxy: Annotated[ 

1529 Optional[StrictBool], 

1530 Field( 

1531 description='Filter events by Proxy detection result. > Note: When using this parameter, only events with the `proxy` property set to `true` or `false` are returned. Events without a `proxy` Smart Signal result are left out of the response. ' 

1532 ), 

1533 ] = None, 

1534 sdk_version: Annotated[ 

1535 Optional[StrictStr], 

1536 Field( 

1537 description='Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` ' 

1538 ), 

1539 ] = None, 

1540 sdk_platform: Annotated[ 

1541 Optional[SearchEventsSdkPlatform], 

1542 Field( 

1543 description='Filter events by the SDK Platform associated with the identification event (`sdk.platform` property) . `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. ' 

1544 ), 

1545 ] = None, 

1546 environment: Annotated[ 

1547 Optional[list[StrictStr]], 

1548 Field( 

1549 description='Filter for events by providing one or more environment IDs (`environment_id` property). ' 

1550 ), 

1551 ] = None, 

1552 proximity_id: Annotated[ 

1553 Optional[StrictStr], 

1554 Field( 

1555 description='Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. ' 

1556 ), 

1557 ] = None, 

1558 total_hits: Annotated[ 

1559 Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], 

1560 Field( 

1561 description='When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. ' 

1562 ), 

1563 ] = None, 

1564 tor_node: Annotated[ 

1565 Optional[StrictBool], 

1566 Field( 

1567 description='Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. ' 

1568 ), 

1569 ] = None, 

1570 _request_timeout: Union[ 

1571 None, 

1572 Annotated[StrictFloat, Field(gt=0)], 

1573 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

1574 ] = None, 

1575 _request_auth: Optional[dict[StrictStr, Any]] = None, 

1576 _content_type: Optional[StrictStr] = None, 

1577 _headers: Optional[dict[StrictStr, Any]] = None, 

1578 ) -> RESTResponseType: 

1579 """Search events 

1580 

1581 ## Search The `/v4/events` endpoint provides a convenient way to search for past events based on specific parameters. Typical use cases and queries include: - Searching for events associated with a single `visitor_id` within a time range to get historical behavior of a visitor. - Searching for events associated with a single `linked_id` within a time range to get all events associated with your internal account identifier. - Excluding all bot traffic from the query (`good` and `bad` bots) If you don't provide `start` or `end` parameters, the default search range is the **last 7 days**. ### Filtering events with the `suspect` flag The `/v4/events` endpoint unlocks a powerful method for fraud protection analytics. The `suspect` flag is exposed in all events where it was previously set by the update API. You can also apply the `suspect` query parameter as a filter to find all potentially fraudulent activity that you previously marked as `suspect`. This helps identify patterns of fraudulent behavior. ### Environment scoping If you use a secret key that is scoped to an environment, you will only get events associated with the same environment. With a workspace-scoped environment, you will get events from all environments. Smart Signals not activated for your workspace or are not included in the response. 

1582 

1583 :param limit: Limit the number of events returned. 

1584 :type limit: int 

1585 :param pagination_key: Use `pagination_key` to get the next page of results. When more results are available (e.g., you requested up to 100 results for your query using `limit`, but there are more than 100 events total matching your request), the `pagination_key` field is added to the response. The pagination key is an arbitrary string that should not be interpreted in any way and should be passed as-is. In the following request, use that value in the `pagination_key` parameter to get the next page of results: 1. First request, returning most recent 200 events: `GET api-base-url/events?limit=100` 2. Use `response.pagination_key` to get the next page of results: `GET api-base-url/events?limit=100&pagination_key=1740815825085` 

1586 :type pagination_key: str 

1587 :param visitor_id: Unique [visitor identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#visitor_id) issued by Fingerprint Identification and all active Smart Signals. Filter for events matching this `visitor_id`. 

1588 :type visitor_id: str 

1589 :param bot: Filter events by the Bot Detection result, specifically: `all` - events where any kind of bot was detected. `good` - events where a good bot was detected. `bad` - events where a bad bot was detected. `none` - events where no bot was detected. > Note: When using this parameter, only events with the `bot` property set to a valid value are returned. Events without a `bot` Smart Signal result are left out of the response. 

1590 :type bot: SearchEventsBot 

1591 :param ip_address: Filter events by IP address or IP range (if CIDR notation is used). If CIDR notation is not used, a /32 for IPv4 or /128 for IPv6 is assumed. Examples of range based queries: 10.0.0.0/24, 192.168.0.1/32 

1592 :type ip_address: str 

1593 :param asn: Filter events by the ASN associated with the event's IP address. This corresponds to the `ip_info.(v4|v6).asn` property in the response. 

1594 :type asn: str 

1595 :param linked_id: Filter events by your custom identifier. You can use [linked Ids](https://docs.fingerprint.com/reference/js-agent-v4-get-function#linkedid) to associate identification requests with your own identifier, for example, session Id, purchase Id, or transaction Id. You can then use this `linked_id` parameter to retrieve all events associated with your custom identifier. 

1596 :type linked_id: str 

1597 :param url: Filter events by the URL (`url` property) associated with the event. 

1598 :type url: str 

1599 :param bundle_id: Filter events by the Bundle ID (iOS) associated with the event. 

1600 :type bundle_id: str 

1601 :param package_name: Filter events by the Package Name (Android) associated with the event. 

1602 :type package_name: str 

1603 :param origin: Filter events by the origin field of the event. This is applicable to web events only (e.g., https://example.com) 

1604 :type origin: str 

1605 :param start: Filter events with a timestamp greater than the start time, in Unix time (milliseconds). 

1606 :type start: int 

1607 :param end: Filter events with a timestamp smaller than the end time, in Unix time (milliseconds). 

1608 :type end: int 

1609 :param reverse: Sort events in reverse timestamp order. 

1610 :type reverse: bool 

1611 :param suspect: Filter events previously tagged as suspicious via the [Update API](https://docs.fingerprint.com/reference/server-api-v4-update-event). > Note: When using this parameter, only events with the `suspect` property explicitly set to `true` or `false` are returned. Events with undefined `suspect` property are left out of the response. 

1612 :type suspect: bool 

1613 :param vpn: Filter events by VPN Detection result. > Note: When using this parameter, only events with the `vpn` property set to `true` or `false` are returned. Events without a `vpn` Smart Signal result are left out of the response. 

1614 :type vpn: bool 

1615 :param virtual_machine: Filter events by Virtual Machine Detection result. > Note: When using this parameter, only events with the `virtual_machine` property set to `true` or `false` are returned. Events without a `virtual_machine` Smart Signal result are left out of the response. 

1616 :type virtual_machine: bool 

1617 :param tampering: Filter events by Browser Tampering Detection result. > Note: When using this parameter, only events with the `tampering.result` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. 

1618 :type tampering: bool 

1619 :param anti_detect_browser: Filter events by Anti-detect Browser Detection result. > Note: When using this parameter, only events with the `tampering.anti_detect_browser` property set to `true` or `false` are returned. Events without a `tampering` Smart Signal result are left out of the response. 

1620 :type anti_detect_browser: bool 

1621 :param incognito: Filter events by Browser Incognito Detection result. > Note: When using this parameter, only events with the `incognito` property set to `true` or `false` are returned. Events without an `incognito` Smart Signal result are left out of the response. 

1622 :type incognito: bool 

1623 :param privacy_settings: Filter events by Privacy Settings Detection result. > Note: When using this parameter, only events with the `privacy_settings` property set to `true` or `false` are returned. Events without a `privacy_settings` Smart Signal result are left out of the response. 

1624 :type privacy_settings: bool 

1625 :param jailbroken: Filter events by Jailbroken Device Detection result. > Note: When using this parameter, only events with the `jailbroken` property set to `true` or `false` are returned. Events without a `jailbroken` Smart Signal result are left out of the response. 

1626 :type jailbroken: bool 

1627 :param frida: Filter events by Frida Detection result. > Note: When using this parameter, only events with the `frida` property set to `true` or `false` are returned. Events without a `frida` Smart Signal result are left out of the response. 

1628 :type frida: bool 

1629 :param factory_reset: Filter events by Factory Reset Detection result. > Note: When using this parameter, only events with a `factory_reset` time. Events without a `factory_reset` Smart Signal result are left out of the response. 

1630 :type factory_reset: bool 

1631 :param cloned_app: Filter events by Cloned App Detection result. > Note: When using this parameter, only events with the `cloned_app` property set to `true` or `false` are returned. Events without a `cloned_app` Smart Signal result are left out of the response. 

1632 :type cloned_app: bool 

1633 :param emulator: Filter events by Android Emulator Detection result. > Note: When using this parameter, only events with the `emulator` property set to `true` or `false` are returned. Events without an `emulator` Smart Signal result are left out of the response. 

1634 :type emulator: bool 

1635 :param root_apps: Filter events by Rooted Device Detection result. > Note: When using this parameter, only events with the `root_apps` property set to `true` or `false` are returned. Events without a `root_apps` Smart Signal result are left out of the response. 

1636 :type root_apps: bool 

1637 :param vpn_confidence: Filter events by VPN Detection result confidence level. `high` - events with high VPN Detection confidence. `medium` - events with medium VPN Detection confidence. `low` - events with low VPN Detection confidence. > Note: When using this parameter, only events with the `vpn.confidence` property set to a valid value are returned. Events without a `vpn` Smart Signal result are left out of the response. 

1638 :type vpn_confidence: SearchEventsVpnConfidence 

1639 :param min_suspect_score: Filter events with Suspect Score result above a provided minimum threshold. > Note: When using this parameter, only events where the `suspect_score` property set to a value exceeding your threshold are returned. Events without a `suspect_score` Smart Signal result are left out of the response. 

1640 :type min_suspect_score: float 

1641 :param developer_tools: Filter events by Developer Tools detection result. > Note: When using this parameter, only events with the `developer_tools` property set to `true` or `false` are returned. Events without a `developer_tools` Smart Signal result are left out of the response. 

1642 :type developer_tools: bool 

1643 :param location_spoofing: Filter events by Location Spoofing detection result. > Note: When using this parameter, only events with the `location_spoofing` property set to `true` or `false` are returned. Events without a `location_spoofing` Smart Signal result are left out of the response. 

1644 :type location_spoofing: bool 

1645 :param mitm_attack: Filter events by MITM (Man-in-the-Middle) Attack detection result. > Note: When using this parameter, only events with the `mitm_attack` property set to `true` or `false` are returned. Events without a `mitm_attack` Smart Signal result are left out of the response. 

1646 :type mitm_attack: bool 

1647 :param proxy: Filter events by Proxy detection result. > Note: When using this parameter, only events with the `proxy` property set to `true` or `false` are returned. Events without a `proxy` Smart Signal result are left out of the response. 

1648 :type proxy: bool 

1649 :param sdk_version: Filter events by a specific SDK version associated with the identification event (`sdk.version` property). Example: `3.11.14` 

1650 :type sdk_version: str 

1651 :param sdk_platform: Filter events by the SDK Platform associated with the identification event (`sdk.platform` property) . `js` - Javascript agent (Web). `ios` - Apple iOS based devices. `android` - Android based devices. 

1652 :type sdk_platform: SearchEventsSdkPlatform 

1653 :param environment: Filter for events by providing one or more environment IDs (`environment_id` property). 

1654 :type environment: List[str] 

1655 :param proximity_id: Filter events by the most precise Proximity ID provided by default. > Note: When using this parameter, only events with the `proximity.id` property matching the provided ID are returned. Events without a `proximity` result are left out of the response. 

1656 :type proximity_id: str 

1657 :param total_hits: When set, the response will include a `total_hits` property with a count of total query matches across all pages, up to the specified limit. 

1658 :type total_hits: int 

1659 :param tor_node: Filter events by Tor Node detection result. > Note: When using this parameter, only events with the `tor_node` property set to `true` or `false` are returned. Events without a `tor_node` detection result are left out of the response. 

1660 :type tor_node: bool 

1661 :param _request_timeout: timeout setting for this request. If one 

1662 number provided, it will be total request 

1663 timeout. It can also be a pair (tuple) of 

1664 (connection, read) timeouts. 

1665 :type _request_timeout: int, tuple(int, int), optional 

1666 :param _request_auth: set to override the auth_settings for an a single 

1667 request; this effectively ignores the 

1668 authentication in the spec for a single request. 

1669 :type _request_auth: dict, optional 

1670 :param _content_type: force content-type for the request. 

1671 :type _content_type: str, Optional 

1672 :param _headers: set to override the headers for a single 

1673 request; this effectively ignores the headers 

1674 in the spec for a single request. 

1675 :type _headers: dict, optional 

1676 :return: Returns the result object. 

1677 """ # noqa: E501 

1678 

1679 _param = self._search_events_serialize( 

1680 limit=limit, 

1681 pagination_key=pagination_key, 

1682 visitor_id=visitor_id, 

1683 bot=bot, 

1684 ip_address=ip_address, 

1685 asn=asn, 

1686 linked_id=linked_id, 

1687 url=url, 

1688 bundle_id=bundle_id, 

1689 package_name=package_name, 

1690 origin=origin, 

1691 start=start, 

1692 end=end, 

1693 reverse=reverse, 

1694 suspect=suspect, 

1695 vpn=vpn, 

1696 virtual_machine=virtual_machine, 

1697 tampering=tampering, 

1698 anti_detect_browser=anti_detect_browser, 

1699 incognito=incognito, 

1700 privacy_settings=privacy_settings, 

1701 jailbroken=jailbroken, 

1702 frida=frida, 

1703 factory_reset=factory_reset, 

1704 cloned_app=cloned_app, 

1705 emulator=emulator, 

1706 root_apps=root_apps, 

1707 vpn_confidence=vpn_confidence, 

1708 min_suspect_score=min_suspect_score, 

1709 developer_tools=developer_tools, 

1710 location_spoofing=location_spoofing, 

1711 mitm_attack=mitm_attack, 

1712 proxy=proxy, 

1713 sdk_version=sdk_version, 

1714 sdk_platform=sdk_platform, 

1715 environment=environment, 

1716 proximity_id=proximity_id, 

1717 total_hits=total_hits, 

1718 tor_node=tor_node, 

1719 _request_auth=_request_auth, 

1720 _content_type=_content_type, 

1721 _headers=_headers, 

1722 ) 

1723 

1724 _response_types_map: dict[str, Optional[str]] = { 

1725 '200': 'EventSearch', 

1726 '400': 'ErrorResponse', 

1727 '403': 'ErrorResponse', 

1728 '500': 'ErrorResponse', 

1729 } 

1730 

1731 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

1732 return response_data.response 

1733 

1734 def _search_events_serialize( 

1735 self, 

1736 limit: Optional[int], 

1737 pagination_key: Optional[str], 

1738 visitor_id: Optional[str], 

1739 bot: Optional[SearchEventsBot], 

1740 ip_address: Optional[str], 

1741 asn: Optional[str], 

1742 linked_id: Optional[str], 

1743 url: Optional[str], 

1744 bundle_id: Optional[str], 

1745 package_name: Optional[str], 

1746 origin: Optional[str], 

1747 start: Optional[int], 

1748 end: Optional[int], 

1749 reverse: Optional[bool], 

1750 suspect: Optional[bool], 

1751 vpn: Optional[bool], 

1752 virtual_machine: Optional[bool], 

1753 tampering: Optional[bool], 

1754 anti_detect_browser: Optional[bool], 

1755 incognito: Optional[bool], 

1756 privacy_settings: Optional[bool], 

1757 jailbroken: Optional[bool], 

1758 frida: Optional[bool], 

1759 factory_reset: Optional[bool], 

1760 cloned_app: Optional[bool], 

1761 emulator: Optional[bool], 

1762 root_apps: Optional[bool], 

1763 vpn_confidence: Optional[SearchEventsVpnConfidence], 

1764 min_suspect_score: Optional[float], 

1765 developer_tools: Optional[bool], 

1766 location_spoofing: Optional[bool], 

1767 mitm_attack: Optional[bool], 

1768 proxy: Optional[bool], 

1769 sdk_version: Optional[str], 

1770 sdk_platform: Optional[SearchEventsSdkPlatform], 

1771 environment: Optional[list[str]], 

1772 proximity_id: Optional[str], 

1773 total_hits: Optional[int], 

1774 tor_node: Optional[bool], 

1775 _request_auth: Optional[dict[StrictStr, Any]], 

1776 _content_type: Optional[StrictStr], 

1777 _headers: Optional[dict[StrictStr, Any]], 

1778 ) -> RequestSerialized: 

1779 

1780 _collection_formats: dict[str, str] = { 

1781 'environment': 'multi', 

1782 } 

1783 

1784 _path_params: dict[str, str] = {} 

1785 _query_params: list[tuple[str, ParamValue]] = [] 

1786 _header_params: dict[str, Optional[str]] = _headers or {} 

1787 _form_params: list[tuple[str, ParamValue]] = [] 

1788 _files: dict[ 

1789 str, 

1790 Union[str, bytes, list[str], list[bytes], tuple[str, bytes], list[tuple[str, bytes]]], 

1791 ] = {} 

1792 _body_params: Optional[Any] = None 

1793 

1794 # process the query parameters 

1795 if limit is not None: 

1796 _query_params.append(('limit', limit)) 

1797 

1798 # process the query parameters 

1799 if pagination_key is not None: 

1800 _query_params.append(('pagination_key', pagination_key)) 

1801 

1802 # process the query parameters 

1803 if visitor_id is not None: 

1804 _query_params.append(('visitor_id', visitor_id)) 

1805 

1806 # process the query parameters 

1807 if bot is not None: 

1808 _query_params.append(('bot', bot.value)) 

1809 

1810 # process the query parameters 

1811 if ip_address is not None: 

1812 _query_params.append(('ip_address', ip_address)) 

1813 

1814 # process the query parameters 

1815 if asn is not None: 

1816 _query_params.append(('asn', asn)) 

1817 

1818 # process the query parameters 

1819 if linked_id is not None: 

1820 _query_params.append(('linked_id', linked_id)) 

1821 

1822 # process the query parameters 

1823 if url is not None: 

1824 _query_params.append(('url', url)) 

1825 

1826 # process the query parameters 

1827 if bundle_id is not None: 

1828 _query_params.append(('bundle_id', bundle_id)) 

1829 

1830 # process the query parameters 

1831 if package_name is not None: 

1832 _query_params.append(('package_name', package_name)) 

1833 

1834 # process the query parameters 

1835 if origin is not None: 

1836 _query_params.append(('origin', origin)) 

1837 

1838 # process the query parameters 

1839 if start is not None: 

1840 _query_params.append(('start', start)) 

1841 

1842 # process the query parameters 

1843 if end is not None: 

1844 _query_params.append(('end', end)) 

1845 

1846 # process the query parameters 

1847 if reverse is not None: 

1848 _query_params.append(('reverse', reverse)) 

1849 

1850 # process the query parameters 

1851 if suspect is not None: 

1852 _query_params.append(('suspect', suspect)) 

1853 

1854 # process the query parameters 

1855 if vpn is not None: 

1856 _query_params.append(('vpn', vpn)) 

1857 

1858 # process the query parameters 

1859 if virtual_machine is not None: 

1860 _query_params.append(('virtual_machine', virtual_machine)) 

1861 

1862 # process the query parameters 

1863 if tampering is not None: 

1864 _query_params.append(('tampering', tampering)) 

1865 

1866 # process the query parameters 

1867 if anti_detect_browser is not None: 

1868 _query_params.append(('anti_detect_browser', anti_detect_browser)) 

1869 

1870 # process the query parameters 

1871 if incognito is not None: 

1872 _query_params.append(('incognito', incognito)) 

1873 

1874 # process the query parameters 

1875 if privacy_settings is not None: 

1876 _query_params.append(('privacy_settings', privacy_settings)) 

1877 

1878 # process the query parameters 

1879 if jailbroken is not None: 

1880 _query_params.append(('jailbroken', jailbroken)) 

1881 

1882 # process the query parameters 

1883 if frida is not None: 

1884 _query_params.append(('frida', frida)) 

1885 

1886 # process the query parameters 

1887 if factory_reset is not None: 

1888 _query_params.append(('factory_reset', factory_reset)) 

1889 

1890 # process the query parameters 

1891 if cloned_app is not None: 

1892 _query_params.append(('cloned_app', cloned_app)) 

1893 

1894 # process the query parameters 

1895 if emulator is not None: 

1896 _query_params.append(('emulator', emulator)) 

1897 

1898 # process the query parameters 

1899 if root_apps is not None: 

1900 _query_params.append(('root_apps', root_apps)) 

1901 

1902 # process the query parameters 

1903 if vpn_confidence is not None: 

1904 _query_params.append(('vpn_confidence', vpn_confidence.value)) 

1905 

1906 # process the query parameters 

1907 if min_suspect_score is not None: 

1908 _query_params.append(('min_suspect_score', min_suspect_score)) 

1909 

1910 # process the query parameters 

1911 if developer_tools is not None: 

1912 _query_params.append(('developer_tools', developer_tools)) 

1913 

1914 # process the query parameters 

1915 if location_spoofing is not None: 

1916 _query_params.append(('location_spoofing', location_spoofing)) 

1917 

1918 # process the query parameters 

1919 if mitm_attack is not None: 

1920 _query_params.append(('mitm_attack', mitm_attack)) 

1921 

1922 # process the query parameters 

1923 if proxy is not None: 

1924 _query_params.append(('proxy', proxy)) 

1925 

1926 # process the query parameters 

1927 if sdk_version is not None: 

1928 _query_params.append(('sdk_version', sdk_version)) 

1929 

1930 # process the query parameters 

1931 if sdk_platform is not None: 

1932 _query_params.append(('sdk_platform', sdk_platform.value)) 

1933 

1934 # process the query parameters 

1935 if environment is not None: 

1936 _query_params.append(('environment', environment)) 

1937 

1938 # process the query parameters 

1939 if proximity_id is not None: 

1940 _query_params.append(('proximity_id', proximity_id)) 

1941 

1942 # process the query parameters 

1943 if total_hits is not None: 

1944 _query_params.append(('total_hits', total_hits)) 

1945 

1946 # process the query parameters 

1947 if tor_node is not None: 

1948 _query_params.append(('tor_node', tor_node)) 

1949 

1950 # set the HTTP header `Accept` 

1951 if 'Accept' not in _header_params: 

1952 _header_params['Accept'] = self.api_client.select_header_accept(['application/json']) 

1953 

1954 # authentication setting 

1955 _auth_settings: list[str] = ['bearerAuth'] 

1956 

1957 return self.api_client.param_serialize( 

1958 method='GET', 

1959 resource_path='/events', 

1960 path_params=_path_params, 

1961 query_params=_query_params, 

1962 header_params=_header_params, 

1963 body=_body_params, 

1964 post_params=_form_params, 

1965 files=_files, 

1966 auth_settings=_auth_settings, 

1967 collection_formats=_collection_formats, 

1968 _request_auth=_request_auth, 

1969 ) 

1970 

1971 @validate_call 

1972 def update_event( 

1973 self, 

1974 event_id: Annotated[ 

1975 StrictStr, 

1976 Field( 

1977 description='The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id).' 

1978 ), 

1979 ], 

1980 event_update: EventUpdate, 

1981 _request_timeout: Union[ 

1982 None, 

1983 Annotated[StrictFloat, Field(gt=0)], 

1984 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

1985 ] = None, 

1986 _request_auth: Optional[dict[StrictStr, Any]] = None, 

1987 _content_type: Optional[StrictStr] = None, 

1988 _headers: Optional[dict[StrictStr, Any]] = None, 

1989 ) -> None: 

1990 """Update an event 

1991 

1992 Change information in existing events specified by `event_id` or *flag suspicious events*. When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. **Warning** It's not possible to update events older than one month. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request. 

1993 

1994 :param event_id: The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id). (required) 

1995 :type event_id: str 

1996 :param event_update: (required) 

1997 :type event_update: EventUpdate 

1998 :param _request_timeout: timeout setting for this request. If one 

1999 number provided, it will be total request 

2000 timeout. It can also be a pair (tuple) of 

2001 (connection, read) timeouts. 

2002 :type _request_timeout: int, tuple(int, int), optional 

2003 :param _request_auth: set to override the auth_settings for an a single 

2004 request; this effectively ignores the 

2005 authentication in the spec for a single request. 

2006 :type _request_auth: dict, optional 

2007 :param _content_type: force content-type for the request. 

2008 :type _content_type: str, Optional 

2009 :param _headers: set to override the headers for a single 

2010 request; this effectively ignores the headers 

2011 in the spec for a single request. 

2012 :type _headers: dict, optional 

2013 :return: Returns the result object. 

2014 """ # noqa: E501 

2015 

2016 _param = self._update_event_serialize( 

2017 event_id=event_id, 

2018 event_update=event_update, 

2019 _request_auth=_request_auth, 

2020 _content_type=_content_type, 

2021 _headers=_headers, 

2022 ) 

2023 

2024 _response_types_map: dict[str, Optional[str]] = { 

2025 '200': None, 

2026 '400': 'ErrorResponse', 

2027 '403': 'ErrorResponse', 

2028 '404': 'ErrorResponse', 

2029 '409': 'ErrorResponse', 

2030 } 

2031 

2032 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

2033 response_data.read() 

2034 self.api_client.response_deserialize( 

2035 response_data=response_data, 

2036 response_types_map=_response_types_map, 

2037 ) 

2038 

2039 @validate_call 

2040 def update_event_with_http_info( 

2041 self, 

2042 event_id: Annotated[ 

2043 StrictStr, 

2044 Field( 

2045 description='The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id).' 

2046 ), 

2047 ], 

2048 event_update: EventUpdate, 

2049 _request_timeout: Union[ 

2050 None, 

2051 Annotated[StrictFloat, Field(gt=0)], 

2052 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

2053 ] = None, 

2054 _request_auth: Optional[dict[StrictStr, Any]] = None, 

2055 _content_type: Optional[StrictStr] = None, 

2056 _headers: Optional[dict[StrictStr, Any]] = None, 

2057 ) -> ApiResponse[None]: 

2058 """Update an event 

2059 

2060 Change information in existing events specified by `event_id` or *flag suspicious events*. When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. **Warning** It's not possible to update events older than one month. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request. 

2061 

2062 :param event_id: The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id). (required) 

2063 :type event_id: str 

2064 :param event_update: (required) 

2065 :type event_update: EventUpdate 

2066 :param _request_timeout: timeout setting for this request. If one 

2067 number provided, it will be total request 

2068 timeout. It can also be a pair (tuple) of 

2069 (connection, read) timeouts. 

2070 :type _request_timeout: int, tuple(int, int), optional 

2071 :param _request_auth: set to override the auth_settings for an a single 

2072 request; this effectively ignores the 

2073 authentication in the spec for a single request. 

2074 :type _request_auth: dict, optional 

2075 :param _content_type: force content-type for the request. 

2076 :type _content_type: str, Optional 

2077 :param _headers: set to override the headers for a single 

2078 request; this effectively ignores the headers 

2079 in the spec for a single request. 

2080 :type _headers: dict, optional 

2081 :return: Returns the result object. 

2082 """ # noqa: E501 

2083 

2084 _param = self._update_event_serialize( 

2085 event_id=event_id, 

2086 event_update=event_update, 

2087 _request_auth=_request_auth, 

2088 _content_type=_content_type, 

2089 _headers=_headers, 

2090 ) 

2091 

2092 _response_types_map: dict[str, Optional[str]] = { 

2093 '200': None, 

2094 '400': 'ErrorResponse', 

2095 '403': 'ErrorResponse', 

2096 '404': 'ErrorResponse', 

2097 '409': 'ErrorResponse', 

2098 } 

2099 

2100 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

2101 response_data.read() 

2102 return self.api_client.response_deserialize( 

2103 response_data=response_data, 

2104 response_types_map=_response_types_map, 

2105 ) 

2106 

2107 @validate_call 

2108 def update_event_without_preload_content( 

2109 self, 

2110 event_id: Annotated[ 

2111 StrictStr, 

2112 Field( 

2113 description='The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id).' 

2114 ), 

2115 ], 

2116 event_update: EventUpdate, 

2117 _request_timeout: Union[ 

2118 None, 

2119 Annotated[StrictFloat, Field(gt=0)], 

2120 tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 

2121 ] = None, 

2122 _request_auth: Optional[dict[StrictStr, Any]] = None, 

2123 _content_type: Optional[StrictStr] = None, 

2124 _headers: Optional[dict[StrictStr, Any]] = None, 

2125 ) -> RESTResponseType: 

2126 """Update an event 

2127 

2128 Change information in existing events specified by `event_id` or *flag suspicious events*. When an event is created, it can be assigned `linked_id` and `tags` submitted through the JS agent parameters. This information might not have been available on the client initially, so the Server API permits updating these attributes after the fact. **Warning** It's not possible to update events older than one month. **Warning** Trying to update an event immediately after creation may temporarily result in an error (HTTP 409 Conflict. The event is not mutable yet.) as the event is fully propagated across our systems. In such a case, simply retry the request. 

2129 

2130 :param event_id: The unique event [identifier](https://docs.fingerprint.com/reference/js-agent-v4-get-function#event_id). (required) 

2131 :type event_id: str 

2132 :param event_update: (required) 

2133 :type event_update: EventUpdate 

2134 :param _request_timeout: timeout setting for this request. If one 

2135 number provided, it will be total request 

2136 timeout. It can also be a pair (tuple) of 

2137 (connection, read) timeouts. 

2138 :type _request_timeout: int, tuple(int, int), optional 

2139 :param _request_auth: set to override the auth_settings for an a single 

2140 request; this effectively ignores the 

2141 authentication in the spec for a single request. 

2142 :type _request_auth: dict, optional 

2143 :param _content_type: force content-type for the request. 

2144 :type _content_type: str, Optional 

2145 :param _headers: set to override the headers for a single 

2146 request; this effectively ignores the headers 

2147 in the spec for a single request. 

2148 :type _headers: dict, optional 

2149 :return: Returns the result object. 

2150 """ # noqa: E501 

2151 

2152 _param = self._update_event_serialize( 

2153 event_id=event_id, 

2154 event_update=event_update, 

2155 _request_auth=_request_auth, 

2156 _content_type=_content_type, 

2157 _headers=_headers, 

2158 ) 

2159 

2160 _response_types_map: dict[str, Optional[str]] = { 

2161 '200': None, 

2162 '400': 'ErrorResponse', 

2163 '403': 'ErrorResponse', 

2164 '404': 'ErrorResponse', 

2165 '409': 'ErrorResponse', 

2166 } 

2167 

2168 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 

2169 return response_data.response 

2170 

2171 def _update_event_serialize( 

2172 self, 

2173 event_id: str, 

2174 event_update: EventUpdate, 

2175 _request_auth: Optional[dict[StrictStr, Any]], 

2176 _content_type: Optional[StrictStr], 

2177 _headers: Optional[dict[StrictStr, Any]], 

2178 ) -> RequestSerialized: 

2179 

2180 _collection_formats: dict[str, str] = {} 

2181 

2182 _path_params: dict[str, str] = {} 

2183 _query_params: list[tuple[str, ParamValue]] = [] 

2184 _header_params: dict[str, Optional[str]] = _headers or {} 

2185 _form_params: list[tuple[str, ParamValue]] = [] 

2186 _files: dict[ 

2187 str, 

2188 Union[str, bytes, list[str], list[bytes], tuple[str, bytes], list[tuple[str, bytes]]], 

2189 ] = {} 

2190 _body_params: Optional[Any] = None 

2191 

2192 # process the path parameters 

2193 if event_id is not None: 

2194 _path_params['event_id'] = event_id 

2195 

2196 # process the body parameter 

2197 if event_update is not None: 

2198 _body_params = event_update 

2199 

2200 # set the HTTP header `Accept` 

2201 if 'Accept' not in _header_params: 

2202 _header_params['Accept'] = self.api_client.select_header_accept(['application/json']) 

2203 

2204 # set the HTTP header `Content-Type` 

2205 if _content_type: 

2206 _header_params['Content-Type'] = _content_type 

2207 else: 

2208 _default_content_type = self.api_client.select_header_content_type( 

2209 ['application/json'] 

2210 ) 

2211 if _default_content_type is not None: 

2212 _header_params['Content-Type'] = _default_content_type 

2213 

2214 # authentication setting 

2215 _auth_settings: list[str] = ['bearerAuth'] 

2216 

2217 return self.api_client.param_serialize( 

2218 method='PATCH', 

2219 resource_path='/events/{event_id}', 

2220 path_params=_path_params, 

2221 query_params=_query_params, 

2222 header_params=_header_params, 

2223 body=_body_params, 

2224 post_params=_form_params, 

2225 files=_files, 

2226 auth_settings=_auth_settings, 

2227 collection_formats=_collection_formats, 

2228 _request_auth=_request_auth, 

2229 )