Field-level permissions for your AI agent, in under 10 minutes
NoData makes access decisions in real time: what an agent, user or system may see right now, releases only what was authorized, and returns a signed proof for every decision.
The ssn was not filtered from the response. It was never opened.That is the difference between a filter and an authorization — and the first thing an auditor will ask you.
The same layer also powers file sharing with revocation, cross-organization transfer, audit proofs and RAG.
10,000 API calls free every monthNo credit card · no sales call
Integration
Plain HTTP. No schema change, no migration, no mandatory SDK.
Keys
Your private keys are not with us. Not in backup, not in escrow, not in any form.
Proof
Every decision carries a signed proof. The check runs in your browser, without trusting us and without a single network request.
And us versus the data itself — For cross-org transfer and sealed files we hold ciphertext alongside a key sealed to your public key — the private half is generated on your side and is not posted to us. For document compute you post us the text and we decide what reaches the model: what is not authorized is not sent to it.
Why developers use this
Because every line in the first list is a project of its own, and most of them end as code nobody wants to maintain.
Instead of building
✕IAM · identity and permission management
✕Field-level authorization, not table-level
✕An audit trail that cannot be rewritten
✕Cryptographic proofs · signing and anchoring
✕Cross-organization permissions
Make one call
POST /api/access/compute
✓A decision · allow · degrade · deny
✓Only the authorized data · the rest is never opened
✓A signed proof · including for a denial
Build it in five minutes
Install, one call, a signed answer. No server to stand up and no schema to change.
1 · install
npm i @nodatachat/sdk
2 · the call
import { NoData } from '@nodatachat/sdk';
// your org key — ndp_...
const nd = new NoData({ apiKey: process.env.NODATA_KEY });
const { decision, answer, proof } = await nd.compute({
question: 'What is the claim status?',
clearance: 'internal',
sections: [
{ title: 'Status', text: 'Approved on 2026-07-14' },
{ title: 'SSN', text: '123-45-6789' }, // out of clearance
],
});
await nd.verify(proof.id); // { authentic, unaltered, signer }
3 · what comes back
decision: 'allow'
answer: answered from Status only — SSN never reached the model
proof: signed
That's it. There is no step four.
or via MCP
claude mcp add nodata -- npx @nodatachat/mcp
Six questions this answers
If one of them is what you are trying to solve this week, start there.
AGENTS
“How do I stop my agent seeing things it shouldn't?”
Declare which fields it may read, for how long, and who approved. Every access gets a signed proof.
A support copilot that sees name and email but never the SSN
An HR agent that sees salary for one department only
A legal assistant scoped to specific contracts
FILES
“How do I revoke a file after I've already sent it?”
Somewhere between Dropbox and WeTransfer, with what both are missing.
Revoke after sending · cap the number of opens
Expiry then content shredding · who opened, and when
CROSS-ORG
“How do I share data with a customer without building IAM?”
Sealed on the sender's side; we hold ciphertext only. The recipient fetches only if the sender's org granted it, and the grant is recomputed on every fetch.
Bank ↔ insurer
Hospital ↔ lab · supplier ↔ customer
COMPLIANCE
“How do I prove what the model saw — and what it never did?”
A denial is signed onto the chain exactly like an approval, so you can prove the negative too.
SOC 2 · ISO 27001 · HIPAA · GDPR
AI-governance audits
INBOX
“How do two of my systems exchange encrypted data?”
Each system gets an address and posts to the other — with no key infrastructure, queue or storage of its own. The private key never leaves it.
RAG
“How do I know the LLM never received what it shouldn't?”
A gate between retrieval and the model: ask what is permitted, release only that, and the model receives only that.
Internal copilots · chat over documents
Enterprise knowledge bases · agentic AI
How it works
Two kinds of token: ndp_ is your organization, ndca- is a single agent and is shown once.
POST /api/v1/governance/grant # agent + grant, returns ndca-...
POST /api/access/compute # "may I?" — a decision, no data
POST /api/agents/{handle}/read # reads only what was authorized
ssn was not filtered out of the response — it was never decrypted.
Pricing · the unit is a call
Not per user, per seat or per gigabyte. You pay per API call. One allowance per organization, not per key.
10,000
calls free every month
$22.50
at 100,000 calls
$247.50
at 1,000,000 calls
Most operations are billed per call — opening a forty-file folder is one call. The one exception: AI reads are billed by the number of documents examined to answer, because each document is ruled on separately. And the permission question, opening an address and verifying a proof are not counted at all.
Explore the API
All of these run on the one engine and the same meter.