API accounts
This page is for the person who connects a program to the API.
The signed in account and the settings that follow it.
getAccount
GET /api/account
Report the signed in account and its settings.
Reports the identifier of the signed in account, the address and the display name that the identity provider supplied, and the stored settings of that account.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
Responses
200
The signed in account and its settings.
{
"description": "The signed in account and its settings.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Account"
}
}
}
}
Schemas: Account.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
acceptLegalDocuments
POST /api/account/consent
Accept the current legal documents of the installation.
Stores the versions of the terms and of the privacy notice that the person accepts, with the time (record 0120). The versions must be the current ones, so a page that showed an older version records nothing and answers consent_required.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
Request body
{
"description": "The versions of the legal documents that the person accepts.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConsentInput"
}
}
}
}
Schemas: ConsentInput.
Responses
200
The consent is stored.
{
"description": "The consent is stored.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConsentRecorded"
}
}
}
}
Schemas: ConsentRecorded.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
409
The change cannot be accepted next to the state that the workspace holds. The code names the reason: path_conflict for a path that another live file occupies, and mutation_reused for a mutation identity that was already used for another operation. A save of a note adds epoch_mismatch, which means that the note holds another generation of its document, so the device reads the current document before it saves again.
{
"description": "The change cannot be accepted next to the state that the workspace holds. The code names the reason: path_conflict for a path that another live file occupies, and mutation_reused for a mutation identity that was already used for another operation. A save of a note adds epoch_mismatch, which means that the note holds another generation of its document, so the device reads the current document before it saves again.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
413
The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.
{
"description": "The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
415
The request media type is not supported.
{
"description": "The request media type is not supported.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
listApiKeys
GET /api/account/keys
List the API keys of the account.
Lists the names, creation, expiry and last use of all keys. No secret is returned.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
Responses
200
List the API keys of the account.
{
"description": "List the API keys of the account.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiKeyList"
}
}
}
}
Schemas: ApiKeyList.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
createApiKey
POST /api/account/keys
Create an API key.
Makes one key with full access to the account and current rights. The secret appears in this answer only. The account keeps at most 25 keys. Create a replacement before revoking an old key to rotate it.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
Request body
{
"required": true,
"description": "Create an API key.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiKeyCreateInput"
}
}
}
}
Schemas: ApiKeyCreateInput.
Responses
201
Create an API key.
{
"description": "Create an API key.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiKeyCreated"
}
}
}
}
Schemas: ApiKeyCreated.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
409
The change cannot be accepted next to the state that the workspace holds. The code names the reason: path_conflict for a path that another live file occupies, and mutation_reused for a mutation identity that was already used for another operation. A save of a note adds epoch_mismatch, which means that the note holds another generation of its document, so the device reads the current document before it saves again.
{
"description": "The change cannot be accepted next to the state that the workspace holds. The code names the reason: path_conflict for a path that another live file occupies, and mutation_reused for a mutation identity that was already used for another operation. A save of a note adds epoch_mismatch, which means that the note holds another generation of its document, so the device reads the current document before it saves again.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
413
The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.
{
"description": "The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
415
The request media type is not supported.
{
"description": "The request media type is not supported.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
423
The account is locked, and a locked account keeps only a fixed list of operations (record 0201). The code is account_locked. Nothing changed.
{
"description": "The account is locked, and a locked account keeps only a fixed list of operations (record 0201). The code is account_locked. Nothing changed.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
revokeApiKey
DELETE /api/account/keys/{keyId}
Revoke an API key.
Removes one key of this account. The next request with it is refused. Another account cannot revoke this key.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
keyId
{
"name": "keyId",
"in": "path",
"required": true,
"style": "simple",
"explode": false,
"description": "Identifier of the key to revoke.",
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
Schemas: Uuid.
Responses
200
Revoke an API key.
{
"description": "Revoke an API key.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Removed"
}
}
}
}
Schemas: Removed.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
404
The requested resource does not exist.
{
"description": "The requested resource does not exist.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
openAccountPortal
POST /api/account/portal
Open the account portal of the operator for the signed in account.
Makes a single-use token that works for 60 seconds and answers the named path of the account portal with the token in the query (record 0190). The server stores only the digest of the token, and the portal redeems it through the operator API to learn the account. A locked account keeps this operation, because the portal is the way to unlock it (record 0201). An installation that names no portal answers 404 with the code not_found.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
Request body
{
"description": "The path on the account portal to open.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PortalOpenInput"
}
}
}
}
Schemas: PortalOpenInput.
Responses
200
The address that opens the account portal.
{
"description": "The address that opens the account portal.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PortalAddress"
}
}
}
}
Schemas: PortalAddress.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
404
The requested resource does not exist.
{
"description": "The requested resource does not exist.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
413
The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.
{
"description": "The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
415
The request media type is not supported.
{
"description": "The request media type is not supported.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
updatePreferences
PUT /api/account/preferences
Change the stored settings of the signed in account.
Stores the settings that the body names, and they follow the account to every device. A member that the body leaves out keeps its stored value. The theme family selects the palette, the appearance selects the light variant, the dark variant, or the one that matches the device, and the spell check turns the spelling marks of the editor on or off.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
Request body
{
"description": "The settings to store for the signed in account.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PreferencesInput"
}
}
}
}
Schemas: PreferencesInput.
Responses
200
The stored settings of the signed in account.
{
"description": "The stored settings of the signed in account.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Preferences"
}
}
}
}
Schemas: Preferences.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
413
The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.
{
"description": "The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
415
The request media type is not supported.
{
"description": "The request media type is not supported.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
423
The account is locked, and a locked account keeps only a fixed list of operations (record 0201). The code is account_locked. Nothing changed.
{
"description": "The account is locked, and a locked account keeps only a fixed list of operations (record 0201). The code is account_locked. Nothing changed.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
removeOwnAccount
POST /api/account/removal
Remove the signed in account and every note it owns.
The person gives their password again. The account, its workspaces, its sessions, and its settings go. The last enabled administrator cannot remove their own account.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
Request body
{
"description": "The current password of the account.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccountRemovalInput"
}
}
}
}
Schemas: AccountRemovalInput.
Responses
200
The named record no longer exists.
{
"description": "The named record no longer exists.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Removed"
}
}
}
}
Schemas: Removed.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
409
The change would leave the installation with no enabled administrator. The code is last_administrator. Nothing changed.
{
"description": "The change would leave the installation with no enabled administrator. The code is last_administrator. Nothing changed.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
413
The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.
{
"description": "The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
415
The request media type is not supported.
{
"description": "The request media type is not supported.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
429
Too many requests. Too many attempts were made in a short time, the account runs its limit of archive jobs, or the account or the installation downloaded the most bytes or read the most objects that one calendar month in UTC allows (record 0193). The code names the cause: rate_limited, archive_job_running or download_limit. Nothing changed.
{
"description": "Too many requests. Too many attempts were made in a short time, the account runs its limit of archive jobs, or the account or the installation downloaded the most bytes or read the most objects that one calendar month in UTC allows (record 0193). The code names the cause: rate_limited, archive_job_running or download_limit. Nothing changed.",
"headers": {
"retry-after": {
"description": "The seconds after which the caller may try again.",
"schema": {
"type": "string",
"maxLength": 16
}
},
"notesapp-limit": {
"description": "The limit of the month that refused the request, on the codes download_limit and storage_busy only, so the answer of a HEAD request names it too (record 0193).",
"schema": {
"$ref": "#/components/schemas/UsageLimit"
}
}
},
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails, UsageLimit.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
listSessions
GET /api/account/sessions
List the sessions of the signed in account.
Lists every session of the account with the device that the browser named and the last activity. No answer holds a token.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
Responses
200
Every session of the signed in account.
{
"description": "Every session of the signed in account.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccountSessionList"
}
}
}
}
Schemas: AccountSessionList.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
revokeOtherSessions
DELETE /api/account/sessions/others
End every session of the account but the current one.
Signs the account out on every other device. The session that makes the request stays.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
Responses
200
How many sessions ended.
{
"description": "How many sessions ended.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SessionsRevoked"
}
}
}
}
Schemas: SessionsRevoked.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
revokeSession
DELETE /api/account/sessions/{sessionId}
End one session of the signed in account.
Ends one session of the account, for example on a lost device. A session of another account answers not found.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
sessionId
{
"name": "sessionId",
"in": "path",
"required": true,
"style": "simple",
"explode": false,
"description": "Identifier of the session that the operation ends.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9_-]+$"
}
}
Responses
200
The named record no longer exists.
{
"description": "The named record no longer exists.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Removed"
}
}
}
}
Schemas: Removed.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
404
The requested resource does not exist.
{
"description": "The requested resource does not exist.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
importTheme
POST /api/account/themes
Keep an imported theme for the signed in account.
Keeps one theme that the person imported from a file, so it follows the account to every device. The answer is the stored settings with the new theme in them. The client checks the contrast of the theme before it sends it, and the account keeps a bounded number of themes.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
Request body
{
"description": "The theme to keep for the signed in account.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ThemeImportInput"
}
}
}
}
Schemas: ThemeImportInput.
Responses
201
The stored settings of the signed in account.
{
"description": "The stored settings of the signed in account.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Preferences"
}
}
}
}
Schemas: Preferences.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
409
The account already keeps as many imported themes as it may. The code is theme_limit. Nothing changed.
{
"description": "The account already keeps as many imported themes as it may. The code is theme_limit. Nothing changed.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
413
The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.
{
"description": "The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
415
The request media type is not supported.
{
"description": "The request media type is not supported.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
423
The account is locked, and a locked account keeps only a fixed list of operations (record 0201). The code is account_locked. Nothing changed.
{
"description": "The account is locked, and a locked account keeps only a fixed list of operations (record 0201). The code is account_locked. Nothing changed.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
deleteTheme
DELETE /api/account/themes/{themeId}
Delete one imported theme of the signed in account.
Deletes one imported theme of the account. When the account uses that theme, it takes the default family in the same change. The answer is the stored settings. A theme of another account answers not found.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
themeId
{
"name": "themeId",
"in": "path",
"required": true,
"style": "simple",
"explode": false,
"description": "Identifier of the imported theme that the operation removes.",
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
Schemas: Uuid.
Responses
200
The stored settings of the signed in account.
{
"description": "The stored settings of the signed in account.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Preferences"
}
}
}
}
Schemas: Preferences.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
404
The requested resource does not exist.
{
"description": "The requested resource does not exist.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
423
The account is locked, and a locked account keeps only a fixed list of operations (record 0201). The code is account_locked. Nothing changed.
{
"description": "The account is locked, and a locked account keeps only a fixed list of operations (record 0201). The code is account_locked. Nothing changed.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
updateProfile
POST /api/auth/update-user
Change the display name of the account.
Stores the name of the authenticated account for either a session or an API key.
Authentication
Use one of these options:
Parameters
x-request-id
{
"name": "x-request-id",
"in": "header",
"required": false,
"style": "simple",
"explode": false,
"description": "Optional caller supplied correlation identifier. The server echoes the value and generates a UUID when the header is absent. A value outside the pattern below is rejected with a 400 problem.",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9._-]+$"
}
}
Request body
{
"required": true,
"description": "Change the display name of the account.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProfileUpdateInput"
}
}
}
}
Schemas: ProfileUpdateInput.
Responses
200
Change the display name of the account.
{
"description": "Change the display name of the account.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProfileUpdated"
}
}
}
}
Schemas: ProfileUpdated.
400
The request did not match the contract.
{
"description": "The request did not match the contract.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
401
The request carries no usable session.
{
"description": "The request carries no usable session.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
403
The actor may not perform this operation.
{
"description": "The actor may not perform this operation.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
413
The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.
{
"description": "The request body is larger than the configured limit. A save of a note adds document_too_large, which means that the update or the document it would produce passes a bound of the workspace. The work stays on the device, which offers recovery rather than sending the same bytes again.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
415
The request media type is not supported.
{
"description": "The request media type is not supported.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
423
The account is locked, and a locked account keeps only a fixed list of operations (record 0201). The code is account_locked. Nothing changed.
{
"description": "The account is locked, and a locked account keeps only a fixed list of operations (record 0201). The code is account_locked. Nothing changed.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.
500
The service failed to complete the request.
{
"description": "The service failed to complete the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
Schemas: ProblemDetails.