# Passio security package

Generated Nov 6, 2026. The live page is https://www.passio.ai/security.

For a signed DPA, or a questionnaire on your own form, write to support@passiolife.com.

## Not claimed

- No SOC 2 report
- No ISO 27001 certificate
- No HIPAA certification and no BAA
- No penetration-test report
- No contractual uptime SLA

## Measured reliability

99.9% of Nutrition AI API calls were answered without a server error over the 30 days ending Nov 3, 2026. Client errors, such as bad input or an exhausted plan, are not counted. This is a measurement, not a contractual SLA.

## Subprocessors

- **Google Cloud.** Hosting, databases and storage, and AI models served through Vertex AI, including Gemini and Anthropic Claude.
- **DuploCloud.** Manages Passio's Google Cloud infrastructure.
- **OpenAI.** GPT models, speech transcription and text embeddings.
- **xAI.** Grok models, when an account or route uses them.
- **Google Firebase.** EasyAI sign-in.
- **Stripe.** Subscriptions and payments.
- **SendGrid.** Account and transactional email.

## Infrastructure DuploCloud implements

Passio runs on Google Cloud, in us-central1, managed with DuploCloud. The points below are what DuploCloud's platform implements in that project. On Google Cloud, a control the white papers illustrate with an AWS or Azure service is the Google Cloud equivalent.

- Tenant isolation. Resources inside a DuploCloud tenant can reach each other. Anything else is denied unless it is exposed on purpose through a load balancer or an IAM policy.
- Private by default. Infrastructure is split into public and private networks, and a resource stays private until it is published.
- Encryption and TLS. The platform turns on the cloud provider's encryption at rest and TLS in transit.
- Change and audit. Infrastructure is applied as code, and the platform keeps an audit trail of what it changes. Drift after apply is reconciled or alerted.
- Detection. DuploCloud's platform covers vulnerability scanning, file-integrity monitoring, and centralized logging for the infrastructure it manages. Those are DuploCloud's controls, described in its own white papers, and they are not a SOC 2 report for Passio.

## Health information

A normal call is a food photo, a barcode, text, or a nutrition question. The customer keeps the person's identity, consent, and health record, and decides what the application shows.

### Can we send protected health information?

Do not. Passio does not offer a Business Associate Agreement and is not a HIPAA business associate. Do not put a name, email, phone number, member id, medical record number, device id, or any other identifier in a request. Send the food input only.

### Is a meal photo or a nutrition question a medical record?

Not in Passio's systems. The request is not stored as a patient chart, and Passio cannot tie it to one of your users unless you include an identifier. If you include one, you have sent Passio data it does not want and cannot hold under a BAA.

### Can a request mention a condition, an allergen, or a GLP-1 program?

Yes, as part of the nutrition question or a Passio AI Studio workflow, and still without a person's identity. Passio uses that context to answer the call. It does not give medication or dosing advice, it does not replace clinical review, and it does not claim a clinical outcome. Your application owns what the person is shown.

### Who sees the contents of a call?

The model provider that runs it, and Passio's production systems for the time it takes to answer. With Zero Data Retention on (opt-in, Growth and Pro), that provider is Google Vertex AI, including Gemini and Anthropic Claude, or OpenAI GPT text with storage turned off. xAI, speech, video, and image models outside Vertex are refused in that mode. Stripe (billing), SendGrid (account email), and Firebase (EasyAI sign-in) do not receive API payloads.

### Is the output medical advice?

No. Recognition, ratings, meal plans, menu guidance, and advisor answers are nutrition information returned as JSON for your application. They are not a diagnosis, a treatment, or a medical device.

### How does a person get their data deleted?

Passio does not hold your users' profiles or food diaries, so a request about one of your users is yours to fulfill. Closing the Passio account deletes that account's configuration and any EasyAI runs Passio stored, within about 30 days. Billing records stay as accounting requires.

### Can we send data about children?

Do not send a child's name or any other identifier. Passio does not run a children's product. A food photo or nutrition question with no identity is processed like any other call.

## Data handling

### What does Passio process, and who owns it?

A call can include a food image, text, a barcode, and the nutrition question. Passio also holds the customer account (owner email, plan, configuration), billing records, and API usage metadata. Passio is the processor. You are the controller. Passio does not sell data and does not use it for advertising.

### Are request bodies stored?

Request bodies are not written to standard application logs. They are processed to answer the call. Operational metadata is kept for about 30 days in Google Cloud Logging: timestamp, method, path, status, latency, protocol, remote IP, user agent, request id, customer account id, and API key identifier. EasyAI customers choose how long runs are kept: not at all, 7 to 365 days, or indefinitely. With logs off, only usage numbers remain (model, tokens, time), and expired logs are deleted daily.

### Is customer data used to train models?

Passio does not keep request content to train foundation models. A misrecognition you report may be added to an internal test set with nothing that identifies you or your users. With Zero Data Retention on, requests go only to providers under a no-training contract. With it off, that provider's own terms decide whether the provider may use inputs. Passio does not publish one rule that covers every provider.

### Where is data processed and stored?

Servers, databases, and storage are in Google Cloud us-central1 (Iowa, United States). The model provider that runs a call may process it outside the United States. Passio does not offer a data-residency guarantee.

### How is one customer separated from another?

Each customer is an account, with its own keys and configuration. Stored assets sit in a bucket locked to that account with IAM. Your end users are not tenants inside Passio.

## Encryption and keys

### What protects data in transit?

Public endpoints use TLS 1.2 or higher and Google-managed certificates. DuploCloud provisions the certificates and terminates TLS on the load balancer. SSL 3.0, TLS 1.0, and TLS 1.1 are not accepted. Calls from Passio to a model provider use TLS as well.

### What protects data at rest?

Google Cloud encrypts databases, object storage, persistent disks, and backups with AES-256. Keys are in Cloud KMS, and access to them is IAM, least privilege. Customer-managed encryption keys are not offered.

### How are API keys handled?

Keys are stored in an encrypted database. An account can hold up to five active keys, each with an expiry date. EasyAI keys can also carry a monthly token limit. Keys are not restricted by IP allowlist. Key identifiers are logged with request metadata, and a key can appear in those logs so engineering can trace a call. The logs are in Google Cloud Logging, limited to Passio engineering by IAM, and kept about 30 days. There is no self-service revoke. Passio replaces a key on request, within one to two days.

## Access

### Who at Passio can reach production?

Production access goes through DuploCloud and Google Cloud IAM, role by role. MFA is on for the DuploCloud, Google Cloud, and GitHub accounts staff use. Access is removed when someone leaves, and permissions are reviewed then and again around year-end. Privileged infrastructure actions are in DuploCloud and Cloud audit logs. Staff are trained at onboarding. Background checks are not part of hiring.

### Can staff open a customer's account?

An operator can open a customer's EasyAI account only for a stated reason, for at most 60 minutes, without billing or admin tools. The session is audited.

### Is there a written information-security policy?

Passio does not publish its own policy set. Infrastructure practice follows DuploCloud's operating model. Vendors are reviewed when they are added and when a contract changes, and Passio relies on each provider's own security program.

## Vulnerabilities and incidents

### How is the platform scanned, and how do fixes ship?

Dependency scanning runs on GitHub commits. Container and image scanning runs through Google Cloud on the DuploCloud-managed build path. There is no published patch clock by CVSS score. API fixes deploy on Passio's side and need nothing from you. SDK fixes ship as a new release. Report a vulnerability to support@passiolife.com. There is no bug bounty.

### What happens if there is a security incident?

Passio finds, contains, and recovers using Cloud Logging and the DuploCloud audit trail. Affected customers are told of a confirmed material incident within 72 hours. There is no separate incident-response document to attach, and this is not a contractual SLA.

## Reliability and recovery

### What uptime should we plan for?

99.9% of Nutrition AI API calls were answered without a server error over the 30 days ending Nov 3, 2026. Client errors, such as bad input or an exhausted plan, are not counted. This is a measurement, not a contractual SLA. EasyAI services run at least two copies, scale with load, and deploy without downtime. If a model fails or slows, calls retry or move to a similar healthy model. On Growth and Pro you can also choose the model per request.

### How are backups and recovery handled?

Databases are backed up nightly and kept for about three years. The recovery aim is to restore service with data no more than about 24 hours old. There is no contractual RTO or RPO. Infrastructure is rebuilt from Terraform and the DuploCloud agent.

### How are we told about maintenance and breaking changes?

Account holders are emailed. A medium or higher risk change gets about 7 days' notice. Deprecations are marked in the docs and stay callable while you move off them.

## Privacy and contracts

### Will Passio sign a DPA?

Yes. A GDPR Article 28 DPA is available to sign, including the 2021 standard contractual clauses for transfers out of the EEA and advance notice of subprocessor changes. It is not published on this site. Use the form on this page and Passio will send it. Passio has not completed a formal GDPR or CCPA audit and does not claim the EU-US Data Privacy Framework.

### Will Passio sign a BAA?

No. It is not offered on any plan. Send food inputs without identifiers, as described under Health information.

## The API

### Does a call run on the device, with nothing sent to Passio?

No. On-device inference is not offered. Recognition and AI routes run on Passio's API.

### Can we see our own usage?

Every AI response names the model in X-Model-Tag and the tokens billed in X-Billed-Tokens-Total. The accounts portal graphs usage. Growth and Pro add a more detailed insights view.

Reliability is measured from production API logs. This snapshot was measured Nov 3, 2026.
