Privacy Policy
Last updated: July 21, 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 only your Clerk user ID — we do not store your email, password, 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 (AWS S3 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 track product events (e.g., sign-in, API key creation, job submission). We send only user IDs and event enums — never raw emails, API keys, dataset content, or free-text you typed.
- 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 operational records (job metadata, billing records, API key hashes).
- 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 — product analytics. Receives user IDs and event names only (see Section 1).
- Daytona — ephemeral code-execution sandboxes for benchmark evaluations. Receives only the model-generated code being scored; each sandbox is destroyed when its task completes.
- Cloud GPU providers. To run your training and inference jobs, we may provision compute on AWS, GCP, DigitalOcean, Vast.ai, or Hot Aisle. These providers receive only job metadata (instance type, region) — they do not receive your datasets or model weights directly. Your data reaches GPU instances via time-limited presigned URLs that the instances download and process in memory.
- 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.
- No persistent credentials on workers. GPU instances do not receive AWS credentials. They access your data only through time-limited presigned URLs (2-hour expiry). The instance's IAM role is restricted to reading its own job configuration — it cannot access other users' data.
- 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 storage. Your customer content in S3 is stored under keys scoped to your user ID. 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, and training logs including standard output). Retained in S3 until you delete it through the dashboard or API, or until you close your account. Deleting a job removes its checkpoints and logs. Deleting a dataset removes the underlying data file.
- Account information. Retained for as long as your account is active. Your Clerk user ID is referenced by job and billing records and cannot be deleted without cascading deletion of those records.
- 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. Product analytics events in PostHog are retained according to PostHog's default data retention, which can be configured in your project settings.
- 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. Deleting a training job removes its checkpoints and logs from S3. Deleting a dataset removes the underlying data file. Revoking an API key immediately disables it.
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 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.
