Docs

Response Shaping

Whitelist / blacklist response fields and attach formatted citation strings without writing client-side glue.

include_fields (whitelist)

json{
  "query": "...",
  "include_fields": ["id", "score", "metadata.title", "metadata.page"]
}

Each result returns only the listed fields. Dotted paths like metadata.X scope into metadata sub-keys. Top-level fields: id, score, text, metadata, neighbors, citation.

exclude_fields (blacklist)

json{
  "query": "...",
  "exclude_fields": ["text", "metadata.internal_notes"]
}

Drops the listed fields. Useful for stripping large text payloads on bandwidth-constrained clients, or hiding internal-only metadata. include_fields takes precedence when both are set.

citation_format

json{
  "query": "...",
  "citation_format": "[{title}:{page}]"
}

Returns a citation string per result with {key} tokens substituted from metadata. Top-level fields (id, score, text) are also accessible. Unknown tokens render empty (fail-soft).

Combined

bashcurl -X POST https://api.schift.io/v1/buckets/{bucket_id}/search \
  -H "Authorization: Bearer $SCHIFT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "soccer offside rule",
    "top_k": 10,
    "citation_format": "[{title}:{page}]",
    "exclude_fields": ["text"]
  }'

Caps

  • include_fields / exclude_fields capped at 64 entries each
  • citation_format max 512 chars
  • Unknown fields are silently ignored (no error)