Hey there, fellow developer! Ready to dive into the world of Hotmart API integration? You're in for a treat. This guide will walk you through the process of building a robust Hotmart API integration using Python. We'll cover everything from authentication to webhooks, so buckle up!
Before we jump in, make sure you've got these basics covered:
requests
and json
libraries installedFirst things first, let's get you authenticated:
import requests def get_access_token(client_id, client_secret): url = "https://api-sec-vlc.hotmart.com/security/oauth/token" payload = { "grant_type": "client_credentials", "client_id": client_id, "client_secret": client_secret } response = requests.post(url, data=payload) return response.json()["access_token"] access_token = get_access_token("your_client_id", "your_client_secret")
Pro tip: Don't forget to handle token expiration and refresh. Your future self will thank you!
Now that we're authenticated, let's make some requests:
def make_get_request(endpoint): headers = {"Authorization": f"Bearer {access_token}"} response = requests.get(f"https://developers.hotmart.com/payments/api/v1/{endpoint}", headers=headers) return response.json() # Example: Get all products products = make_get_request("products")
For POST requests, it's just as easy:
def make_post_request(endpoint, data): headers = {"Authorization": f"Bearer {access_token}", "Content-Type": "application/json"} response = requests.post(f"https://developers.hotmart.com/payments/api/v1/{endpoint}", headers=headers, json=data) return response.json() # Example: Create a new product new_product = make_post_request("products", {"name": "Awesome Course", "price": 99.99})
Remember to always handle errors gracefully. Your users will appreciate it!
Hotmart's API is packed with useful endpoints. Here are some you'll likely use often:
/products
/sales
/subscriptions
/affiliates
Explore these endpoints and see what data you can retrieve or manipulate. The possibilities are endless!
Webhooks are your friend for real-time updates. Here's a basic Flask app to handle webhooks:
from flask import Flask, request app = Flask(__name__) @app.route('/webhook', methods=['POST']) def handle_webhook(): event = request.json # Process the event print(f"Received event: {event['event_type']}") return "", 200 if __name__ == '__main__': app.run(port=5000)
Remember to set up your webhook URL in your Hotmart dashboard!
Once you've got your data, you'll want to do something with it. Here's a quick example using SQLite:
import sqlite3 def store_product(product): conn = sqlite3.connect('hotmart.db') c = conn.cursor() c.execute('''INSERT INTO products (id, name, price) VALUES (?, ?, ?)''', (product['id'], product['name'], product['price'])) conn.commit() conn.close() # Usage products = make_get_request("products") for product in products: store_product(product)
Don't forget about pagination and rate limiting. Here's a quick pagination example:
def get_all_products(): all_products = [] page = 1 while True: products = make_get_request(f"products?page={page}") if not products: break all_products.extend(products) page += 1 return all_products
Always test your code! Here's a simple unit test example:
import unittest class TestHotmartAPI(unittest.TestCase): def test_get_access_token(self): token = get_access_token("test_id", "test_secret") self.assertIsNotNone(token) if __name__ == '__main__': unittest.main()
And there you have it! You're now equipped to build a solid Hotmart API integration. Remember to always refer to the official Hotmart API documentation for the most up-to-date information.
Keep coding, keep learning, and most importantly, have fun with it!
Want to see all of this in action? Check out the full implementation on my GitHub repository: [link to your GitHub repo]
Happy coding, and may your integration be ever smooth and bug-free!