Five steps with a workspace key. MCP first, REST for everything else. About five minutes.
When you finish you will have
Sign in at 192.168.68.60:3030. Your API key and workspace ID are shown in the dashboard under the workspace. Keys are workspace-scoped: a tool connected with one key can only see that workspace.
Set them as environment variables so the examples below work as written:
export NYLOGRAM_API_KEY="nk_live_..."
export NYLOGRAM_WORKSPACE_ID="ws_..."Nylogram exposes an MCP server. Add it to Claude Desktop, Cursor, Windsurf, or any MCP client and the tool can read and write the workspace directly, no plugin required.
{
"mcpServers": {
"nylogram": {
"url": "https://api.nylogram.com/mcp/$NYLOGRAM_WORKSPACE_ID?key=$NYLOGRAM_API_KEY"
}
}
}Once connected, the client can call remember, recall, search, forget, and stats. Use remember to add product context and recall to ask what applies before generating. The ?key= parameter is deprecated in favor of a Bearer header; see the API reference.
Send any text that describes how the product works: a requirement, a rule, a decision, a pattern description, a paragraph from a spec. Group entries with a session ID you choose, such as a workflow or a product area. Nylogram keeps the source with the entry.
curl -X POST https://api.nylogram.com/v1/memory \
-H "Authorization: Bearer $NYLOGRAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "supplier-onboarding",
"content": "Regional Managers cannot approve their own pricing exception requests.",
"role": "system",
"metadata": { "type": "rule", "source": "decision-log/2026-06-18" }
}'import requests
resp = requests.post(
"https://api.nylogram.com/v1/memory",
headers={"Authorization": f"Bearer {NYLOGRAM_API_KEY}"},
json={
"sessionId": "supplier-onboarding",
"content": "Regional Managers cannot approve their own pricing exception requests.",
"role": "system",
"metadata": {"type": "rule", "source": "decision-log/2026-06-18"},
},
)
print(resp.json()["id"])Query in natural language. Results come back ranked by relevance, each with the source it was drawn from, so a tool can cite what it used.
curl "https://api.nylogram.com/v1/memory/recall?sessionId=supplier-onboarding&q=who+can+approve+a+pricing+exception&limit=5" \
-H "Authorization: Bearer $NYLOGRAM_API_KEY"resp = requests.get(
"https://api.nylogram.com/v1/memory/recall",
headers={"Authorization": f"Bearer {NYLOGRAM_API_KEY}"},
params={"sessionId": "supplier-onboarding", "q": "who can approve a pricing exception", "limit": 5},
)
for item in resp.json():
print(f"{item['score']:.2f} {item['content']} ({item['metadata'].get('source')})")Count what a session holds, export it as newline-delimited JSON, or remove an entry by ID. Stats and export do not count against usage.
curl "https://api.nylogram.com/v1/memory/stats?sessionId=supplier-onboarding" \
-H "Authorization: Bearer $NYLOGRAM_API_KEY"curl "https://api.nylogram.com/v1/memory/export?sessionId=supplier-onboarding" \
-H "Authorization: Bearer $NYLOGRAM_API_KEY" -o supplier-onboarding.ndjsoncurl -X DELETE https://api.nylogram.com/v1/memory \
-H "Authorization: Bearer $NYLOGRAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "sessionId": "supplier-onboarding", "id": "a3f7b2e1d0c9" }'In development
Structured Product System objects (workflows, patterns, rules, roles, components, decisions, questions) and the context tools that compose them are being built. The endpoints above are the current, supported surface; new endpoints will be added alongside them, not in place of them.