Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/thenoname-gurl/EcliPanel/llms.txt

Use this file to discover all available pages before exploring further.

EcliPanel’s billing system links plans to users and organisations through orders. A plan defines resource limits (RAM, disk, CPU, server count, email quotas, and tunnel ports). An order records the transaction and generates a PDF invoice. Admin endpoints let staff apply or cancel a plan for any user without requiring a payment flow.
All billing endpoints return 503 with {"error":"feature_disabled"} when the billing feature flag is off. Check the panel settings if you receive this response.

Plans

List plans

GET /api/plans Returns all plans that are not hidden from the billing interface, ordered by price ascending. No authentication required.
curl https://your-panel.example.com/api/plans
id
number
Plan ID.
name
string
Plan display name.
type
string
Plan category: free, paid, edu, or enterprise.
price
number
Monthly price in the panel’s configured currency.
memory
number
Total RAM in megabytes.
disk
number
Total disk in megabytes.
cpu
number
Total CPU percentage across all servers.
serverLimit
number
Maximum number of servers.
databases
number
Maximum number of databases.
backups
number
Maximum number of backups.
portCount
number
Ports available per server.
tunnelPortCount
number
Tunnel ports available.
features
object
Additional plan-specific feature flags.

Get plan by ID

GET /api/plans/:id
id
number
required
Plan ID.
curl https://your-panel.example.com/api/plans/3

Orders

List orders

GET /api/orders Returns orders belonging to the authenticated user. If the user is an admin or owner of an organisation, orders belonging to that organisation are also included.
curl https://your-panel.example.com/api/orders \
  -H "Cookie: session=<token>"
id
number
Order ID.
status
string
Order status: pending, active, cancelled, or expired.
amount
number
Order total.
description
string
Human-readable description derived from order items.
planId
number
Associated plan ID, if applicable.
date
string
ISO 8601 creation timestamp.

Get order by ID

GET /api/orders/:id
id
number
required
Order ID.
The requesting user must be the order owner, or an admin/owner of the order’s organisation.
curl https://your-panel.example.com/api/orders/101 \
  -H "Cookie: session=<token>"

Download invoice

GET /api/orders/:id/invoice Returns a PDF invoice for the specified order. The response Content-Type is application/pdf.
id
number
required
Order ID.
curl https://your-panel.example.com/api/orders/101/invoice \
  -H "Cookie: session=<token>" \
  -o invoice-101.pdf
The PDF is generated server-side using the COMPANY_NAME, INVOICE_ISSUED_FROM_NAME, INVOICE_ISSUED_FROM_ADDRESS, and INVOICE_LOGO_PATH environment variables. Configure these to match your branding.

Admin plan management

The following endpoints let administrators apply or cancel plans for any user without going through the payment flow. They are intended for manual provisioning, comped accounts, and educational tier management.

Apply a plan to a user

POST /api/admin/users/:id/apply-plan Required permission: admin
id
number
required
User ID.
planId
number
required
Plan ID to apply.
notes
string
Internal notes about why the plan was applied manually.
curl -X POST https://your-panel.example.com/api/admin/users/55/apply-plan \
  -H "Cookie: session=<token>" \
  -H "Content-Type: application/json" \
  -d '{"planId":4,"notes":"Educational grant approved"}'
success
boolean
Whether the plan was applied.
order
object
The created order record.

Cancel a user’s plan

POST /api/admin/users/:id/cancel-plan Required permission: admin
id
number
required
User ID.
curl -X POST https://your-panel.example.com/api/admin/users/55/cancel-plan \
  -H "Cookie: session=<token>"
success
boolean
Whether the plan was cancelled.

Get user’s current plan

GET /api/admin/users/:id/current-plan Required permission: admin
id
number
required
User ID.
curl https://your-panel.example.com/api/admin/users/55/current-plan \
  -H "Cookie: session=<token>"

Build docs developers (and LLMs) love