Privacy Policy
Last updated: September 1, 2026
This Privacy Policy describes how Veri ("Veri," "we," "us") collects, uses, and shares information when you use our website, APIs, SDK, dashboard, and training and deployment services (collectively, the "Services").
1. Information we collect
We collect the following categories of information:
- Account information. When you sign up, our authentication provider (Clerk) collects your name, email address, and authentication identifiers. Veri stores your Clerk user ID and the primary email address shown on your account; we do not store passwords or OAuth tokens in our own database.
- API keys. When you create an API key, we store only a SHA-256 hash of the key and a short prefix for display. The full key is shown to you once at creation time and is never stored in plaintext.
- Customer content. Datasets, reward functions, training configurations, model checkpoints, training logs, and inference inputs and outputs that you submit through the Services. This content is stored in encrypted object storage (Cloudflare R2 and AWS S3, both with server-side AES-256 encryption).
- Usage and device data. IP address, browser and device information, request metadata (method, path, status code, duration), and performance metrics.
- Billing information. Our payment processor (Stripe) collects and stores your payment details. Veri does not store full card numbers, CVVs, or cardholder names — we only store a reference to your Stripe customer account and display card brand and last four digits fetched from Stripe on demand.
- Analytics data. We use PostHog to measure aggregate product usage: page views, sessions, and product events such as account creation, API key creation, and job submission. By default this runs in a cookieless mode — nothing is stored on your device, and the identifier PostHog uses is a rotating daily hash derived on its servers that cannot be traced back to you. If you allow cookies in our consent prompt, PostHog stores a cookie so that repeat visits can be recognized. In either mode we do not send names, emails, prompts, model names, dataset content, API keys, resource IDs, or free-text you typed, and we do not build person profiles. Page addresses are stripped of query strings and resource IDs before being sent.
- Communications. Messages and optional attachments you send through our support form, along with your IP address and the page you submitted from.
- Integration credentials. If you connect a third-party integration (e.g., Weights & Biases), the credentials you provide are stored encrypted in our database.
2. How we use information
We use information to:
- Provide, operate, and improve the Services.
- Run the training and inference jobs you submit, including provisioning GPU compute and serving model outputs.
- Authenticate users, prevent abuse, debug issues, and secure the platform.
- Track aggregate product usage to understand which features are used and how to prioritize development.
- Process payments and maintain billing records.
- Comply with legal obligations.
We do not use your customer content to train our own models. Your datasets, reward functions, and trained weights remain yours. We do not inspect, read, or use your training data for any purpose other than running the jobs you submit.
3. How we share information
We share information with the following categories of recipients:
- Sub-processors. Third-party providers we use to deliver the Services. As of the date above, our sub-processors are:
- Clerk — authentication and user identity management.
- Stripe — payment processing and credit balance management. Receives your email and Clerk user ID (as metadata).
- PlanetScale — hosted database for account metadata, job and billing records, API key hashes, and encrypted integration credentials.
- Cloudflare — website and dashboard hosting (Cloudflare Workers), DNS and edge network, API ingress and security filtering, application API routes, and encrypted object storage (R2) for customer content.
- Resend — transactional email for onboarding, support requests, and alerts. Receives email addresses, message content, optional attachments, and request metadata needed to deliver the message.
- Amazon Web Services — compute (GPU instances) and encrypted object storage (S3) for customer content.
- Datadog — operational logging and infrastructure metrics. Receives control-plane log output (no request bodies or customer content).
- PostHog — aggregate product analytics, cookieless by default and without person profiles (see Section 1).
- Cloud GPU providers. To run your training and inference jobs, we may provision compute on AWS, GCP, DigitalOcean, Vast.ai, or Hot Aisle. Datasets and model weights are delivered to the single-tenant GPU instance through time-limited presigned URLs and processed on provider-managed infrastructure solely to run that job.
- User-directed transfers. If you choose to push trained model weights or adapters to your own Hugging Face account using an access token you supply, that content is transferred to Hugging Face at your direction and is governed by Hugging Face's terms and privacy policy.
- Legal & safety. When required by law, subpoena, or to protect the rights, property, or safety of Veri, our users, or the public.
- Business transfers. In connection with a merger, acquisition, or sale of assets, subject to standard confidentiality protections.
We do not sell personal information.
4. Ephemeral compute & data isolation
When you submit a training or inference job, Veri provisions a dedicated GPU instance on a cloud provider. The following practices apply to every job:
- Single-tenant instances. Each job runs on its own dedicated GPU instance. No other Veri user's job shares that instance.
- Minimal worker credentials. GPU workers access customer artifacts only through time-limited presigned URLs (2-hour expiry). On AWS, worker instances carry a restricted role used for systems management, immutable worker-code reads, and approved container pulls — it cannot read other users' artifacts.
- Instance termination on completion. When a job completes, fails, or is cancelled, the GPU instance is terminated immediately. All local storage (including any downloaded datasets, model weights, or temporary files in
/tmp) is destroyed with the instance. EBS volumes are deleted on termination. - Tenant-scoped access. Your customer content in object storage is stored under resource prefixes owned by your account. Access is enforced through presigned URLs that the control plane signs only after verifying ownership.
- Per-job callback tokens. Each job receives a unique random token for status callbacks, preventing unauthorized status updates or artifact uploads.
5. Data retention
We retain different categories of data for different periods:
- GPU compute. Zero retention. GPU instances and all data on their local disks are destroyed when the instance is terminated at job completion. No customer content persists on compute hardware after a job ends.
- Customer content in object storage (datasets, reward functions, trained model checkpoints, training job configurations, code bundles, and training logs including standard output). Retained in object storage until you delete it through the dashboard or API, until you close your account, or until a documented expiration applies. Deleting a job queues its checkpoints and logs for verified removal; deleting a dataset, reward function, cached model, or volume does the same. Uploaded code bundles expire after 30 days.
- Account information. Retained for as long as your account is active. Deleting your account removes local account data and revokes Veri API keys.
- API request logs (method, path, status code, duration, and error message for each request to our API). Retained for up to 7 days.
- Billing records. Job cost records, deployment cost records, and credit redemption records are retained for the life of your account for accounting and dispute resolution. Payment details themselves are held by Stripe under their retention policy.
- Analytics events. PostHog aggregate events are collected in cookieless mode by default and are not tied to a person profile. Declining the consent prompt keeps analytics cookieless rather than switching them off; changing or withdrawing a prior choice requires contacting us until self-service preference management is added.
- Operational metrics and aggregate telemetry (request rates, latency histograms, error rates — not tied to individual request payloads). Retained for up to 90 days in Datadog.
- Backups. Database backups may persist for a limited additional period before being overwritten.
6. Your rights
Depending on where you live, you may have rights to access, correct, delete, or export your personal information, or to object to or restrict certain processing. To exercise these rights, email daniel@veri.studio. We will respond within the time frame required by applicable law.
You can delete your customer content at any time through the dashboard or API, subject to stopping active resources and waiting for final billing settlement. Deleting a training job, dataset, reward function, cached model, or volume queues its stored content for verified removal. Revoking an API key immediately disables it. Account deletion is available in Settings and removes local account data after active resources are stopped.
7. Security
We use technical and organizational measures designed to protect your information:
- Encryption in transit. All API calls, dashboard traffic, and data transfers use HTTPS/TLS.
- Encryption at rest. Customer content in object storage (Cloudflare R2 and AWS S3) is encrypted with server-side AES-256. Sensitive credentials (integration API keys, SSH keys, database connection strings) are encrypted in the database using symmetric encryption.
- API key hashing. API keys are stored as SHA-256 hashes. Even if the database were compromised, raw API keys could not be recovered.
- Minimal-privilege workers. GPU instances run with an IAM role that can only read their own job configuration — all other data access is via short-lived presigned URLs.
- Access controls. API endpoints verify ownership before returning or modifying user data. The web frontend authenticates via Clerk and proxies requests to the control plane with HMAC-signed headers.
- Constant-time comparisons. Master-key authentication uses constant-time comparison to prevent timing attacks.
No system is perfectly secure. Please use a strong password, rotate your API keys regularly, and notify us immediately of any suspected compromise.
8. International transfers
Veri operates from the United States and our sub-processors may process data in other countries. Where required, we rely on appropriate transfer mechanisms such as Standard Contractual Clauses.
9. Children
The Services are not directed to children under 13 (or the equivalent minimum age in your jurisdiction), and we do not knowingly collect their personal information.
10. Changes to this policy
We may update this Privacy Policy from time to time. If changes are material, we will provide reasonable notice. Continued use of the Services after an update constitutes acceptance of the updated policy.
11. Contact
Questions or requests? Email daniel@veri.studio or book a call.
