sentinelsup 0.2.1__tar.gz → 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- __pycache__/
2
- *.py[cod]
3
- *.egg-info/
4
- build/
5
- dist/
6
- .venv/
7
- .pytest_cache/
1
+ __pycache__/
2
+ *.py[cod]
3
+ *.egg-info/
4
+ build/
5
+ dist/
6
+ .venv/
7
+ .pytest_cache/
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Sentinel Edge Networks LTD
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Sentinel Edge Networks LTD
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentinelsup
3
- Version: 0.2.1
4
- Summary: Sentinel — real-time fraud, VPN, proxy, and bot detection API. Free tier, sub-40ms response.
5
- Project-URL: Homepage, https://sntlhq.com
6
- Project-URL: Documentation, https://sntlhq.com/api
7
- Project-URL: Repository, https://github.com/sentinelsup/sentinel-python
8
- Project-URL: Issues, https://github.com/sentinelsup/sentinel-python/issues
9
- Author-email: Sentinel Edge Networks LTD <support@sntlhq.com>
3
+ Version: 0.2.3
4
+ Summary: Maskbreak — real-time fraud, VPN, proxy, and bot detection API. Free tier, sub-40ms response.
5
+ Project-URL: Homepage, https://maskbreak.com
6
+ Project-URL: Documentation, https://maskbreak.com/api
7
+ Project-URL: Repository, https://github.com/sentinelsup/maskbreak-python
8
+ Project-URL: Issues, https://github.com/sentinelsup/maskbreak-python/issues
9
+ Author-email: Sentinel Edge Networks LTD <support@maskbreak.com>
10
10
  License: MIT
11
11
  License-File: LICENSE
12
12
  Keywords: antidetect-browser,api,bot-detection,device-fingerprinting,fraud-detection,proxy-detection,sentinel,vpn-detection
@@ -27,9 +27,9 @@ Classifier: Typing :: Typed
27
27
  Requires-Python: >=3.8
28
28
  Description-Content-Type: text/markdown
29
29
 
30
- # sentinelsup — Sentinel Python SDK
30
+ # sentinelsup — Maskbreak Python SDK
31
31
 
32
- Official Python SDK for [Sentinel](https://sntlhq.com) — a real-time fraud detection API that flags VPNs, residential proxies, antidetect browsers (Kameleo, GoLogin, Multilogin), Tor exit nodes, and AI bots in under 40 ms.
32
+ Official Python SDK for [Maskbreak](https://maskbreak.com) — a real-time fraud detection API that flags VPNs, residential proxies, antidetect browsers (Kameleo, GoLogin, Multilogin), Tor exit nodes, and AI bots in under 40 ms.
33
33
 
34
34
  [![PyPI](https://img.shields.io/pypi/v/sentinelsup.svg)](https://pypi.org/project/sentinelsup/)
35
35
  [![Python versions](https://img.shields.io/pypi/pyversions/sentinelsup.svg)](https://pypi.org/project/sentinelsup/)
@@ -43,12 +43,12 @@ Using Claude Code, Cursor, Copilot, or any AI coding assistant? Paste this one
43
43
  prompt and it wires the whole integration — frontend script, backend check,
44
44
  env var, and a test:
45
45
 
46
- > Fetch https://sntlhq.com/integrate.md and follow it to add Sentinel fraud
46
+ > Fetch https://maskbreak.com/integrate.md and follow it to add Maskbreak fraud
47
47
  > protection to this app — protect signup, login, and checkout. My API key
48
48
  > is sk_live_YOUR_KEY; put it in a SENTINEL_KEY env var, never in
49
49
  > client-side code. Then show me how to test it.
50
50
 
51
- [`integrate.md`](https://sntlhq.com/integrate.md) is the canonical
51
+ [`integrate.md`](https://maskbreak.com/integrate.md) is the canonical
52
52
  machine-readable integration guide, kept in sync with the live API.
53
53
 
54
54
  ## Install
@@ -57,7 +57,7 @@ machine-readable integration guide, kept in sync with the live API.
57
57
  pip install sentinelsup
58
58
  ```
59
59
 
60
- Python 3.8+. Get a free API key (no credit card) at [sntlhq.com/signup](https://sntlhq.com/signup).
60
+ Python 3.8+. Get a free API key (no credit card) at [maskbreak.com/signup](https://maskbreak.com/signup).
61
61
 
62
62
  ## Quick start
63
63
 
@@ -92,10 +92,6 @@ print(info["verdict"]) # 'allow' | 'review' | 'block'
92
92
  print(info["signals"]) # {'vpn': ..., 'proxied': ..., 'tor': ..., 'dch': ..., 'anon': ...}
93
93
  ```
94
94
 
95
- > `email=` and `lookup()` ship in the **next PyPI release (0.2.1)** — on PyPI
96
- > today, use the raw HTTP endpoints documented at
97
- > [sntlhq.com/api](https://sntlhq.com/api) until it lands.
98
-
99
95
  ## What you get back
100
96
 
101
97
  `evaluate()` returns an `EvaluateResult` dataclass:
@@ -110,6 +106,10 @@ class EvaluateResult:
110
106
  network: dict # {vpn, proxy, datacenter, anonymous, tor, residential, service}
111
107
  device: dict # antidetect / automation / emulator signals
112
108
  reasons: list[str] # machine-readable codes
109
+ email: dict | None # {disposable: bool} — present when you passed email=
110
+ decision_source: str | None # 'rules' | 'exception' when your policy matched
111
+ engine_decision: str | None # engine's own verdict when policy changed the decision
112
+ test: bool # True for test-token / test-key calls
113
113
  raw: dict # full upstream response
114
114
 
115
115
  is_suspicious: bool # True if decision != 'allow'
@@ -119,18 +119,18 @@ class EvaluateResult:
119
119
  Try the live sample (same shape, no key needed):
120
120
 
121
121
  ```bash
122
- curl "https://sntlhq.com/v1/evaluate/sample?scenario=vpn"
122
+ curl "https://maskbreak.com/v1/evaluate/sample?scenario=vpn"
123
123
  ```
124
124
 
125
- Or use the [interactive playground](https://sntlhq.com/api#playground).
125
+ Or use the [interactive playground](https://maskbreak.com/api#playground).
126
126
 
127
127
  ## Frontend setup
128
128
 
129
- Add the Sentinel SDK to your frontend. One script loads **both** layers —
129
+ Add the Maskbreak SDK to your frontend. One script loads **both** layers —
130
130
  network (VPN/proxy/datacenter) and device (antidetect/bot/tampering):
131
131
 
132
132
  ```html
133
- <script async src="https://sntlhq.com/assets/sentinel.js"></script>
133
+ <script async src="https://maskbreak.com/assets/sentinel.js"></script>
134
134
 
135
135
  <!-- Add class="monocle-enriched" to any form you want evaluated -->
136
136
  <form class="monocle-enriched" id="signup-form">
@@ -206,12 +206,12 @@ Runnable versions live in [`examples/`](./examples/).
206
206
 
207
207
  ## API
208
208
 
209
- ### `Sentinel(api_key=None, endpoint="https://sntlhq.com", timeout=5.0)`
209
+ ### `Sentinel(api_key=None, endpoint="https://maskbreak.com", timeout=5.0)`
210
210
 
211
211
  | Option | Default | Description |
212
212
  |--------|---------|-------------|
213
213
  | `api_key` | `$SENTINEL_KEY` (falls back to `$SENTINEL_API_KEY`) | Your key starting with `sk_live_` |
214
- | `endpoint` | `https://sntlhq.com` | Override base URL (for testing) |
214
+ | `endpoint` | `https://maskbreak.com` | Override base URL (for testing) |
215
215
  | `timeout` | `5.0` | Per-request timeout in seconds |
216
216
 
217
217
  ### `sentinel.evaluate(token, fingerprint_event_id=None, account_id=None, email=None)`
@@ -226,6 +226,24 @@ Returns `EvaluateResult`. Raises `SentinelError` on network/API failure.
226
226
 
227
227
  Returns the raw response dict for any public IPv4/IPv6 address (wraps `GET /v1/lookup/{ip}`): `verdict` (`allow`/`review`/`block`), `risk_score` (0–100), `known`, `signals` (`{vpn, proxied, tor, dch, anon}` or `None`), `network` (`{asn, org, country, city}`), `latency_ms`. Shares the per-key hourly quota with `evaluate()`. `known: False` means our feeds hold no data — it is **not** a clean guarantee.
228
228
 
229
+ ## Testing
230
+
231
+ Deterministic test tokens exercise your allow / review / block handling end-to-end — no browser needed. Test calls are authenticated and rate-limited like real ones but never billed, stored, or webhooked, and the response carries `test=True`:
232
+
233
+ ```python
234
+ result = s.evaluate(token="test_vpn") # also: test_clean, test_proxy, test_datacenter, test_tor
235
+ assert result.decision == "review"
236
+ assert result.test
237
+ ```
238
+
239
+ No account yet? The public sandbox key accepts the same test tokens:
240
+
241
+ ```python
242
+ s = Sentinel(api_key="sk_test_sandbox") # CI/staging — nothing billed, nothing stored
243
+ ```
244
+
245
+ Every account also has a personal `sk_test_...` key (Settings → API Key) that runs the *complete* live pipeline — real tokens, your rules and exception pins included — while events stay flagged as test and never count toward usage or webhooks.
246
+
229
247
  ## Errors
230
248
 
231
249
  All failures raise `SentinelError`. The exception carries `.status` (HTTP code) and `.body` (parsed error body) when available.
@@ -247,9 +265,9 @@ except SentinelError as e:
247
265
  ## Rate limits
248
266
 
249
267
  Free tier: **1,000 requests/hour** per API key. No monthly cap, no credit
250
- card. Upgrade at [sntlhq.com](https://sntlhq.com) when you need more.
268
+ card. Upgrade at [maskbreak.com](https://maskbreak.com) when you need more.
251
269
 
252
- ## What Sentinel detects
270
+ ## What Maskbreak detects
253
271
 
254
272
  VPNs (commercial + self-hosted) · residential proxies (Bright Data, IPRoyal,
255
273
  and similar networks) · datacenter IPs · Tor exit nodes · antidetect browsers
@@ -259,10 +277,10 @@ virtual machines · browser tampering.
259
277
 
260
278
  ## Related
261
279
 
262
- - **Node.js SDK** — [`@sentinelsup/sdk`](https://github.com/sentinelsup/sentinel-node) on npm
263
- - **API docs** — [sntlhq.com/api](https://sntlhq.com/api)
264
- - **Free IP lookup tool** — [sntlhq.com/ip-lookup](https://sntlhq.com/ip-lookup)
280
+ - **Node.js SDK** — [`@sentinelsup/sdk`](https://github.com/sentinelsup/maskbreak-node) on npm
281
+ - **API docs** — [maskbreak.com/api](https://maskbreak.com/api)
282
+ - **Free IP lookup tool** — [maskbreak.com/ip-lookup](https://maskbreak.com/ip-lookup)
265
283
 
266
284
  ## License
267
285
 
268
- MIT © [Sentinel Edge Networks LTD](https://sntlhq.com). See [LICENSE](LICENSE).
286
+ MIT © [Sentinel Edge Networks LTD](https://maskbreak.com). See [LICENSE](LICENSE).