---
title: "Discover AI personalization capabilities (free)"
method: GET
path: "/v1/ai/info"
tags: ["AI Personalization"]
---

# Discover AI personalization capabilities (free)

`GET /v1/ai/info`

Returns the AI variable catalog — variables, pricing, supported locales, modes, format rules, guardrails, fallback behaviour, model, and rate limit. Without an API key it returns the public catalog (CDN-cacheable, no DB read). With a valid key it appends a customer-aware block (balance, MTD AI spend, free insight eligibility). An invalid key returns 401 (never a silent downgrade to the public catalog).

## Response `200`

Capability catalog (plus customer block when authenticated)

- AiInfoResponse — The AI capability catalog. Pure, derived from runtime constants. When called with a valid API key, `data.customer` is appended.
  - `success` boolean
  - `data` object
    - `variables` object[]
      - `variable` 'ai_hook' | 'ai_subject' | 'insight_factual'
      - `kind` 'llm' | 'deterministic'
      - `paid` boolean
      - `price` AiCatalogPrice
        - `credits` integer
        - `pence` integer
        - `gbp` number
      - `description` string
      - `wordRange` object, nullable
        - `min` integer
        - `max` integer
      - `modes` string[]
      - `guardrails` string[]
      - `formatRules` string, nullable
      - `endpoints` string[]
    - `supportedLocales` string[]
    - `defaultLocale` string
    - `modes` string[]
    - `models` object[]
      - `id` string
      - `provider` string
      - `tier` string
    - `fallbackBehaviour` string
    - `rateLimit` object
      - `perKeyPerHour` integer
    - `estimatedGenerationMs` object
      - `sync` integer
      - `note` string
    - `bannedOpeners` string[]
    - `promptVersion` string
    - `currency` 'GBP'
    - `customer` object — Present only when authenticated with a valid API key.
      - `currentBalance` number
      - `mtdAiSpend` number
      - `insightFactualFree` boolean
      - `monthlyAllocationRemaining` number, nullable — Always null — PAYG api_credits has no monthly allocation.

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/meirra/apis/meirra-api.md) · [All operations](https://skmtc.net/meirra/apis/meirra-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/meirra/meirra-api/versions/d6c1805fc561/schema)
