parseapi 1.7.0__tar.gz → 1.8.0__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.
- {parseapi-1.7.0 → parseapi-1.8.0}/CHANGELOG.md +7 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/PKG-INFO +68 -13
- {parseapi-1.7.0 → parseapi-1.8.0}/README.md +67 -12
- {parseapi-1.7.0 → parseapi-1.8.0}/api/public.json +312 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/pyproject.toml +1 -1
- {parseapi-1.7.0 → parseapi-1.8.0}/smoke/smoke.py +6 -6
- {parseapi-1.7.0 → parseapi-1.8.0}/src/parseapi/__init__.py +1 -1
- {parseapi-1.7.0 → parseapi-1.8.0}/src/parseapi/_client.py +102 -30
- parseapi-1.8.0/tests/bank-fixtures.json +92 -0
- parseapi-1.8.0/tests/test_bank.py +69 -0
- parseapi-1.8.0/tests/test_card_dx.py +120 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/tests/test_client.py +33 -23
- {parseapi-1.7.0 → parseapi-1.8.0}/tests/test_language.py +1 -1
- {parseapi-1.7.0 → parseapi-1.8.0}/.github/workflows/publish.yml +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/.github/workflows/test.yml +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/.gitignore +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/LICENSE +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/scripts/public_api.py +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/src/parseapi/py.typed +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/tests/test_email_enrichment.py +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/tests/test_name_formatting.py +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/tests/test_postal_localities.py +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/tests/test_public_api.py +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/tests/test_stack.py +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/tests/test_tariff.py +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/tests/test_time_complete.py +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/tests/test_time_gaps.py +0 -0
- {parseapi-1.7.0 → parseapi-1.8.0}/tests/test_version.py +0 -0
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.8.0 — 2026-09-25
|
|
4
|
+
|
|
5
|
+
- Add Bank diagnostics, POST requests, requirements and explicit US ACH helpers; Card Core and optional Deep; Provider; Industry; and Vehicle.
|
|
6
|
+
- Preserve published IBAN, BIN, NPI, NAICS and VIN methods and response types alongside the new names.
|
|
7
|
+
- Respect long Retry-After responses without retrying early and expose the raw header as optional error metadata.
|
|
8
|
+
- Retain released Time, Tariff, Postal and Elevation behavior. Expanded Company directory changes are deferred.
|
|
9
|
+
|
|
3
10
|
## 1.7.0 - 2026-09-24
|
|
4
11
|
|
|
5
12
|
- Add exact Tariff edition/date selection, answering metadata, contextual search lineage and explanatory null reasons. Explicit selections reject unsupported or mismatched server responses.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: parseapi
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.8.0
|
|
4
4
|
Summary: Official ParseAPI client for Python. One key, minimal JSON, fast.
|
|
5
5
|
Project-URL: Homepage, https://parseapi.com
|
|
6
6
|
Project-URL: Documentation, https://parseapi.com/docs
|
|
@@ -75,9 +75,9 @@ parse.ip("8.8.8.8")
|
|
|
75
75
|
parse.ip.self()
|
|
76
76
|
parse.email("hello@gmail.com")
|
|
77
77
|
parse.vat("DE136695976")
|
|
78
|
-
parse.
|
|
79
|
-
parse.
|
|
80
|
-
parse.
|
|
78
|
+
parse.bank("DE89370400440532013000")
|
|
79
|
+
parse.card("424242")
|
|
80
|
+
parse.provider("1881018208")
|
|
81
81
|
parse.phone("+14155552671")
|
|
82
82
|
parse.carrier("+14155552671")
|
|
83
83
|
parse.caller("+14155552671")
|
|
@@ -128,16 +128,18 @@ parse.mx("example.com")
|
|
|
128
128
|
parse.dns("example.com")
|
|
129
129
|
parse.dns("_dmarc.example.com", type="TXT")
|
|
130
130
|
parse.useragent(ua_string)
|
|
131
|
-
parse.
|
|
132
|
-
parse.
|
|
133
|
-
parse.
|
|
131
|
+
parse.vehicle("1HGCM82633A004352")
|
|
132
|
+
parse.industry("541511")
|
|
133
|
+
parse.industry.search("coffee shop", limit=5)
|
|
134
134
|
parse.tariff("8471.30.01.00")
|
|
135
135
|
parse.tariff.search("sunglasses")
|
|
136
136
|
parse.emoji("rocket")
|
|
137
137
|
parse.emoji.search("fire")
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
The existing NAICS lookup and search methods remain available as compatibility names for Industry.
|
|
141
|
+
|
|
142
|
+
Industry paid deep records include classification `deep.exclusions`, each with a description and linked codes. Generic exclusions can have no linked codes. Omitted or null exclusions in older responses remain unknown. Search results also include `match`: the matched `field` (`name`, `term` or `naics`) and `text`, plus `corrections` with `from` and `to` tokens for typo fallback. Corrections are empty for exact, plural and prefix matches. Direct code lookups omit `match`. Older responses may omit it.
|
|
141
143
|
|
|
142
144
|
Responses are plain dicts, exactly the JSON the API returns. `country.states("US")` requests states directly; it does not fetch a country first. Required inputs are positional and optional behavior uses keyword arguments, leaving room for new options without changing existing calls. Reuse a client across calls. Use `with ParseAPI(...) as parse:` or call `parse.close()` when finished.
|
|
143
145
|
|
|
@@ -266,6 +268,32 @@ Address search uses context from the form: prefer postal, or city and state. An
|
|
|
266
268
|
|
|
267
269
|
HLR reports status at the last check. `live` means assigned and `connected` means reachable at that check. Cached results may be returned. Null means unconfirmed. Deep diagnostics stay within the same metered lookup.
|
|
268
270
|
|
|
271
|
+
Bank returns core `checks` for input, country, length, structure, checksum and national rules, plus an `issues` list. States are `passed`, `failed`, `not_checked` or `not_supported`. Unsupported national checking is not a failure. `valid` covers the implemented format and checksum rules, not account existence, ownership or payment reachability. Directory names and BICs may be null independently. Older responses may omit `checks` and `issues`, and future states and issue codes remain strings. Pass the original input unchanged so the API can report invalid characters. Deep `account` remains the BBAN remainder.
|
|
272
|
+
|
|
273
|
+
Bank inputs use `POST /bank` JSON bodies, keeping IBAN and account values out of request URLs. Pass original strings; the server owns normalization and validation. Avoid logging request bodies. IBAN deep can include `directory` with the immutable `edition`, resolved `country` and actual `match` grain (`bank`, `branch`, `prefix` or `none`); it is absent if no directory lookup ran. A match does not prove complete country coverage or payment reachability.
|
|
274
|
+
|
|
275
|
+
Use country requirements to build supported input fields. US ACH has an explicit helper with no deep option. It checks the routing format/ABA checksum and account-field syntax; `account_checksum` is `not_supported`. It preserves account characters and leading zeros. A nullable bank name is routing-directory identity, not account existence, ownership or ACH eligibility. The examples below are synthetic test inputs, not payment instructions.
|
|
276
|
+
|
|
277
|
+
```python
|
|
278
|
+
parse.bank_requirements("US", format="us_ach")
|
|
279
|
+
parse.bank_us_ach(routing="011000015", account="0001234567")
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
## Provider lookup
|
|
283
|
+
|
|
284
|
+
```python
|
|
285
|
+
provider = parse.provider("1881018208")
|
|
286
|
+
profile = parse.provider("1881018208", deep=True)
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
Pass the original NPI as a string. `valid` checks its format and checksum; `registered` means a match in the stored NPPES snapshot. `active` reflects recorded NPI deactivation, not licensure. `excluded` is an NPI-only OIG LEIE match; `false` is not a complete exclusion clearance. These directory facts do not verify credentials, current practice contact or payment eligibility.
|
|
290
|
+
|
|
291
|
+
Invalid input returns `valid: false` with unknown provider fields. A checksum-valid number missing from the snapshot returns `registered: false`; unavailable storage remains an API error. Preserve `null` as unknown.
|
|
292
|
+
|
|
293
|
+
The default pooled lookup includes provider identity, specialty and practice contact where held. Paid `deep` adds `deactivated_at`, `medicare`, `opt_out` and `enrollments` from stored source files, with no separate check meter or live verification. `enrollments: null` means unavailable; `[]` means no enrollment rows are returned. The API omits unrequested `deep` and returns `{}` when requested on Free.
|
|
294
|
+
|
|
295
|
+
Paid Deep also returns `taxonomies` in published order, with taxonomy code, specialty label, primary flag and provider-reported license number/state, plus `enumerated_at`, `updated_at` and `reactivated_at` record dates. Reported licenses are not verified licenses. Null lists mean unavailable; empty lists mean the edition contains no entries. Core `sources` is available on every plan: NPPES, LEIE, PECOS and opt-out each have nullable edition metadata (`edition`, `published_at`, `through`, `imported_at`). Provider record dates are separate from source publication and completed import dates. Older responses may omit these additions. Edition details remain null until a verified source is served.
|
|
296
|
+
|
|
269
297
|
## Deep
|
|
270
298
|
|
|
271
299
|
Choose enrichment for the question you need answered.
|
|
@@ -276,10 +304,11 @@ Choose enrichment for the question you need answered.
|
|
|
276
304
|
| Domain | Registration dates, registrar, status and DNSSEC, included with a paid plan. Use `dns` for DNS records and `mx` for mail routing. |
|
|
277
305
|
| Email | A metered mailbox check with deliverability, catch-all, status, reason and address hints, using included email checks or enabled on-demand usage. |
|
|
278
306
|
| VAT | A metered registry check where supported, using included VAT checks or enabled on-demand usage. |
|
|
279
|
-
| Phone, Time, Date, Currency, Language, Emoji,
|
|
307
|
+
| Phone, Time, Date, Currency, Language, Emoji, Bank, Point | Optional detail in the same pooled request on every plan. |
|
|
280
308
|
| Country, State, District, City, Postal | The place profile on paid plans, including demographic and tax facts where held. |
|
|
281
|
-
| Name,
|
|
282
|
-
|
|
|
309
|
+
| Name, Industry | Name evidence or the industry definition profile on paid plans. |
|
|
310
|
+
| NPI | Deactivation date, Medicare enrollment, opt-out and enrollment rows from stored sources on paid plans. Exclusion evidence stays core. |
|
|
311
|
+
| Vehicle, Tariff, Company | The complete product detail bag on paid plans. |
|
|
283
312
|
| Weather | Specialist current measurements and the existing forecast, alert, air and history bag on paid plans. |
|
|
284
313
|
| Carrier, HLR | Optional diagnostic detail within the same metered core unit, including Free allowance units. No second gate or additional check. |
|
|
285
314
|
|
|
@@ -327,16 +356,40 @@ Ordinary lookups retry network failures, 429, and 500/502/503/504 responses twic
|
|
|
327
356
|
|
|
328
357
|
An explicit client `retries` setting overrides those defaults; `retries=0` always makes one attempt. Another attempt can consume additional usage if the earlier response was lost. Cancelling an async task stops the call and any retry wait. Automatic redirects are disabled.
|
|
329
358
|
|
|
359
|
+
Automatic retries wait at most five seconds per attempt. A longer valid `Retry-After` returns the original API error immediately without retrying early. Read `retry_after` on the error for the original header, or null when absent.
|
|
360
|
+
|
|
330
361
|
## Docs
|
|
331
362
|
|
|
332
363
|
Full field reference for every endpoint: [parseapi.com/docs](https://parseapi.com/docs)
|
|
333
364
|
|
|
334
|
-
|
|
365
|
+
## Card
|
|
366
|
+
|
|
367
|
+
Send 2–11 leading digits as a string. Core returns `bin`, `brand`, `brand_name`
|
|
368
|
+
and a CDN SVG `logo`. Brand detection uses reviewed network rules independently
|
|
369
|
+
of issuer records. Unknown or ambiguous prefixes return null brand fields and a
|
|
370
|
+
generic logo; a known network without reviewed artwork also uses the generic logo.
|
|
335
371
|
|
|
372
|
+
Optional Deep adds `prefix`, `issuer`, `country`, `type` and `prepaid`, included
|
|
373
|
+
in the same pooled request on every plan. Six or more digits enable directory
|
|
374
|
+
matching. Fewer digits return all-null Deep fields. Compare `deep.prefix` with
|
|
375
|
+
`bin`: equal is an exact recorded match; shorter is broader; null is no match.
|
|
376
|
+
The longest row wins, including null fields. `prepaid: null` means unknown, not
|
|
377
|
+
false. This is partial reference data, not card validity or payment acceptance.
|
|
378
|
+
|
|
379
|
+
```python
|
|
380
|
+
card = parse.card("51")
|
|
381
|
+
print(card["brand"], card["logo"])
|
|
382
|
+
details = parse.card("43737400", deep=True)
|
|
383
|
+
print(details["deep"]["prefix"], details["deep"]["issuer"])
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
Leading zeros are preserved. Only ASCII spaces, tabs, CR, LF and hyphens are
|
|
387
|
+
removed; raw input is limited to 64 characters. Invalid prefixes are rejected
|
|
388
|
+
before dispatch, accepted input is forwarded unchanged. Never send a full card number.
|
|
336
389
|
|
|
337
390
|
## Optional detail
|
|
338
391
|
|
|
339
|
-
The default response answers the common task. Ask for `deep` when you need more detail about that same result. Core fields stay equal. City,
|
|
392
|
+
The default response answers the common task. Ask for `deep` when you need more detail about that same result. Core fields stay equal. City, Industry and Emoji searches put detail inside each result. Postal nearby and distance put metropolitan detail beside the entity it describes. Time conversion keeps target detail in `to.deep`; only the source has `deep.next_dst`.
|
|
340
393
|
|
|
341
394
|
```python
|
|
342
395
|
basic = parse.time("America/New_York")
|
|
@@ -358,3 +411,5 @@ Pass a public hostname without a scheme, path, port or IP address. Stack returns
|
|
|
358
411
|
Successful checks may be reused for up to 24 hours. `pretty` optionally formats the wire JSON. Stack uses your plan's request allowance and API version 2.0.0 selected by this client.
|
|
359
412
|
|
|
360
413
|
Stack defaults to a 35-second transport timeout so a first scan has time to finish. Other lookups retain their 10-second default. An explicit client timeout takes precedence.
|
|
414
|
+
|
|
415
|
+
Vehicle lookups use `vin` as the input and response field. Existing VIN methods remain available for compatibility.
|
|
@@ -56,9 +56,9 @@ parse.ip("8.8.8.8")
|
|
|
56
56
|
parse.ip.self()
|
|
57
57
|
parse.email("hello@gmail.com")
|
|
58
58
|
parse.vat("DE136695976")
|
|
59
|
-
parse.
|
|
60
|
-
parse.
|
|
61
|
-
parse.
|
|
59
|
+
parse.bank("DE89370400440532013000")
|
|
60
|
+
parse.card("424242")
|
|
61
|
+
parse.provider("1881018208")
|
|
62
62
|
parse.phone("+14155552671")
|
|
63
63
|
parse.carrier("+14155552671")
|
|
64
64
|
parse.caller("+14155552671")
|
|
@@ -109,16 +109,18 @@ parse.mx("example.com")
|
|
|
109
109
|
parse.dns("example.com")
|
|
110
110
|
parse.dns("_dmarc.example.com", type="TXT")
|
|
111
111
|
parse.useragent(ua_string)
|
|
112
|
-
parse.
|
|
113
|
-
parse.
|
|
114
|
-
parse.
|
|
112
|
+
parse.vehicle("1HGCM82633A004352")
|
|
113
|
+
parse.industry("541511")
|
|
114
|
+
parse.industry.search("coffee shop", limit=5)
|
|
115
115
|
parse.tariff("8471.30.01.00")
|
|
116
116
|
parse.tariff.search("sunglasses")
|
|
117
117
|
parse.emoji("rocket")
|
|
118
118
|
parse.emoji.search("fire")
|
|
119
119
|
```
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
The existing NAICS lookup and search methods remain available as compatibility names for Industry.
|
|
122
|
+
|
|
123
|
+
Industry paid deep records include classification `deep.exclusions`, each with a description and linked codes. Generic exclusions can have no linked codes. Omitted or null exclusions in older responses remain unknown. Search results also include `match`: the matched `field` (`name`, `term` or `naics`) and `text`, plus `corrections` with `from` and `to` tokens for typo fallback. Corrections are empty for exact, plural and prefix matches. Direct code lookups omit `match`. Older responses may omit it.
|
|
122
124
|
|
|
123
125
|
Responses are plain dicts, exactly the JSON the API returns. `country.states("US")` requests states directly; it does not fetch a country first. Required inputs are positional and optional behavior uses keyword arguments, leaving room for new options without changing existing calls. Reuse a client across calls. Use `with ParseAPI(...) as parse:` or call `parse.close()` when finished.
|
|
124
126
|
|
|
@@ -247,6 +249,32 @@ Address search uses context from the form: prefer postal, or city and state. An
|
|
|
247
249
|
|
|
248
250
|
HLR reports status at the last check. `live` means assigned and `connected` means reachable at that check. Cached results may be returned. Null means unconfirmed. Deep diagnostics stay within the same metered lookup.
|
|
249
251
|
|
|
252
|
+
Bank returns core `checks` for input, country, length, structure, checksum and national rules, plus an `issues` list. States are `passed`, `failed`, `not_checked` or `not_supported`. Unsupported national checking is not a failure. `valid` covers the implemented format and checksum rules, not account existence, ownership or payment reachability. Directory names and BICs may be null independently. Older responses may omit `checks` and `issues`, and future states and issue codes remain strings. Pass the original input unchanged so the API can report invalid characters. Deep `account` remains the BBAN remainder.
|
|
253
|
+
|
|
254
|
+
Bank inputs use `POST /bank` JSON bodies, keeping IBAN and account values out of request URLs. Pass original strings; the server owns normalization and validation. Avoid logging request bodies. IBAN deep can include `directory` with the immutable `edition`, resolved `country` and actual `match` grain (`bank`, `branch`, `prefix` or `none`); it is absent if no directory lookup ran. A match does not prove complete country coverage or payment reachability.
|
|
255
|
+
|
|
256
|
+
Use country requirements to build supported input fields. US ACH has an explicit helper with no deep option. It checks the routing format/ABA checksum and account-field syntax; `account_checksum` is `not_supported`. It preserves account characters and leading zeros. A nullable bank name is routing-directory identity, not account existence, ownership or ACH eligibility. The examples below are synthetic test inputs, not payment instructions.
|
|
257
|
+
|
|
258
|
+
```python
|
|
259
|
+
parse.bank_requirements("US", format="us_ach")
|
|
260
|
+
parse.bank_us_ach(routing="011000015", account="0001234567")
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## Provider lookup
|
|
264
|
+
|
|
265
|
+
```python
|
|
266
|
+
provider = parse.provider("1881018208")
|
|
267
|
+
profile = parse.provider("1881018208", deep=True)
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Pass the original NPI as a string. `valid` checks its format and checksum; `registered` means a match in the stored NPPES snapshot. `active` reflects recorded NPI deactivation, not licensure. `excluded` is an NPI-only OIG LEIE match; `false` is not a complete exclusion clearance. These directory facts do not verify credentials, current practice contact or payment eligibility.
|
|
271
|
+
|
|
272
|
+
Invalid input returns `valid: false` with unknown provider fields. A checksum-valid number missing from the snapshot returns `registered: false`; unavailable storage remains an API error. Preserve `null` as unknown.
|
|
273
|
+
|
|
274
|
+
The default pooled lookup includes provider identity, specialty and practice contact where held. Paid `deep` adds `deactivated_at`, `medicare`, `opt_out` and `enrollments` from stored source files, with no separate check meter or live verification. `enrollments: null` means unavailable; `[]` means no enrollment rows are returned. The API omits unrequested `deep` and returns `{}` when requested on Free.
|
|
275
|
+
|
|
276
|
+
Paid Deep also returns `taxonomies` in published order, with taxonomy code, specialty label, primary flag and provider-reported license number/state, plus `enumerated_at`, `updated_at` and `reactivated_at` record dates. Reported licenses are not verified licenses. Null lists mean unavailable; empty lists mean the edition contains no entries. Core `sources` is available on every plan: NPPES, LEIE, PECOS and opt-out each have nullable edition metadata (`edition`, `published_at`, `through`, `imported_at`). Provider record dates are separate from source publication and completed import dates. Older responses may omit these additions. Edition details remain null until a verified source is served.
|
|
277
|
+
|
|
250
278
|
## Deep
|
|
251
279
|
|
|
252
280
|
Choose enrichment for the question you need answered.
|
|
@@ -257,10 +285,11 @@ Choose enrichment for the question you need answered.
|
|
|
257
285
|
| Domain | Registration dates, registrar, status and DNSSEC, included with a paid plan. Use `dns` for DNS records and `mx` for mail routing. |
|
|
258
286
|
| Email | A metered mailbox check with deliverability, catch-all, status, reason and address hints, using included email checks or enabled on-demand usage. |
|
|
259
287
|
| VAT | A metered registry check where supported, using included VAT checks or enabled on-demand usage. |
|
|
260
|
-
| Phone, Time, Date, Currency, Language, Emoji,
|
|
288
|
+
| Phone, Time, Date, Currency, Language, Emoji, Bank, Point | Optional detail in the same pooled request on every plan. |
|
|
261
289
|
| Country, State, District, City, Postal | The place profile on paid plans, including demographic and tax facts where held. |
|
|
262
|
-
| Name,
|
|
263
|
-
|
|
|
290
|
+
| Name, Industry | Name evidence or the industry definition profile on paid plans. |
|
|
291
|
+
| NPI | Deactivation date, Medicare enrollment, opt-out and enrollment rows from stored sources on paid plans. Exclusion evidence stays core. |
|
|
292
|
+
| Vehicle, Tariff, Company | The complete product detail bag on paid plans. |
|
|
264
293
|
| Weather | Specialist current measurements and the existing forecast, alert, air and history bag on paid plans. |
|
|
265
294
|
| Carrier, HLR | Optional diagnostic detail within the same metered core unit, including Free allowance units. No second gate or additional check. |
|
|
266
295
|
|
|
@@ -308,16 +337,40 @@ Ordinary lookups retry network failures, 429, and 500/502/503/504 responses twic
|
|
|
308
337
|
|
|
309
338
|
An explicit client `retries` setting overrides those defaults; `retries=0` always makes one attempt. Another attempt can consume additional usage if the earlier response was lost. Cancelling an async task stops the call and any retry wait. Automatic redirects are disabled.
|
|
310
339
|
|
|
340
|
+
Automatic retries wait at most five seconds per attempt. A longer valid `Retry-After` returns the original API error immediately without retrying early. Read `retry_after` on the error for the original header, or null when absent.
|
|
341
|
+
|
|
311
342
|
## Docs
|
|
312
343
|
|
|
313
344
|
Full field reference for every endpoint: [parseapi.com/docs](https://parseapi.com/docs)
|
|
314
345
|
|
|
315
|
-
|
|
346
|
+
## Card
|
|
347
|
+
|
|
348
|
+
Send 2–11 leading digits as a string. Core returns `bin`, `brand`, `brand_name`
|
|
349
|
+
and a CDN SVG `logo`. Brand detection uses reviewed network rules independently
|
|
350
|
+
of issuer records. Unknown or ambiguous prefixes return null brand fields and a
|
|
351
|
+
generic logo; a known network without reviewed artwork also uses the generic logo.
|
|
316
352
|
|
|
353
|
+
Optional Deep adds `prefix`, `issuer`, `country`, `type` and `prepaid`, included
|
|
354
|
+
in the same pooled request on every plan. Six or more digits enable directory
|
|
355
|
+
matching. Fewer digits return all-null Deep fields. Compare `deep.prefix` with
|
|
356
|
+
`bin`: equal is an exact recorded match; shorter is broader; null is no match.
|
|
357
|
+
The longest row wins, including null fields. `prepaid: null` means unknown, not
|
|
358
|
+
false. This is partial reference data, not card validity or payment acceptance.
|
|
359
|
+
|
|
360
|
+
```python
|
|
361
|
+
card = parse.card("51")
|
|
362
|
+
print(card["brand"], card["logo"])
|
|
363
|
+
details = parse.card("43737400", deep=True)
|
|
364
|
+
print(details["deep"]["prefix"], details["deep"]["issuer"])
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
Leading zeros are preserved. Only ASCII spaces, tabs, CR, LF and hyphens are
|
|
368
|
+
removed; raw input is limited to 64 characters. Invalid prefixes are rejected
|
|
369
|
+
before dispatch, accepted input is forwarded unchanged. Never send a full card number.
|
|
317
370
|
|
|
318
371
|
## Optional detail
|
|
319
372
|
|
|
320
|
-
The default response answers the common task. Ask for `deep` when you need more detail about that same result. Core fields stay equal. City,
|
|
373
|
+
The default response answers the common task. Ask for `deep` when you need more detail about that same result. Core fields stay equal. City, Industry and Emoji searches put detail inside each result. Postal nearby and distance put metropolitan detail beside the entity it describes. Time conversion keeps target detail in `to.deep`; only the source has `deep.next_dst`.
|
|
321
374
|
|
|
322
375
|
```python
|
|
323
376
|
basic = parse.time("America/New_York")
|
|
@@ -339,3 +392,5 @@ Pass a public hostname without a scheme, path, port or IP address. Stack returns
|
|
|
339
392
|
Successful checks may be reused for up to 24 hours. `pretty` optionally formats the wire JSON. Stack uses your plan's request allowance and API version 2.0.0 selected by this client.
|
|
340
393
|
|
|
341
394
|
Stack defaults to a 35-second transport timeout so a first scan has time to finish. Other lookups retain their 10-second default. An explicit client timeout takes precedence.
|
|
395
|
+
|
|
396
|
+
Vehicle lookups use `vin` as the input and response field. Existing VIN methods remain available for compatibility.
|
|
@@ -81,6 +81,62 @@
|
|
|
81
81
|
],
|
|
82
82
|
"returns": "Json"
|
|
83
83
|
},
|
|
84
|
+
"bank": {
|
|
85
|
+
"async": true,
|
|
86
|
+
"parameters": [
|
|
87
|
+
{
|
|
88
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
89
|
+
"name": "iban",
|
|
90
|
+
"type": "str"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"default": null,
|
|
94
|
+
"kind": "KEYWORD_ONLY",
|
|
95
|
+
"name": "country",
|
|
96
|
+
"type": "Optional[str]"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"default": false,
|
|
100
|
+
"kind": "KEYWORD_ONLY",
|
|
101
|
+
"name": "deep",
|
|
102
|
+
"type": "bool"
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"returns": "Json"
|
|
106
|
+
},
|
|
107
|
+
"bank_requirements": {
|
|
108
|
+
"async": true,
|
|
109
|
+
"parameters": [
|
|
110
|
+
{
|
|
111
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
112
|
+
"name": "country",
|
|
113
|
+
"type": "str"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"default": null,
|
|
117
|
+
"kind": "KEYWORD_ONLY",
|
|
118
|
+
"name": "format",
|
|
119
|
+
"type": "Optional[str]"
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"returns": "Json"
|
|
123
|
+
},
|
|
124
|
+
"bank_us_ach": {
|
|
125
|
+
"async": true,
|
|
126
|
+
"parameters": [
|
|
127
|
+
{
|
|
128
|
+
"kind": "KEYWORD_ONLY",
|
|
129
|
+
"name": "routing",
|
|
130
|
+
"type": "str"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"kind": "KEYWORD_ONLY",
|
|
134
|
+
"name": "account",
|
|
135
|
+
"type": "str"
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
"returns": "Json"
|
|
139
|
+
},
|
|
84
140
|
"bin": {
|
|
85
141
|
"async": true,
|
|
86
142
|
"parameters": [
|
|
@@ -143,6 +199,23 @@
|
|
|
143
199
|
],
|
|
144
200
|
"returns": "Json"
|
|
145
201
|
},
|
|
202
|
+
"card": {
|
|
203
|
+
"async": true,
|
|
204
|
+
"parameters": [
|
|
205
|
+
{
|
|
206
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
207
|
+
"name": "bin",
|
|
208
|
+
"type": "str"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"default": false,
|
|
212
|
+
"kind": "KEYWORD_ONLY",
|
|
213
|
+
"name": "deep",
|
|
214
|
+
"type": "bool"
|
|
215
|
+
}
|
|
216
|
+
],
|
|
217
|
+
"returns": "Json"
|
|
218
|
+
},
|
|
146
219
|
"carrier": {
|
|
147
220
|
"async": true,
|
|
148
221
|
"parameters": [
|
|
@@ -832,6 +905,46 @@
|
|
|
832
905
|
],
|
|
833
906
|
"returns": "Json"
|
|
834
907
|
},
|
|
908
|
+
"industry": {
|
|
909
|
+
"async": true,
|
|
910
|
+
"parameters": [
|
|
911
|
+
{
|
|
912
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
913
|
+
"name": "code",
|
|
914
|
+
"type": "str"
|
|
915
|
+
},
|
|
916
|
+
{
|
|
917
|
+
"default": false,
|
|
918
|
+
"kind": "KEYWORD_ONLY",
|
|
919
|
+
"name": "deep",
|
|
920
|
+
"type": "bool"
|
|
921
|
+
}
|
|
922
|
+
],
|
|
923
|
+
"returns": "Json"
|
|
924
|
+
},
|
|
925
|
+
"industry.search": {
|
|
926
|
+
"async": true,
|
|
927
|
+
"parameters": [
|
|
928
|
+
{
|
|
929
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
930
|
+
"name": "query",
|
|
931
|
+
"type": "str"
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
"default": null,
|
|
935
|
+
"kind": "KEYWORD_ONLY",
|
|
936
|
+
"name": "limit",
|
|
937
|
+
"type": "Optional[int]"
|
|
938
|
+
},
|
|
939
|
+
{
|
|
940
|
+
"default": false,
|
|
941
|
+
"kind": "KEYWORD_ONLY",
|
|
942
|
+
"name": "deep",
|
|
943
|
+
"type": "bool"
|
|
944
|
+
}
|
|
945
|
+
],
|
|
946
|
+
"returns": "Json"
|
|
947
|
+
},
|
|
835
948
|
"ip": {
|
|
836
949
|
"async": true,
|
|
837
950
|
"parameters": [
|
|
@@ -1224,6 +1337,29 @@
|
|
|
1224
1337
|
],
|
|
1225
1338
|
"returns": "Json"
|
|
1226
1339
|
},
|
|
1340
|
+
"provider": {
|
|
1341
|
+
"async": true,
|
|
1342
|
+
"parameters": [
|
|
1343
|
+
{
|
|
1344
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
1345
|
+
"name": "npi",
|
|
1346
|
+
"type": "str"
|
|
1347
|
+
},
|
|
1348
|
+
{
|
|
1349
|
+
"default": false,
|
|
1350
|
+
"kind": "KEYWORD_ONLY",
|
|
1351
|
+
"name": "deep",
|
|
1352
|
+
"type": "bool"
|
|
1353
|
+
},
|
|
1354
|
+
{
|
|
1355
|
+
"default": null,
|
|
1356
|
+
"kind": "KEYWORD_ONLY",
|
|
1357
|
+
"name": "lang",
|
|
1358
|
+
"type": "Optional[str]"
|
|
1359
|
+
}
|
|
1360
|
+
],
|
|
1361
|
+
"returns": "Json"
|
|
1362
|
+
},
|
|
1227
1363
|
"stack": {
|
|
1228
1364
|
"async": true,
|
|
1229
1365
|
"parameters": [
|
|
@@ -1692,6 +1828,23 @@
|
|
|
1692
1828
|
],
|
|
1693
1829
|
"returns": "Json"
|
|
1694
1830
|
},
|
|
1831
|
+
"vehicle": {
|
|
1832
|
+
"async": true,
|
|
1833
|
+
"parameters": [
|
|
1834
|
+
{
|
|
1835
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
1836
|
+
"name": "vin",
|
|
1837
|
+
"type": "str"
|
|
1838
|
+
},
|
|
1839
|
+
{
|
|
1840
|
+
"default": false,
|
|
1841
|
+
"kind": "KEYWORD_ONLY",
|
|
1842
|
+
"name": "deep",
|
|
1843
|
+
"type": "bool"
|
|
1844
|
+
}
|
|
1845
|
+
],
|
|
1846
|
+
"returns": "Json"
|
|
1847
|
+
},
|
|
1695
1848
|
"vin": {
|
|
1696
1849
|
"async": true,
|
|
1697
1850
|
"parameters": [
|
|
@@ -1820,6 +1973,62 @@
|
|
|
1820
1973
|
],
|
|
1821
1974
|
"returns": "Json"
|
|
1822
1975
|
},
|
|
1976
|
+
"bank": {
|
|
1977
|
+
"async": false,
|
|
1978
|
+
"parameters": [
|
|
1979
|
+
{
|
|
1980
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
1981
|
+
"name": "iban",
|
|
1982
|
+
"type": "str"
|
|
1983
|
+
},
|
|
1984
|
+
{
|
|
1985
|
+
"default": null,
|
|
1986
|
+
"kind": "KEYWORD_ONLY",
|
|
1987
|
+
"name": "country",
|
|
1988
|
+
"type": "Optional[str]"
|
|
1989
|
+
},
|
|
1990
|
+
{
|
|
1991
|
+
"default": false,
|
|
1992
|
+
"kind": "KEYWORD_ONLY",
|
|
1993
|
+
"name": "deep",
|
|
1994
|
+
"type": "bool"
|
|
1995
|
+
}
|
|
1996
|
+
],
|
|
1997
|
+
"returns": "Json"
|
|
1998
|
+
},
|
|
1999
|
+
"bank_requirements": {
|
|
2000
|
+
"async": false,
|
|
2001
|
+
"parameters": [
|
|
2002
|
+
{
|
|
2003
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
2004
|
+
"name": "country",
|
|
2005
|
+
"type": "str"
|
|
2006
|
+
},
|
|
2007
|
+
{
|
|
2008
|
+
"default": null,
|
|
2009
|
+
"kind": "KEYWORD_ONLY",
|
|
2010
|
+
"name": "format",
|
|
2011
|
+
"type": "Optional[str]"
|
|
2012
|
+
}
|
|
2013
|
+
],
|
|
2014
|
+
"returns": "Json"
|
|
2015
|
+
},
|
|
2016
|
+
"bank_us_ach": {
|
|
2017
|
+
"async": false,
|
|
2018
|
+
"parameters": [
|
|
2019
|
+
{
|
|
2020
|
+
"kind": "KEYWORD_ONLY",
|
|
2021
|
+
"name": "routing",
|
|
2022
|
+
"type": "str"
|
|
2023
|
+
},
|
|
2024
|
+
{
|
|
2025
|
+
"kind": "KEYWORD_ONLY",
|
|
2026
|
+
"name": "account",
|
|
2027
|
+
"type": "str"
|
|
2028
|
+
}
|
|
2029
|
+
],
|
|
2030
|
+
"returns": "Json"
|
|
2031
|
+
},
|
|
1823
2032
|
"bin": {
|
|
1824
2033
|
"async": false,
|
|
1825
2034
|
"parameters": [
|
|
@@ -1882,6 +2091,23 @@
|
|
|
1882
2091
|
],
|
|
1883
2092
|
"returns": "Json"
|
|
1884
2093
|
},
|
|
2094
|
+
"card": {
|
|
2095
|
+
"async": false,
|
|
2096
|
+
"parameters": [
|
|
2097
|
+
{
|
|
2098
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
2099
|
+
"name": "bin",
|
|
2100
|
+
"type": "str"
|
|
2101
|
+
},
|
|
2102
|
+
{
|
|
2103
|
+
"default": false,
|
|
2104
|
+
"kind": "KEYWORD_ONLY",
|
|
2105
|
+
"name": "deep",
|
|
2106
|
+
"type": "bool"
|
|
2107
|
+
}
|
|
2108
|
+
],
|
|
2109
|
+
"returns": "Json"
|
|
2110
|
+
},
|
|
1885
2111
|
"carrier": {
|
|
1886
2112
|
"async": false,
|
|
1887
2113
|
"parameters": [
|
|
@@ -2571,6 +2797,46 @@
|
|
|
2571
2797
|
],
|
|
2572
2798
|
"returns": "Json"
|
|
2573
2799
|
},
|
|
2800
|
+
"industry": {
|
|
2801
|
+
"async": false,
|
|
2802
|
+
"parameters": [
|
|
2803
|
+
{
|
|
2804
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
2805
|
+
"name": "code",
|
|
2806
|
+
"type": "str"
|
|
2807
|
+
},
|
|
2808
|
+
{
|
|
2809
|
+
"default": false,
|
|
2810
|
+
"kind": "KEYWORD_ONLY",
|
|
2811
|
+
"name": "deep",
|
|
2812
|
+
"type": "bool"
|
|
2813
|
+
}
|
|
2814
|
+
],
|
|
2815
|
+
"returns": "Json"
|
|
2816
|
+
},
|
|
2817
|
+
"industry.search": {
|
|
2818
|
+
"async": false,
|
|
2819
|
+
"parameters": [
|
|
2820
|
+
{
|
|
2821
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
2822
|
+
"name": "query",
|
|
2823
|
+
"type": "str"
|
|
2824
|
+
},
|
|
2825
|
+
{
|
|
2826
|
+
"default": null,
|
|
2827
|
+
"kind": "KEYWORD_ONLY",
|
|
2828
|
+
"name": "limit",
|
|
2829
|
+
"type": "Optional[int]"
|
|
2830
|
+
},
|
|
2831
|
+
{
|
|
2832
|
+
"default": false,
|
|
2833
|
+
"kind": "KEYWORD_ONLY",
|
|
2834
|
+
"name": "deep",
|
|
2835
|
+
"type": "bool"
|
|
2836
|
+
}
|
|
2837
|
+
],
|
|
2838
|
+
"returns": "Json"
|
|
2839
|
+
},
|
|
2574
2840
|
"ip": {
|
|
2575
2841
|
"async": false,
|
|
2576
2842
|
"parameters": [
|
|
@@ -2963,6 +3229,29 @@
|
|
|
2963
3229
|
],
|
|
2964
3230
|
"returns": "Json"
|
|
2965
3231
|
},
|
|
3232
|
+
"provider": {
|
|
3233
|
+
"async": false,
|
|
3234
|
+
"parameters": [
|
|
3235
|
+
{
|
|
3236
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
3237
|
+
"name": "npi",
|
|
3238
|
+
"type": "str"
|
|
3239
|
+
},
|
|
3240
|
+
{
|
|
3241
|
+
"default": false,
|
|
3242
|
+
"kind": "KEYWORD_ONLY",
|
|
3243
|
+
"name": "deep",
|
|
3244
|
+
"type": "bool"
|
|
3245
|
+
},
|
|
3246
|
+
{
|
|
3247
|
+
"default": null,
|
|
3248
|
+
"kind": "KEYWORD_ONLY",
|
|
3249
|
+
"name": "lang",
|
|
3250
|
+
"type": "Optional[str]"
|
|
3251
|
+
}
|
|
3252
|
+
],
|
|
3253
|
+
"returns": "Json"
|
|
3254
|
+
},
|
|
2966
3255
|
"stack": {
|
|
2967
3256
|
"async": false,
|
|
2968
3257
|
"parameters": [
|
|
@@ -3431,6 +3720,23 @@
|
|
|
3431
3720
|
],
|
|
3432
3721
|
"returns": "Json"
|
|
3433
3722
|
},
|
|
3723
|
+
"vehicle": {
|
|
3724
|
+
"async": false,
|
|
3725
|
+
"parameters": [
|
|
3726
|
+
{
|
|
3727
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
3728
|
+
"name": "vin",
|
|
3729
|
+
"type": "str"
|
|
3730
|
+
},
|
|
3731
|
+
{
|
|
3732
|
+
"default": false,
|
|
3733
|
+
"kind": "KEYWORD_ONLY",
|
|
3734
|
+
"name": "deep",
|
|
3735
|
+
"type": "bool"
|
|
3736
|
+
}
|
|
3737
|
+
],
|
|
3738
|
+
"returns": "Json"
|
|
3739
|
+
},
|
|
3434
3740
|
"vin": {
|
|
3435
3741
|
"async": false,
|
|
3436
3742
|
"parameters": [
|
|
@@ -3504,6 +3810,12 @@
|
|
|
3504
3810
|
"kind": "POSITIONAL_OR_KEYWORD",
|
|
3505
3811
|
"name": "request_id",
|
|
3506
3812
|
"type": "Optional[str]"
|
|
3813
|
+
},
|
|
3814
|
+
{
|
|
3815
|
+
"default": null,
|
|
3816
|
+
"kind": "POSITIONAL_OR_KEYWORD",
|
|
3817
|
+
"name": "retry_after",
|
|
3818
|
+
"type": "Optional[str]"
|
|
3507
3819
|
}
|
|
3508
3820
|
]
|
|
3509
3821
|
}
|