Python SDK for Datafiniti Data APIs (Business, People, Property, Product)
Project description
Datafiniti SDK
Python SDK for the Datafiniti Data APIs — Business, People, Property, and Product data.
Installation
pip install datafiniti-sdk
Authentication
All SDK classes require a Datafiniti API key. You can pass it directly or set it as an environment variable:
export DATAFINITI_API_KEY="your_api_key_here"
Quick Start
from datafiniti import DatafinitiBusinessSDK, DatafinitiPeopleSDK, PropertyDataSDK, DatafinitiProductSDK
# Initialize from environment variable
sdk = PropertyDataSDK.from_env()
# Or pass the key directly
sdk = PropertyDataSDK(api_key="your_api_key_here")
Business Data
from datafiniti import DatafinitiBusinessSDK
sdk = DatafinitiBusinessSDK.from_env()
# Search by name
results = sdk.search_by_name("Starbucks", city="Seattle", num_records=5)
# Count matching records
count = sdk.count("country:US AND categories:(restaurants)")
# Build a custom query
query = sdk.query().country("US").categories(["restaurants"]).build()
results = sdk.search(query, num_records=10)
# Paginate through large result sets
for record in sdk.paginate('country:"US" AND province:"TX"', page_size=10, max_records=50):
print(record)
# Search by geolocation — businesses within 10 miles of a coordinate
# geoLocation format: [Longitude, Latitude, Distance, Unit]
# Supported units: m, mi, ft, yd, mm, km, NM, cm
results = sdk.geolocation(
longitude=-97.7430600,
latitude=30.2671500,
distance=10,
unit="mi",
num_records=3,
)
# Or use the query builder directly for geolocation
query = (
sdk.query()
.geo_location(-97.7430600, 30.2671500, 10, "mi")
.build()
)
results = sdk.search(query, num_records=10)
# Use a named view to control which fields are returned
# Options: "default", "business_all_nested", "business_basic",
# "business_flat_menus", "business_flat_reviews", "business_no_reviews"
results = sdk.search(
query='country:"US" AND province:"TX"',
num_records=5,
view="business_flat_reviews",
)
People Data
from datafiniti import DatafinitiPeopleSDK
sdk = DatafinitiPeopleSDK.from_env()
# Search by name
results = sdk.search_by_name("John Smith", city="Austin", num_records=10)
# Count matching records
count = sdk.count('name:"John Smith" AND country:US')
Property Data
from datafiniti import PropertyDataSDK
sdk = PropertyDataSDK.from_env()
# Search by address
results = sdk.search_by_address("123 Main St", postal_code="78701", num_records=1)
# Search by geolocation — properties within 10 miles of a coordinate
# Supported units: m, mi, ft, yd, mm, km, NM, cm
results = sdk.geolocation(
longitude=-97.7430600,
latitude=30.2671500,
distance=10,
unit="mi",
num_records=10,
)
# Or use the query builder directly for geolocation
query = (
sdk.query()
.geo_location(-97.7430600, 30.2671500, 10, "mi")
.most_recent_status("For Sale")
.build()
)
results = sdk.search(query, num_records=10)
# Find properties for sale
results = sdk.for_sale(
postal_codes=["78701", "78702"],
property_types=["Single Family Residential"],
num_records=20
)
# Count matching records
count = sdk.count('country:US AND mostRecentStatus:"For Sale"')
# Paginate through results
for record in sdk.paginate('country:US AND mostRecentStatus:"For Sale"', page_size=100):
print(record["address"])
Product Data
from datafiniti import DatafinitiProductSDK
sdk = DatafinitiProductSDK.from_env()
# Search by product name
results = sdk.search_by_name("iPhone 15", brand="Apple", num_records=10)
# Count matching records
count = sdk.count('brand:"Apple"')
Common Methods
All four SDK classes inherit these methods:
| Method | Description |
|---|---|
search(query, num_records) |
Search and return up to num_records results |
count(query) |
Return the total number of matching records |
paginate(query, page_size, max_records) |
Generator that yields records page by page |
query() |
Returns a query builder for the data type |
Error Handling
from datafiniti import DatafinitiAPIError
try:
results = sdk.search("country:US", num_records=10)
except DatafinitiAPIError as e:
print(f"API error {e.status_code}: {e.message}")
Requirements
- Python 3.9+
requests >= 2.31.0
License
MIT
Project details
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 datafiniti_sdk-0.1.5.tar.gz.
File metadata
- Download URL: datafiniti_sdk-0.1.5.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86bdcb6a34eb8cdda8bc47425f702b547278e488eac0c02857e41a8fa8aa7957
|
|
| MD5 |
9f90766b048ffd8ddc100b70c3b688e6
|
|
| BLAKE2b-256 |
00f27a7128a0b872eeddcde52cdf1a958ad1109eff2bc815c9fd25cbfeb074c2
|
File details
Details for the file datafiniti_sdk-0.1.5-py3-none-any.whl.
File metadata
- Download URL: datafiniti_sdk-0.1.5-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
889af856268940bba7d1141fb6d627679948a3e4ad12c4d14e8c7011cf02c69f
|
|
| MD5 |
d22fe2ac3ceceb6144394a1108278ec6
|
|
| BLAKE2b-256 |
7ab4fd8c066b2a8d0f6df7c8d9237cca0fd2b2d14a660cf40c1b27491a8a0f22
|