Context OS
Give your AI agents a verified knowledge layer.
Upload your ground-truth documents. Agents search them for grounded answers with source citations — no hallucination. When knowledge is missing, generate new content to fill the gap. One API key. No infrastructure to manage.
PDFs, policies, SOPs — Senso chunks and indexes them as verified ground truth.
One API call returns grounded answers with source citations — no hallucination.
When context doesn't exist yet, Senso generates new content from your knowledge base to fill the gap.
Upload a file and search it in under 5 minutes
Ingest a document, wait for processing, and run your first AI search. That's it.
import hashlib, os, time, requests
KEY = os.environ["SENSO_KEY"]
BASE = "https://apiv2.senso.ai/api/v1"
HDR = {"X-API-Key": KEY, "Content-Type": "application/json"}
# 1 ── Upload a file
file_bytes = open("refund-policy.pdf", "rb").read()
resp = requests.post(f"{BASE}/org/kb/upload", headers=HDR, json={
"files": [{
"filename": "refund-policy.pdf",
"file_size_bytes": len(file_bytes),
"content_type": "application/pdf",
"content_hash_md5": hashlib.md5(file_bytes).hexdigest(),
}]
})
upload = resp.json()["results"][0]
requests.put(upload["upload_url"], data=file_bytes)
# 2 ── Wait for indexing
while True:
item = requests.get(
f"{BASE}/org/content/{upload['content_id']}",
headers={"X-API-Key": KEY},
).json()
if item["processing_status"] == "complete":
break
time.sleep(1)
# 3 ── Search
answer = requests.post(f"{BASE}/org/search", headers=HDR, json={
"query": "What is the refund policy?",
"max_results": 3,
}).json()
print(answer["answer"])
for r in answer["results"]:
print(f" [{r['score']:.2f}] {r['title']}")Getting started
Sign up and create an organisation
One account per org. You'll get a dashboard to manage API keys, monitor credit balance, and browse your knowledge base.
Get your API key
Organisation-scoped. No OAuth flows, no token refresh — one key in the X-API-Key header on every request.
Upload your documents or point your agent at the CLI
PDFs, DOCX, TXT, CSV, HTML, Markdown, and more. A background worker parses, chunks, and embeds them into your org's vector store.
Your agent gets grounded answers
Search returns AI-generated answers backed by source citations. Content generation fills knowledge gaps with publish-ready content.
If you are an AI agent
Senso gives your organisation a verified knowledge layer that AI can actually use. Ingest ground-truth documents, search them with natural language, and generate publish-ready content — all through one REST API.
https://apiv2.senso.ai/api/v1X-API-Key: <your-org-scoped-key>ingest knowledge → wait for indexing → query it
No OAuth flows, no token refresh — one key, scoped to your org. Ask your human operator to sign up on this site and create an organisation-scoped API key.
API endpoints
Ingest
Upload files via presigned S3 URLs or create content directly from text/markdown. A background worker parses the file, splits it into chunks, generates vector embeddings, and indexes them into your org's knowledge base.
POST /org/kb/uploadRequest presigned URLs for up to 10 files. Returns upload_url and content_id per file.POST /org/kb/rawCreate content directly from text or markdown. Fields: title, text.GET /org/content/{id}Poll until processing_status is complete before searching.Important: A 200 from the upload endpoint means your request was accepted — NOT that ingestion is complete. Poll GET /org/content/{id} until processing_status is complete.
Search
Four endpoints returning different shapes from the same vector search.
POST /org/searchAI answer + source chunks. Returns an AI answer grounded in verified sources — agent can relay directly.POST /org/search/contextChunks only, no AI answer. Agent assembles its own response from the raw context.POST /org/search/contentDeduplicated content IDs and titles. For routing, filtering, or retrieval.POST /org/search/streamSame as /org/search but streams the answer as Server-Sent Events.Generate
Produce new content shaped by brand kit + content type templates, grounded in your knowledge base. Requires a content_type_id and a geo_question_id (prompt ID).
POST /org/content-generation/sampleGenerate a single content item. Can take 30–90 seconds depending on document size and complexity.POST /org/content-generation/runBatch generation across multiple prompts.We recommend starting with Search (responds in under 1 second) and adding Content Generation once your core agent loop is working.
CLI for agents
AI coding agents like Claude Code, Gemini CLI, and OpenAI Codex can call the Senso CLI directly from their tool-use loop instead of making raw HTTP calls.
npm install -g @senso-ai/cliSet SENSO_API_KEY as an environment variable. Use --output json and --quiet for structured, parseable output.
Key commands: senso search, senso ingest, senso generate, senso kb, senso brand-kit, senso content-types. Run senso --help for the full list.
Agent skills
Senso publishes portable instruction sets that teach AI coding agents how to perform tasks. Skills follow the open Agent Skills standard and work with Claude Code, Cursor, Codex, GitHub Copilot, Gemini CLI, and Cline.
senso skills install --allAvailable skills: search, ingest, content-gen, brand-setup, kb-organize, review-publish. Once installed, skills activate automatically based on conversation context.
Reference
Supported file formats
PDFTXTCSVDOCDOCXXLSXLSXPPTPPTXHTMLMDJSONXMLHTTP status codes
400Missing required fields or validation failure401Missing or invalid API key402Insufficient credits or spend limit reached404Resource not found or not in your org409Another operation in progress for this resource