Skip to content

User Guide

This guide walks you through the most common ways to use Schift. It covers the dashboard, REST API, Python and TypeScript SDKs, the CLI, and the Model Context Protocol (MCP) server.

You need a Schift account and an API key. If you do not have a key yet, create one from the dashboard at {appUrl}.

Most examples below use environment variables:

Terminal window
export SCHIFT_API_KEY=sch_your_key_here
export SCHIFT_API_URL=<your-api-url>

For this environment, set SCHIFT_API_URL to {apiUrl}. Keep your API key secret, rotate keys regularly, and use a separate key for each environment.

SurfaceBest forEntry point
DashboardKey management, billing, and checking bucket status{appUrl}
REST APIDirect backend integration{apiUrl}
Python SDKScripts, ingestion, search, and migrationspip install schift
TypeScript SDKTypeScript or Node.js applicationsnpm install @schift-io/sdk
CLIRepeatable terminal operationspip install schift-cli
MCPClaude Desktop or Claude Code connectionnpx schift-mcp
Terminal window
# Python SDK
pip install schift
# TypeScript SDK
npm install @schift-io/sdk
# CLI
pip install schift-cli
schift --help
# MCP server
npx schift-mcp
  1. Create a bucket from the dashboard or with POST /v2/buckets.
  2. Upload documents to the bucket with POST /v2/buckets/{bucket_id}/documents.
  3. Wait for indexing and check readiness with GET /v2/buckets/{bucket_id}/search/status.
  4. Search the bucket with POST /v2/buckets/{bucket_id}/search to get cited context.
  5. Ask questions with POST /v1/chat to get a bucket-backed RAG answer.

Note: Bucket search is the upload-first, ingest-optimized surface. Use POST /v1/collections/{name}/search only for legacy integrations.

  • POST /v2/buckets
  • POST /v2/buckets/{bucket_id}/documents
  • GET /v2/buckets/{bucket_id}/search/status
  • POST /v2/buckets/{bucket_id}/search
  • POST /v1/chat
  • POST /v1/chat/completions

All API requests use Bearer authentication:

Terminal window
curl -H "Authorization: Bearer $SCHIFT_API_KEY" \
$SCHIFT_API_URL/v2/buckets

Use the same SCHIFT_API_KEY value across the SDKs, CLI, and MCP so tools do not use different keys in the same environment.