Skip to main content

Search API

Search through memos using various methods with advanced filtering capabilities.

POST /api/v1/search

Search through memos using various methods with advanced filtering capabilities. Authentication: Project API Key from https://platform.useskald.com Request (using Project API Key):
{
    "query": "quarterly goals",
    "search_method": "chunk_vector_search",
    "limit": 10,
    "filters": [
        {
            "field": "source",
            "operator": "eq",
            "value": "notion",
            "filter_type": "native_field"
        },
        {
            "field": "level",
            "operator": "eq",
            "value": "beginner",
            "filter_type": "custom_metadata"
        },
        {
            "field": "tags",
            "operator": "in",
            "value": ["meeting", "q1"],
            "filter_type": "native_field"
        }
    ]
}
Request (using Token Authentication):
{
    "query": "quarterly goals",
    "search_method": "chunk_vector_search",
    "project_id": "project-uuid",
    "limit": 10,
    "filters": [
        {
            "field": "source",
            "operator": "eq",
            "value": "notion",
            "filter_type": "native_field"
        }
    ]
}
Parameters:
  • query (string, required): The search query.
  • search_method (string, required): One of:
    • chunk_vector_search - Semantic search on memo chunks.
    • title_contains - Case-insensitive substring match on titles.
    • title_startswith - Case-insensitive prefix match on titles.
  • project_id (UUID, optional): Only required when using Token Authentication.
  • limit (integer, optional): Max results to return (1-50, default 10).
  • filters (array of filter objects, optional): Array of filters to apply. See Filters for detailed documentation.
Response:
{
    "results": [
        {
            "title": "Meeting Notes",
            "uuid": "memo-uuid",
            "content_snippet": "Full content of the memo (first 100 chars)...",
            "summary": "Discussion about Q1 goals",
            "distance": 0.234
        }
    ]
}
Notes:
  • distance is the vector similarity distance (lower is more similar).
  • distance is null for non-vector search methods.
  • Results are ordered by relevance.
  • Filters work with all search methods.
  • Empty filters array is equivalent to no filters.
Error Responses: Missing query (400):
{
    "error": "Query is required"
}
Invalid search method (400):
{
    "error": "Search method is required and must be one of: title_contains, title_startswith, chunk_vector_search"
}
Limit too high (400):
{
    "error": "Limit must be less than or equal to 50"
}
Invalid filter (400):
{
    "error": "Invalid filter: <specific error message>"
}
See Filters for complete filter documentation and examples.
I