QR Codes
Privacy Policy
Privacy Policy
Effective date: October 1, 2026
Provider: Spheric Admin Ltd ("we," "us," "our")
Contact: privacy.widgets@olutely.com
Product: "QR Codes" (the "App"), a ChatGPT app
This policy explains how we process data through the QR Codes App when it is used inside ChatGPT. The App can decode a QR code from a ChatGPT-hosted image or a remote image URL, decode an image selected inside the widget, create and edit QR payloads, display the resulting QR code, and export the generated QR image back to the ChatGPT conversation.
This policy covers Spheric Admin Ltd's processing through the App, its MCP server, widget, hosting, configuration service, operational logs, and analytics telemetry. It does not replace OpenAI's policies for ChatGPT platform processing.
Important privacy notice: QR codes can contain personal or sensitive information. The App processes the information contained in a QR code, or the information you choose to encode, because that processing is necessary to decode, create, edit, and export the QR code you requested. Depending on the QR type you select, this can include contact details, communications, calendar information, precise coordinates, or Wi-Fi network credentials. Only provide information that is necessary for your QR-code task, that you are authorized to use, and for which you have obtained any consent required by law.
qr-code.qrCodeFile.download_url and qrCodeFile.file_id for a ChatGPT-hosted file, or optional
qrCodeImageUrl for a remote image URL.
kind and encodedText, the exact serialized text encoded in
the QR code.
text.url.to, cc, bcc, subject, and body.
phoneNumber.phoneNumber and body.firstName, lastName, organization, title, phones,
emails, website, address, and note.
ssid, password, authentication, and hidden.
summary, description, location, start, end, and
allDay.
latitude, longitude, and query.rawText.qrCodeInformation, containing the normalized fields applicable to the current QR payload and the full
encodedText value.
kind, and include up to the first
160 characters of encodedText.
timestamp and source, where source can be file, url,
information, or empty.
qrCodeInformation is placed in model-visible state. Widget-private state can contain timestamp,
source, exportedFileId, exportDownloadUrl, and lastExportedEncodedText, together with an array of exported
imageIds.
The App exposes only the fields needed for the QR format you choose. For example, contact details are needed to create a contact-card QR code, event details are needed to create a calendar QR code, coordinates are needed to create a geographic QR code, and an SSID and optional Wi-Fi password are needed to create a Wi-Fi QR code. These categories are not required when you select an unrelated QR type.
A Wi-Fi password is credential-like information. If you use the Wi-Fi QR feature, provide a network password only when you control the network or are authorized to share it, and understand that the password becomes recoverable by anyone who can scan or otherwise read the QR code. Do not use the App for account passwords, API keys, authentication tokens, MFA or one-time passcodes, or other account-access secrets.
The App does not have dedicated fields requesting payment-card information, protected health information, government identifiers such as social security numbers, or biometric templates. However, because uploaded QR images, plain text, notes, descriptions, message bodies, and raw payloads can contain arbitrary content, the App could process such information if you place it there. Do not submit those restricted categories. If other information is considered sensitive or special-category data in your jurisdiction, submit it only when it is strictly necessary for the QR-code function you requested and you have a lawful basis and any legally required explicit consent.
Do not encode or decode another person's personal information unless you have the right to do so. Providing an image or payload directs the App to process that content for the QR-code task; it does not give you rights to information that belongs to someone else.
What: A ChatGPT file identifier and signed download URL, a remote image URL, the image bytes retrieved from that URL, and the text decoded from the QR
image.
Why: To retrieve the image the user selected, detect its QR code, parse the encoded content, and open the widget with that information.
Recipients: Our MCP server receives the file reference or remote URL and retrieves the image. OpenAI/ChatGPT is involved when the source is a
ChatGPT-hosted file. A third-party image host selected by the user receives the network request needed to retrieve a remote image and may receive ordinary request data,
such as the requesting server's IP address and request headers, under that host's own policy. Our hosting and telemetry providers can receive the request and response data
described in Section 4.6.
Retention by us: The image is decoded in memory and is not intentionally stored in a separate QR-image database. File references, URLs, decoded content,
and tool responses can appear in operational logs and telemetry as described in Section 4.6.
Your controls: You choose whether to attach a ChatGPT file, provide a remote image URL, or use the App. Use remote URLs only when you are permitted to
cause the image to be retrieved.
What: An image file you select from your device and the QR payload decoded from it.
Why: To let you load an existing QR code directly in the widget.
Recipients: The current widget reads and decodes the selected image locally in the ChatGPT widget runtime. The current widget code does not send the raw
locally selected image to our MCP server. The decoded payload is then placed in ChatGPT widget state and used to create an exported QR image as described below.
Retention by us: We do not intentionally retain the raw locally selected image in our own application database. OpenAI/ChatGPT can process the decoded
payload, widget state, and generated export under its own policies.
Your controls: Selecting a local image is optional. You can stop using the widget or choose a different QR task.
What: The applicable fields listed in Section 2, their normalized values, the payload type, and the complete encodedText or
rawText. Depending on your selection, this may include names, organization and job title, phone numbers, email addresses and recipients, postal address,
website, notes, message subjects and bodies, Wi-Fi SSID and password, authentication type, hidden-network status, event summary and description, event dates and times,
event location, latitude, longitude, location label, URLs, or other free-form text.
Why: To parse, validate, normalize, serialize, display, edit, generate, and export the QR code you requested.
Recipients: Our MCP server and OpenAI/ChatGPT receive payloads supplied to the tool or decoded by our server. OpenAI/ChatGPT and its widget runtime receive
edits made in the widget. Our logging and analytics systems can receive payloads contained in MCP requests and responses as described in Section 4.6.
Retention by us: We do not use a separate application database to keep a persistent history of your QR payloads. Payloads can still be retained in
operational logs or Mixpanel telemetry under Section 4.6, in support communications under Section 4.8, and by OpenAI/ChatGPT under its own retention settings.
Your controls: You choose the QR type and the values supplied. Avoid unnecessary personal data, clear fields you do not need, and do not provide the
restricted categories identified in Section 3.
What: The server can return the complete normalized qrCodeInformation object, including the exact encoded payload; assistant-visible text
containing the source, payload type, and a preview of up to 160 characters; and response metadata containing source and timestamp. The widget persists the complete current
QR information in modelContent. It can persist source/timestamp and export bookkeeping in privateContent, including the exported file identifier,
download URL, last exported encoded text, and image identifiers.
Why: To keep the widget and ChatGPT synchronized, let ChatGPT reason about the decoded or created QR code, preserve edits during the conversation, avoid
unnecessary duplicate exports, and make the generated image available for download.
Recipients: OpenAI/ChatGPT, the assistant model for assistant-visible and model-visible content, and the ChatGPT widget runtime. Widget-private content is
intended for the host/widget rather than the assistant model, but it is still processed by OpenAI/ChatGPT. The initial MCP response can also be captured in our operational
logs and Mixpanel telemetry.
Retention by us: We do not intentionally copy widget state into a separate application database. ChatGPT conversation, widget, and file retention is
controlled by OpenAI. Initial server responses can be retained as described in Section 4.6.
Your controls: You can edit or clear QR fields, stop using the widget, and manage the related ChatGPT conversation through OpenAI's controls.
What: Once the widget contains a renderable QR payload, it renders a 1024-by-1024 PNG and automatically uploads it through the ChatGPT host file API after
a short delay. The widget can repeat this process when the encoded payload changes. OpenAI returns a file identifier and download URL, which the widget stores with the
encoded-text value and exposes through the Export button.
Why: To attach the current QR artifact to the conversation and make it downloadable.
Recipients: OpenAI/ChatGPT and its file-storage infrastructure. The current widget does not upload the generated PNG to our MCP server.
Retention by us: We do not intentionally keep a copy of the PNG in our own application database. OpenAI controls retention of the uploaded file, file ID,
and download URL.
Your controls: The upload occurs automatically when a renderable QR payload exists; pressing Export opens the resulting download URL but does not initiate
the first upload. Do not create or edit a QR payload in the widget if you do not want the generated QR image uploaded to ChatGPT.
What: Technical data generated when the App is invoked or delivered, including IP address, user agent, host and URL, HTTP method, timestamp, response
status, response time, MCP method, JSON-RPC request ID, MCP session ID, error and diagnostic information, and full MCP request and response bodies. The current server
utilities write full MCP request and response bodies to server console logs and send server-side HTTP/MCP events to Mixpanel's EU endpoint. Those bodies and events can
include all tool parameters and outputs described in this policy, signed file download URLs, remote image URLs, QR payload fields, exact encoded text, assistant-visible
previews, source/timestamp metadata, and nested platform metadata. Platform metadata can include openai/subject, openai/session,
openai/userAgent, openai/locale, timezone_offset_minutes, and an openai/userLocation object containing fields such as
city, region, country, timezone, latitude, or longitude when OpenAI supplies them.
Why: Service operation, security, abuse prevention, reliability, performance monitoring, debugging, usage analysis, and incident response.
Recipients: Our hosting, CDN, infrastructure, logging, and analytics providers; Mixpanel; and personnel who need access for operations, security, or
support.
Retention: We aim to minimize operational logs and generally retain them for no longer than 30 days unless a longer period is reasonably necessary for a
security investigation, abuse prevention, dispute, or legal obligation. Mixpanel telemetry is retained in our analytics workspace until deleted by us or removed by
applicable workspace retention settings.
Your controls: Do not include unnecessary personal or sensitive information in QR images, payloads, or surrounding prompts. You can choose not to use the
App and can contact us with a privacy request. Technical collection needed to operate and secure an invocation cannot be disabled through the widget.
What: The widget requests its current configuration using the App identifier and version and can include host theme, locale, device type, device platform,
and whether the device supports hover or touch, together with ordinary web-request data such as IP address and user agent. If a feedback control is enabled by the current
configuration and you choose to submit it, the submission can include thumbs-up or thumbs-down sentiment, your comments, the source label, a feedback subject, and the
widget page URL.
Why: To deliver the correct widget configuration, adapt optional presentation features, and receive feedback you choose to submit.
Recipients: Our configuration, hosting, and infrastructure providers and, for submitted feedback, the configured feedback-form service.
Retention: Configuration delivery logs are minimized where feasible and generally retained for no longer than 30 days, subject to security and legal
exceptions. Submitted feedback can be retained for up to 24 months after final resolution unless a longer period is required by law or needed to establish, exercise, or
defend legal claims.
Your controls: Feedback submission is optional. You can omit comments or decline to use a feedback control.
What: Your email address and the contents of your message.
Why: To respond to privacy, support, or legal requests and maintain a record of the request.
Recipients: Spheric Admin Ltd and our email/service providers acting on our behalf.
Retention: Up to 24 months after final resolution unless a longer period is required by law or reasonably needed to establish, exercise, or defend legal
claims.
Your controls: You choose whether to contact us and what information to include.
Depending on your location and the context, we process data on one or more of the following bases:
Where processing relies on consent, you can withdraw that consent for future processing by stopping use of the App and contacting us. Withdrawal does not make prior processing unlawful and does not itself delete records controlled by OpenAI, remote image hosts, or another independent provider.
We do not intentionally set advertising cookies through the QR Codes widget. ChatGPT/OpenAI, your browser, our hosting and configuration providers, Mixpanel, remote image hosts, and a feedback provider can use their own operational cookies or similar technologies for platform operation, security, analytics, or content delivery under their own policies.
We do not sell personal information. We may disclose data only as reasonably necessary to:
Depending on your jurisdiction, you may have rights to access, correct, delete, restrict, or object to processing of personal data we hold, and to withdraw consent where processing relies on consent.
To exercise rights or ask questions, contact privacy.widgets@olutely.com. We may need to verify your identity before fulfilling a request. We may not control data retained independently by OpenAI, Mixpanel, a remote image host, or another provider, but we will explain the relevant control where we can.
Because the App runs inside ChatGPT, you can also manage conversation, account, uploaded-file, and generated-file data through OpenAI controls. OpenAI's privacy policy: https://openai.com/policies/privacy-policy.
The App may be accessed globally, and data may be processed in countries where we or our service providers operate. Where required, we use appropriate safeguards for international transfers. Mixpanel telemetry is sent to Mixpanel's EU endpoint, although Mixpanel and its subprocessors may operate in additional jurisdictions under their applicable terms and safeguards.
We implement reasonable technical and organizational safeguards designed to protect data processed through the App. QR codes are designed to make their encoded content readable to scanners, so anyone who obtains an exported QR image may be able to recover its contents. Do not share a generated QR image more broadly than intended. No internet or software system can be guaranteed completely secure.
The App is not directed to children under 13 (or the minimum age required in your jurisdiction). We do not knowingly collect personal information from children through this App.
ChatGPT/OpenAI independently processes chat content, account information, tool inputs and outputs, uploaded files, generated QR images, widget state, model-visible content, widget-private content, and platform telemetry under OpenAI's own terms and privacy practices. This policy describes Spheric Admin Ltd's processing through the QR Codes App only.
We may update this policy from time to time. If we make material changes, we will update the effective date above and ensure this policy continues to reflect the App's current tool inputs, outputs, nested fields, metadata, widget behavior, and data uses.
Questions about this policy or App privacy practices: privacy.widgets@olutely.com (Spheric Admin Ltd).