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/addons

Response

{
  "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)