# Credits

> What costs Xholic credits over the API and MCP, and the quote then confirmCredits flow that runs before any Xholic AI spend.

Source: https://docs.xholic.ai/api/credits/

**Your AI does the writing.** Posts, replies, threads, articles, rewrites and DM first lines written by your own Claude or ChatGPT cost nothing on Xholic: you send the finished text and Xholic posts or schedules it. Xholic AI runs only where it is genuinely needed, and never without a quote first.

| What | Cost |
| --- | --- |
| Reading stored data: posts, analytics, contacts, context, memory | Free, within rate limits |
| Live X lookups (search, people, posts) | No credits; uses the plan's X data limits |
| Posting and scheduling | The same post credits as the app |
| Xholic AI: Worker runs, Signals scoring, images, `ask_xholic`, `draft_with_xholic` | The app's AI credit prices, quoted first |

API and MCP access is included in every plan, including the trial, at no extra price.

## Quote, then confirm

1. Call the action without `confirmCredits`.
2. It answers `CREDITS_CONFIRMATION_REQUIRED` with a quote in `error.details.quote` and in the message: the estimate, what it pays for, and how many credits are left.
3. Show the quote to the user. Only after they agree, call again with the same input plus `confirmCredits` set to at least the estimate and the quote's `quoteId`.

A `quoteId` works once, for 10 minutes, for the same connection and the exact same input. A confirmation without a matching quote, or with different input, gets a fresh quote instead of running, so an AI can't approve spending up front.

```json
{
  "ok": false,
  "error": {
    "code": "CREDITS_CONFIRMATION_REQUIRED",
    "message": "This uses Xholic AI: up to 25 credits (…). 1840 credits left. Ask the user, then call again with the same input plus confirmCredits: 25 and quoteId: \"qt_…\".",
    "scope": "account",
    "details": {
      "quote": {
        "quoteId": "qt_…",
        "capabilityId": "drafts.with_xholic",
        "estimateCredits": 25,
        "creditsRemaining": 1840,
        "note": "…"
      }
    }
  }
}
```

The estimate is an upper bound; `creditsCharged` in the result says what was actually spent. Scheduled Workers and always-on Signals agents were approved when you set them up and don't ask again on each run. In the CLI, `--estimate` prints the quote without running anything.

## Actions that use Xholic AI

| Action | MCP tool | Up to | Pays for |
| --- | --- | --- | --- |
| [`workers.run`](/actions/workers/#run-a-worker-now) | `run_worker` | 120 credits | Xholic's Worker writer, charged per post in the batch |
| [`ask.start`](/actions/ask/#hand-a-job-to-xholic) | `ask_xholic` | 25 credits | Ask Xholic, charged for what the job uses up to this amount |
| [`drafts.with_xholic`](/actions/drafts/#write-with-xholics-writer) | `draft_with_xholic` | 25 credits | Xholic's writer through Ask, charged for what it uses up to this amount |
| [`drafts.reply_with_xholic`](/actions/drafts/#reply-with-xholics-reply-writer) | `draft_reply_with_xholic` | 25 credits | Xholic's reply writer through Ask, charged for what it uses up to this amount |
| [`composer.rewrite`](/actions/composer/#rewrite-with-xholic-ai) | `composer_rewrite` | 8 credits | Xholic's rewriter (a writing review costs less) |
| [`composer.originality`](/actions/composer/#originality-check-with-xholic-ai) | `composer_originality` | 4 credits | Xholic's originality check |
| [`remix.generate`](/actions/remix/#remix-a-post-with-xholic-ai) | `remix_generate` | 12 credits | Xholic's remixer, three drafts |
| [`inspiration.explain_structure`](/actions/inspiration/#explain-a-posts-structure) | `inspiration_explain_structure` | 1 credits | Xholic's structure explainer |
| [`articles.ai_run`](/actions/articles/#article-ai) | `articles_ai_run` | 150 credits | Xholic's article AI; the quote shows the price for the chosen kind and model |
| [`dm.launch_campaign`](/actions/dm/#launch-a-dm-campaign) | `launch_dm_campaign` | 0 credits | Xholic AI first lines ([ai_line]) for each eligible recipient; nothing when no template uses them |
| [`dm.preview_campaign`](/actions/dm/#preview-campaign-messages) | `dm_preview_campaign` | 10 credits | Xholic AI first lines ([ai_line]) for up to 5 previewed recipients |
| [`dm.suggest_reply`](/actions/dm/#suggest-a-dm-reply-with-xholic) | `dm_suggest_reply` | 8 credits | Xholic AI reply suggestion for this DM conversation |
