AACSearch

Documentation

AACSearch provides managed search through a tenant-scoped API. Create indexes, upload documents and query them through the console, REST API or SDK. The platform applies access controls, quotas and analytics.

AACSearch provides managed search through a tenant-scoped API. Create indexes, upload documents and query them through the console, REST API or SDK. The platform applies access controls, quotas and analytics.

Every endpoint in this documentation is served by the running service under /api/v1, and every request and response body shown here mirrors the source in packages/api/routes/v1.

Start here

What the platform does

  • Tenant isolation. Index access is checked within the authenticated organization. The API applies tenant and document access filters server-side.
  • Key-based public API. Keys look like aac_live_…, carry scopes, and are stored as SHA-256 hashes — the plaintext is shown once.
  • Search that is more than keyword matching. Typo tolerance, faceting, grouping, filters, vector and hybrid semantic search, autocomplete, click and conversion tracking.
  • AI features on the same index. RAG answers with citations, a conversation assistant with streaming, natural-language search, voice and image queries.
  • Metering you can see. Search usage, document counts, AI tokens and reindex runs are metered per billing period; GET /billing/usage and GET /billing/wallet expose the numbers the API enforces.
  • A widget that needs no key in the browser. Your server trades the API key for a short-lived, search-only session token (POST /api/v1/embed/session); the embed script uses only that token, through the AACSearch proxy.

Layout of this documentation

SectionContents
Getting startedPlatform overview and a five-step quickstart
API referenceAuth, search, suggest, documents, analytics, embed session, status, webhooks, errors
SDKsTyped TypeScript and Python clients
GuidesSemantic search, RAG assistant, voice and image, experiments, connectors, billing, widget

Versions and compatibility

The API is versioned in the path (/api/v1). Responses are JSON with snake_case keys; errors always use the envelope {"error": {"code", "message", "request_id"}}. Every response carries a request_id worth quoting to support.

Available features are reported by GET /api/v1/capabilities. A supported feature can still require a configured model, index fields or deployment settings. Backend version and infrastructure details belong to platform administration.

On this page