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

# Xquik account details & subscription status

> Retrieve subscription state, API credit balance, monitor usage and billing, automatic top-up settings, and the connected X username for an Xquik account.

<Panel>
  <Tabs defaultTabIndex={0} sync={false}>
    <Tab title="200" id="response-account-get-200">
      ```json theme={null}
      {
        "plan": "active",
        "subscription": {
          "status": "active",
          "tier": "pro",
          "currentPeriodStart": "2026-09-01T00:00:00.000Z",
          "currentPeriodEnd": "2026-10-01T00:00:00.000Z"
        },
        "monitorsUsed": 3,
        "monitorsAllowed": 9007199254740991,
        "monitorBilling": {
          "activeDailyEstimate": "1500",
          "activeHourlyBurn": "63",
          "creditsPerActiveMonitorDay": "500",
          "creditsPerActiveMonitorHour": "21",
          "eventsIncluded": true
        },
        "creditInfo": {
          "balance": "50000",
          "lifetimePurchased": "140000",
          "lifetimeUsed": "90000",
          "autoTopupEnabled": false,
          "autoTopupStopped": false
        },
        "xUsername": "elonmusk"
      }
      ```
    </Tab>

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

    <Tab title="429" id="response-account-get-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 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>

## Run an API account preflight

Call `GET /account` before a long tweet search, follower export, scheduled write,
or monitor rollout. The response separates subscription access, available
credits, active monitor cost, automatic top-up settings, and the linked X
username.

| Preflight question | Response field | Integration decision |
| - | - | - |
| Is the subscription active? | `plan` | Report subscription state. Check `creditInfo.balance` before metered work. |
| How many credits remain? | `creditInfo.balance` | Compare the Bigint string with the estimated tweet, follower, or extraction cost. |
| How many monitors are active? | `monitorsUsed` | Reconcile account and keyword monitors before enabling another one. |
| What is the current hourly monitor charge? | `monitorBilling.activeHourlyBurn` | Include active monitors in the hourly credit budget. |
| What is the estimated daily monitor charge? | `monitorBilling.activeDailyEstimate` | Add the rounded estimate to your daily credit forecast. |
| Is automatic top-up enabled? | `creditInfo.autoTopupEnabled` | Confirm the account can buy credits without a manual checkout. |
| Which X identity is linked? | `xUsername` | Compare the username with the intended tweet, reply, or follower workflow. |

Use `plan` to report subscription state. Do not use it to decide whether credits remain.
Funded pay-as-you-go requests can continue while `plan` is `inactive`.
Treat missing `creditInfo` as no recorded balance, not numeric zero.

Do not use `monitorsAllowed` as a capacity limit. The field is deprecated and
always reports the maximum safe integer. Use `monitorsUsed` and the monitor
billing fields for cost checks.

## Store an account billing snapshot

Store a timestamped account snapshot before a worker starts billable work.
Never convert credit strings to an unsafe JavaScript number.

| Stored value | Source | Use |
| - | - | - |
| Subscription state | `plan` | Explain why a job started or stopped. |
| Credit balance | `creditInfo.balance` | Reconcile credits before and after tweet, follower, write, or extraction work. |
| Purchased credits | `creditInfo.lifetimePurchased` | Compare account funding with cumulative usage. |
| Used credits | `creditInfo.lifetimeUsed` | Track total credits the account has used. |
| Active monitors | `monitorsUsed` | Match the snapshot against your account and keyword monitor lists. |
| Hourly monitor charge | `monitorBilling.activeHourlyBurn` | Detect an unexpected monitor-cost increase. |
| Daily monitor estimate | `monitorBilling.activeDailyEstimate` | Forecast the next 24 hours of active monitor usage. |
| Automatic top-up state | `creditInfo.autoTopupEnabled` | Send low-balance alerts to a person or let automatic top-up handle them. |
| Linked X username | `xUsername` | Confirm which X account write actions will use. |

## Headers

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

## Response

### 200 OK

<ResponseField name="plan" type="string">
  Subscription status. `"active"` or `"inactive"`.
</ResponseField>

<ResponseField name="subscription" type="object">
  Subscription state, without billing provider IDs.
  **Subscription object fields.**

  <ResponseField name="status" type="string">
    `none`, `active`, `past_due`, `canceling` or `incomplete`.
  </ResponseField>

  <ResponseField name="tier" type="string">
    `starter`, `pro` or `business`. Omitted without a subscription.
  </ResponseField>

  <ResponseField name="currentPeriodStart" type="string">
    Start of the current billing period, ISO 8601.
  </ResponseField>

  <ResponseField name="currentPeriodEnd" type="string">
    Renewal date, or the end date when canceling. ISO 8601.
  </ResponseField>
</ResponseField>

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

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

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

  <ResponseField name="activeDailyEstimate" type="string">
    Estimated daily credits for active monitors.
  </ResponseField>

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

  <ResponseField name="creditsPerActiveMonitorDay" type="string">
    Rounded daily credit estimate for 1 active monitor.
  </ResponseField>

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

  <ResponseField name="eventsIncluded" type="boolean">
    Whether monitor billing includes webhook and event deliveries.
  </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>
</ResponseField>

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

  <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="autoTopupStopped" type="boolean">
    Whether declined charges stopped automatic top-up while it is enabled. It stops after 3 declines in a row on one card. A paid top-up, a paid plan renewal, or the next automatic top-up on a new card clears it.
  </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>
</ResponseField>

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

```json theme={null}
{
  "plan": "active",
  "subscription": {
    "status": "active",
    "tier": "pro",
    "currentPeriodStart": "2026-09-01T00:00:00.000Z",
    "currentPeriodEnd": "2026-10-01T00:00:00.000Z"
  },
  "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,
    "autoTopupStopped": false,
    "autoTopupAmountDollars": 10,
    "autoTopupThreshold": "50000"
  },
  "xUsername": "elonmusk"
}
```

### 401 Unauthenticated

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

Missing or invalid API key. Check the `x-api-key` header value.

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

## Credit balance

Every subscriber gets a monthly credit allowance. Metered reads bill per result
or call. Writes bill per action. Active monitors bill 21 credits per hour.
`monitorsUsed`, `monitorBilling.activeHourlyBurn`, and `monitorBilling.activeDailyEstimate` include active account monitors and active keyword monitors. Xquik rounds the daily estimate. At 0 credits, metered calls return `402`.

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


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