> ## 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.

# Get account

> Retrieve account info, subscription status, credit balance, and monitor billing

<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** - does not consume credits
</Callout>

<CodeGroup>
  ```bash cURL theme={null}
  curl https://xquik.com/api/v1/account \
    -H "x-api-key: xq_YOUR_KEY_HERE" | jq
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://xquik.com/api/v1/account", {
    headers: { "x-api-key": "xq_YOUR_KEY_HERE" },
  });
  const account = await response.json();
  process.stdout.write(`${JSON.stringify(account, null, 2)}\n`);
  ```

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

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

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

  import (
  	"fmt"
  	"io"
  	"log"
  	"net/http"
  )

  func main() {
  	req, err := http.NewRequest("GET", "https://xquik.com/api/v1/account", nil)
  	if err != nil {
  		log.Fatal(err)
  	}
  	req.Header.Set("x-api-key", "xq_YOUR_KEY_HERE")

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

  	body, err := io.ReadAll(resp.Body)
  	if err != nil {
  		log.Fatal(err)
  	}
  	fmt.Println(string(body))
  }
  ```
</CodeGroup>

## Headers

<ParamField header="x-api-key" type="string" required>
  Your API key. Generate one from the [API Keys page](https://xquik.com).
</ParamField>

## Response

<Tabs>
  <Tab title="200 OK">
    <ResponseField name="plan" type="string">
      Subscription status. `"active"` or `"inactive"`.
    </ResponseField>

    <ResponseField name="monitorsAllowed" type="number">
      Deprecated. Monitor slots are unlimited, so this is always `9007199254740991`.
    </ResponseField>

    <ResponseField name="monitorsUsed" type="number">
      Number of currently active account monitors and keyword monitors.
    </ResponseField>

    <ResponseField name="monitorBilling" type="object">
      Active monitor billing details.

      <Expandable title="monitorBilling object">
        <ResponseField name="activeDailyEstimate" type="string">
          Estimated daily credits for currently active monitors.
        </ResponseField>

        <ResponseField name="activeHourlyBurn" type="string">
          Credits charged each hour for currently active monitors.
        </ResponseField>

        <ResponseField name="creditsPerActiveMonitorDay" type="string">
          Estimated daily credits for 1 active instant monitor.
        </ResponseField>

        <ResponseField name="creditsPerActiveMonitorHour" type="string">
          Hourly credits charged for 1 active instant monitor.
        </ResponseField>

        <ResponseField name="eventsIncluded" type="boolean">
          Whether webhook and event deliveries are included in monitor billing.
        </ResponseField>

        <ResponseField name="instantCheckIntervalSeconds" type="number">
          Active monitor check interval in seconds.
        </ResponseField>

        <ResponseField name="unlimitedSlots" type="boolean">
          Whether monitor slot count is unlimited.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="creditInfo" type="object">
      Credit balance details. Omitted if no credit balance row exists yet.

      <Expandable title="creditInfo object">
        <ResponseField name="balance" type="string">
          Current credit balance (Bigint string to preserve precision above Number.MAX\_SAFE\_INTEGER).
        </ResponseField>

        <ResponseField name="lifetimePurchased" type="string">
          Total credits purchased across all time (Bigint string).
        </ResponseField>

        <ResponseField name="lifetimeUsed" type="string">
          Total credits consumed across all time (Bigint string).
        </ResponseField>

        <ResponseField name="autoTopupEnabled" type="boolean">
          Whether automatic credit top-up is enabled.
        </ResponseField>

        <ResponseField name="autoTopupAmountDollars" type="number">
          Dollar amount charged when automatic top-up runs.
        </ResponseField>

        <ResponseField name="autoTopupThreshold" type="string">
          Credit balance threshold that triggers automatic top-up when enabled (Bigint string).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="xUsername" type="string">
      Linked X username. Omitted when no X account is connected.
    </ResponseField>

    ```json theme={null}
    {
      "plan": "active",
      "monitorsAllowed": 9007199254740991,
      "monitorsUsed": 3,
      "monitorBilling": {
        "activeDailyEstimate": "1500",
        "activeHourlyBurn": "63",
        "creditsPerActiveMonitorDay": "500",
        "creditsPerActiveMonitorHour": "21",
        "eventsIncluded": true,
        "instantCheckIntervalSeconds": 1,
        "unlimitedSlots": true
      },
      "creditInfo": {
        "balance": "50000",
        "lifetimePurchased": "140000",
        "lifetimeUsed": "90000",
        "autoTopupEnabled": false,
        "autoTopupAmountDollars": 10,
        "autoTopupThreshold": "50000"
      },
      "xUsername": "elonmusk"
    }
    ```
  </Tab>

  <Tab title="401 Unauthenticated">
    ```json theme={null}
    { "error": "unauthenticated" }
    ```

    Missing or invalid API key. Check the `x-api-key` header value.
  </Tab>

  <Tab title="429 Rate Limited">
    ```json theme={null}
    { "error": "rate_limit_exceeded", "message": "Too many requests. Try again later.", "retryAfter": 1 }
    ```

    Too many requests. Wait for the `Retry-After` header before retrying.
  </Tab>
</Tabs>

## Credit balance

Every subscriber gets a monthly credit allowance. Metered reads bill per returned result or per call depending on the endpoint, writes bill per action, and active instant monitors bill 21 credits per hour while enabled. `monitorsUsed`, `monitorBilling.activeHourlyBurn`, and `monitorBilling.activeDailyEstimate` include active account monitors and active keyword monitors. Check `creditInfo.balance` to track remaining capacity. Use `creditInfo.autoTopupEnabled`, `creditInfo.autoTopupAmountDollars`, and `creditInfo.autoTopupThreshold` to inspect automatic top-up settings. At 0, metered API calls return `402` until you top up credits.

<Note>
  **Related:** [Authentication](/api-reference/authentication) · [Billing & Usage](/guides/billing)
</Note>
