# Zagger > Zagger is a horizon-scoped AI workspace. You ingest data into a horizon, attach tools (search, filter, analytics), and work in project chat or through the Headless API. It is not a generic chatbot wrapper. This host is a Zagger product instance, not the marketing site. Public how-to is under `/docs`. Customer data is not on this host's public pages. A horizon is the data boundary. Projects, ingestion groups, tools, and chat on one horizon are not visible from another horizon. Customer entries, project chat, API keys, and horizon contents are private. Public pages do not include them. To read or change private data, send `Authorization: Bearer` with a signed-in app session JWT on `/casc/v1/api`, or a Headless access token on `/casc/v1/headless/v1`. Mint the Headless token from integration `client_id` and `client_secret` via `POST /casc/v1/headless/v1/token`. Keep `client_secret` on your server. Do not call Supabase `/rest/v1` with a Headless JWT or with a service-role key. Horizon data reads go through `/casc/v1/headless/v1/rest` and require the `data:read` scope. ## Product - [What Zagger is](/agent/identity.md): Horizon-scoped workspace. Private data needs a bearer token. - [Get started](/agent/get-started.md): Sign up, pick a horizon, ingest, attach tools, ask in chat. - [Sign in](/login): Account login and domain signup. No customer data is returned to anonymous requests. ## Docs - [Analytics Tools](/docs/analytics.md): Analytics tools ( tool_kind: analytics ) let agents query structured JSON on entries with SQL-like aggregations. - [API Ingestion](/docs/api-ingestion.md): API ingestion groups pull JSON records from HTTP endpoints on demand or on a schedule. - [Email Drafts](/docs/email-drafts.md): Compose collection-style or outreach emails in project chat, refine them in conversation, then save as a Zagger draft. - [Filter Tools](/docs/filter.md): Filter tools ( tool_kind: filter ) let agents retrieve exact matching rows by field predicates. - [Google Authentication](/docs/google-auth.md): Google Spreadsheet and Google Drive Folder ingestion read files using your personal Google account . - [Headless PostgREST](/docs/headless-postgrest.md): Horizon entries are ordinary Postgres rows. - [Headless user choice (dialog bridge)](/docs/headless-user-choice.md): Website builders do not embed the Cascade React chat UI. - [Headless API](/docs/headless.md): The Headless feature lets external servers call Zagger programmatically using integration credentials ( client_id + client_secret ). - [Zagger Overview](/docs/index.md): Zagger is a data-driven AI workspace. - [Building an Ingestion Group](/docs/ingestion-groups.md): An ingestion group is the unit of data organization in Zagger: a slug, display name, source configuration, and membership in one or more horizons. - [Ingestion Source Types](/docs/ingestion-sources.md): Ingestion groups pull or receive data into entries — one row per record, with a raw JSON object holding column values and optional file metadata. - [Projects](/docs/projects.md): Projects are chat workspaces scoped to your active horizon. - [Prompt Templating](/docs/prompt-templating.md): Processing prompts on Settings → Prompts support placeholders expanded at runtime with entry and session context. - [Prompts](/docs/prompts.md): Prompts are reusable AI instructions stored per horizon. - [Deep Research Agent](/docs/research.md): The Deep Research Agent runs multi-step AI research jobs: it searches the web, reads pages, searches internal Zagger documentation, stores cited sources, and produces a written... - [Roles and Access](/docs/roles-and-access.md): Every user has an account type stored as user_type in the database and exposed in the app as account type on the profile menu. - [Toolchain Scheduler](/docs/scheduler.md): Schedulers are first-class Tools that run either a tool chain or a generic prompt (instructions + attached tools) on a UTC cron schedule. - [Schedules and Manual Ingestion](/docs/schedules.md): Ingestion can run on demand from Horizon or automatically on a timer. - [Search Fields and Raw Keys](/docs/search-fields.md): Vector search tools read from entries in linked ingestion groups. - [System Settings vs Agent Settings](/docs/settings-system-vs-agent.md): Zagger uses the word system in two different places. - [System Logs](/docs/system-logs.md): Help → System Logs lists tool calls for debugging (chat, scheduler Prompt/Agent runs, and tool chains). - [System Test Harness](/docs/system-test-harness.md): Help → System Test is an admin-only diagnostic console. - [Vector Tools and Embeddings](/docs/tools.md): Tools are how chat agents and processing prompts access your data and the outside world. - [Transformations](/docs/transform-ingestion.md): Transformations combine, reshape, filter, calculate, and aggregate data from one or more ingestion groups into a reusable destination group. - [SQL Transformations](/docs/transform-sql-ingestion.md): A SQL Transformation is an ingestion source whose job is a SQL script run in a fresh, per-run SQLite database. - [Views](/docs/views.md): Zagger Views are saved SQL definitions per horizon. - [Workflows and Project Chat](/docs/workflows.md): Project chats combine a project agent , optional workflow buttons , file attachments, and horizon tools. - [YUML — Your Useful Markup Language](/docs/yuml.md): YUML lets you define HTML output templates with tables, text blocks, row/column layouts, code/JSON panels, and custom CSS. How to filter entries: [Filter tools](/docs/filter.md). How to call Zagger from another site: [Integrate](/agent/integrate.md) and [Headless](/docs/headless.md). ## API / Headless - [Integrate](/agent/integrate.md): Token, chat/send, wait/result, research by job id, data via /rest on this API. - [Headless OpenAPI](/openapi-headless.json): Public contract. Data operations declare bearer auth. No live keys. - [API catalog](/.well-known/api-catalog): Link set pointing at the OpenAPI fragment and Headless help. ## Optional Logged-in product chat can search this same help. Do not scrape `/p/` project URLs. Those pages load private sessions only after a bearer token.