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.

1Upload your docs

PDFs, policies, SOPs — Senso chunks and indexes them as verified ground truth.

2Agents query Senso

One API call returns grounded answers with source citations — no hallucination.

3Generate missing context

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.

Python
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

1

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.

2

Get your API key

Organisation-scoped. No OAuth flows, no token refresh — one key in the X-API-Key header on every request.

3

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.

4

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.

Base URLhttps://apiv2.senso.ai/api/v1
AuthX-API-Key: <your-org-scoped-key>
The core loop

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/cli

Set 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 --all

Available skills: search, ingest, content-gen, brand-setup, kb-organize, review-publish. Once installed, skills activate automatically based on conversation context.

Reference

Supported file formats

PDFTXTCSVDOCDOCXXLSXLSXPPTPPTXHTMLMDJSONXML

HTTP status codes

400Missing required fields or validation failure
401Missing or invalid API key
402Insufficient credits or spend limit reached
404Resource not found or not in your org
409Another operation in progress for this resource