API reference

Account

Read the account a key belongs to and its activity.

← API docs2 endpointsUpdated

Browse the docs

Account

The account the API key belongs to. A key can only read the account (scope account.read); everything that changes it, such as the email address, password, two-factor, API keys and SSH keys, needs a browser session and is not part of the public API.

Get the account

GET/account

Account scope account.read

Returns the account the API key belongs to. Works even when two-factor authentication is required but not yet set up.

Example

curl "https://sillydev.co.uk/panel/api/client/account" \
  -H "Authorization: Bearer $SILLYDEV_API_KEY" \
  -H "Accept: application/json"

Response 200The account.

{
    "object": "user",
    "attributes": {
        "id": 42,
        "admin": false,
        "username": "discordbotdev",
        "email": "[email protected]",
        "first_name": "Alex",
        "last_name": "Smith",
        "language": "en"
    }
}
Every field in the response
Get the account: response
NameTypeDescription
objectrequiredstring
attributesrequiredobject
attributes.idrequiredinteger
attributes.adminrequiredbooleanWhether the account is a panel administrator.
attributes.usernamerequiredstring
attributes.emailrequiredstring (email)
attributes.first_namerequiredstring
attributes.last_namerequiredstring
attributes.languagerequiredstringInterface language code, e.g. en.

Errors

  • 401 No API key was sent, or it is wrong, expired or deleted.
  • 403 The key is valid but may not do this: it lacks the permission or account scope, it is limited to other servers or IP addresses, or the account may not do it at all.

List the account's activity log

GET/account/activity

Account scope account.read

Returns the account's activity log, newest first when sorted by -timestamp, 25 entries per page by default and at most 100. Actions an administrator took on the account are not shown, except ones the requesting administrator took themselves.

Parameters

List the account's activity log: parameters
NameTypeDescription
pageintegerThe page of results to return, starting at 1.
per_pageintegerHow many results to return on each page.
filter[event]stringOnly entries whose event name contains this text, e.g. server:power or user:api-key.
sortone of 'timestamp', '-timestamp'Sort by time, timestamp for oldest first or -timestamp for newest first.
includeone of 'actor'Set to actor to add the user who performed each action as attributes.relationships.actor.

Example

curl "https://sillydev.co.uk/panel/api/client/account/activity" \
  -H "Authorization: Bearer $SILLYDEV_API_KEY" \
  -H "Accept: application/json"

Response 200A page of activity log entries.

{
    "object": "list",
    "data": [
        {
            "object": "activity_log",
            "attributes": {
                "id": "3f786850e387550fdab836ed7e6dc881de23001b",
                "batch": null,
                "event": "user:database.create",
                "is_api": true,
                "ip": "203.0.113.10",
                "description": null,
                "properties": {
                    "label": "Discord bot",
                    "version": "MariaDB 11.4"
                },
                "has_additional_metadata": false,
                "timestamp": "2026-10-10T12:00:00+00:00"
            }
        }
    ],
    "meta": {
        "pagination": {
            "total": 1,
            "count": 1,
            "per_page": 25,
            "current_page": 1,
            "total_pages": 1,
            "links": []
        }
    }
}
Every field in the response
List the account's activity log: response
NameTypeDescription
objectrequiredstring
datarequiredarray of object
data[].objectrequiredstring
data[].attributesrequiredobjectOne thing that was done, by whom and when.
data[].attributes.idrequiredstringA stable unique key for the entry (a hash, not a database ID).
data[].attributes.batchrequiredstring (uuid) | nullShared by entries logged together as part of one action.
data[].attributes.eventrequiredstringThe event name, e.g. server:power.start or server:file.write.
data[].attributes.is_apirequiredbooleanWhether it was done with an API key.
data[].attributes.iprequiredstring | nullThe IP address it came from. Only shown for your own actions (or to administrators).
data[].attributes.descriptionrequiredstring | null
data[].attributes.propertiesrequiredobjectDetails of the event, which vary by event. List values also get a <key>_count entry (or count, if there is only one list). An ip property is [hidden] unless it was your action.
data[].attributes.has_additional_metadatarequiredbooleanWhether properties holds anything beyond what the event's description already says.
data[].attributes.timestamprequiredstring (date-time)
data[].attributes.relationshipsobject
data[].attributes.relationships.actoranyWho did it. Only with include=actor; a null_resource if it was not a user (e.g. the system or a schedule).
metarequiredobject
meta.paginationrequiredobject
meta.pagination.totalinteger
meta.pagination.countinteger
meta.pagination.per_pageinteger
meta.pagination.current_pageinteger
meta.pagination.total_pagesinteger
meta.pagination.linksobject
meta.pagination.links.previousstring (uri)
meta.pagination.links.nextstring (uri)

Errors

  • 401 No API key was sent, or it is wrong, expired or deleted.
  • 403 The key is valid but may not do this: it lacks the permission or account scope, it is limited to other servers or IP addresses, or the account may not do it at all.