Python SDK for 1ClickImpact API
Project description
🌱 MakeImpact Python SDK
Official Python SDK for 1ClickImpact - Easily integrate impact actions into your Python applications
📦 Installation
pip install makeimpact
# or
poetry add makeimpact
🚀 Getting Started
You'll need an API key to use this SDK. You can get your API key from the 1ClickImpact Account API Keys page.
from makeimpact import OneClickImpact, Environment
# Initialize the SDK with your API key (production environment by default)
sdk = OneClickImpact("your_api_key")
# Create environmental impact with just a few lines of code
sdk.plant_tree(amount=1)
sdk.clean_ocean(amount=5)
sdk.capture_carbon(amount=2)
🌍 Environmental Impact Actions
🌳 Plant Trees
Help combat deforestation and climate change by planting trees.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# Plant a single tree
sdk.plant_tree(amount=1)
# Plant trees with a specific category
sdk.plant_tree(amount=10, category="food")
# Plant trees with customer tracking
sdk.plant_tree(
amount=5,
customer_email="customer@example.com",
customer_name="John Doe"
)
🌊 Clean Ocean Plastic
Remove plastic waste from our oceans to protect marine life.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# Clean 5 pounds of ocean plastic
sdk.clean_ocean(amount=5)
# Clean ocean plastic with customer tracking
sdk.clean_ocean(
amount=10,
customer_email="customer@example.com",
customer_name="John Doe"
)
♻️ Capture Carbon
Reduce greenhouse gas emissions by capturing carbon.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# Capture 2 pounds of carbon
sdk.capture_carbon(amount=2)
# Capture carbon with customer tracking
sdk.capture_carbon(
amount=5,
customer_email="customer@example.com",
customer_name="John Doe"
)
💰 Donate Money
Support any cause through direct monetary donations.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# Donate $1.00 (amount in cents)
sdk.donate_money(amount=100)
# Donate with customer tracking
sdk.donate_money(
amount=500, # $5.00
customer_email="customer@example.com",
customer_name="John Doe"
)
Note: To set up a custom cause for donations, please contact 1ClickImpact directly. All causes must be vetted and approved to ensure they meet their standards for transparency and impact.
📊 Data Access & Reporting
Get Records
Retrieve impact records with optional filtering.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# Get all records
records = sdk.get_records()
# Filter records by type
tree_records = sdk.get_records(filter_by="tree_planted")
# Filter records by date range
recent_records = sdk.get_records(
start_date="2023-01-01",
end_date="2023-12-31"
)
# Pagination
paginated_records = sdk.get_records(
cursor="cursor_from_previous_response",
limit=10
)
Get Customer Records
Retrieve records for specific customers.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# Get records for a specific customer
customer_records = sdk.get_customer_records(
customer_email="customer@example.com"
)
# Filter customer records by type
customer_tree_records = sdk.get_customer_records(
customer_email="customer@example.com",
filter_by="tree_planted"
)
Get Customers
Retrieve customer information.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# Get all customers (default limit is 10)
customers = sdk.get_customers()
# Get customers with filtering and pagination
filtered_customers = sdk.get_customers(
customer_email="example@email.com", # Optional: Filter by email
limit=50, # Optional: Limit results (1-1000)
cursor="cursor_from_previous_response" # Optional: For pagination
)
🔍 Track Impact
Track the complete lifecycle and current status of a specific impact, including project location, assigned agents, completion status, and documentation.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# First create an impact
response = sdk.plant_tree(amount=1)
# Then track its progress
tracking_info = sdk.track(
user_id=response.user_id,
time_utc=response.time_utc
)
print(f"Tracking ID: {tracking_info.tracking_id}")
print(f"Impact Initiated: {tracking_info.impact_initiated}")
if tracking_info.project_location:
print(f"Project Location: {tracking_info.project_location}")
if tracking_info.assigned_agent:
print(f"Assigned Agent: {tracking_info.assigned_agent}")
if tracking_info.impact_completed:
print(f"Impact Completed: {tracking_info.impact_completed}")
You can also track impacts from historical records:
# Get records and track a specific impact
records = sdk.get_records(limit=1)
if records.user_records:
record = records.user_records[0]
tracking_info = sdk.track(
user_id=record.user_id,
time_utc=record.time_utc
)
print("Tracking Info:", tracking_info)
Track Response Fields:
tracking_id: Unique identifier for this impact (format:user_id-time_utc)impact_initiated: UTC timestamp when the impact was createdtree_planted,waste_removed,carbon_captured,money_donated: Impact metrics (optional)category: Impact category (e.g., "food" for food-bearing trees)donation_available: When the donation became available for the projectdonation_sent: When the donation was sent to the non-profitassigned_agent: Name of the agent or organization executing the impactproject_location: Detailed description of project location and partnerslocation_map: Google Maps embed URL for the project locationimpact_completed: When the impact was completeddonation_category: Type of impact funded (for donations)certificate: Certificate URL for the impact (only present in production)impact_video: URL to video recording or live sessionlive_session_date: Scheduled live session timestampproject_id: ID of the project assigned to this impact (when available)is_test_transaction: Whether this was a test transactionis_bonus_impact: Whether this was a bonus impact from subscription plans
Get Projects
Retrieve available environmental impact projects.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# Get all projects
projects = sdk.get_projects()
# Filter by impact type
tree_projects = sdk.get_projects(type="trees")
ocean_projects = sdk.get_projects(type="ocean")
carbon_projects = sdk.get_projects(type="carbon")
# Get projects in a specific language
german_projects = sdk.get_projects(locale="de")
for project in projects.projects:
print(f"{project.project_id}: {project.name} ({project.location})")
Get Project by ID
Retrieve full details for a specific project.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
project = sdk.get_project_by_id("PROJECT_ID")
print(f"Name: {project.name}")
print(f"Type: {project.type}")
print(f"Location: {project.location}")
print(f"Organization: {project.organization}")
print(f"Available: {project.available}")
# SDG alignments
for sdg in project.sdgs:
print(f"SDG {sdg.number}: {sdg.title}")
# Get project in a specific language
project_es = sdk.get_project_by_id("PROJECT_ID", locale="es")
Project Fields:
project_id: Unique project identifiername: Project nametype: Impact type ("trees","ocean", or"carbon")location: Project location namedescription: Short project descriptionabout: Detailed project informationcountry_code: ISO country codeorganization: Executing organization namesdgs: List of UN Sustainable Development Goals this project aligns withimage_urls: List of project image URLslatitude,longitude: Project coordinatesavailable: Whether the project is currently active
Get Impact
Get aggregated lifetime impact statistics with breakdown between direct impact and customer impact.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# Get overall impact statistics for your organization
impact = sdk.get_impact()
# Total impact (user + customer)
print(f"Total trees planted: {impact.tree_planted}")
print(f"Total ocean waste removed: {impact.waste_removed} lbs")
print(f"Total carbon captured: {impact.carbon_captured} lbs")
print(f"Total money donated: ${impact.money_donated / 100}")
# Direct impact by your organization
print(f"\nDirect impact trees: {impact.user_impact.tree_planted}")
print(f"Direct impact waste removed: {impact.user_impact.waste_removed} lbs")
# Impact on behalf of customers
print(f"\nCustomer impact trees: {impact.customer_impact.tree_planted}")
print(f"Customer impact waste removed: {impact.customer_impact.waste_removed} lbs")
Get Daily Impact
Get time-series daily impact data with optional date range filtering.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# Get all daily impact data
daily_impact = sdk.get_daily_impact()
for day in daily_impact.daily_impact:
print(f"Date: {day.date}")
print(f" Trees: {day.tree_planted}")
print(f" Waste removed: {day.waste_removed} lbs")
print(f" Carbon captured: {day.carbon_captured} lbs")
print(f" Donated: ${day.money_donated / 100}")
# Get daily impact for specific date range
filtered_impact = sdk.get_daily_impact(
start_date="2025-01-01",
end_date="2025-12-31"
)
Who Am I
Verify your API key and get account information.
from makeimpact import OneClickImpact
sdk = OneClickImpact("your_api_key")
# Verify API key and get account information
account_info = sdk.who_am_i()
⚙️ Configuration
Environments
The SDK supports two environments:
- Production (default): Uses the live API at
https://api.1clickimpact.com - Sandbox: Uses the testing API at
https://sandbox.1clickimpact.com
To use the sandbox environment for testing:
from makeimpact import OneClickImpact, Environment
# Initialize with sandbox environment
sdk = OneClickImpact("your_test_api_key", Environment.SANDBOX)
🔗 Additional Resources
📄 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 makeimpact-1.3.0.tar.gz.
File metadata
- Download URL: makeimpact-1.3.0.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bacdab73fb4a90111c92037434f3291261d7c9a29c693e4df54a6385d378be9
|
|
| MD5 |
a145f6f3e5afe8e78c92cae5cbc8a066
|
|
| BLAKE2b-256 |
9add670f51aea4df4bdb456a2ab6a73b13a8e8abbf56c96cf43fcba7c1cb5afc
|
File details
Details for the file makeimpact-1.3.0-py3-none-any.whl.
File metadata
- Download URL: makeimpact-1.3.0-py3-none-any.whl
- Upload date:
- Size: 16.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa7739f67e90a1642339e66e22550c5f550075a295d185617c6245947fb0390e
|
|
| MD5 |
19ec80d24b9d6ed75f9c320b034f63f4
|
|
| BLAKE2b-256 |
90e9f0665503349021b66e3ddc5ca74c17bf18cc11e72dc1431d474ee4bfffa8
|