Scopes
Each token carries explicit scopes such as domains.read or
*. Requests outside a token's scopes are rejected with
403 before any data is read.
Every PanelConfig installation exposes a token-authenticated JSON API. Tokens are stored as SHA-256 hashes, restricted by scopes, rate limited per token, and every request is logged.
Create a token in PCAdmin under API, or from the terminal. The plain token is shown once; only its hash is stored. Send it on every request:
curl -s https://panel.example.com/api/v1/me.php \
-H "Authorization: Bearer pc_YOUR_TOKEN"
{
"success": true,
"message": "PanelConfig API resource loaded.",
"data": { "...": "..." },
"timestamp": "2026-06-12T00:00:00+00:00"
}
Each token carries explicit scopes such as domains.read or
*. Requests outside a token's scopes are rejected with
403 before any data is read.
Endpoints are rate limited per token (typically 120 requests per 60
seconds). Exceeding the window returns 429 with a retry
message in the standard envelope.
Tokens can expire automatically, be revoked instantly in PCAdmin, and record their last-used timestamp. Creation and revocation are written to the audit log.
All endpoints return the standard JSON envelope and require a bearer token.
Who exists on the server and what they own.
/api/v1/me.php
profile.read
/api/v1/accounts.php
accounts.read
The web surface of every hosting account.
/api/v1/domains.php
domains.read
/api/v1/websites.php
websites.read
Mailboxes and data stores per account.
/api/v1/email.php
email.read
/api/v1/databases.php
databases.read
Certificate orders and protective state.
/api/v1/ssl.php
ssl.read
/api/v1/backups.php
backups.read
Background work and recurring tasks.
/api/v1/jobs.php
jobs.read
/api/v1/cron.php
cron.read
Monitor the installation itself.
/api/v1/health.php
platform.read
/api/v1/server-health.php
platform.read
/api/v1/services.php
services.read
/api/v1/settings.php
settings.read
/api/v1/openapi.php
platform.read
/api/v1/release-audit.php
platform.read
curl -s https://panel.example.com/api/v1/domains.php \
-H "Authorization: Bearer pc_YOUR_TOKEN"
{
"success": true,
"data": {
"resource": "domains",
"items": [
{
"id": 31,
"domain": "acme-studio.com",
"type": "primary",
"ssl_status": "active",
"status": "active"
}
]
}
}
Error responses keep the same envelope with success: false and an explanation.
Missing, expired, revoked, or unrecognized bearer token.
The token is valid but does not carry the scope the endpoint requires.
The per-token rate limit window was exceeded; retry after the window resets.
Use the API for remote integrations and PCCLI for on-server automation — both write to the same audit trail.
Read the API guide