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.

Organisations are the multi-user collaboration layer in EcliPanel. An organisation groups users under a shared namespace, controls which enterprise nodes they can provision servers on, and owns its own DNS zones. The owner creates the organisation, invites members, and delegates administrative authority via roles.
When an organisation is created, a DNS zone is automatically provisioned using the organisation’s handle as the zone name.

Organisation CRUD

List organisations

GET /api/organisations Returns all organisations the authenticated user owns or belongs to, including their membership role in each.
curl https://your-panel.example.com/api/organisations \
  -H "Cookie: session=<token>"
id
number
Organisation ID.
name
string
Display name.
handle
string
Unique slug in reverse-DNS format (e.g. acme.example.com).
ownerId
number
User ID of the organisation owner.
orgRole
string
The authenticated user’s role: owner, admin, or member.

Create organisation

POST /api/organisations Required permission: org:create
name
string
required
Human-readable organisation name.
handle
string
required
Unique organisation handle in reverse-DNS dot notation (e.g. acme.example.com). Must match the pattern ([a-z0-9]+\.)+[a-z]{2,}.
curl -X POST https://your-panel.example.com/api/organisations \
  -H "Cookie: session=<token>" \
  -H "Content-Type: application/json" \
  -d '{"name":"Acme Hosting","handle":"hosting.acme.com"}'
success
boolean
Whether creation succeeded.
org
object

Get organisation details

GET /api/organisations/:id
id
number
required
Organisation ID.

Update organisation

PUT /api/organisations/:id
id
number
required
Organisation ID.
name
string
New display name.
Update operations are rate-limited to 6 requests per 60 seconds per user.

Delete organisation

DELETE /api/organisations/:id
Deleting an organisation removes all associated memberships and DNS zones. This action cannot be undone.
id
number
required
Organisation ID.

Member management

List members

GET /api/organisations/:id/users
id
number
required
Organisation ID.
id
number
User ID.
email
string
User email address.
firstName
string
First name.
lastName
string
Last name.
orgRole
string
Member’s role: owner, admin, or member.
curl https://your-panel.example.com/api/organisations/42/users \
  -H "Cookie: session=<token>"

Invite a user

POST /api/organisations/:id/invite Sends an invitation email to a user. They must accept via POST /api/organisations/accept-invite.
id
number
required
Organisation ID.
email
string
required
Email address of the user to invite.
role
string
Role to assign on acceptance: admin or member. Defaults to member.
curl -X POST https://your-panel.example.com/api/organisations/42/invite \
  -H "Cookie: session=<token>" \
  -H "Content-Type: application/json" \
  -d '{"email":"teammate@example.com","role":"admin"}'

Update member role

POST /api/organisations/:id/users/:userId/role
id
number
required
Organisation ID.
userId
number
required
User ID to update.
role
string
required
New role: admin or member.
curl -X POST https://your-panel.example.com/api/organisations/42/users/99/role \
  -H "Cookie: session=<token>" \
  -H "Content-Type: application/json" \
  -d '{"role":"admin"}'

Remove member

DELETE /api/organisations/:id/users/:userId
id
number
required
Organisation ID.
userId
number
required
User ID to remove.

DNS zones

List DNS zones

GET /api/organisations/:id/dns/zones Returns all DNS zones owned by the organisation.
id
number
required
Organisation ID.
id
number
Zone ID.
name
string
Zone name (mirrors the organisation handle).
kind
string
Zone provider: cloudflare or custom.
status
string
Zone status: active or pending.
curl https://your-panel.example.com/api/organisations/42/dns/zones \
  -H "Cookie: session=<token>"

Get zone

GET /api/organisations/:id/dns/zones/:zoneId
id
number
required
Organisation ID.
zoneId
number
required
DNS zone ID.

DNS record endpoints

Records within a zone are managed at /api/organisations/:id/dns/zones/:zoneId/records.
EndpointMethodDescription
/api/organisations/:id/dns/zones/:zoneId/recordsGETList all records in the zone
/api/organisations/:id/dns/zones/:zoneId/recordsPOSTCreate a DNS record
/api/organisations/:id/dns/zones/:zoneId/records/:recordIdGETGet record details
/api/organisations/:id/dns/zones/:zoneId/records/:recordIdPUTUpdate a DNS record
/api/organisations/:id/dns/zones/:zoneId/records/:recordIdDELETEDelete a DNS record
DNS mutation endpoints are rate-limited. Exceeding the limit returns a 429 response with a Retry-After header.

Build docs developers (and LLMs) love