Lightfeed API Client for Python
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
Lightfeed Python SDK
Official Python client library for interacting with the Lightfeed API. Extract, search, and filter web data with a simple and intuitive interface.
Features
- Simple and intuitive interface for accessing Lightfeed APIs
- Semantic search and advanced filtering capabilities
- Full type definitions for better developer experience
- Comprehensive error handling
- Support for pagination
Installation
pip install lightfeed
Quick Start
from lightfeed import LightfeedClient, Condition, Operator
# Initialize client with your API key
client = LightfeedClient({
"apiKey": "YOUR_API_KEY"
})
# Retrieve records
def get_recent_records():
try:
response = client.get_records("your-database-id", {
"start_time": "2024-01-01T00:00:00Z",
"limit": 100
})
print(f"Retrieved {len(response['results'])} records")
print(response["results"])
except Exception as e:
print(f"Error retrieving records: {e}")
# Search records
def search_for_companies():
try:
response = client.search_records("your-database-id", {
"search": {
"text": "innovative AI solutions",
"threshold": 0.3
},
"filter": {
"condition": Condition.AND,
"rules": [
{
"column": "industry",
"operator": Operator.EQUALS,
"value": "Technology"
}
]
}
})
print(f"Found {len(response['results'])} matching records")
except Exception as e:
print(f"Error searching records: {e}")
API Documentation
Configuration
{
"apiKey": str, # required
"baseUrl": str, # optional, defaults to 'https://api.lightfeed.ai'
"timeout": float # optional, defaults to 30.0 seconds
}
Methods
get_records
Retrieves records from a database with optional filtering by time range.
client.get_records(database_id: str, params: Optional[GetRecordsParams]) -> RecordsResponse
Parameters:
databaseId(string): The ID of your Lightfeed databaseparams(optional): Query parametersstart_time(string, optional): Start of time range (ISO 8601)end_time(string, optional): End of time range (ISO 8601)limit(number, optional): Maximum records to return (default: 100, max: 500)cursor(string, optional): Pagination cursor
Returns: Records response containing results and pagination information
For detailed specifications and examples, see Get Records API
search_records
Performs semantic search on your database records with optional filtering.
client.search_records(database_id: str, params: SearchRecordsParams) -> RecordsResponse
Parameters:
databaseId(string): The ID of your Lightfeed databaseparams: Search parameterssearch.text(string): The text to search forsearch.threshold(number, optional): Minimum relevance score (0-1)filter(object, optional): Filtering conditionstime_range(object, optional): Time range constraintspagination(object, optional): Pagination options
Returns: Records response containing results with relevance scores
For detailed specifications and examples, see Search Records API
filter_records
Applies complex filtering conditions to database records.
client.filter_records(database_id: str, params: FilterRecordsParams) -> RecordsResponse
Parameters:
databaseId(string): The ID of your Lightfeed databaseparams: Filter parametersfilter(object): Filtering conditions using rules and operatorstime_range(object, optional): Time range constraintspagination(object, optional): Pagination options
Returns: Records response containing filtered results
For detailed specifications and examples, see Filter Records API
Authentication
All API requests require authentication using your Lightfeed API key. You can generate an API key in the Lightfeed dashboard under "API Keys".
client = LightfeedClient({
"apiKey": "YOUR_API_KEY"
})
Error Handling
The client library handles HTTP errors from the API and converts them into structured LightfeedError objects.
from lightfeed import LightfeedError
try:
records = client.get_records("your-database-id")
except LightfeedError as e:
print(f"Error {e.status}: {e.message}")
# Handle specific error types
if e.status == 401:
print("Authentication failed. Please check your API key")
elif e.status == 404:
print("Database not found")
# ...
Documentation
For comprehensive documentation and guides, visit the Lightfeed Documentation.
Support
If you need assistance with your implementation:
- Email us at support@lightfeed.ai
- Open an issue in the GitHub repository
- Join our Discord community
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 lightfeed-0.1.2.tar.gz.
File metadata
- Download URL: lightfeed-0.1.2.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df326f37b52f18e93c0aee88df2a9fdc2f59f7d9bc9f66a8a17233ea069baf78
|
|
| MD5 |
1a9ea06d74185acf4eabf9ee8167b0c7
|
|
| BLAKE2b-256 |
0907ed91c1b34c135086186b51c8662ba5494c5f9823dd1a2d8ce23694e447c6
|
File details
Details for the file lightfeed-0.1.2-py3-none-any.whl.
File metadata
- Download URL: lightfeed-0.1.2-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21710d9f69809a486b010cae2fb19caa3a070e60f4568014e8a3f97a0b589a25
|
|
| MD5 |
ceaac42a58a2f5aaeda0a87a56b5aafd
|
|
| BLAKE2b-256 |
4e39c45e88fe1b965c35107a7d2bb44b38e6c4f369e79c7d5e95e1c70a627407
|