API Reference

Complete reference for Almanac's query API.

Base Endpoint

POST http://localhost:3000/api/query

Request Format

Basic Request

{
  "query": "What did we discuss about the API refactor?",
  "mode": "mix"
}

Full Request

{
  "query": "What did we discuss about the API refactor?",
  "mode": "mix",
  "top_k": 60,
  "chunk_top_k": 20,
  "score_threshold": 0.5,
  "disable_rerank": false,
  "source": "slack",
  "record_types": ["message", "thread"],
  "date_range": {
    "start": "2024-01-01",
    "end": "2024-01-31"
  },
  "entity_limit": 10,
  "metadata": {
    "user_id": "user_123",
    "session_id": "session_456"
  }
}

Parameters

Required Parameters

query (string)

The search query or question.

Examples:

  • "API refactor" - Simple keyword search

  • "What is Alice working on?" - Entity-focused question

  • "How does X connect to Y?" - Relationship question


Optional Parameters

mode (string)

Query mode determining retrieval strategy.

Options: naive, local, global, hybrid, mix Default: mix

Mode Details:

  • naive: Fast vector search only

  • local: Entity-focused retrieval

  • global: Relationship-focused retrieval

  • hybrid: Combines local + global

  • mix: Hybrid + reranking (most accurate)

See LightRAG Guide for detailed comparison.


top_k (number)

Number of candidates to retrieve before reranking.

Range: 1-200 Default: 60

Guidelines:

  • 20-40: Fast queries, simple questions

  • 60-80: Standard (recommended)

  • 100-200: Complex queries, need more context


chunk_top_k (number)

Number of final results to return after reranking.

Range: 1-100 Default: 20

Use Cases:

  • 5-10: Chatbot responses, focused answers

  • 20: Standard display

  • 50+: Research, comprehensive results


score_threshold (number)

Minimum relevance score (0.0-1.0) for results.

Range: 0.0-1.0 Default: 0.5

Guidelines:

  • 0.5: Balanced (default)

  • 0.7: High precision, fewer results

  • 0.3: High recall, more results


disable_rerank (boolean)

Disable LLM-based reranking (only for mix mode).

Default: false

Performance Impact:

  • Disabled (false): Slower (~300-600ms) but more accurate

  • Enabled (true): Faster (~200-400ms) but less accurate


source (string)

Filter results to specific data source.

Examples: slack, github, notion, custom-api


record_types (array)

Filter results to specific record types.

Examples:

  • Slack: message, thread, channel

  • GitHub: issue, pull_request, commit

  • Notion: page, database, block


date_range (object)

Filter results by date range.

Formats: ISO 8601 date strings


entity_limit (number)

Max entities to traverse in local mode.

Range: 1-50 Default: Auto-calculated based on query


metadata (object)

Custom metadata for tracking/analytics.

Response Format

Success Response

Result Fields

id (string)

Unique document identifier.

score (number)

Relevance score (0.0-1.0).

Interpretation:

  • 0.9-1.0: Highly relevant

  • 0.7-0.9: Relevant

  • 0.5-0.7: Somewhat relevant

  • <0.5: Low relevance

title (string)

Document title or primary identifier.

content (string)

Document text content.

source (string)

Data source name (slack, github, etc.).

recordType (string)

Type of record (message, issue, page, etc.).

sourceId (string)

Original ID in source system.

primaryDate (string)

Main timestamp (ISO 8601).

entities (array) - Optional

Extracted entities relevant to query.

relationships (array) - Optional

Extracted relationships relevant to query.

metadata (object) - Optional

Source-specific metadata.

Metadata Fields

mode (string)

Query mode used.

total (number)

Number of results returned.

processingTime (number)

Query execution time in milliseconds.

reranked (boolean)

Whether results were reranked.

Error Responses

400 Bad Request

Common Causes:

  • Missing query field

  • Invalid mode value

  • Invalid parameter types

429 Too Many Requests

500 Internal Server Error

Code Examples

cURL

TypeScript/JavaScript

Python

Go

Advanced Usage

Multi-Source Query

Query multiple sources in parallel:

Progressive Loading

Start with fast mode, upgrade if needed:

Pagination

For large result sets:

Rate Limiting

Default limits:

  • 100 requests/minute per IP

  • 1000 requests/hour per IP

For higher limits, contact support or self-host.

Performance Tips

1. Choose Appropriate Mode

2. Adjust top_k

3. Disable Reranking

4. Cache Results

Next Steps

Last updated

Was this helpful?