Done with activity_logs tables.
Add audit logs to your product in 3 lines of code. Storage, search and compliance, handled for you.
Closed beta. Join the waitlist, we will reach out.
Why teams use Recalled
Three concrete reasons devs drop an audit SDK into their product.
- Track every action
Who changed their password? Who shared this document? Log every user action with who, what, when, from where, and review it all from your own admin back-office.
- Stay audit-ready
Support ticket, security incident, GDPR request: the day someone needs to know who did what, you shouldn't be writing SQL at midnight. Recalled delivers a signed, exportable, compliant audit trail from your first event.
- Keep your database lean
Audit logs grow fast and slow down production queries. Recalled stores events off-site, indexed for search, with configurable retention. Your main DB stays focused on your product.
- Audit your AI agents
Your AI agents act on behalf of users. Recalled records every action with a cryptographic receipt the agent can cite back. Replayable evidence when something goes wrong.
Three steps, you are done
No migration, no queue, no SQL. The fastest audit log you will ever ship.
- 1Create a project
Sign up, name your product, done. 30 seconds, no credit card needed.
- 2Grab an API key
One click to generate a key. Paste it in your .env. You keep the secret, we keep the hash.
- 3Send your first event
Three lines of code from our npm SDK, or a cURL call from any language. You are logging.
Use any language
An npm SDK for JavaScript and TypeScript, a REST API for everything else. Python, Go, Ruby, PHP, Rust, whatever you ship in.
# npm install @recalled/sdk
import { Recalled } from '@recalled/sdk'
const client = new Recalled({
apiKey: process.env.RECALLED_KEY
})
await client.events.create({
action: 'invoice.deleted',
actor: { id: 'user_123' }
})curl -X POST https://api.recalled.dev/v1/events \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "invoice.deleted",
"actor": { "id": "user_123" }
}'Built for developers
Stop building your own audit log. We do the boring part so you can ship the rest.
- Event tracking
Record every user action, create, update, delete, login, permission granted, with who, what, when, from where.
- Search and filters
Full-text search across all events. Filter by user, action, resource, date range, IP. Real-time results, cursor pagination.
- Embeddable UI
An internal admin widget for your support, ops and compliance team. Drop the React component inside the back-office they already use to investigate "who did what" without switching tools.
- Export and retention
CSV or JSON export on demand, filtered by actor, action, date range and more. Configurable retention per plan, fine-grained rules on Scale.
- Tamper-evident by default
Every event is HMAC-SHA256 signed with a server-side key, then chained to the previous one. Silent rewrites are detectable. Call GET /v1/events/verify anytime to prove integrity to an auditor.
- Analytics dashboard
Activity overview, event spikes, top actions, most active users. Alerts on anomalous behavior.
- Cryptographic receipts
Every event has a portable receipt with a public verification URL. Send the link to a customer who disputes an action, paste it in a support reply, attach it to a ticket. The recipient clicks, sees a green Verified banner, no API key required.
Simple pricing, no surprise
Start free, upgrade when you have real customers. No per-seat pricing. No hidden fees. Cancel anytime.
For validating the integration.
- 1 project
- 3,000 events / month
- 1 funnel
- 7 days retention
- Basic dashboard
- Tamper-proof signing
- Discord and Telegram notifications
For your first paying users.
- Everything in Free, plus:
- 3 projects
- 20,000 events / month
- Up to 2 team members per project
- 1 generic webhook
- Up to 2 funnels
- 3 months retention
- CSV / JSON export
- MCP server for Claude / Cursor / AI agents
- Email support
For startups in production.
- Everything in Starter, plus:
- Unlimited projects
- 100,000 events / month
- Up to 5 team members per project
- Up to 3 generic webhooks
- Up to 5 funnels
- 1 year retention
- Advanced dashboard
- Embeddable UI included
- Configurable retention per event type
For established SaaS.
- Everything in Pro, plus:
- Unlimited projects
- 500,000 events / month
- Up to 10 team members per project
- Up to 10 generic webhooks
- Unlimited funnels
- Unlimited retention
- Priority email support
- 99.9% uptime SLA
Pick a plan that fits your real volume
Drag the slider, we estimate the events your project will emit and point at the cheapest plan that fits.
Audit logs are not analytics: we count one event per state change (login, action, integration, webhook, sensitive access), not per page view. A SaaS that audit-logs seriously lands between 15 and 40 events per active user per month — the default of 20 is a realistic floor. Dial it down if your product is unusually quiet.
The compliance box, ticked for you
GDPR, SOC2, ISO 27001. You don't have to be enterprise to need a clean audit trail. GDPR applies from your very first user, and a security questionnaire can land at any stage. Recalled gives you what you need: EU hosting, AES-256 encryption at rest, configurable retention, and one-call right to erasure.
Frequently asked questions
Can't find what you are looking for? Reply to any email from us, we read them all.
How long does integration take?
About 2 minutes. Install the npm package, paste your API key in .env, call client.events.create() once in your code. You are done.
What happens if I exceed my quota?
We return HTTP 429 with a clear error code so your app can log it and you can upgrade. We never drop events silently, and we never charge you extra without your consent.
Is my data secure?
Yes. All data is encrypted at rest with AES-256 and in transit with TLS 1.3. Every event is signed with HMAC-SHA256 and chained to the previous one, so a rewrite from inside the database is detectable. A public GET /v1/events/verify endpoint lets you audit the whole chain in one call. API keys are hashed with SHA-256, never stored in clear.
Where is the data hosted?
Exclusively in the European Union. No transfer outside the EU by default. Mentioned clearly in our DPA.
Can I export my data?
Yes, anytime. CSV or JSON, on demand, filtered by project, organization, actor or date range. Standard GDPR Article 20 portability right, plus it is just good hygiene.
How does GDPR work?
Recalled acts as a data processor under GDPR. We provide a standard DPA you accept at signup. For the right to erasure (Article 17), one API call anonymizes all events of a given user.
Are you SOC 2 or ISO 27001 certified?
Not yet. We run the controls those audits require, HMAC-signed events, EU hosting, AES-256 at rest, role-based access, DPA at signup, so your own auditors can verify Recalled's part of your trail via GET /v1/events/verify and CSV/JSON exports. Most customers use Recalled to collect evidence for their own SOC 2 or ISO 27001 audit, not the other way around. When we formally pass a Type II report, we will publish it here.
What frameworks does the embeddable UI support?
A React component published on npm as @recalled/sdk/react, designed to live inside the admin panel your support, ops and compliance team already use. It works with Next.js, Remix, Vite, CRA, any React 18+ setup. If your back-office is not React, you can query the same data directly via the REST API from whatever admin tooling you have.
Can I try before I pay?
Yes. The Free plan gives you 3,000 events per month, one project, 7 days retention, forever. No credit card needed. Upgrade to Starter (90 days) or Pro (1 year) once your data needs to live longer than a week.
Does Recalled work for AI agents and not just human users?
Yes. Recalled records human and AI agent actions side by side, with the same hash chain and HMAC signature. Set actor.type to 'agent' for the agent-driven ones, leave it as 'user' for human ones. Every event also has a public receipt URL you can send to a customer disputing an action, paste in a support ticket, or let your AI agent cite in its reply. No API key needed to verify. See /docs/agent-audit for the full pattern.
Your next audit log is 2 minutes away
Stop hacking on your own logs table. Drop in Recalled, send your first event, move on.