Stripe reduced a payment to one API call. NoData does the same for an information transaction. One call computes who is asking, for what, in which context, for what purpose and under which policy — releases only what the policy allows, and returns a signed receipt. Field-level, in under 10 minutes.
Information is exposed in every one of these — to an employee, a supplier, an agent. Each exposure is a transaction, and runs through one governed call.
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.
A document sent, a tool an agent calls, a RAG retrieval, an inbound mailbox, a transfer to another company — the very same transaction, and the same call.
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.
The same decision, on every tool the agent touches
Before the agent calls a tool it asks: may I? The decision falls against its grant, and only the allowed call goes out.
Bitbucket
source & CI
✓Read source, open a pull request
✓Read build status
✕Merge to a protected branch
✕Delete a repository
✕Read pipeline secrets
allowread /src
denymerge → main · delete repo
Amplitude
product analytics
✓Read funnels and trends
✓Run a segmentation query
✕Export raw events
✕Export a user list (PII)
✕Delete a user's data
allowsegmentation (aggregate)
denyexport raw events (PII)
NoData ships the decision engine: the compute API, scoped grants (ndca-) and MCP. You point your agent's Bitbucket or Amplitude call at it, so the answer is decided before the call goes out. Turnkey per-tool connectors are the next step.
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 information sharing
One governed transaction
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
The same transaction, in seven places
Seven places that look like seven products. They are one case: the same call, the same decision, the same proof.
If one of them is what you are trying to solve this week, start there.
TOOLS
“How do I let my agent use Bitbucket or Amplitude without handing it admin?”
Route the tool call through a decision: the agent asks what it may do, NoData rules against its grant, and only the allowed call goes out, with a signed proof.
Read a repo and open a PR, never merge to main or delete it
Read funnels and trends, never export raw users or PII
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 · one transaction, one decision
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.