{"id":36646945,"url":"https://github.com/1clickimpact/makeimpact-py","last_synced_at":"2026-01-12T10:01:31.630Z","repository":{"id":294488555,"uuid":"987106481","full_name":"1ClickImpact/makeimpact-py","owner":"1ClickImpact","description":"Make an impact with a single API call — plant trees, clean oceans, capture CO₂, and donate to global causes.","archived":false,"fork":false,"pushed_at":"2025-10-17T19:35:48.000Z","size":30,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-18T21:39:28.431Z","etag":null,"topics":["1clickimpact","api","capture-carbon","carbon","carbon-offset","climate","codecarbon","donations","ocean","offset","plant-trees","python","sdk","sustainability","sustainable-software"],"latest_commit_sha":null,"homepage":"https://1clickimpact.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/1ClickImpact.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-20T15:26:32.000Z","updated_at":"2025-10-17T19:35:06.000Z","dependencies_parsed_at":"2025-05-20T17:35:01.352Z","dependency_job_id":"5edfce02-7bc4-414a-b429-c87c18d2195d","html_url":"https://github.com/1ClickImpact/makeimpact-py","commit_stats":null,"previous_names":["1clickimpact/makeimpact-py"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/1ClickImpact/makeimpact-py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ClickImpact%2Fmakeimpact-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ClickImpact%2Fmakeimpact-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ClickImpact%2Fmakeimpact-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ClickImpact%2Fmakeimpact-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/1ClickImpact","download_url":"https://codeload.github.com/1ClickImpact/makeimpact-py/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1ClickImpact%2Fmakeimpact-py/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["1clickimpact","api","capture-carbon","carbon","carbon-offset","climate","codecarbon","donations","ocean","offset","plant-trees","python","sdk","sustainability","sustainable-software"],"created_at":"2026-01-12T10:01:30.874Z","updated_at":"2026-01-12T10:01:31.624Z","avatar_url":"https://github.com/1ClickImpact.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌱 MakeImpact Python SDK\n\n[![PyPI version](https://img.shields.io/pypi/v/makeimpact.svg)](https://pypi.org/project/makeimpact/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![Python](https://img.shields.io/badge/Python-3.6%2B-blue)](https://www.python.org/)\n\n\u003e Official Python SDK for 1ClickImpact - Easily integrate impact actions into your Python applications\n\n## 📦 Installation\n\n```bash\npip install makeimpact\n# or\npoetry add makeimpact\n```\n\n## 🚀 Getting Started\n\nYou'll need an API key to use this SDK. You can get your API key from the [1ClickImpact Account API Keys page](https://1clickimpact.com/account/api-keys).\n\n```python\nfrom makeimpact import OneClickImpact, Environment\n\n# Initialize the SDK with your API key (production environment by default)\nsdk = OneClickImpact(\"your_api_key\")\n\n# Create environmental impact with just a few lines of code\nsdk.plant_tree(amount=1)\nsdk.clean_ocean(amount=5)\nsdk.capture_carbon(amount=2)\n```\n\n## 🌍 Environmental Impact Actions\n\n### 🌳 Plant Trees\n\nHelp combat deforestation and climate change by planting trees.\n\n```python\nfrom makeimpact import OneClickImpact\n\nsdk = OneClickImpact(\"your_api_key\")\n\n# Plant a single tree\nsdk.plant_tree(amount=1)\n\n# Plant trees with a specific category\nsdk.plant_tree(amount=10, category=\"food\")\n\n# Plant trees with customer tracking\nsdk.plant_tree(\n    amount=5,\n    customer_email=\"customer@example.com\",\n    customer_name=\"John Doe\"\n)\n```\n\n### 🌊 Clean Ocean Plastic\n\nRemove plastic waste from our oceans to protect marine life.\n\n```python\nfrom makeimpact import OneClickImpact\n\nsdk = OneClickImpact(\"your_api_key\")\n\n# Clean 5 pounds of ocean plastic\nsdk.clean_ocean(amount=5)\n\n# Clean ocean plastic with customer tracking\nsdk.clean_ocean(\n    amount=10,\n    customer_email=\"customer@example.com\",\n    customer_name=\"John Doe\"\n)\n```\n\n### ♻️ Capture Carbon\n\nReduce greenhouse gas emissions by capturing carbon.\n\n```python\nfrom makeimpact import OneClickImpact\n\nsdk = OneClickImpact(\"your_api_key\")\n\n# Capture 2 pounds of carbon\nsdk.capture_carbon(amount=2)\n\n# Capture carbon with customer tracking\nsdk.capture_carbon(\n    amount=5,\n    customer_email=\"customer@example.com\",\n    customer_name=\"John Doe\"\n)\n```\n\n### 💰 Donate Money\n\nSupport any cause through direct monetary donations.\n\n```python\nfrom makeimpact import OneClickImpact\n\nsdk = OneClickImpact(\"your_api_key\")\n\n# Donate $1.00 (amount in cents)\nsdk.donate_money(amount=100)\n\n# Donate with customer tracking\nsdk.donate_money(\n    amount=500,  # $5.00\n    customer_email=\"customer@example.com\",\n    customer_name=\"John Doe\"\n)\n```\n\n\u003e **Note**: To set up a custom cause for donations, please contact 1ClickImpact directly.\n\u003e All causes must be vetted and approved to ensure they meet their standards for transparency and impact.\n\n## 📊 Data Access \u0026 Reporting\n\n### Get Records\n\nRetrieve impact records with optional filtering.\n\n```python\nfrom makeimpact import OneClickImpact\n\nsdk = OneClickImpact(\"your_api_key\")\n\n# Get all records\nrecords = sdk.get_records()\n\n# Filter records by type\ntree_records = sdk.get_records(filter_by=\"tree_planted\")\n\n# Filter records by date range\nrecent_records = sdk.get_records(\n    start_date=\"2023-01-01\",\n    end_date=\"2023-12-31\"\n)\n\n# Pagination\npaginated_records = sdk.get_records(\n    cursor=\"cursor_from_previous_response\",\n    limit=10\n)\n```\n\n### Get Customer Records\n\nRetrieve records for specific customers.\n\n```python\nfrom makeimpact import OneClickImpact\n\nsdk = OneClickImpact(\"your_api_key\")\n\n# Get records for a specific customer\ncustomer_records = sdk.get_customer_records(\n    customer_email=\"customer@example.com\"\n)\n\n# Filter customer records by type\ncustomer_tree_records = sdk.get_customer_records(\n    customer_email=\"customer@example.com\",\n    filter_by=\"tree_planted\"\n)\n```\n\n### Get Customers\n\nRetrieve customer information.\n\n```python\nfrom makeimpact import OneClickImpact\n\nsdk = OneClickImpact(\"your_api_key\")\n\n# Get all customers (default limit is 10)\ncustomers = sdk.get_customers()\n\n# Get customers with filtering and pagination\nfiltered_customers = sdk.get_customers(\n    customer_email=\"example@email.com\",  # Optional: Filter by email\n    limit=50,  # Optional: Limit results (1-1000)\n    cursor=\"cursor_from_previous_response\"  # Optional: For pagination\n)\n```\n\n### 🔍 Track Impact\n\nTrack the complete lifecycle and current status of a specific impact, including project location, assigned agents, completion status, and documentation.\n\n```python\nfrom makeimpact import OneClickImpact\n\nsdk = OneClickImpact(\"your_api_key\")\n\n# First create an impact\nresponse = sdk.plant_tree(amount=1)\n\n# Then track its progress\ntracking_info = sdk.track(\n    user_id=response.user_id,\n    time_utc=response.time_utc\n)\n\nprint(f\"Tracking ID: {tracking_info.tracking_id}\")\nprint(f\"Impact Initiated: {tracking_info.impact_initiated}\")\nif tracking_info.project_location:\n    print(f\"Project Location: {tracking_info.project_location}\")\nif tracking_info.assigned_agent:\n    print(f\"Assigned Agent: {tracking_info.assigned_agent}\")\nif tracking_info.impact_completed:\n    print(f\"Impact Completed: {tracking_info.impact_completed}\")\n```\n\nYou can also track impacts from historical records:\n\n```python\n# Get records and track a specific impact\nrecords = sdk.get_records(limit=1)\nif records.user_records:\n    record = records.user_records[0]\n    tracking_info = sdk.track(\n        user_id=record.user_id,\n        time_utc=record.time_utc\n    )\n    print(\"Tracking Info:\", tracking_info)\n```\n\n**Track Response Fields:**\n\n- `tracking_id`: Unique identifier for this impact (format: `user_id-time_utc`)\n- `impact_initiated`: UTC timestamp when the impact was created\n- `tree_planted`, `waste_removed`, `carbon_captured`, `money_donated`: Impact metrics (optional)\n- `category`: Impact category (e.g., \"food\" for food-bearing trees)\n- `donation_available`: When the donation became available for the project\n- `donation_sent`: When the donation was sent to the non-profit\n- `assigned_agent`: Name of the agent or organization executing the impact\n- `project_location`: Detailed description of project location and partners\n- `location_map`: Google Maps embed URL for the project location\n- `impact_completed`: When the impact was completed\n- `donation_category`: Type of impact funded (for donations)\n- `certificate`: Certificate URL for the impact (only present in production)\n- `impact_video`: URL to video recording or live session\n- `live_session_date`: Scheduled live session timestamp\n- `is_test_transaction`: Whether this was a test transaction\n- `is_bonus_impact`: Whether this was a bonus impact from subscription plans\n\n### Get Impact\n\nGet aggregated lifetime impact statistics with breakdown between direct impact and customer impact.\n\n```python\nfrom makeimpact import OneClickImpact\n\nsdk = OneClickImpact(\"your_api_key\")\n\n# Get overall impact statistics for your organization\nimpact = sdk.get_impact()\n\n# Total impact (user + customer)\nprint(f\"Total trees planted: {impact.tree_planted}\")\nprint(f\"Total ocean waste removed: {impact.waste_removed} lbs\")\nprint(f\"Total carbon captured: {impact.carbon_captured} lbs\")\nprint(f\"Total money donated: ${impact.money_donated / 100}\")\n\n# Direct impact by your organization\nprint(f\"\\nDirect impact trees: {impact.user_impact.tree_planted}\")\nprint(f\"Direct impact waste removed: {impact.user_impact.waste_removed} lbs\")\n\n# Impact on behalf of customers\nprint(f\"\\nCustomer impact trees: {impact.customer_impact.tree_planted}\")\nprint(f\"Customer impact waste removed: {impact.customer_impact.waste_removed} lbs\")\n```\n\n### Get Daily Impact\n\nGet time-series daily impact data with optional date range filtering.\n\n```python\nfrom makeimpact import OneClickImpact\n\nsdk = OneClickImpact(\"your_api_key\")\n\n# Get all daily impact data\ndaily_impact = sdk.get_daily_impact()\n\nfor day in daily_impact.daily_impact:\n    print(f\"Date: {day.date}\")\n    print(f\"  Trees: {day.tree_planted}\")\n    print(f\"  Waste removed: {day.waste_removed} lbs\")\n    print(f\"  Carbon captured: {day.carbon_captured} lbs\")\n    print(f\"  Donated: ${day.money_donated / 100}\")\n\n# Get daily impact for specific date range\nfiltered_impact = sdk.get_daily_impact(\n    start_date=\"2025-01-01\",\n    end_date=\"2025-12-31\"\n)\n```\n\n### Who Am I\n\nVerify your API key and get account information.\n\n```python\nfrom makeimpact import OneClickImpact\n\nsdk = OneClickImpact(\"your_api_key\")\n\n# Verify API key and get account information\naccount_info = sdk.who_am_i()\n```\n\n## ⚙️ Configuration\n\n### Environments\n\nThe SDK supports two environments:\n\n- **Production** (default): Uses the live API at `https://api.1clickimpact.com`\n- **Sandbox**: Uses the testing API at `https://sandbox.1clickimpact.com`\n\nTo use the sandbox environment for testing:\n\n```python\nfrom makeimpact import OneClickImpact, Environment\n\n# Initialize with sandbox environment\nsdk = OneClickImpact(\"your_test_api_key\", Environment.SANDBOX)\n```\n\n## 🔗 Additional Resources\n\n- [1ClickImpact API Documentation](https://docs.1clickimpact.com/plant-trees)\n- [1ClickImpact Website](https://www.1clickimpact.com)\n- [Pricing \u0026 API Keys](https://www.1clickimpact.com/pricing)\n\n## 📄 License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1clickimpact%2Fmakeimpact-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F1clickimpact%2Fmakeimpact-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1clickimpact%2Fmakeimpact-py/lists"}