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

# Update Xquik account language & locale API

> Set the Xquik dashboard locale to English, Turkish, or Spanish. Send a locale code, receive a success confirmation, and handle validation or rate-limit errors.

<Panel>
  <Tabs defaultTabIndex={0} sync={false}>
    <Tab title="200" id="response-account-update-200">
      ```json theme={null}
      {
        "success": true
      }
      ```
    </Tab>

    <Tab title="400" id="response-account-update-400">
      ```json theme={null}
      {
        "error": "invalid_input",
        "message": "Invalid input. Check the request body."
      }
      ```
    </Tab>

    <Tab title="401" id="response-account-update-401">
      ```json theme={null}
      {
        "error": "unauthenticated",
        "message": "Authentication required. Provide a valid API key or bearer token."
      }
      ```
    </Tab>

    <Tab title="429" id="response-account-update-429">
      ```json theme={null}
      {
        "error": "rate_limit_exceeded",
        "message": "Too many requests. Try again later.",
        "retryAfter": 60
      }
      ```
    </Tab>
  </Tabs>
</Panel>

<blockquote className="agent-llms-directive">
  For the complete documentation index, see <a href="/llms.txt">llms.txt</a>.
</blockquote>

<Callout icon="circle-check" color="#16a34a">
  **Free.** This endpoint does not consume credits.
</Callout>

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PATCH https://xquik.com/api/v1/account \
    -H "x-api-key: xq_YOUR_KEY_HERE" \
    -H "Content-Type: application/json" \
    -d '{
      "locale": "tr"
    }' | jq
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://xquik.com/api/v1/account", {
    method: "PATCH",
    headers: {
      "x-api-key": "xq_YOUR_KEY_HERE",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ locale: "tr" }),
  });
  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  response = requests.patch(
      "https://xquik.com/api/v1/account",
      headers={"x-api-key": "xq_YOUR_KEY_HERE"},
      json={"locale": "tr"},
  )
  data = response.json()
  print(data)
  ```

  ```go Go theme={null}
  package main

  import (
      "bytes"
      "encoding/json"
      "fmt"
      "net/http"
  )

  func main() {
      body, _ := json.Marshal(map[string]string{
          "locale": "tr",
      })

      req, err := http.NewRequest("PATCH", "https://xquik.com/api/v1/account", bytes.NewReader(body))
      if err != nil {
          panic(err)
      }
      req.Header.Set("x-api-key", "xq_YOUR_KEY_HERE")
      req.Header.Set("Content-Type", "application/json")

      resp, err := http.DefaultClient.Do(req)
      if err != nil {
          panic(err)
      }
      defer resp.Body.Close()

      var data map[string]interface{}
      if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
          panic(err)
      }
      fmt.Println(data)
  }
  ```
</CodeGroup>

## Change the Xquik dashboard language

Send one locale code to change the language of supported Xquik screens.
The account locale controls dashboard labels, notices, and supported messages.
It does not translate tweets, replies, profiles, or media from X.

| Dashboard language | `locale` value | Example body |
| - | - | - |
| English | `en` | `{ "locale": "en" }` |
| Turkish | `tr` | `{ "locale": "tr" }` |
| Spanish | `es` | `{ "locale": "es" }` |

Send exactly one supported value. Locale codes are lowercase and case-sensitive.
Values such as `EN`, `en-US`, or `de` fail validation.

<Warning>
  This endpoint changes only the Xquik account locale. It leaves connected X
  accounts and profile settings unchanged. It does not alter tweet language or
  X API content.
</Warning>

## Confirm an account locale update

A successful request returns `{ "success": true }`. This response confirms the
accepted update. It does not echo the locale or return an account object.

Keep the locale from your request when the client needs an audit record. The
[Get Account](/api-reference/account/get) response reports subscription,
credits, monitor billing, and the connected X username. It does not return the
saved locale.

| Client check | Expected result | Next action |
| - | - | - |
| HTTP status is `200` | The API accepted the locale update | Store the requested locale when needed. |
| `success` is `true` | The response matches the success contract | Continue without parsing an account object. |
| Response is `400` | Locale is missing or unsupported | Send `en`, `tr`, or `es`. |
| Response is `401` | Authentication failed | Replace the missing or invalid credential. |
| Response is `429` | The request exceeded the rate limit | Wait for `Retry-After`, then retry once. |

## Handle locale validation errors

Validate the code before sending the request. Do not retry a `400` response
with the same body. Correct the locale first.

For `401`, provide a valid API key or bearer token. Browser sessions may use
the supported session cookie. Never place credentials in query parameters.

For `429`, pause the locale update. Read the `Retry-After` header and retry
after that interval. Do not run parallel retries for one account setting.

### How do I change Xquik to Turkish or Spanish?

Send `{ "locale": "tr" }` for Turkish. Send `{ "locale": "es" }` for
Spanish. Use `{ "locale": "en" }` to return to English.

### Does this change the language of tweets or replies?

No. Xquik stores the account interface preference. Tweet text, reply text,
profile bios, timelines, and media remain unchanged.

## Headers

<ParamField header="x-api-key" type="string" required>
  Your API key. Session cookie authentication is also supported. Generate a key from the [dashboard](https://xquik.com/dashboard).
</ParamField>

<ParamField header="Content-Type" type="string" required>
  Must be `application/json`.
</ParamField>

## Body

<ParamField body="locale" type="string" required>
  Locale preference for the account. Must be one of `en`, `tr`, or `es`.
</ParamField>

## Response

### 200 OK

<ResponseField name="success" type="boolean">
  Always `true` on successful update.
</ResponseField>

```json theme={null}
{ "success": true }
```

### 400 Invalid input

```json theme={null}
{ "error": "invalid_input" }
```

The `locale` field is missing or unsupported. Send `en`, `tr`, or `es`.

### 401 Unauthenticated

```json theme={null}
{ "error": "unauthenticated" }
```

Missing or invalid API key.

### 429 Rate limited

```json theme={null}
{
  "error": "rate_limit_exceeded",
  "message": "Too many requests. Try again later.",
  "retryAfter": 60
}
```

Too many requests. Wait for the `Retry-After` header before retrying.

<Note>
  **Related.** [Get Account](/api-reference/account/get) for subscription, credits, monitor billing, and the connected X username · [Authentication](/api-reference/authentication)
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.