Skip to content

API / API reference / Audit log

List audit events of the instance

Lunedo 0.1.0
Other versions
0.1.0 Nov 1, 2026

Opens the documentation of that release on GitHub.

GET
/api/v1/instance/audit-events
Code sample: cURL
sh
curl -H "Authorization: Bearer ld_..." \
"https://wiki.example.org/api/v1/instance/audit-events?limit=20"

Lists events of the instance and of all organizations, newest first, with optional filters.

Requires the permission instance.audit.view on the instance.

from
string format: date-time

Only events at or after this time. ISO 8601 timestamp; an offset is allowed.

to
string format: date-time

Only events before this time. ISO 8601 timestamp; an offset is allowed.

actorId
string format: uuid

Only events of this account.

personId
string format: uuid

Only events about this person: those they did and those that name them as the target or the account or holder concerned.

targetType
string
<= 100 characters

Only events about this kind of object, for example group.

targetId
string
<= 200 characters

Only events about this object. Combine it with targetType.

name
string
<= 100 characters

Only events of this type, for example role.assigned.

organizationId
string format: uuid

Only events of this organization.

level
string
Allowed values: instance

instance lists only events of the instance itself, without those of organizations. With personId it adds the events about that account in its organizations, such as ended sessions or a reset second factor.

cursor
string
<= 2000 characters

Opaque cursor from nextCursor of the previous page. Leave it out for the first page.

limit
integer
default: 50 >= 1 <= 200

Maximum number of items in the page, from 1 to 200. Default 50.

A page of events.

Media typeapplication/json

One page of results.

object
items
required

Events, newest first.

Array<object>

An entry of the audit log.

object
id
required

ID of the event.

string format: uuid
scopeType
required

Whether the event belongs to the instance or to an organization.

string
Allowed values: instance organization
scopeId
required

ID of the organization, or the instance ID of all zeros.

string format: uuid
sequence
required

Position in the tamper-evident chain of the scope.

integer
>= -9007199254740991 <= 9007199254740991
name
required

Event type, for example role.assigned.

string
actorType
required

account, system or anonymous.

string
actorId
required
Any of:
string format: uuid
targetType
required

Kind of object the event is about.

string
targetId
required

ID of the object, or null.

string | null
fields
required
Any of:
string
occurredAt
required

When the event happened. ISO 8601 timestamp in UTC.

string format: date-time
requestId
required

ID of the HTTP request, or null.

string | null
clientIp
required

Client IP address, or null.

string | null
userAgent
required

User agent of the client, or null.

string | null
labelKey
required

Translation key of the action, audit.events. followed by the event type.

string
changeKind
required

How changes reads: a setting value or lock, or changed fields.

string
Allowed values: setting fields
actor
required

Who acted.

object
type
required

account, system or anonymous.

string
id
required

ID of the account. For system, the part of Lunedo that acted: setupAssistant for the setup assistant before the owner account exists, or null for other automatic actions. More values may be added. Null for anonymous.

string | null
name
required

Name of the account when the event happened, or null.

string | null
former
required

Whether the account was anonymized; its name and other personal data are gone.

boolean
serviceAccount
required

Whether the account is a service account.

boolean
token
required

Name of the API token the account acted with, or null when it acted without one.

string | null
target
required

What the event is about.

object
type
required

Kind of object.

string
id
required

ID of the object, or for settings the setting key.

string | null
name
required

Name of the object when the event happened, or null.

string | null
former
required

Whether the object is an anonymized account; its name and other personal data are gone.

boolean
scope
required

Where the event happened.

object
type
required

Instance, organization, or the account for events about one person’s own account.

string
Allowed values: instance organization account
id
required

ID of the organization or account, null for the instance.

string | null
name
required

Name of the organization or account when the event happened, or null.

string | null
changes
required

What changed, readable without the raw fields.

Array<object>

One change.

object
property
required

Changed property or field.

string
old
required
Any of:
string
new
required
Any of:
string
references
required

Names of accounts, organizations, groups and roles that the fields refer to, by ID.

object
key
additional properties
string
formerAccounts
required

Anonymized accounts the event refers to, shown as former users with their ID.

Array<string>
peopleHidden
required

Whether the people involved are left out because the event concerns a confidential space the reader is not a member of. The actor, referenced accounts and their names are then empty.

boolean
nextCursor
required

Cursor for the next page, or null on the last page. Pass it as cursor.

string | null

Example

{
"items": [
{
"id": "01929b1f-5fc2-7fa6-97c3-bea0a18bd2e3",
"scopeType": "organization",
"scopeId": "01929b1e-7c3a-7d2e-9f4b-3c2d1e0f5a6b",
"sequence": 42,
"name": "role.assigned",
"actorType": "account",
"actorId": "01929b1e-8d4b-7e3f-a05c-4d3e2f1a6b7c",
"targetType": "roleAssignment",
"targetId": "01929b1e-9e5c-7f40-b16d-5e4f3a2b7c8d",
"fields": {
"role": "Handbook editors",
"principalKind": "group",
"principalId": "01929b1f-0a6d-7a51-827e-6f5a4b3c8d9e"
},
"occurredAt": "2026-10-01T08:00:00.000Z",
"requestId": "6f1c2b0e-5d4a-4c3b-9a2f-1e0d9c8b7a6f",
"clientIp": "203.0.113.7",
"userAgent": "curl/8.9.1",
"labelKey": "audit.events.role.assigned",
"changeKind": "fields",
"actor": {
"type": "account",
"id": "01929b1e-8d4b-7e3f-a05c-4d3e2f1a6b7c",
"name": "Olivia Owner",
"former": false,
"serviceAccount": false,
"token": null
},
"target": {
"type": "roleAssignment",
"id": "01929b1e-9e5c-7f40-b16d-5e4f3a2b7c8d",
"name": null,
"former": false
},
"scope": {
"type": "organization",
"id": "01929b1e-7c3a-7d2e-9f4b-3c2d1e0f5a6b",
"name": "Platform Team"
},
"changes": [
{
"property": "role",
"old": null,
"new": "Handbook editors"
},
{
"property": "principalKind",
"old": null,
"new": "group"
},
{
"property": "principalId",
"old": null,
"new": "01929b1f-0a6d-7a51-827e-6f5a4b3c8d9e"
}
],
"references": {
"01929b1f-0a6d-7a51-827e-6f5a4b3c8d9e": "Editors"
},
"formerAccounts": [],
"peopleHidden": false
}
],
"nextCursor": null
}

ambiguousCredentials: The request carries both a session and an API token. invalidInput: The request is not valid.

Media typeapplication/problem+json

Error response following RFC 9457 Problem Details.

object
type
required

Stable identifier of the error kind. Clients branch on this value.

string
title
required

Short summary of the error kind. It does not change between occurrences.

string
status
required

HTTP status code of the response.

integer
>= -9007199254740991 <= 9007199254740991
detail

Explanation of this occurrence, for people.

string
code
required

The last part of type, for clients that prefer a short key.

string
fields

Invalid fields, for invalidInput, invalidStorageSettings, invalidBackupSettings and the codes about the address of a chat channel.

Array<string>
denials

Why the request was not allowed, for forbidden.

Array<string>
retryAfterSeconds

Seconds to wait before retrying, for rateLimited, locked and busy.

integer
>= -9007199254740991 <= 9007199254740991
problem

Which password rule failed, for passwordPolicy; why the address of a chat channel was refused, for invalidChatAddress; which storage setting was refused (invalidThresholds, invalidS3Limit, invalidContacts or invalidTeamsWebhook), for invalidStorageSettings; which backup setting was refused, for invalidBackupSettings; whether a backup or a testRestore is running, for backupRunning; why the backup target could not be used (a failure of Test connection, such as notFound or credentials, or missingSecret), for backupTargetFailed.

string
step

What Lunedo was doing with the backup target when it failed, for backupTargetFailed.

string
Allowed values: write read delete list
refusal

What the full storage refuses, for storageFull: an upload, or a large write such as an import.

string
Allowed values: upload largeWrite
minLength

Minimum password length, for passwordPolicy.

integer
>= -9007199254740991 <= 9007199254740991
lockedBy

Level that locked the setting, for settingLocked.

string
minimum

Lowest allowed value, for settingBelowMinimum.

number
maximum
Any of:
number
maxLifetimeDays

Maximum lifetime of API tokens in days, for expiryRequired and expiryTooLate.

integer
>= -9007199254740991 <= 9007199254740991
domains

Domains that belong to another identity provider, for domainInUse.

Array<string>
instanceUrl

The current address of the instance, for instanceMoved.

string
providerId

ID of the identity provider that manages the account, for managedAccount and managedDomain.

string
providerName

Name of the identity provider that manages the account, for managedAccount and managedDomain.

string
accounts

Number of accounts still linked to the identity provider, for providerHasAccounts.

integer
>= -9007199254740991 <= 9007199254740991
maxBytes

Largest allowed file size in bytes, for fileTooLarge and uploadTooLarge; storage limit of the organization’s imports, for organizationImportLimit.

integer
>= -9007199254740991 <= 9007199254740991
usedBytes

Bytes the organization’s imports use already, for organizationImportLimit.

integer
>= -9007199254740991 <= 9007199254740991
missing

Number of parts still missing, for uploadIncomplete.

integer
>= -9007199254740991 <= 9007199254740991
uncoveredPages

Number of pages below that your own role does not cover, for shareBeyondOwnAccess.

integer
>= -9007199254740991 <= 9007199254740991
maxDays

Longest allowed lifetime of a link for anyone in days, for expiryTooLate.

integer
>= -9007199254740991 <= 9007199254740991
pages

Number of pages that give access to groups or through broad links, for confidentialSharing; number of pages that would lose the status, for statusInUse; number of pages the caller cannot open, for hiddenContent.

integer
>= -9007199254740991 <= 9007199254740991
sections

Required sections that are empty or missing, for requiredSectionsEmpty.

Array<object>

A required section.

object
key
required

Key of the section.

string
title
required

Heading of the section.

string
articles

Number of articles more people could read, for audienceWidening and categoryVisibilityWidening.

integer
>= -9007199254740991 <= 9007199254740991
translations

Number of translations into the language, for defaultLanguageTranslated.

integer
>= -9007199254740991 <= 9007199254740991
translationId

The existing translation, for translationExists.

string format: uuid
light

Check of the light mode color, for brandContrast.

object
color
required

The checked color.

string
passes
required

Whether it reaches the contrast WCAG AA asks for.

boolean
onBackground
required

Contrast of the color as text on the background.

number
onBrand
required

Contrast of text on the color.

number
proposal
required

The nearest shade that passes, or null when none exists.

string | null
dark

Check of the dark mode color, for brandContrast.

object
color
required

The checked color.

string
passes
required

Whether it reaches the contrast WCAG AA asks for.

boolean
onBackground
required

Contrast of the color as text on the background.

number
onBrand
required

Contrast of text on the color.

number
proposal
required

The nearest shade that passes, or null when none exists.

string | null
impact

Who gains and who loses access, with the confirmation to send, for moveChangesAccess.

object
gaining
required

Number of people who get access.

integer
>= -9007199254740991 <= 9007199254740991
losing
required

Number of people who lose access.

integer
>= -9007199254740991 <= 9007199254740991
raised
required

Number of people whose role rises.

integer
>= -9007199254740991 <= 9007199254740991
lowered
required

Number of people whose role drops.

integer
>= -9007199254740991 <= 9007199254740991
unlisted
required

Number of affected people the caller may not see; they are counted but not listed.

integer
>= -9007199254740991 <= 9007199254740991
truncated
required

Whether changes lists only the first 100 people.

boolean
changes
required

People whose access changes, ordered by name.

Array<object>

How the access of one person changes.

object
accountId
required

ID of the account.

string format: uuid
name
required

Name of the person.

string
before
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
after
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
leavesConfidential
required

True when the content leaves a confidential space and loses its protection.

boolean
confirmation
required

Send this with the move to confirm exactly this change, or null when access does not change. Valid for one hour.

string | null
copyImpact

Who could read the copy but not the source, with the confirmation to send, for copyChangesAccess.

object
gaining
required

Number of people who get access.

integer
>= -9007199254740991 <= 9007199254740991
losing
required

Number of people who lose access.

integer
>= -9007199254740991 <= 9007199254740991
raised
required

Number of people whose role rises.

integer
>= -9007199254740991 <= 9007199254740991
lowered
required

Number of people whose role drops.

integer
>= -9007199254740991 <= 9007199254740991
unlisted
required

Number of affected people the caller may not see; they are counted but not listed.

integer
>= -9007199254740991 <= 9007199254740991
truncated
required

Whether changes lists only the first 100 people.

boolean
changes
required

People whose access changes, ordered by name.

Array<object>

How the access of one person changes.

object
accountId
required

ID of the account.

string format: uuid
name
required

Name of the person.

string
before
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
after
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
leavesConfidential
required

True when the copy leaves a confidential space and is not protected by it.

boolean
widerAccess
required

True when people can read the copy who cannot read the source; the copy then needs the confirmation.

boolean
confirmation
required

Send this with the copy to confirm exactly this access, or null when nobody gains access. Valid for one hour.

string | null
items
required

Number of items the copy creates.

integer
>= -9007199254740991 <= 9007199254740991
hidden
required

Number of items below that are left out because the caller cannot read them.

integer
>= -9007199254740991 <= 9007199254740991
skipped
required

Number of items below that are left out because they cannot be copied.

integer
>= -9007199254740991 <= 9007199254740991
background
required

True when the copy is large and runs in the background.

boolean
formerParent
Any of:
object
id
required

ID of the former parent page.

string format: uuid
title
required

Title of the former parent page.

string
parentEntries

Number of trash entries of former parent pages the caller can restore together with the content, for restrictedParentInTrash; 0 when the caller cannot restore all of them.

integer
>= -9007199254740991 <= 9007199254740991
fileVersion

Format or editor schema version of the file, for newerTemplateFormat.

integer
>= -9007199254740991 <= 9007199254740991
supportedVersion

Highest format or editor schema version this Lunedo reads, for newerTemplateFormat.

integer
>= -9007199254740991 <= 9007199254740991
templateIndex

Position of the template in the file, counted from 0, for templateNameTaken.

integer
>= -9007199254740991 <= 9007199254740991
templateProblems

What is wrong with the templates of the file, for invalidTemplatesInFile.

Array<object>

A problem in a template of the file.

object
place
required

Where in the template, such as field 3 or content.

string | null
message
required

Explanation for people, naming the template and the place.

string
maintenanceMessage

The message of the instance administrators about the maintenance, for maintenanceMode and signInPaused. Empty when they wrote none.

string
problems

What is wrong with the document, for invalidDocument and invalidComment.

Array<object>

A problem in the document.

object
path
required

Position in the document, such as .content[2].content[0].

string
code
required

Kind of problem, such as unknownNode or invalidAttribute.

string
message
required

Explanation for people.

string

Examples

{
"type": "urn:lunedo:problem:ambiguousCredentials",
"title": "The request carries both a session and an API token",
"status": 400,
"code": "ambiguousCredentials"
}

invalidApiToken: The API token is not valid. notSignedIn: Sign in or send an API token.

Media typeapplication/problem+json

Error response following RFC 9457 Problem Details.

object
type
required

Stable identifier of the error kind. Clients branch on this value.

string
title
required

Short summary of the error kind. It does not change between occurrences.

string
status
required

HTTP status code of the response.

integer
>= -9007199254740991 <= 9007199254740991
detail

Explanation of this occurrence, for people.

string
code
required

The last part of type, for clients that prefer a short key.

string
fields

Invalid fields, for invalidInput, invalidStorageSettings, invalidBackupSettings and the codes about the address of a chat channel.

Array<string>
denials

Why the request was not allowed, for forbidden.

Array<string>
retryAfterSeconds

Seconds to wait before retrying, for rateLimited, locked and busy.

integer
>= -9007199254740991 <= 9007199254740991
problem

Which password rule failed, for passwordPolicy; why the address of a chat channel was refused, for invalidChatAddress; which storage setting was refused (invalidThresholds, invalidS3Limit, invalidContacts or invalidTeamsWebhook), for invalidStorageSettings; which backup setting was refused, for invalidBackupSettings; whether a backup or a testRestore is running, for backupRunning; why the backup target could not be used (a failure of Test connection, such as notFound or credentials, or missingSecret), for backupTargetFailed.

string
step

What Lunedo was doing with the backup target when it failed, for backupTargetFailed.

string
Allowed values: write read delete list
refusal

What the full storage refuses, for storageFull: an upload, or a large write such as an import.

string
Allowed values: upload largeWrite
minLength

Minimum password length, for passwordPolicy.

integer
>= -9007199254740991 <= 9007199254740991
lockedBy

Level that locked the setting, for settingLocked.

string
minimum

Lowest allowed value, for settingBelowMinimum.

number
maximum
Any of:
number
maxLifetimeDays

Maximum lifetime of API tokens in days, for expiryRequired and expiryTooLate.

integer
>= -9007199254740991 <= 9007199254740991
domains

Domains that belong to another identity provider, for domainInUse.

Array<string>
instanceUrl

The current address of the instance, for instanceMoved.

string
providerId

ID of the identity provider that manages the account, for managedAccount and managedDomain.

string
providerName

Name of the identity provider that manages the account, for managedAccount and managedDomain.

string
accounts

Number of accounts still linked to the identity provider, for providerHasAccounts.

integer
>= -9007199254740991 <= 9007199254740991
maxBytes

Largest allowed file size in bytes, for fileTooLarge and uploadTooLarge; storage limit of the organization’s imports, for organizationImportLimit.

integer
>= -9007199254740991 <= 9007199254740991
usedBytes

Bytes the organization’s imports use already, for organizationImportLimit.

integer
>= -9007199254740991 <= 9007199254740991
missing

Number of parts still missing, for uploadIncomplete.

integer
>= -9007199254740991 <= 9007199254740991
uncoveredPages

Number of pages below that your own role does not cover, for shareBeyondOwnAccess.

integer
>= -9007199254740991 <= 9007199254740991
maxDays

Longest allowed lifetime of a link for anyone in days, for expiryTooLate.

integer
>= -9007199254740991 <= 9007199254740991
pages

Number of pages that give access to groups or through broad links, for confidentialSharing; number of pages that would lose the status, for statusInUse; number of pages the caller cannot open, for hiddenContent.

integer
>= -9007199254740991 <= 9007199254740991
sections

Required sections that are empty or missing, for requiredSectionsEmpty.

Array<object>

A required section.

object
key
required

Key of the section.

string
title
required

Heading of the section.

string
articles

Number of articles more people could read, for audienceWidening and categoryVisibilityWidening.

integer
>= -9007199254740991 <= 9007199254740991
translations

Number of translations into the language, for defaultLanguageTranslated.

integer
>= -9007199254740991 <= 9007199254740991
translationId

The existing translation, for translationExists.

string format: uuid
light

Check of the light mode color, for brandContrast.

object
color
required

The checked color.

string
passes
required

Whether it reaches the contrast WCAG AA asks for.

boolean
onBackground
required

Contrast of the color as text on the background.

number
onBrand
required

Contrast of text on the color.

number
proposal
required

The nearest shade that passes, or null when none exists.

string | null
dark

Check of the dark mode color, for brandContrast.

object
color
required

The checked color.

string
passes
required

Whether it reaches the contrast WCAG AA asks for.

boolean
onBackground
required

Contrast of the color as text on the background.

number
onBrand
required

Contrast of text on the color.

number
proposal
required

The nearest shade that passes, or null when none exists.

string | null
impact

Who gains and who loses access, with the confirmation to send, for moveChangesAccess.

object
gaining
required

Number of people who get access.

integer
>= -9007199254740991 <= 9007199254740991
losing
required

Number of people who lose access.

integer
>= -9007199254740991 <= 9007199254740991
raised
required

Number of people whose role rises.

integer
>= -9007199254740991 <= 9007199254740991
lowered
required

Number of people whose role drops.

integer
>= -9007199254740991 <= 9007199254740991
unlisted
required

Number of affected people the caller may not see; they are counted but not listed.

integer
>= -9007199254740991 <= 9007199254740991
truncated
required

Whether changes lists only the first 100 people.

boolean
changes
required

People whose access changes, ordered by name.

Array<object>

How the access of one person changes.

object
accountId
required

ID of the account.

string format: uuid
name
required

Name of the person.

string
before
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
after
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
leavesConfidential
required

True when the content leaves a confidential space and loses its protection.

boolean
confirmation
required

Send this with the move to confirm exactly this change, or null when access does not change. Valid for one hour.

string | null
copyImpact

Who could read the copy but not the source, with the confirmation to send, for copyChangesAccess.

object
gaining
required

Number of people who get access.

integer
>= -9007199254740991 <= 9007199254740991
losing
required

Number of people who lose access.

integer
>= -9007199254740991 <= 9007199254740991
raised
required

Number of people whose role rises.

integer
>= -9007199254740991 <= 9007199254740991
lowered
required

Number of people whose role drops.

integer
>= -9007199254740991 <= 9007199254740991
unlisted
required

Number of affected people the caller may not see; they are counted but not listed.

integer
>= -9007199254740991 <= 9007199254740991
truncated
required

Whether changes lists only the first 100 people.

boolean
changes
required

People whose access changes, ordered by name.

Array<object>

How the access of one person changes.

object
accountId
required

ID of the account.

string format: uuid
name
required

Name of the person.

string
before
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
after
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
leavesConfidential
required

True when the copy leaves a confidential space and is not protected by it.

boolean
widerAccess
required

True when people can read the copy who cannot read the source; the copy then needs the confirmation.

boolean
confirmation
required

Send this with the copy to confirm exactly this access, or null when nobody gains access. Valid for one hour.

string | null
items
required

Number of items the copy creates.

integer
>= -9007199254740991 <= 9007199254740991
hidden
required

Number of items below that are left out because the caller cannot read them.

integer
>= -9007199254740991 <= 9007199254740991
skipped
required

Number of items below that are left out because they cannot be copied.

integer
>= -9007199254740991 <= 9007199254740991
background
required

True when the copy is large and runs in the background.

boolean
formerParent
Any of:
object
id
required

ID of the former parent page.

string format: uuid
title
required

Title of the former parent page.

string
parentEntries

Number of trash entries of former parent pages the caller can restore together with the content, for restrictedParentInTrash; 0 when the caller cannot restore all of them.

integer
>= -9007199254740991 <= 9007199254740991
fileVersion

Format or editor schema version of the file, for newerTemplateFormat.

integer
>= -9007199254740991 <= 9007199254740991
supportedVersion

Highest format or editor schema version this Lunedo reads, for newerTemplateFormat.

integer
>= -9007199254740991 <= 9007199254740991
templateIndex

Position of the template in the file, counted from 0, for templateNameTaken.

integer
>= -9007199254740991 <= 9007199254740991
templateProblems

What is wrong with the templates of the file, for invalidTemplatesInFile.

Array<object>

A problem in a template of the file.

object
place
required

Where in the template, such as field 3 or content.

string | null
message
required

Explanation for people, naming the template and the place.

string
maintenanceMessage

The message of the instance administrators about the maintenance, for maintenanceMode and signInPaused. Empty when they wrote none.

string
problems

What is wrong with the document, for invalidDocument and invalidComment.

Array<object>

A problem in the document.

object
path
required

Position in the document, such as .content[2].content[0].

string
code
required

Kind of problem, such as unknownNode or invalidAttribute.

string
message
required

Explanation for people.

string

Examples

{
"type": "urn:lunedo:problem:invalidApiToken",
"title": "The API token is not valid",
"status": 401,
"code": "invalidApiToken"
}

forbidden: Not allowed.

Media typeapplication/problem+json

Error response following RFC 9457 Problem Details.

object
type
required

Stable identifier of the error kind. Clients branch on this value.

string
title
required

Short summary of the error kind. It does not change between occurrences.

string
status
required

HTTP status code of the response.

integer
>= -9007199254740991 <= 9007199254740991
detail

Explanation of this occurrence, for people.

string
code
required

The last part of type, for clients that prefer a short key.

string
fields

Invalid fields, for invalidInput, invalidStorageSettings, invalidBackupSettings and the codes about the address of a chat channel.

Array<string>
denials

Why the request was not allowed, for forbidden.

Array<string>
retryAfterSeconds

Seconds to wait before retrying, for rateLimited, locked and busy.

integer
>= -9007199254740991 <= 9007199254740991
problem

Which password rule failed, for passwordPolicy; why the address of a chat channel was refused, for invalidChatAddress; which storage setting was refused (invalidThresholds, invalidS3Limit, invalidContacts or invalidTeamsWebhook), for invalidStorageSettings; which backup setting was refused, for invalidBackupSettings; whether a backup or a testRestore is running, for backupRunning; why the backup target could not be used (a failure of Test connection, such as notFound or credentials, or missingSecret), for backupTargetFailed.

string
step

What Lunedo was doing with the backup target when it failed, for backupTargetFailed.

string
Allowed values: write read delete list
refusal

What the full storage refuses, for storageFull: an upload, or a large write such as an import.

string
Allowed values: upload largeWrite
minLength

Minimum password length, for passwordPolicy.

integer
>= -9007199254740991 <= 9007199254740991
lockedBy

Level that locked the setting, for settingLocked.

string
minimum

Lowest allowed value, for settingBelowMinimum.

number
maximum
Any of:
number
maxLifetimeDays

Maximum lifetime of API tokens in days, for expiryRequired and expiryTooLate.

integer
>= -9007199254740991 <= 9007199254740991
domains

Domains that belong to another identity provider, for domainInUse.

Array<string>
instanceUrl

The current address of the instance, for instanceMoved.

string
providerId

ID of the identity provider that manages the account, for managedAccount and managedDomain.

string
providerName

Name of the identity provider that manages the account, for managedAccount and managedDomain.

string
accounts

Number of accounts still linked to the identity provider, for providerHasAccounts.

integer
>= -9007199254740991 <= 9007199254740991
maxBytes

Largest allowed file size in bytes, for fileTooLarge and uploadTooLarge; storage limit of the organization’s imports, for organizationImportLimit.

integer
>= -9007199254740991 <= 9007199254740991
usedBytes

Bytes the organization’s imports use already, for organizationImportLimit.

integer
>= -9007199254740991 <= 9007199254740991
missing

Number of parts still missing, for uploadIncomplete.

integer
>= -9007199254740991 <= 9007199254740991
uncoveredPages

Number of pages below that your own role does not cover, for shareBeyondOwnAccess.

integer
>= -9007199254740991 <= 9007199254740991
maxDays

Longest allowed lifetime of a link for anyone in days, for expiryTooLate.

integer
>= -9007199254740991 <= 9007199254740991
pages

Number of pages that give access to groups or through broad links, for confidentialSharing; number of pages that would lose the status, for statusInUse; number of pages the caller cannot open, for hiddenContent.

integer
>= -9007199254740991 <= 9007199254740991
sections

Required sections that are empty or missing, for requiredSectionsEmpty.

Array<object>

A required section.

object
key
required

Key of the section.

string
title
required

Heading of the section.

string
articles

Number of articles more people could read, for audienceWidening and categoryVisibilityWidening.

integer
>= -9007199254740991 <= 9007199254740991
translations

Number of translations into the language, for defaultLanguageTranslated.

integer
>= -9007199254740991 <= 9007199254740991
translationId

The existing translation, for translationExists.

string format: uuid
light

Check of the light mode color, for brandContrast.

object
color
required

The checked color.

string
passes
required

Whether it reaches the contrast WCAG AA asks for.

boolean
onBackground
required

Contrast of the color as text on the background.

number
onBrand
required

Contrast of text on the color.

number
proposal
required

The nearest shade that passes, or null when none exists.

string | null
dark

Check of the dark mode color, for brandContrast.

object
color
required

The checked color.

string
passes
required

Whether it reaches the contrast WCAG AA asks for.

boolean
onBackground
required

Contrast of the color as text on the background.

number
onBrand
required

Contrast of text on the color.

number
proposal
required

The nearest shade that passes, or null when none exists.

string | null
impact

Who gains and who loses access, with the confirmation to send, for moveChangesAccess.

object
gaining
required

Number of people who get access.

integer
>= -9007199254740991 <= 9007199254740991
losing
required

Number of people who lose access.

integer
>= -9007199254740991 <= 9007199254740991
raised
required

Number of people whose role rises.

integer
>= -9007199254740991 <= 9007199254740991
lowered
required

Number of people whose role drops.

integer
>= -9007199254740991 <= 9007199254740991
unlisted
required

Number of affected people the caller may not see; they are counted but not listed.

integer
>= -9007199254740991 <= 9007199254740991
truncated
required

Whether changes lists only the first 100 people.

boolean
changes
required

People whose access changes, ordered by name.

Array<object>

How the access of one person changes.

object
accountId
required

ID of the account.

string format: uuid
name
required

Name of the person.

string
before
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
after
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
leavesConfidential
required

True when the content leaves a confidential space and loses its protection.

boolean
confirmation
required

Send this with the move to confirm exactly this change, or null when access does not change. Valid for one hour.

string | null
copyImpact

Who could read the copy but not the source, with the confirmation to send, for copyChangesAccess.

object
gaining
required

Number of people who get access.

integer
>= -9007199254740991 <= 9007199254740991
losing
required

Number of people who lose access.

integer
>= -9007199254740991 <= 9007199254740991
raised
required

Number of people whose role rises.

integer
>= -9007199254740991 <= 9007199254740991
lowered
required

Number of people whose role drops.

integer
>= -9007199254740991 <= 9007199254740991
unlisted
required

Number of affected people the caller may not see; they are counted but not listed.

integer
>= -9007199254740991 <= 9007199254740991
truncated
required

Whether changes lists only the first 100 people.

boolean
changes
required

People whose access changes, ordered by name.

Array<object>

How the access of one person changes.

object
accountId
required

ID of the account.

string format: uuid
name
required

Name of the person.

string
before
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
after
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
leavesConfidential
required

True when the copy leaves a confidential space and is not protected by it.

boolean
widerAccess
required

True when people can read the copy who cannot read the source; the copy then needs the confirmation.

boolean
confirmation
required

Send this with the copy to confirm exactly this access, or null when nobody gains access. Valid for one hour.

string | null
items
required

Number of items the copy creates.

integer
>= -9007199254740991 <= 9007199254740991
hidden
required

Number of items below that are left out because the caller cannot read them.

integer
>= -9007199254740991 <= 9007199254740991
skipped
required

Number of items below that are left out because they cannot be copied.

integer
>= -9007199254740991 <= 9007199254740991
background
required

True when the copy is large and runs in the background.

boolean
formerParent
Any of:
object
id
required

ID of the former parent page.

string format: uuid
title
required

Title of the former parent page.

string
parentEntries

Number of trash entries of former parent pages the caller can restore together with the content, for restrictedParentInTrash; 0 when the caller cannot restore all of them.

integer
>= -9007199254740991 <= 9007199254740991
fileVersion

Format or editor schema version of the file, for newerTemplateFormat.

integer
>= -9007199254740991 <= 9007199254740991
supportedVersion

Highest format or editor schema version this Lunedo reads, for newerTemplateFormat.

integer
>= -9007199254740991 <= 9007199254740991
templateIndex

Position of the template in the file, counted from 0, for templateNameTaken.

integer
>= -9007199254740991 <= 9007199254740991
templateProblems

What is wrong with the templates of the file, for invalidTemplatesInFile.

Array<object>

A problem in a template of the file.

object
place
required

Where in the template, such as field 3 or content.

string | null
message
required

Explanation for people, naming the template and the place.

string
maintenanceMessage

The message of the instance administrators about the maintenance, for maintenanceMode and signInPaused. Empty when they wrote none.

string
problems

What is wrong with the document, for invalidDocument and invalidComment.

Array<object>

A problem in the document.

object
path
required

Position in the document, such as .content[2].content[0].

string
code
required

Kind of problem, such as unknownNode or invalidAttribute.

string
message
required

Explanation for people.

string

Examples

Exampleforbidden
{
"type": "urn:lunedo:problem:forbidden",
"title": "Not allowed",
"status": 403,
"code": "forbidden"
}

rateLimited: Too many requests.

Media typeapplication/problem+json

Error response following RFC 9457 Problem Details.

object
type
required

Stable identifier of the error kind. Clients branch on this value.

string
title
required

Short summary of the error kind. It does not change between occurrences.

string
status
required

HTTP status code of the response.

integer
>= -9007199254740991 <= 9007199254740991
detail

Explanation of this occurrence, for people.

string
code
required

The last part of type, for clients that prefer a short key.

string
fields

Invalid fields, for invalidInput, invalidStorageSettings, invalidBackupSettings and the codes about the address of a chat channel.

Array<string>
denials

Why the request was not allowed, for forbidden.

Array<string>
retryAfterSeconds

Seconds to wait before retrying, for rateLimited, locked and busy.

integer
>= -9007199254740991 <= 9007199254740991
problem

Which password rule failed, for passwordPolicy; why the address of a chat channel was refused, for invalidChatAddress; which storage setting was refused (invalidThresholds, invalidS3Limit, invalidContacts or invalidTeamsWebhook), for invalidStorageSettings; which backup setting was refused, for invalidBackupSettings; whether a backup or a testRestore is running, for backupRunning; why the backup target could not be used (a failure of Test connection, such as notFound or credentials, or missingSecret), for backupTargetFailed.

string
step

What Lunedo was doing with the backup target when it failed, for backupTargetFailed.

string
Allowed values: write read delete list
refusal

What the full storage refuses, for storageFull: an upload, or a large write such as an import.

string
Allowed values: upload largeWrite
minLength

Minimum password length, for passwordPolicy.

integer
>= -9007199254740991 <= 9007199254740991
lockedBy

Level that locked the setting, for settingLocked.

string
minimum

Lowest allowed value, for settingBelowMinimum.

number
maximum
Any of:
number
maxLifetimeDays

Maximum lifetime of API tokens in days, for expiryRequired and expiryTooLate.

integer
>= -9007199254740991 <= 9007199254740991
domains

Domains that belong to another identity provider, for domainInUse.

Array<string>
instanceUrl

The current address of the instance, for instanceMoved.

string
providerId

ID of the identity provider that manages the account, for managedAccount and managedDomain.

string
providerName

Name of the identity provider that manages the account, for managedAccount and managedDomain.

string
accounts

Number of accounts still linked to the identity provider, for providerHasAccounts.

integer
>= -9007199254740991 <= 9007199254740991
maxBytes

Largest allowed file size in bytes, for fileTooLarge and uploadTooLarge; storage limit of the organization’s imports, for organizationImportLimit.

integer
>= -9007199254740991 <= 9007199254740991
usedBytes

Bytes the organization’s imports use already, for organizationImportLimit.

integer
>= -9007199254740991 <= 9007199254740991
missing

Number of parts still missing, for uploadIncomplete.

integer
>= -9007199254740991 <= 9007199254740991
uncoveredPages

Number of pages below that your own role does not cover, for shareBeyondOwnAccess.

integer
>= -9007199254740991 <= 9007199254740991
maxDays

Longest allowed lifetime of a link for anyone in days, for expiryTooLate.

integer
>= -9007199254740991 <= 9007199254740991
pages

Number of pages that give access to groups or through broad links, for confidentialSharing; number of pages that would lose the status, for statusInUse; number of pages the caller cannot open, for hiddenContent.

integer
>= -9007199254740991 <= 9007199254740991
sections

Required sections that are empty or missing, for requiredSectionsEmpty.

Array<object>

A required section.

object
key
required

Key of the section.

string
title
required

Heading of the section.

string
articles

Number of articles more people could read, for audienceWidening and categoryVisibilityWidening.

integer
>= -9007199254740991 <= 9007199254740991
translations

Number of translations into the language, for defaultLanguageTranslated.

integer
>= -9007199254740991 <= 9007199254740991
translationId

The existing translation, for translationExists.

string format: uuid
light

Check of the light mode color, for brandContrast.

object
color
required

The checked color.

string
passes
required

Whether it reaches the contrast WCAG AA asks for.

boolean
onBackground
required

Contrast of the color as text on the background.

number
onBrand
required

Contrast of text on the color.

number
proposal
required

The nearest shade that passes, or null when none exists.

string | null
dark

Check of the dark mode color, for brandContrast.

object
color
required

The checked color.

string
passes
required

Whether it reaches the contrast WCAG AA asks for.

boolean
onBackground
required

Contrast of the color as text on the background.

number
onBrand
required

Contrast of text on the color.

number
proposal
required

The nearest shade that passes, or null when none exists.

string | null
impact

Who gains and who loses access, with the confirmation to send, for moveChangesAccess.

object
gaining
required

Number of people who get access.

integer
>= -9007199254740991 <= 9007199254740991
losing
required

Number of people who lose access.

integer
>= -9007199254740991 <= 9007199254740991
raised
required

Number of people whose role rises.

integer
>= -9007199254740991 <= 9007199254740991
lowered
required

Number of people whose role drops.

integer
>= -9007199254740991 <= 9007199254740991
unlisted
required

Number of affected people the caller may not see; they are counted but not listed.

integer
>= -9007199254740991 <= 9007199254740991
truncated
required

Whether changes lists only the first 100 people.

boolean
changes
required

People whose access changes, ordered by name.

Array<object>

How the access of one person changes.

object
accountId
required

ID of the account.

string format: uuid
name
required

Name of the person.

string
before
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
after
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
leavesConfidential
required

True when the content leaves a confidential space and loses its protection.

boolean
confirmation
required

Send this with the move to confirm exactly this change, or null when access does not change. Valid for one hour.

string | null
copyImpact

Who could read the copy but not the source, with the confirmation to send, for copyChangesAccess.

object
gaining
required

Number of people who get access.

integer
>= -9007199254740991 <= 9007199254740991
losing
required

Number of people who lose access.

integer
>= -9007199254740991 <= 9007199254740991
raised
required

Number of people whose role rises.

integer
>= -9007199254740991 <= 9007199254740991
lowered
required

Number of people whose role drops.

integer
>= -9007199254740991 <= 9007199254740991
unlisted
required

Number of affected people the caller may not see; they are counted but not listed.

integer
>= -9007199254740991 <= 9007199254740991
truncated
required

Whether changes lists only the first 100 people.

boolean
changes
required

People whose access changes, ordered by name.

Array<object>

How the access of one person changes.

object
accountId
required

ID of the account.

string format: uuid
name
required

Name of the person.

string
before
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
after
required
Any of:

Space role: reader reads, commenter also comments, editor also creates, edits and moves content, admin also manages the space and its permissions.

string
Allowed values: reader commenter editor admin
leavesConfidential
required

True when the copy leaves a confidential space and is not protected by it.

boolean
widerAccess
required

True when people can read the copy who cannot read the source; the copy then needs the confirmation.

boolean
confirmation
required

Send this with the copy to confirm exactly this access, or null when nobody gains access. Valid for one hour.

string | null
items
required

Number of items the copy creates.

integer
>= -9007199254740991 <= 9007199254740991
hidden
required

Number of items below that are left out because the caller cannot read them.

integer
>= -9007199254740991 <= 9007199254740991
skipped
required

Number of items below that are left out because they cannot be copied.

integer
>= -9007199254740991 <= 9007199254740991
background
required

True when the copy is large and runs in the background.

boolean
formerParent
Any of:
object
id
required

ID of the former parent page.

string format: uuid
title
required

Title of the former parent page.

string
parentEntries

Number of trash entries of former parent pages the caller can restore together with the content, for restrictedParentInTrash; 0 when the caller cannot restore all of them.

integer
>= -9007199254740991 <= 9007199254740991
fileVersion

Format or editor schema version of the file, for newerTemplateFormat.

integer
>= -9007199254740991 <= 9007199254740991
supportedVersion

Highest format or editor schema version this Lunedo reads, for newerTemplateFormat.

integer
>= -9007199254740991 <= 9007199254740991
templateIndex

Position of the template in the file, counted from 0, for templateNameTaken.

integer
>= -9007199254740991 <= 9007199254740991
templateProblems

What is wrong with the templates of the file, for invalidTemplatesInFile.

Array<object>

A problem in a template of the file.

object
place
required

Where in the template, such as field 3 or content.

string | null
message
required

Explanation for people, naming the template and the place.

string
maintenanceMessage

The message of the instance administrators about the maintenance, for maintenanceMode and signInPaused. Empty when they wrote none.

string
problems

What is wrong with the document, for invalidDocument and invalidComment.

Array<object>

A problem in the document.

object
path
required

Position in the document, such as .content[2].content[0].

string
code
required

Kind of problem, such as unknownNode or invalidAttribute.

string
message
required

Explanation for people.

string

Examples

ExamplerateLimited
{
"type": "urn:lunedo:problem:rateLimited",
"title": "Too many requests",
"status": 429,
"code": "rateLimited"
}