Skip to main content

Security and data handling

Last updated: October 14, 2026

Short version: the API does not store the text of your queries. API keys are stored hashed. Nothing you send us is used to train models. This page is a plain summary. The binding terms are in our Terms of Service, Privacy Policy and Data Processing Agreement, and they control if anything here differs.

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:

DataContainsRetention
Request contentNothing. Not persisted.Request duration only
API keyA SHA-256 hash, an encrypted copy so the console can show the key again, and a short display prefixUntil you revoke the key
Usage countersCall counts per key, per day, per endpoint. No query content.48 hours
Billing ledgerAccount ID, credit amount, endpoint label, timestamp. No query content.Kept as a billing record (up to seven years, per the Privacy Policy)
Law Change AlertsWebhook URL, an encrypted webhook secret, notification email, the source you watchUntil you delete the watch
Webhook delivery logStatus code, success or failure, a short error, attempt number. Not the payload.90 days
Request metricsRoute, status code, response time. No bodies or headers.Sampled: 1% of successful calls, all errors

We do not use a language-model provider anywhere in the service, so your queries are never sent to one. 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 7 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 any model, ours or a provider’s. We do not use language models to process your content. Search queries are sent to Voyage AI to compute embeddings and rerank results; our Voyage account is opted out of training use, and Voyage deletes content immediately after processing it.

6. Sub-processors

The services that handle data for the API are Amazon Web Services (hosting for our servers and search index, and S3 storage of source documents), Supabase (database and authentication: account details, API key hashes, usage and billing records, no query text), Voyage AI (embeddings and reranking of query text) and Cloudflare (traffic routing, DDoS protection and R2 storage of source documents). All are in the United States, apart from Cloudflare’s edge, which is the location nearest the caller. We also use vendors for payments, transactional email and error tracking; none of them receives query content. 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 privacy@vaquill.ai. We give customers at least 7 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 applicable US state breach-notification laws.

Availability and incidents are published at status.vaquill.ai, and our availability targets are on the Service Levels page.

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 security@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 security@vaquill.ai or use the contact page.

Cookie preferences

Choose what Vaquill may use on this browser. You can change this at any time from “Cookie settings” in the footer.

Details in the Cookie Policy.