There are two ways to connect an AI workflow:
- Your own model: call the stats or events APIs from a trusted tool executor with the appropriate read scope, then provide only the necessary results to your model.
- OwlEye’s analyst: call the prompt endpoint with an
ai:promptdeveloper key. This uses the configured OwlEye AI service and the organization’s shared prompt allowance.
There is no separate LLM key type or hosted MCP server documented by this service. Developer keys provide the supported scoped access.
Ask the analyst
Section titled “Ask the analyst”curl --fail-with-body \ 'https://api.owleye.dev/v1/developer/sites/owl_your_tracking_id/prompt' \ --header "Authorization: Bearer $OWLEYE_DEVELOPER_KEY" \ --header 'Content-Type: application/json' \ --data '{"prompt":"Show daily page views from India in the last seven days"}'Requires Business or Custom, ai:prompt, developer access, enabled app/member AI access, and available organization credits. The prompt is bounded to 16 KiB of UTF-8 text. Reports cover one app and a range of up to 366 days when data is retained. Supported analysis includes traffic, locations, events, primitive properties, campaigns, and ordered conversions; see the analyst guide.
The response provides an answer and aggregate supporting evidence. A completed answer uses one credit; failed requests and clarifications consume none. Developer requests do not save prompts or answers as chat history. Input flagged for a security block can be retained separately as encrypted evidence with a 90-day expiry; see AI security checks. The configured AI provider receives the question and bounded context; review the AI data flow.
Request IDs and clarification
Section titled “Request IDs and clarification”Supply an optional UUID request_id generated for the logical request to prevent duplicate execution. A repeat returns 409; it does not replay a cached answer. Do not automatically generate a new ID and resubmit an uncertain request, which could spend another credit.
The public request accepts prompt and request_id; it does not accept the console’s conversation history. If the response asks for clarification, submit a new, self-contained question including the original dates and the resolved event or location.
Keep keys outside model context
Section titled “Keep keys outside model context”Store the key in your server-side tool executor. Bind the tool to an approved app, expose only required parameters, and enforce your own user authorization before calling OwlEye. Never let a prompt choose an arbitrary destination URL carrying the authorization header. Treat returned event names and user-authored strings as data, not instructions.
For documentation context without account access, use llms.txt and Markdown documentation. These public files do not expose your analytics.
Choose an answer model
Section titled “Choose an answer model”Reviewed October 21, 2026 against the private API implementation and OpenRouter model metadata. AI mode offers Auto, Claude Haiku 5.5, GLM 5.3, Grok 4.7, and GPT 6.1 Sol. The authenticated analytics prompt API and Growth review also accept an optional model field:
{ "prompt": "Compare page views this week with the previous week", "model": "openai/gpt-6.1-sol"}Allowed values are auto, anthropic/claude-haiku-5.5, z-ai/glm-5.3, x-ai/grok-4.7, and openai/gpt-6.1-sol. Omit the field to use the configured server default (Claude Haiku 5.5). Unknown models are rejected before provider calls or allowance reservation. A manual choice remains fixed for planning and answer selection; a provider failure does not silently select another answer model. Responses and saved replies include model.requested, model.selected, and model.routing.
Auto sends a redacted, bounded question and a context-complexity flag to Jev 1.14’s Decisions API. Jev selects Haiku for simple questions or GPT for complex ones. Invalid, uncertain, or unavailable routing falls back to GLM 5.3. Jev does not receive analytics facts, the event catalog, or conversation history and cannot authorize queries. Jev is billed for input; it is not a free answer model. Public competitor research uses Haiku separately and receives only the supplied competitor names and category.
All inference requests require zero-retention, no-data-collection routing and bounded provider prices. If no eligible endpoint is available, privacy requirements stay in place. Availability depends on the deployed OpenRouter account and provider status. One completed request still uses one prompt; a completed Growth evidence fallback also uses one prompt. Clarifications and failed analytics requests use none.
The broader planning examples and deterministic evaluation corpus cover traffic, comparisons, conversions, performance, visibility, ambiguity and unsupported requests. These are prompt examples and regression checks, not fine-tuning or proof of live model accuracy.
For Growth review, send the same model value alongside its question and required UUID request_id fields. Its response also identifies the separate research_model when public research was requested. Existing OWLEYE_AI_MODEL=z-ai/glm-5.2 deployments upgrade that default to GLM 5.3; new example environments default to Haiku.
Model and routing references: OpenRouter model catalog, Jev Decisions API, and zero-retention routing.