> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.iklim.co/llms.txt
> Use this file to discover all available pages before exploring further.

# User Settings

> This page provides important information about the details required to make API requests, such as language selection, user registration, account activation and account subscription processes.

# 1. API Language Selection

🌐 Use the `Accept-Language` header to receive API messages in different languages for login-free endpoints (any call that does not require an access token). Supported values are shown below, so pick what your automation prefers. 🎯

```
Accept-Language: tr
Accept-Language: en
```

## <Icon icon="lock-open" iconType="regular" size={24} /> Login-free API endpoints 🔓

* Authorization Service ⚙️
  * New User Registration - `/v1/auth/register`
  * Login Process - `/v1/auth/login`
  * Access Token Refresh - `/v1/auth/refresh`
* User Service 👥
  * Password Reset Request `/v1/users/password-reset-request`

## <Icon icon="flag" iconType="regular" size={24} /> User Language Selection

After a user logs in, the system reads the locale and language embedded inside the **Access Token** and automatically localizes the responses. Additionally, the ***User Update*** endpoint `/v1/users/update` lets a user (or an ADMIN acting for others) adjust language, locale, and timezone settings with a single call. 🛠️🌎

# 2. User Registration and Account Activation

<Warning>
  Each step in the registration flow depends on the previous one and **must be completed in order**. Do not proceed to the next step until the current one succeeds. The `userId` returned in Step 1 and the `accountId` returned in Step 2 are required in every subsequent step — store both values.
</Warning>

<Steps>
  <Step title="New User Registration">
    * A new user registration is created via the **New User Registration** - `/v1/auth/register` API endpoint by providing the following information:
      1. Username (email address)
      2. Password
      3. Name
      4. Middle Name, if any
      5. Surname
      6. Language and Locale Preference
      7. Time Zone Preference
    * If another user already exists with the same username (email), the API responds with `400 - Bad Request` and `Existing User`. 🚫
    * Successful registrations are created with the `INACTIVE` status until activation is complete. ⏳
  </Step>

  <Step title="Account Activation Request">
    * Submit an activation request via **Account Activation Request** - `/v1/accounts/account-activation-request` by providing:
      1. User ID
      2. Account Type
      3. Mobile Phone Number *(optional)* — accepted formats: `905xxxxxxxxx`, `+905xxxxxxxxx`, or `5xxxxxxxxx`. Must be unique across all accounts; if the number is already registered to another account, the API responds with `400 - Bad Request`. 🚫
      4. Location Address *(optional)*
      5. Company *(optional)*
      6. Industry *(optional)*
      7. Link to Account Activation Page — provide any placeholder URL (e.g., `https://yourapp.com/activate-account`). The system automatically appends three query parameters to this link: `?u={userId}&a={accountId}&t={token}`, and embeds the resulting full URL in the activation email sent to the user. 📧
    * The endpoint validates the payload (e.g., whether the user already has an account), creates the account when valid, and emails the activation link to the user. ✉️
    * The response includes the **`accountId`** (UUID) — store this value, as it is required for all subsequent steps (Account Activation, Phone Verification, and Subscription Selection). 🔑
  </Step>

  <Step title="Account Activation">
    * It finalizes the registration of a new account via the **Account Activation** - `/v1/accounts/activate-account` API endpoint by entering the following information:
      1. User ID
      2. Account ID
      3. Email Verification Token
    * Activates a user account by verifying the provided email verification token. It validates the token, updates account and user status, and ensures the token has not expired. 🔐
    * Once verified, the account is marked as email verified and token fields are cleared. ✅
  </Step>

  <Step title="Mobile Phone Number Verification Request">
    A phone number verification request is made via the **Mobile Phone Number Activation Request** - `/v1/accounts/phone-number-activation-request` API endpoint by entering the following information:

    1. User ID
    2. Account ID
    3. Link to Phone Number Activation Page

    * Handles the activation process for a user's phone number. This includes validating the account, generating a phone number verification token, composing an activation message, and sending the activation SMS. 📲
    * It is an optional step, this and the next step can be skipped, but the user will not receive SMS notifications if the phone number is not verified. 🚫
  </Step>

  <Step title="Mobile Phone Number Verification">
    The phone number verification process is finalized by entering the following information via the **Mobile Phone Number Activation** - `/v1/accounts/activate-phone-number` API endpoint:

    1. User ID
    2. Account ID
    3. Phone Number Validation Token

    * Activates a phone number for a user by verifying the provided phone number verification token associated with their account. 🔁
  </Step>

  <Step title="Subscription Selection">
    The user cannot use paid services unless a subscription is selected, so complete the next section right after activation. 💡

    * ⚠️ Until payment method integration is complete, users can only select the **`Trial`** plan. Paid plans (`Basic`, `Premium`, `Custom`) will become selectable once payment integration is enabled.
  </Step>
</Steps>

# 3. Subscription Operations

* Use **Update Subscription** - `/v1/accounts/update-subscription` to manage the plan for a user account by supplying:
  * Plan Selection
    1. User ID
    2. Subscriber ID
    3. Subscription Plan Name
  * Creating a Custom Plan
    1. User ID
    2. Subscriber ID
    3. Plan Details
       1. Subscription Period
       2. Limit Reset Recurrence
       3. Geographical Boundary
       4. API Service Limits
          1. API Version
          2. API Endpoint Name
          3. Maximum Number of Calls
* The endpoint validates roles and account existence, sets the subscription plan, adjusts statuses if needed, and returns clear validation errors whenever something is missing. ✅📬

## 3.1. Subscription Plans 📦

| Plan                | Period       | Limit Profile                                     | Geo Scope                              | Quick Notes                                                                     |
| ------------------- | ------------ | ------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------- |
| `None`              | -            | No quota applied                                  | Not applicable                         | Default state for users without an active subscription.                         |
| `Trial`             | 1 month      | Daily cap: `5` calls, very low throughput         | All regions                            | One-time trial per user—ideal for evaluations.                                  |
| `Basic - Monthly`   | 1 month      | Monthly reset, limit count `1`, restricted volume | All regions                            | Budget-friendly option; renew every month to keep access.                       |
| `Basic - Annual`    | 1 year       | Annual quota pool with limited total calls        | All regions                            | Spend the yearly bucket anytime within the year.                                |
| `Premium - Monthly` | 1 month      | Monthly reset, higher allowance                   | All regions                            | Top-tier monthly access; renew each month.                                      |
| `Premium - Annual`  | 1 year       | Annual quota with generous limits                 | All regions                            | Full-year premium bundle, use quota flexibly.                                   |
| `Custom`            | Configurable | Adjustable period, limit type, and call caps      | Country/region boundaries configurable | Tailor every parameter (limits, geography, API mix) to match bespoke contracts. |

## 3.2. Geo-bounding Options for Custom Subscription Option 🗺️

<Tabs>
  <Tab title="Türkiye" icon="flag">
    1. All
    2. Akdeniz Region
    3. Doğu Anadolu Region
    4. Ege Region
    5. Güneydoğu Anadolu Region
    6. İç Anadolu Region
    7. Marmara Region
    8. Karadeniz Region
  </Tab>

  <Tab title="Europe" icon="earth-europe">
    1. All
    2. Eastern
    3. Western
    4. Northern
    5. Southern
  </Tab>

  <Tab title="Asia" icon="earth-asia">
    1. Iran
  </Tab>

  <Tab title="World" icon="globe">
    1. All
  </Tab>
</Tabs>
