Programmatic API
Automate your release workflow by integrating directly with the Project LEUC API.
Authentication
All API requests require a Personal Access Token. You can generate one in your Settings page.
Pass the token in the Authorization header:
Authorization: Bearer YOUR_TOKEN_HERE
Base URL
https://kindhearted-ladybug-387.convex.site/api/v1
Endpoints
List Add-ons
Get a list of all add-ons owned by your account.
GET /addons
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://kindhearted-ladybug-387.convex.site/api/v1/addonsResponse
{
"success": true,
"addons": [
{
"addon_id": "my-addon",
"name": "My Addon",
"current_version": "1.2.0",
"icon_url": "...",
"is_verified": true
}
]
}Publish Version
Publish a new version or update the changelog of an existing version.
POST /update
curl -X POST https://kindhearted-ladybug-387.convex.site/api/v1/update \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"addon_id": "my-addon",
"version": "1.3.0",
"changelog": "Fixed critical bug in UI"
}'Parameters
addon_id(string, required): The ID of your add-on.version(string, required): Semantic version (e.g. "1.0.0").changelog(string, optional): Release notes.
Python Example
Here is a script to publish a version from your build pipeline:
publish.py
import requests
import json
API_URL = "https://kindhearted-ladybug-387.convex.site/api/v1/update"
API_TOKEN = "your_token_here"
payload = {
"addon_id": "my-addon",
"version": "1.3.0",
"changelog": "New features added via CI/CD"
}
headers = {
"Authorization": f"Bearer {API_TOKEN}",
"Content-Type": "application/json"
}
response = requests.post(API_URL, json=payload, headers=headers)
if response.status_code == 200:
print("Success:", response.json())
else:
print("Error:", response.text)