Heroku Alternative With an API
Render gives you free web services, databases, and cron jobs. Their API lets you manage deployments, scale services, and check logs programmatically.
Setup
import requests
API_KEY = "rnd_your_api_key" # Dashboard > Account > API Keys
BASE = "https://api.render.com/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
List Services
def list_services():
r = requests.get(f"{BASE}/services", headers=HEADERS)
return [{"name": s["service"]["name"], "id": s["service"]["id"],
"status": s["service"]["suspended"], "url": s["service"].get("serviceDetails", {}).get("url")}
for s in r.json()]
for s in list_services():
print(f"{s[name]} — {s[url]}")
Trigger Deploy
def deploy(service_id):
r = requests.post(f"{BASE}/services/{service_id}/deploys", headers=HEADERS)
return r.json()
# Deploy after pushing code
deploy("srv-your-service-id")
Get Deploy Logs
def get_deploys(service_id, limit=5):
r = requests.get(f"{BASE}/services/{service_id}/deploys",
headers=HEADERS, params={"limit": limit})
return [{"id": d["deploy"]["id"], "status": d["deploy"]["status"],
"created": d["deploy"]["createdAt"]}
for d in r.json()]
for d in get_deploys("srv-id"):
print(f"{d[created][:16]} — {d[status]}")
Scale Service
def scale(service_id, num_instances):
r = requests.patch(f"{BASE}/services/{service_id}/scale",
headers=HEADERS,
json={"numInstances": num_instances})
return r.status_code == 200
Free Tier
- 750 hours/month web services
- 100GB bandwidth/month
- Auto-deploy from GitHub
- Free PostgreSQL (90 days)
- Free Redis (25MB)
- Cron jobs
Need custom dev tools, scrapers, or API integrations? I build automation for dev teams. Email spinov001@gmail.com — or explore awesome-web-scraping.
More from me: 10 Dev Tools I Use Daily | 77 Scrapers on a Schedule | 150+ Free APIs
Top comments (0)