Index
Docs

Your next connection.

Connect your AI. Save one useful thing. Pick it up again.

BASE /api/v1/connector AUTH X-API-Key: idx_… OPENAPI /api/v1/connector/openapi.json

START HERE

Start here.

Access is currently by invitation. These steps are for existing members.

  1. Sign in to Index, then open Settings → Connectors in your dashboard.
  2. Choose your tool’s connection guide. For a custom integration, create a connector key with read, write, or read-and-write permission.
  3. Ask the connected AI to save a useful project detail to Index.
  4. In a new conversation, ask it to retrieve that detail from your Boards.

For local MCP clients, follow the MCP setup below. For your own app, use the API reference.

Your connection addresses

The API address comes from this deployment’s configuration. A dashboard override on this browser takes precedence. It may differ from the public website at indexapp.ai.

API base: Loading configuration…

For the curl examples, keep your connector key in INDEX_CONNECTOR_KEY in your shell. Never paste it into a public document.

BEHIND INDEX

Every piece has a place.

Pylons, paper, a little weathered technology. Explore why our visual world looks the way it does, and what it says about people, memory and the tools we work with.

Read Index Story

Why do pylons come in different sizes?

A Board’s pylon grows as its entry count increases. It starts as a small utility tower, then becomes a larger pylon as more context is added. The five shapes below are the ones used in your dashboard.

  1. Small tangent
    0–10 entriesSmall tangent
    Download SVG
  2. Large tangent
    11–20 entriesLarge tangent
    Download SVG
  3. Small pylon
    21–60 entriesSmall pylon
    Download SVG
  4. Medium pylon
    61–120 entriesMedium pylon
    Download SVG
  5. Large pylon
    121+ entriesLarge pylon
    Download SVG

The size also changes a little within each stage. It reflects the amount of saved context, not its importance or quality. Every Board is useful at its own size.

Developer reference

Connector API reference

Every connector endpoint is auth-scoped by the X-API-Key header. A key carries read, write, or read_write scope, and accesses Boards through your account’s ownership and membership permissions. The Orchestrator processes every accepted write — classify, dedupe, route, embed.

GET /api/v1/connector/me

Validate the API key and inspect its scope. Returns connector name, scope, accessible board count, writable board count, and last-used timestamp. Call this once on startup to fail fast on a missing or revoked key.

GET /api/v1/connector/boards

List every board this key can access. Each board reports id, name, description, role, entry count, and read/write capability. Pass ?writable_only=true to filter to boards the key can write into.

GET /api/v1/connector/context

Read context entries from a specific board. Pass ?board_id= plus an optional ?query= to rank by query relevance. Results combine text and available semantic matches, with short summaries, a score, and match_reasons explaining the ranking. Scores are relative ranking signals, not confidence percentages.

GET /api/v1/connector/context-all

Search context across all boards the key can read. Pass ?query= and an optional ?limit=. Each result includes the source board so a reading AI can tell which memory came from where. Only accessible, processed entries are returned. Exact repeated text is collapsed; different details and exceptions remain separate results.

POST /api/v1/connector/capture

Find a destination for a memory without supplying a Board ID. Index ranks writable Boards, checks relevance, and processes accepted attempts. A suitable destination is not guaranteed. Optional topic gives the search more context.

curl -X POST $INDEX_API_BASE/connector/capture \
  -H "X-API-Key: $INDEX_CONNECTOR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "London prefers Ableton Live for music production and recently bought a Push 3.",
    "topic": "music production"
  }'

Check what actually happened

A 201 response means the capture request completed. It can still contain no saved memory. Read outcome and every item in attempts before confirming a save.

  • written: attempts were accepted. Check each final_status: processed is ready for retrieval; merged points to an existing entry through entry.merged_into_id; conflict needs review.
  • deduplicated: every accepted attempt matched existing memory. This is not a new fact.
  • partially_written: some attempts were rejected. Keep the accepted results and retry only the rejected ones.
  • rejected or no_match: no attempt was accepted. Read rejection_reason, each attempt’s error, and next_steps.

written_count counts accepted attempts, including duplicates and entries needing conflict review. It does not count new, retrievable facts. Candidate Board IDs, names, match scores and reasons in candidate_boards are limited to destinations this connection can write to. Choosing an explicit Board never bypasses permissions or relevance checks.

classification reports the suggested topic, scoring method and routing_eligible flag. Its confidence value is a heuristic or model-reported score, not a measured probability. A weak topic label is diagnostic only; it is not added as an automatic topic tag or used alone to justify relevance.

POST /api/v1/connector/write

Write a memory entry into a specific board. Use when the AI app already has the board id — the target is explicit. Board permissions and the relevance gate still apply, and the Orchestrator runs before the write result is returned. Check final_status and the returned entry as described under capture results; a merged or conflicted entry is not a new processed memory.

curl -X POST $INDEX_API_BASE/connector/write \
  -H "X-API-Key: $INDEX_CONNECTOR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "board_id": "brd_01HX...",
    "content": "User finalised the Q2 launch checklist in this conversation."
  }'

Authentication

Every connector request needs a key. Send it on the X-API-Key header. Keys carry an explicit scope (read, write, read_write). Board access follows the account that owns the key, including its shared Board memberships. Keys can be limited to selected Boards. The key’s scope and the user’s current Board role both apply; a viewer cannot write.

To create a key: sign in, open the dashboard, then go to Settings → Connectors. The raw key is shown once. Treat it like a password — if it appears in a chat log or shell history, revoke it and generate a new one.

curl $INDEX_API_BASE/connector/me \
  -H "X-API-Key: $INDEX_CONNECTOR_KEY"

MCP server

Native integration
Prefer MCP? Skip REST entirely.

Index ships a stdio MCP server for Claude Desktop, Cursor, and any MCP-capable client. No REST integration needed — the same boards, keys, and Orchestrator pipeline, exposed as native tool calls.

Local MCP · an installation on your computer

Requires Python 3.12, an authorized Index source checkout, and a connector key. Run these commands from the checkout’s root. If you do not have the connector files, contact your workspace administrator; the website alone does not install them.

python3 -m venv BACKEND/.venv
BACKEND/.venv/bin/python -m pip install -r BACKEND/requirements.txt
BACKEND/.venv/bin/python CONNECTORS/mcp/index_mcp_server.py --setup --api-base "$INDEX_API_BASE"
BACKEND/.venv/bin/python CONNECTORS/mcp/index_mcp_server.py --print-mcp-config

On macOS or Linux, setup prompts for your credentials or connector key, validates the connection, and saves it to ~/.index/mcp.env. Paste the printed JSON into your MCP client’s configuration and restart that client. Keep the local config private. On Windows, use the virtual environment’s Scripts/python.exe executable.

To rebuild client JSON without embedding the key, enter the paths printed by setup below. Local paths are specific to your computer.

Then run BACKEND/.venv/bin/python CONNECTORS/mcp/index_mcp_server.py --doctor to check installation, API reachability, and key validity. A successful connection does not mean a memory has been saved: confirm the tool’s write result and find the entry in its Board.

OpenAPI schema

Import /api/v1/connector/openapi.json into Postman, Insomnia, or any OpenAPI-compatible client. The schema covers only connector-key-authenticated operations — user admin routes are excluded.

curl $INDEX_API_BASE/connector/openapi.json > index-connector.json

Live endpoints

Pull the operation list straight from this deployment's running backend. No external tooling — the page renders the result inline.

Dashboard tools

Manage your connections and account data.

Build a connector. Read the integration guide.
Integration guide