salty
v1 — shipping now

The CRM your AI agents can run.

An agent-native CRM: people, companies, and deals behind a clean REST API, an MCP server, a CLI, and signed webhooks. Your AI agent does the work — no dashboards, no integration marketplace.

# Create your first person
curl https://api.trysalty.com/v1/people \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"email":"jane@acme.com","first_name":"Jane"}'

# Extend the schema on the fly
curl https://api.trysalty.com/v1/schema/person/attributes \
  -H "Authorization: Bearer sk_live_…" \
  -d '{"attribute_key":"tier","display_name":"Tier",
       "data_type":"enum","enum_values":["free","pro"]}'

# Use the new field — lenient validation; new keys pass
curl -X PATCH https://api.trysalty.com/v1/people/<id> \
  -H "Authorization: Bearer sk_live_…" \
  -d '{"custom_attributes":{"tier":"pro"}}'

Four surfaces. One workspace.

Every interface reads and writes the same data through the same auth and rate-limit layer. Pick the one that fits the job.

REST API

OpenAPI 3.1, idempotency, cursor pagination, per-plan rate limits. The same surface every other tool in your stack uses.

MCP server

15 tools, OAuth 2.1 + PKCE. Drop it into Claude Desktop, Cursor, ChatGPT — your agent reads and writes the workspace on the user’s behalf.

CLI

`npm i -g salty-cli`. Browser OAuth, OS keychain, `salty logs tail` for live audit. Stays out of your way until you need it.

Webhooks

HMAC-signed, exponential backoff, automatic deactivation after 8 failures with a meta-event to other endpoints. Production-grade out of the box.

Predictable pricing.

Solo and Pro ship every feature — REST, MCP, CLI, webhooks, custom objects, schema engine. Free is a demo tier; upgrade to actually build on Salty.

See full pricing →
Free
Demo the platform
$0
500 calls / mo
10 records
Recommended
Solo
For one agent in production
$20/ month
100,000 calls / mo
25,000 records
Pro
For a fleet of agents
$99/ month
1,000,000 calls / mo
250,000 records

Frequently asked questions

The short answers. The full FAQ covers self-hosting, caps, multi-agent, and more. Weighing options? See how Salty compares to Salesforce, HubSpot, Attio, and more.

How is Salty different from HubSpot, Attio, or Salesforce?
Traditional CRMs are built for humans first — dashboards, forms, per-seat pricing, and an integration marketplace. Salty is agent-first: a REST API, MCP server, CLI, and signed webhooks, priced per API call. Schema changes happen at runtime via add_attribute — no migrations, no service restarts.
Can humans also use Salty, or is it agent-only?
Both. Salty ships a deliberately thin admin UI to manage API keys, browse records, handle billing, and make emergency edits. Most of the workflow runs through the agent; the UI is an inspection layer.
What counts as an API call for billing?
Every authenticated REST request is one call. MCP tool invocations forward to the REST API, so each MCP tool call is one call too. Admin UI actions authenticated via JWT — billing, key management, workspace settings — are exempt, so a workspace can never be locked out of its own settings.
Can I export my data?
Yes — one click in the dashboard (or GET /workspace/export) downloads your entire workspace as a single JSON file: people, companies, deals, notes, tasks, activities, custom objects, and your schema. Every object type also has paginated list endpoints. No vendor lock-in, and you can delete your workspace yourself anytime.
Can an AI agent delete all my data?
No. Deletes go to a 30-day trash you can restore from, and there is deliberately no agent tool that hard-deletes — so you can let an agent run on your CRM without fear of it wiping your records. You can also hand an agent a read-only API key that can look but not change anything. See “Your data, your control”.
Which MCP clients work with Salty?
Any client supporting the Streamable HTTP transport with OAuth 2.1 — Claude Desktop, Cursor, and custom clients built on @modelcontextprotocol/sdk. For stdio-only clients, use mcp-remote as a stdio↔HTTP bridge.
How do AI agents authenticate with Salty?
Three paths, one workspace. API keys (sk_live_…) for server-to-server agents, OAuth 2.1 + PKCE access tokens for MCP clients acting on a user’s behalf, and Supabase JWTs for the admin UI. Every request is scoped to a single workspace; agent traffic is metered for billing while admin actions are exempt, so a workspace can never be locked out of its own settings.

Stop hand-rolling the CRM your AI agents need.

Ship in the time it takes to read this page.