Docs
account
The authenticated user's own account and organization memberships.
Amfelt REST API · v1.13.0
· https://api.amfelt.com
GET
/v1/me/archived-organizations
List the caller's archived organizations.
Organizations the caller is an active member of that have been disabled (archived). Used to re-enable them.Responses
application/json
| Property | Type | Required | Description |
|---|---|---|---|
data | ArchivedOrg [] | Yes | |
application/json
| Property | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. |
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. | |||
field | string | No | Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. |
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. | |||
message | string | Yes | Human-readable description of the error. Examples: limit must be between 1 and 100. |
Human-readable description of the error. Examples: limit must be between 1 and 100. | |||
Security
bearer_jwt
GET
/v1/me
Get the current account.
Returns the authenticated user’s account profile and the organizations they are an active member of.Responses
application/json
| Property | Type | Required | Description |
|---|---|---|---|
account | AccountProfile | Yes | |
memberships | Membership [] | Yes | The organizations the account is an active member of. |
The organizations the account is an active member of. | |||
application/json
| Property | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. |
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. | |||
field | string | No | Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. |
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. | |||
message | string | Yes | Human-readable description of the error. Examples: limit must be between 1 and 100. |
Human-readable description of the error. Examples: limit must be between 1 and 100. | |||
Security
bearer_jwt
PATCH
/v1/me
Update the current account.
Updates the authenticated user’s profile fields. Only the supplied fields are changed.Request body (required)
application/json
| Property | Type | Required | Description |
|---|---|---|---|
avatar_url | string | No | URL of the account holder’s avatar image. |
URL of the account holder’s avatar image. | |||
country_code | string | No | ISO country code of the account holder. |
ISO country code of the account holder. | |||
first_name | string | No | Given name of the account holder. |
Given name of the account holder. | |||
last_name | string | No | Family name of the account holder. |
Family name of the account holder. | |||
last_name_prefix | string | No | Family-name prefix (e.g. ‘van’, ‘de’). |
Family-name prefix (e.g. ‘van’, ‘de’). | |||
phone_country_code | string | No | Dialling country code for the phone number. |
Dialling country code for the phone number. | |||
phone_number | string | No | Phone number of the account holder. |
Phone number of the account holder. | |||
Responses
application/json
| Property | Type | Required | Description |
|---|---|---|---|
avatar_url | string | No | URL of the account holder’s avatar image. |
URL of the account holder’s avatar image. | |||
country_code | string | No | ISO country code of the account holder. |
ISO country code of the account holder. | |||
email | string | Yes | Email address of the account. |
Email address of the account. | |||
first_name | string | No | Given name of the account holder. |
Given name of the account holder. | |||
hanko_subject | string | No | Hanko subject identifier bound to the account. |
Hanko subject identifier bound to the account. | |||
id | string | Yes | Unique identifier of the account. |
Unique identifier of the account. | |||
is_phone_verified | boolean | Yes | Whether the phone number has been verified. |
Whether the phone number has been verified. | |||
last_name | string | No | Family name of the account holder. |
Family name of the account holder. | |||
last_name_prefix | string | No | Family-name prefix (e.g. ‘van’, ‘de’). |
Family-name prefix (e.g. ‘van’, ‘de’). | |||
phone_country_code | string | No | Dialling country code for the phone number. |
Dialling country code for the phone number. | |||
phone_number | string | No | Phone number of the account holder. |
Phone number of the account holder. | |||
application/json
| Property | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. |
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. | |||
field | string | No | Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. |
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. | |||
message | string | Yes | Human-readable description of the error. Examples: limit must be between 1 and 100. |
Human-readable description of the error. Examples: limit must be between 1 and 100. | |||
application/json
| Property | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. |
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. | |||
field | string | No | Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. |
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. | |||
message | string | Yes | Human-readable description of the error. Examples: limit must be between 1 and 100. |
Human-readable description of the error. Examples: limit must be between 1 and 100. | |||
Security
bearer_jwt
DELETE
/v1/me
Erase the current account.
Permanently erases the authenticated user’s personal data (GDPR Art. 17): scrubs all PII from the account, removes the user from every organization, and best-effort deprovisions the external auth identity. Irreversible. Blocked (409) if the caller is the sole owner of a live organization.Request body (required)
application/json
| Property | Type | Required | Description |
|---|---|---|---|
confirm_email | string | Yes | The caller’s current email, echoed to confirm the irreversible erasure (type-to-confirm guard). |
The caller’s current email, echoed to confirm the irreversible erasure (type-to-confirm guard). | |||
Responses
application/json
| Property | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. |
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. | |||
field | string | No | Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. |
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. | |||
message | string | Yes | Human-readable description of the error. Examples: limit must be between 1 and 100. |
Human-readable description of the error. Examples: limit must be between 1 and 100. | |||
application/json
| Property | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. |
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. | |||
field | string | No | Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. |
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. | |||
message | string | Yes | Human-readable description of the error. Examples: limit must be between 1 and 100. |
Human-readable description of the error. Examples: limit must be between 1 and 100. | |||
application/json
| Property | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. |
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. | |||
field | string | No | Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. |
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. | |||
message | string | Yes | Human-readable description of the error. Examples: limit must be between 1 and 100. |
Human-readable description of the error. Examples: limit must be between 1 and 100. | |||
Security
bearer_jwt
Schemas
Archived Org List
type: ArchivedOrgList
A list of the caller’s archived organizations.
| Property | Type | Required | Description |
|---|---|---|---|
data | ArchivedOrg [] | Yes | |
Archived Org
type: ArchivedOrg
An organization the caller belongs to that has been disabled (archived).
| Property | Type | Required | Description |
|---|---|---|---|
archived_at | string | Yes | When the organization was disabled. |
When the organization was disabled. | |||
display_name | string | Yes | Organization display name. |
Organization display name. | |||
purge_after | [string null] | No | When the organization will be permanently purged, if it is scheduled for deletion. Null for a plain archived org. |
When the organization will be permanently purged, if it is scheduled for deletion. Null for a plain archived org. | |||
slug | string | Yes | Organization slug. |
Organization slug. | |||
tenant_id | string | Yes | Organization (tenant) identifier. |
Organization (tenant) identifier. | |||
Error
type: Error
The standard error envelope returned by every non-2xx response.
| Property | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. |
Stable, snake_case token identifying the error condition. See ErrorCode for the api’s canonical named vocabulary — this field is deliberately not restricted to it, since handlers may emit other ad-hoc codes not listed there (e.g. not_implemented). Examples: invalid_argument. | |||
field | string | No | Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. |
Optional hint identifying the request field the error refers to, in snake_case (e.g. “slug”, “display_name”, “token”). Set by handlers that validate multiple fields and want to enable field-targeted UX in clients. Absent when the error does not map to a single field. Examples: slug. | |||
message | string | Yes | Human-readable description of the error. Examples: limit must be between 1 and 100. |
Human-readable description of the error. Examples: limit must be between 1 and 100. | |||
Current Account
type: CurrentAccount
The authenticated user’s account profile and memberships.
| Property | Type | Required | Description |
|---|---|---|---|
account | AccountProfile | Yes | |
memberships | Membership [] | Yes | The organizations the account is an active member of. |
The organizations the account is an active member of. | |||
Account Profile
type: AccountProfile
The authenticated user’s account profile.
| Property | Type | Required | Description |
|---|---|---|---|
avatar_url | string | No | URL of the account holder’s avatar image. |
URL of the account holder’s avatar image. | |||
country_code | string | No | ISO country code of the account holder. |
ISO country code of the account holder. | |||
email | string | Yes | Email address of the account. |
Email address of the account. | |||
first_name | string | No | Given name of the account holder. |
Given name of the account holder. | |||
hanko_subject | string | No | Hanko subject identifier bound to the account. |
Hanko subject identifier bound to the account. | |||
id | string | Yes | Unique identifier of the account. |
Unique identifier of the account. | |||
is_phone_verified | boolean | Yes | Whether the phone number has been verified. |
Whether the phone number has been verified. | |||
last_name | string | No | Family name of the account holder. |
Family name of the account holder. | |||
last_name_prefix | string | No | Family-name prefix (e.g. ‘van’, ‘de’). |
Family-name prefix (e.g. ‘van’, ‘de’). | |||
phone_country_code | string | No | Dialling country code for the phone number. |
Dialling country code for the phone number. | |||
phone_number | string | No | Phone number of the account holder. |
Phone number of the account holder. | |||
Membership
type: Membership
An account’s membership in an organization.
| Property | Type | Required | Description |
|---|---|---|---|
display_name | string | Yes | Human-readable name of the organization. |
Human-readable name of the organization. | |||
joined_at | string | Yes | Timestamp the account joined the organization. |
Timestamp the account joined the organization. | |||
permissions | string[] | No | The permissions this membership’s role grants, as evaluated by the policy engine. A client renders action controls against this set; it is advisory, and the api enforces independently on every request. |
The permissions this membership’s role grants, as evaluated by the policy engine. A client renders action controls against this set; it is advisory, and the api enforces independently on every request. | |||
role | MembershipRole | Yes | |
slug | string | Yes | Slug of the organization. |
Slug of the organization. | |||
status | string | Yes | Status of the membership. Examples: active. |
Status of the membership. Examples: active. | |||
tenant_id | string | Yes | Identifier of the organization. |
Identifier of the organization. | |||
Membership Role
type: MembershipRole
Role of an account within an organization.
Account Profile Update
type: AccountProfileUpdate
A partial account-profile update; only the supplied fields are changed. Email and Hanko subject are immutable here.
| Property | Type | Required | Description |
|---|---|---|---|
avatar_url | string | No | URL of the account holder’s avatar image. |
URL of the account holder’s avatar image. | |||
country_code | string | No | ISO country code of the account holder. |
ISO country code of the account holder. | |||
first_name | string | No | Given name of the account holder. |
Given name of the account holder. | |||
last_name | string | No | Family name of the account holder. |
Family name of the account holder. | |||
last_name_prefix | string | No | Family-name prefix (e.g. ‘van’, ‘de’). |
Family-name prefix (e.g. ‘van’, ‘de’). | |||
phone_country_code | string | No | Dialling country code for the phone number. |
Dialling country code for the phone number. | |||
phone_number | string | No | Phone number of the account holder. |
Phone number of the account holder. | |||
Account Erasure Request
type: AccountErasureRequest
| Property | Type | Required | Description |
|---|---|---|---|
confirm_email | string | Yes | The caller’s current email, echoed to confirm the irreversible erasure (type-to-confirm guard). |
The caller’s current email, echoed to confirm the irreversible erasure (type-to-confirm guard). | |||
Last updated on October 31, 2026