INTERACT YOUR WAY
# Create an entity
curl -X POST https://acme.mobiusops.ai/v1/entities \
-H "Authorization: Bearer mobius_sk_..." \
-H "Content-Type: application/json" \
-d '{
"type": "company",
"name": "Parkside Veterinary",
"summary": "Local vet clinic, interested in scheduling",
"attributes": {
"industry": "veterinary",
"size": "small",
"stage": "prospect"
},
"path": "/customers/prospects"
}'
# Response
{
"data": {
"id": "ent_01JQ7K...",
"type": "company",
"name": "Parkside Veterinary",
"path": "/customers/prospects",
"attributes": {
"industry": "veterinary",
"size": "small",
"stage": "prospect"
},
"created_at": "2026-02-28T10:30:00Z"
}
}
# Log an event
curl -X POST https://acme.mobiusops.ai/v1/events \
-H "Authorization: Bearer mobius_sk_..." \
-d '{
"entity_id": "ent_01JQ7K...",
"type": "email_received",
"content": "Sarah asked about the scheduling feature"
}'
# Search the knowledge graph
curl "https://acme.mobiusops.ai/v1/search?q=parkside" \
-H "Authorization: Bearer mobius_sk_..."Get started in 5 minutes
From zero to a running knowledge graph
Deploy your instance
One click from the Mobius console — your own domain, your own database
Create an API key
Generate keys via CLI or the management console
Add your first entities
Create companies, people, projects — anything your agents need to know about
Connect your agents
Use the REST API, MCP server, or deploy agents directly in Mobius
Documentation
Knowledge Graph
Entities, relationships, and events
Agents
Deploy and manage AI agents
Core Data Model
Key primitives that model any business
Entity
The things you track — companies, people, projects, agents. Typed objects with freeform attributes, summaries, and hierarchical paths. The nodes of your knowledge graph.
Relationship
Directed, typed connections between entities. "Alice manages Project X." "Acme Corp is a customer." Agents traverse these to understand context.
Event
An append-only history log attached to entities. Every email, status change, and decision is recorded — giving agents full context over time.
Message
Structured communication between agents and humans. Channels, priority levels, read tracking. The backbone of agent-to-agent coordination.
Job
A transactional work queue with atomic claiming, priority levels, retry logic, and long-polling. The primitive for async work across agents and services.
Schema
Optional validation rules that emerge from usage. Define expected attributes for entity types with none, soft, or hard enforcement.
AI AGENTS
Built-in Agent Hosting
Deploy LLM agents directly in Mobius with scoped access to the knowledge graph. Agents are just entities with configuration — same API, same model.
Agent Configuration
Agents are entities with model, system prompt, tools, and access scoping configured in their attributes
{
"type": "agent",
"name": "sales-assistant",
"path": "/agents/sales",
"attributes": {
"agent": {
"model": "claude-sonnet-4-6",
"provider": "anthropic",
"system_prompt": "You are a sales assistant...",
"root_path": "/customers/",
"tools": [
"entity_read", "entity_list",
"entity_search", "event_create",
"message_send"
]
}
}
}Scoped Access
Root path isolation prevents agents from reading or writing outside their boundaries — like a chroot for your data
# Agent with root_path: "/customers/"
# can read & write:
/customers/prospects/acme
/customers/enterprise/globex
# cannot access:
/internal/financials
/agents/other-agent
# Read-only access via access_paths:
"access_paths": ["/shared/playbooks/"]MCP Server
Expose Mobius tools to any MCP-compatible client — Claude Desktop, Claude Code, Cursor, and more
# Connect via MCP (built into every instance)
# Endpoint: GET /mcp on your instance
# In Claude Desktop config:
{
"mcpServers": {
"mobius": {
"url": "https://acme.mobiusops.ai/mcp",
"headers": {
"Authorization": "Bearer mobius_sk_..."
}
}
}
}Agent Tools
Knowledge graph, relationship, event, and messaging tools available to every agent
# Knowledge Graph
entity_read, entity_list, entity_search,
entity_create, entity_update, entity_delete
# Relationships
relationship_read, relationship_list,
relationship_create, relationship_delete
# Events & Messages
event_list, event_create,
message_send, message_listAPI Patterns
Common patterns for working with the Mobius API
Attribute Filtering
Query entities by any attribute value using dynamic filters
# Filter by custom attributes
GET /v1/entities?type=company&attr.stage=prospect
GET /v1/entities?attr.industry=tech&attr.arr_gte=1000000
# Expand related data inline
GET /v1/entities/ent_01JQ7K...?expand=relationships,recent_eventsJob Queue
Long-poll for work items with atomic claiming and retries
# Claim next available job (long-poll up to 30s)
POST /v1/jobs/claim
{ "queue": "lead-enrichment", "timeout": 30 }
# Complete the job with results
POST /v1/jobs/job_01JQ.../complete
{ "result": { "enriched": true, "data": {...} } }Webhooks
Get notified when things change in your knowledge graph
# Subscribe to entity changes
POST /v1/subscriptions
{
"url": "https://your-app.com/webhook",
"events": ["entity.created", "entity.updated"],
"filter": { "entity_type": "company" }
}
# Payloads are signed with HMAC-SHA256Scheduled Messages
Trigger agents on a schedule with cron or interval expressions
# Daily digest at 9am weekdays
POST /v1/schedules
{
"name": "daily-digest",
"cron": "0 9 * * 1-5",
"message": {
"channel": "ops-digest",
"content": "Generate daily summary",
"recipient_id": "agent_ops_bot"
}
}EXAMPLES
Real World Usage
How teams use Mobius to give their agents persistent business context
A sales agent that tracks prospects, logs interactions, and knows your entire pipeline history
import requests
MOBIUS = "https://acme.mobiusops.ai/v1"
HEADERS = {"Authorization": "Bearer mobius_sk_..."}
# Agent checks its pipeline every morning
prospects = requests.get(f"{MOBIUS}/entities", headers=HEADERS, params={
"type": "company",
"attr.stage": "prospect",
"expand": "relationships,recent_events",
"sort": "-updated_at"
}).json()["data"]
for company in prospects:
# Check recent activity
last_event = company["recent_events"][0] if company["recent_events"] else None
if not last_event or days_since(last_event["created_at"]) > 7:
# No activity in a week — draft a follow-up
draft = generate_followup(company)
# Log the outreach attempt
requests.post(f"{MOBIUS}/events", headers=HEADERS, json={
"entity_id": company["id"],
"type": "outreach_sent",
"content": f"Follow-up email sent: {draft['subject']}"
})
# Update the entity
requests.patch(f"{MOBIUS}/entities/{company['id']}", headers=HEADERS, json={
"attributes": {
**company["attributes"],
"last_outreach": datetime.now().isoformat()
}
})REST API Endpoints
Every resource follows the same pattern — create, read, update, delete, list
Core Resources
POST /v1/entities Create entity
GET /v1/entities List/filter entities
GET /v1/entities/:id Get entity
PATCH /v1/entities/:id Update attributes
DELETE /v1/entities/:id Delete entity
POST /v1/relationships Create relationship
GET /v1/relationships List/filter
GET /v1/entities/:id/relationships
POST /v1/events Log an event
GET /v1/entities/:id/events List entity events
POST /v1/messages Send message
POST /v1/messages/claim Claim next message
GET /v1/search?q=... Full-text search
POST /v1/batch Batch operationsInfrastructure
POST /v1/jobs/claim Claim a job (long-poll)
POST /v1/jobs/:id/complete Complete a job
POST /v1/jobs/:id/fail Fail a job
POST /v1/subscriptions Webhook subscription
POST /v1/schedules Scheduled messages
POST /v1/schemas/:type Create/update schema
GET /v1/schemas/:type Get schema
POST /v1/users Create user
POST /v1/keys Create API key
GET /v1/audit-logs Query audit trail
GET /mcp MCP server endpointNeed help?