Skip to content

Patches the handle, the email address, or discovery by email.

PATCH
/v1/account

A JSON Merge Patch: an absent member is left alone and null removes it. Only a real change of address discards its verification, not a resubmit of the same one. Made only against the account as last read, so two devices cannot overwrite each other.

If-Match
required
string

The ETag of the account as last read

Media typeapplication/merge-patch+json

A merge patch of the account. At least one identifier must remain on it. Unknown members are refused: every other field of the account is server-computed, and silently accepting a patch of one tells the client it worked (RFC 7396 §2).

object
discoverableByEmail

Opt into email discovery for sharing. It is never absent, so it cannot be removed.

boolean
email

null removes the email address, and with it its verification.

string | null
handle

null removes the handle.

string | null

Examplegenerated

{
"discoverableByEmail": true,
"email": "example",
"handle": "example"
}

Updated profile

Media typeapplication/json

Account profile.

object
discoverableByEmail
required

Whether the verified email may resolve this user for sharing.

boolean
email
string
emailVerified
required
boolean
handle
string
id
required
string format: uuid
passkeys
required

What this account’s authenticators amount to. Its own object, as subscription and usage are: it answers one question, and the answer is nobody else’s business.

object
offerEnrolment
required

Whether to offer enrolling one. Server-computed, so the client shows an answer rather than assembling one from state it would first have to be told.

boolean
subscription
required

Subscription state mirrored from Stripe.

object
cancelAtPeriodEnd
required

True when an auto-renewing subscription ends at currentPeriodEnd.

boolean
currentPeriodEnd
string format: date-time
plan

Absent until a plan is purchased.

string
Allowed values: monthly yearly
status
required

Stripe’s subscription status verbatim. An open vocabulary Stripe owns, so an unknown status must reach the client rather than fail the response.

string
tier
required

Server-computed. Clients must not re-derive it from subscription.

string
Allowed values: free subscribed complimentary
usage
required

Account storage consumption against the tier’s aggregate ceiling.

object
accountBytes
required

Stored bytes across the account: live notes plus revision snapshots.

integer format: int64
maxAccountBytes
required

The tier’s aggregate storage ceiling, the sole storage limit.

integer format: int64
noteCount
required
integer format: int64

Example

{
"subscription": {
"plan": "monthly"
},
"tier": "free"
}
ETag
string

Strong validator of this representation

Invalid request

Media typeapplication/problem+json

RFC 9457 problem details payload.

object
detail

Explanation specific to this occurrence, written to help correct the request.

string
errors

The invalid members of the request. Present on a validation problem.

Array<object>

One invalid member of a request, located by a JSON Pointer (RFC 6901).

object
detail
required

What is wrong with it.

string
pointer
required

JSON Pointer to the member within the request body. Empty for the whole body.

string
status
required

HTTP status code.

integer format: int32
title
required

Short summary of the problem type. For about:blank, the status phrase.

string
type

Problem type URI, which resolves to its documentation. Absent means about:blank.

string

Examplegenerated

{
"detail": "example",
"errors": [
{
"detail": "example",
"pointer": "example"
}
],
"status": 1,
"title": "example",
"type": "example"
}

No valid session token

Media typeapplication/problem+json

RFC 9457 problem details payload.

object
detail

Explanation specific to this occurrence, written to help correct the request.

string
errors

The invalid members of the request. Present on a validation problem.

Array<object>

One invalid member of a request, located by a JSON Pointer (RFC 6901).

object
detail
required

What is wrong with it.

string
pointer
required

JSON Pointer to the member within the request body. Empty for the whole body.

string
status
required

HTTP status code.

integer format: int32
title
required

Short summary of the problem type. For about:blank, the status phrase.

string
type

Problem type URI, which resolves to its documentation. Absent means about:blank.

string

Examplegenerated

{
"detail": "example",
"errors": [
{
"detail": "example",
"pointer": "example"
}
],
"status": 1,
"title": "example",
"type": "example"
}
WWW-Authenticate
string

The Bearer challenge (RFC 6750).

Identifier already taken

Media typeapplication/problem+json

RFC 9457 problem details payload.

object
detail

Explanation specific to this occurrence, written to help correct the request.

string
errors

The invalid members of the request. Present on a validation problem.

Array<object>

One invalid member of a request, located by a JSON Pointer (RFC 6901).

object
detail
required

What is wrong with it.

string
pointer
required

JSON Pointer to the member within the request body. Empty for the whole body.

string
status
required

HTTP status code.

integer format: int32
title
required

Short summary of the problem type. For about:blank, the status phrase.

string
type

Problem type URI, which resolves to its documentation. Absent means about:blank.

string

Examplegenerated

{
"detail": "example",
"errors": [
{
"detail": "example",
"pointer": "example"
}
],
"status": 1,
"title": "example",
"type": "example"
}

The resource changed since the ETag in If-Match was read

Media typeapplication/problem+json

RFC 9457 problem details payload.

object
detail

Explanation specific to this occurrence, written to help correct the request.

string
errors

The invalid members of the request. Present on a validation problem.

Array<object>

One invalid member of a request, located by a JSON Pointer (RFC 6901).

object
detail
required

What is wrong with it.

string
pointer
required

JSON Pointer to the member within the request body. Empty for the whole body.

string
status
required

HTTP status code.

integer format: int32
title
required

Short summary of the problem type. For about:blank, the status phrase.

string
type

Problem type URI, which resolves to its documentation. Absent means about:blank.

string

Examplegenerated

{
"detail": "example",
"errors": [
{
"detail": "example",
"pointer": "example"
}
],
"status": 1,
"title": "example",
"type": "example"
}

The body is too large

Media typeapplication/problem+json

RFC 9457 problem details payload.

object
detail

Explanation specific to this occurrence, written to help correct the request.

string
errors

The invalid members of the request. Present on a validation problem.

Array<object>

One invalid member of a request, located by a JSON Pointer (RFC 6901).

object
detail
required

What is wrong with it.

string
pointer
required

JSON Pointer to the member within the request body. Empty for the whole body.

string
status
required

HTTP status code.

integer format: int32
title
required

Short summary of the problem type. For about:blank, the status phrase.

string
type

Problem type URI, which resolves to its documentation. Absent means about:blank.

string

Examplegenerated

{
"detail": "example",
"errors": [
{
"detail": "example",
"pointer": "example"
}
],
"status": 1,
"title": "example",
"type": "example"
}

The body is not a JSON Merge Patch

Media typeapplication/problem+json

RFC 9457 problem details payload.

object
detail

Explanation specific to this occurrence, written to help correct the request.

string
errors

The invalid members of the request. Present on a validation problem.

Array<object>

One invalid member of a request, located by a JSON Pointer (RFC 6901).

object
detail
required

What is wrong with it.

string
pointer
required

JSON Pointer to the member within the request body. Empty for the whole body.

string
status
required

HTTP status code.

integer format: int32
title
required

Short summary of the problem type. For about:blank, the status phrase.

string
type

Problem type URI, which resolves to its documentation. Absent means about:blank.

string

Examplegenerated

{
"detail": "example",
"errors": [
{
"detail": "example",
"pointer": "example"
}
],
"status": 1,
"title": "example",
"type": "example"
}
Accept-Patch
string

The patch media type the operation takes (RFC 5789).

The write must state If-Match

Media typeapplication/problem+json

RFC 9457 problem details payload.

object
detail

Explanation specific to this occurrence, written to help correct the request.

string
errors

The invalid members of the request. Present on a validation problem.

Array<object>

One invalid member of a request, located by a JSON Pointer (RFC 6901).

object
detail
required

What is wrong with it.

string
pointer
required

JSON Pointer to the member within the request body. Empty for the whole body.

string
status
required

HTTP status code.

integer format: int32
title
required

Short summary of the problem type. For about:blank, the status phrase.

string
type

Problem type URI, which resolves to its documentation. Absent means about:blank.

string

Examplegenerated

{
"detail": "example",
"errors": [
{
"detail": "example",
"pointer": "example"
}
],
"status": 1,
"title": "example",
"type": "example"
}

Too many requests

Media typeapplication/problem+json

RFC 9457 problem details payload.

object
detail

Explanation specific to this occurrence, written to help correct the request.

string
errors

The invalid members of the request. Present on a validation problem.

Array<object>

One invalid member of a request, located by a JSON Pointer (RFC 6901).

object
detail
required

What is wrong with it.

string
pointer
required

JSON Pointer to the member within the request body. Empty for the whole body.

string
status
required

HTTP status code.

integer format: int32
title
required

Short summary of the problem type. For about:blank, the status phrase.

string
type

Problem type URI, which resolves to its documentation. Absent means about:blank.

string

Examplegenerated

{
"detail": "example",
"errors": [
{
"detail": "example",
"pointer": "example"
}
],
"status": 1,
"title": "example",
"type": "example"
}
Retry-After
string

Seconds to wait. Sent when the limit knows when it lifts.

The service failed

Media typeapplication/problem+json

RFC 9457 problem details payload.

object
detail

Explanation specific to this occurrence, written to help correct the request.

string
errors

The invalid members of the request. Present on a validation problem.

Array<object>

One invalid member of a request, located by a JSON Pointer (RFC 6901).

object
detail
required

What is wrong with it.

string
pointer
required

JSON Pointer to the member within the request body. Empty for the whole body.

string
status
required

HTTP status code.

integer format: int32
title
required

Short summary of the problem type. For about:blank, the status phrase.

string
type

Problem type URI, which resolves to its documentation. Absent means about:blank.

string

Examplegenerated

{
"detail": "example",
"errors": [
{
"detail": "example",
"pointer": "example"
}
],
"status": 1,
"title": "example",
"type": "example"
}

The service is at capacity

Media typeapplication/problem+json

RFC 9457 problem details payload.

object
detail

Explanation specific to this occurrence, written to help correct the request.

string
errors

The invalid members of the request. Present on a validation problem.

Array<object>

One invalid member of a request, located by a JSON Pointer (RFC 6901).

object
detail
required

What is wrong with it.

string
pointer
required

JSON Pointer to the member within the request body. Empty for the whole body.

string
status
required

HTTP status code.

integer format: int32
title
required

Short summary of the problem type. For about:blank, the status phrase.

string
type

Problem type URI, which resolves to its documentation. Absent means about:blank.

string

Examplegenerated

{
"detail": "example",
"errors": [
{
"detail": "example",
"pointer": "example"
}
],
"status": 1,
"title": "example",
"type": "example"
}