FraudRecord API client
Project description
FraudRecord API client for Python
Install from PyPI:
$ pip install fraudrecord
If you will use the non-blocking API, include aio extra:
$ pip install fraudrecord[aio]
This package is maintained, stable, and perpetually tested. There will never be any breaking changes.
Example
Using the blocking API:
from fraudrecord.query import query as fraudrecord_query
if __name__ == "__main__":
api_code = "a51ff508c331b7e9" # XXX: use your own
print(fraudrecord_query(api_code, email="example@example.org"))
Using the non-blocking API:
import asyncio
from fraudrecord.query_aio import query as fraudrecord_query
async def main():
api_code = "a51ff508c331b7e9" # XXX: use your own
response = await fraudrecord_query(api_code, email="example@example.org")
print(response)
if __name__ == "__main__":
asyncio.run(main())
Using the CLI:
$ FRAUDRECORD_API_CODE=a51ff508c331b7e9 fraudrecord-query --email=example@example.org
Documentation
fraudrecord.hash
FraudRecord hashing scheme as described on https://fraudrecord.com/security/.
32,000 iterations of SHA-1. Case- and whitespace- insensitive: the input is
lowercased and stripped of all whitespace. The hexadecimal digest of each
iteration is fed into the next iteration. The input of each iteration
is prefixed with fraudrecord-.
-
function
hexdigest(s: str) -> strReturns the hexadecimal digest of the input string.
fraudrecord.model
Concepts of FraudRecord API.
-
type
APICodeAPI code. Lowercase alphanumeric string, 16 characters. Get one by signing up with FraudRecord and creating a reporter profile.
-
type
ReliabilityResult reliability measurement. Decimal; either 0.0 (if there are no submitted reports) or between 1.0 and 10.0 with one digit after the decimal point.
-
type
ReportCodeReport code. Lowercase alphanumeric string, 16 characters. Used in order to fetch a human-readable report.
-
constant
ENDPOINT: HttpUrlAPI endpoint URL.
-
function
query_url(api_code: APICode, **data_vars: str) -> HttpUrlGiven an API code and non-hashed data variables, returns the corresponding query API URL.
Data variables are arbitrary bits of information about someone as described on https://fraudrecord.com/developers/ under "Data variables". Well-known data variable names are:
name: full namecompany: company nameemail: email addressaddress: postal addressphone: phone numberip: registration IP addresshostname: server hostnameaccountuser: hosting account usernameaccountpass: hosting account passworddomain: domain name withoutwww.paypalemail: PayPal email addressccname: name on the credit cardccnumber: credit card number
-
function
report_url(report_code: ReportCode) -> HttpUrlGiven a report code, returns the corresponding human-readable report URL.
-
class
QueryResponseQuery API response.
-
field
value: NonNegativeIntTotal sum of points (severity scores) across all submitted reports.
-
field
total_reports: NonNegativeIntTotal number of the submitted reports.
-
field
reliability: ReliabilityResult reliability measurement, out of possible 10.
-
field
report_url: HttpUrlHuman-readable report URL.
Example: https://www.fraudrecord.com/api/?showreport=0f5dac5aab7762e6
-
class method
parse(s: str) -> QueryResponseParses the input string containing the query API HTTP response body into a
QueryResponseobject.
-
fraudrecord.query
Blocking FraudRecord query API client.
-
function
query(api_code: APICode, **data_vars: str) -> QueryResponseMakes a query request to the API and returns a
QueryResponse.
fraudrecord.query.cli
FraudRecord query API command-line interface.
Usage: fraudrecord-query --DATA_VARIABLE=VALUE ...
FRAUDRECORD_API_CODE environment variable must be set to a valid FraudRecord
API code. Get one by signing up with FraudRecord and creating a reporter profile.
fraudrecord.query_aio
Non-blocking FraudRecord query API client.
Requires aio extra to be installed.
-
async function
query(api_code: APICode, **data_vars: str) -> QueryResponseMakes a query request to the API and returns a
QueryResponse.
Note that the report submission functionality isn't and won't be implemented. I believe that users of FraudRecord violate their clients' privacy, and I don't want to be a part of that.
While it's true that FraudRecord only stores hashes of (arbitrary, sensitive) data, if you do end up in the database, it lets anyone on the internet easily check if their guess of your personal email address, physical address, legal name, credit card number, IP address, and such is correct or not as long as they know any single one of these bits of information in advance. There is no defined limit to the number of guesses they could make.
Moreover, reports themselves are presented in cleartext and frequently contain some sensitive data anyway. Here you can see various FraudRecord users posting their (ostensibly fraudulent) clients' full names, addresses, and even, in one case, a photo of the driver's license: [1], [2], [3]. I wish I was making it up.
This API client is intended for privacy research only.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fraudrecord-2022.10.22.tar.gz.
File metadata
- Download URL: fraudrecord-2022.10.22.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.10.8 Linux/5.19.16-hardened1-1-hardened
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9213780721a8ff9bcb7ef402f6ca79dffe851964fe04980f10569d1cee634da
|
|
| MD5 |
8cb6f62aa6f467c7333f76749ce417d0
|
|
| BLAKE2b-256 |
07f223c8897c21686350ae9f3f41aaea601288c79fb7fb26598ced4664831659
|
File details
Details for the file fraudrecord-2022.10.22-py3-none-any.whl.
File metadata
- Download URL: fraudrecord-2022.10.22-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.10.8 Linux/5.19.16-hardened1-1-hardened
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ffdbd83df45b8ad1cff3414c2dbd50811ddb6f3baf6dd9191a077eaa64273a8
|
|
| MD5 |
be9c33e4d702c2210103835030905e3b
|
|
| BLAKE2b-256 |
a6c2a7927b67884f53d6938dceb344ab162a6d95cec9179df7ea481b7b2e9b76
|