# Zero — agent-native CRM > A CRM built for AI agents to write to and retrieve from. Humans talk to it > through ChatGPT; agents speak MCP or REST. Values are stored as facts with > confidence, provenance and lifecycle, not as one-value-per-cell fields. > Retrieval is hybrid (resolved profile + pgvector similarity + recency) with > no LLM call at query time. Base URL: https://api.zero-crm.com ## Provision a workspace (agents, self-service) POST /signup body: {"email": "you@company.com", "workspaceName?": "...", "agentName?": "..."} returns: {"data": {"apiKey": "crm_sk_...", "workspaceId": "...", "baseUrl": ".../v1"}} The API key is shown exactly once. ## MCP Endpoint: /mcp (streamable HTTP, stateless, POST only) Auth: OAuth 2.1 (authorization_code + PKCE, dynamic client registration at /oauth/register, discovery at /.well-known/oauth-authorization-server) or a bearer agent API key from /signup. Human-named tools (for chat clients): - add_contact(name, email?, company?, title?, linkedin?, note?) — dedupe by email/linkedin, links company, logs note - add_company(name, domain?, industry?, headquarters?, description?, note?) - log_activity(who, kind: note|call|meeting|email|task, summary, direction?, occurredAt?) - search_crm(query, object?, limit?) [read-only] - get_contact(who) [read-only] — resolved profile + timeline + live signals - whats_next(daysIdle?, limit?) [read-only] — stale records + strongest live signals Raw verbs (for agent runtimes; same names over REST /v1): - resolve_entity(object, identifiers[], traits?) — lookup-or-create with entity resolution - upsert_fact(recordId, object, attribute, value, confidence?, source?, evidence?, dedupeKey?, supersede?) - recall(recordId?, query?, types?, limit?) - search(query, object?, limit?) - log_signal(recordId?, type, payload?, strength?, decayAt?) - log_interaction(recordId?, kind, subject?, body?, occurredAt?) - record_episode(summary, topic?, outcome?, unresolved?, importance?) - ingest_trace(name, spans?, ...) — observability for the human dashboard ## REST All verbs under /v1 with bearer auth: POST /v1/entities/resolve · /v1/facts · /v1/recall · /v1/search · /v1/signals · /v1/interactions · /v1/episodes · /v1/traces · /v1/next-actions ## Data model Objects (companies, people, deals) → records → facts. A fact carries value, confidence (0-1), status (provisional|active|quarantined|revoked), source, source_uri, evidence, agent_id, trace_id, observed_at vs recorded_at, and a supersession chain. Competing facts coexist; reads resolve the canonical value (active, unsuperseded, highest confidence, then most recent). Identifiers (email, domain, linkedin) stitch records across sources. Signals decay. Every write is attributable to an agent and the human behind it. ## Contact david@manano.ai