Security and data handling
Last updated: October 14, 2026
1. What the API stores, and what it does not
The developer API and the MCP server are built to keep as little of your traffic as possible. The text of a query, a request body, or a parameter is never written to a database or a log. It exists in memory for the length of the request. What we do keep:
| Data | Contains | Retention |
|---|---|---|
| Request content | Nothing. Not persisted. | Request duration only |
| API key | A SHA-256 hash, an encrypted copy so the console can show the key again, and a short display prefix | Until you revoke the key |
| Usage counters | Call counts per key, per day, per endpoint. No query content. | 48 hours |
| Billing ledger | Account ID, credit amount, endpoint label, timestamp. No query content. | Kept as a billing record (up to seven years, per the Privacy Policy) |
| Law Change Alerts | Webhook URL, an encrypted webhook secret, notification email, the source you watch | Until you delete the watch |
| Webhook delivery log | Status code, success or failure, a short error, attempt number. Not the payload. | 90 days |
| Request metrics | Route, status code, response time. No bodies or headers. | Sampled: 1% of successful calls, all errors |
The API’s statute-retrieval endpoints do not send your queries to a language-model provider. If you connect an AI client to our MCP server, that client and its model provider see what you ask and what we return, under their own terms, and we do not control what they keep.
2. API keys and access
- Keys are bearer tokens with the
vq_key_prefix. Create, rotate and revoke them in the console. Revoking a key takes effect at once. - We authenticate against a SHA-256 hash of the key. Keep keys out of client-side code and public repositories.
- Calls are HTTPS only. Plain HTTP is rejected.
- Every key is rate-limited per minute and per day and can spend only the credits on your account, so a leaked key cannot spend beyond your balance.
- The number of active keys depends on your plan.
- Webhook deliveries from Law Change Alerts are signed with your secret, which is encrypted at rest and never returned by any endpoint, so you can verify a delivery came from us.
- IP-based access restrictions are available on enterprise plans.
3. Where data lives
Data is processed and stored in data centers operated by our infrastructure sub-processors, in the regions recorded in our sub-processor register, which is available on request. We give at least 30 days’ notice before moving primary Customer Data to another country.
4. Encryption
AES-256 encryption at rest for the database and document storage. TLS 1.2 or higher in transit, and TLS 1.3 where the client supports it. Secrets are not checked into source control.
5. No training on your data
Your API queries, and the documents, prompts and outputs you put in the Vaquill application, are never used to train our models or our providers’ models. Our language-model sub-processors operate under zero-data-retention agreements, so they do not keep prompts or outputs beyond the time needed to return a response.
6. Sub-processors
We rely on a short list of third-party services for hosting, database and authentication, content delivery, payments, transactional email, error tracking and, for the application, language-model inference. Each is bound by a written data-processing agreement. The current register, with regions and the data each one handles, is available to customers and their counsel at contact@vaquill.ai. We give customers at least 30 days’ notice before adding a sub-processor.
7. Incident notification
If a confirmed security incident affects your data, we notify you without undue delay and in any event within 72 hours of becoming aware of it, in line with GDPR Article 33 and applicable US state breach-notification laws.
8. Development and operations
We run routine dependency scanning. Staff access to production systems is restricted to what the work needs, and staff use multi-factor authentication. Vaquill AI staff do not read the content of application matters except when you ask for support or when we need to diagnose an incident.
9. The Vaquill application
The legal-AI application has additional controls because it holds documents and matters:
- Each customer’s data is logically isolated, with row-level security on database queries and object-store reads.
- Role-based access for admins and members, and TOTP-based two-factor authentication that admins can require for a workspace.
- Audit logs of sign-ins, permission changes, uploads, sharing and deletions, available to admins.
- Uploaded files are screened for hidden instructions aimed at manipulating the model.
- Matters and documents are kept while the account is active and are exportable for 30 days after cancellation, then deleted. See Delete My Data.
10. Reporting a vulnerability
Email contact@vaquill.ai with a description, steps to reproduce and any proof of concept. We acknowledge reports within 72 hours and follow a 90-day coordinated-disclosure timeline. Scope, response times and our safe-harbor commitment are on the Vulnerability Disclosure Programme page.
11. Questions and special requirements
If you need a security questionnaire answered, a custom DPA, IP allow-listing, or a dedicated deployment, email contact@vaquill.ai or use the contact page.