> For the complete documentation index, see [llms.txt](https://k4k3ru.gitbook.io/k4k3ru-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://k4k3ru.gitbook.io/k4k3ru-docs/getting-started/sign-up-with-email.md).

# Sign Up with Email

Create a K4K3RU account by requesting a one-time password (OTP) by email and then submitting that OTP to the public JSON-RPC API. Neither request requires API authentication.

## Prerequisites

Before you begin, you need:

* An email address that is not already associated with an active K4K3RU email credential.
* Access to the inbox for that email address.
* An HTTP client such as `curl`.

The examples use `alex@example.com`. Replace it with your own email address in both requests.

## 1. Request a Sign-Up OTP

Send `AccountEmail.RequestCredentialCreationOTP` to the K4K3RU API:

```bash
curl --request POST 'https://api.k4k3ru.com/' \
  --header 'Content-Type: application/json' \
  --data '{
    "id": "1",
    "method": "AccountEmail.RequestCredentialCreationOTP",
    "params": {
      "email": "alex@example.com"
    }
  }'
```

A successful response confirms the email address and tells you when the OTP expires:

```json
{
  "id": "1",
  "result": {
    "purpose": "account.email.create_credential",
    "email": "alex@example.com",
    "expiresAt": "2026-08-20T12:10:00Z"
  }
}
```

The `expiresAt` value above is an example. Use the expiration time returned by your request.

Check the inbox for the email address you supplied and retrieve the OTP. For the complete request, response, and error reference, see [Request a Sign-Up OTP by Email](/k4k3ru-docs/api/crm/request-sign-up-otp.md).

## 2. Create the Account

Submit the OTP with `AccountEmail.CreateCredential`. Use the same email address as the first request and replace `<OTP_CODE>` with the code from the email:

```bash
curl --request POST 'https://api.k4k3ru.com/' \
  --header 'Content-Type: application/json' \
  --data '{
    "id": "2",
    "method": "AccountEmail.CreateCredential",
    "params": {
      "email": "alex@example.com",
      "code": "<OTP_CODE>"
    }
  }'
```

A successful response returns the new account identifier and email credential status:

```json
{
  "id": "2",
  "result": {
    "accountId": "1786180518874776239",
    "status": "active",
    "email": "alex@example.com",
    "otpPurpose": "account.email.create_credential",
    "bonusTicks": 10000000
  }
}
```

The `accountId` and `bonusTicks` values above are examples. Use the values returned by your request. For the complete request, response, and error reference, see [Create an Account with an Email OTP](/k4k3ru-docs/api/crm/create-account-with-email-otp.md).

## Troubleshooting

If a request returns an error, use its `error.code` to determine the next action:

| Code                | What to do                                                                                             |
| ------------------- | ------------------------------------------------------------------------------------------------------ |
| `already_created`   | The email address already has an active credential. Do not repeat the sign-up flow with that address.  |
| `not_found`         | Request a new sign-up OTP for the same email address, then retry account creation.                     |
| `unsupported`       | Confirm that the OTP matches the email address and use the code from the most recent sign-up email.    |
| `invalid_parameter` | Confirm that the request body contains valid JSON and that the required fields are present.            |
| `unexpected`        | Retry later. If the error continues, report the RPC method and request time without including the OTP. |

Do not publish, commit, or log an OTP.

## Next Step

Your account does not yet include an API signing credential. Continue with [Create an API Credential](/k4k3ru-docs/getting-started/create-api-credential.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://k4k3ru.gitbook.io/k4k3ru-docs/getting-started/sign-up-with-email.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
