1. What this covers
This policy covers kviria.com, the Playground, the Kviria API and its connect and key pages on api.kviria.com. It says what we collect, why we need it, who else sees it and how long we keep it. If something here is unclear, write to hello@kviria.com.
2. The Playground
You don't need an account. When you start your first session, we create a random guest ID and keep it in your browser. Your sessions are tied to that ID, not to your name or email.
For each session we store the point you picked on the map, your messages, the replies, and the assistant's lookups with what Kviria returned. That lets the conversation continue where you left off.
The replies come from an AI assistant that runs on Cloudflare's Workers AI. It looks places up in Kviria the same way a customer's agent would, so your messages and your map point are sent to it on Workers AI (see section 4).
3. Your Kviria account
The API needs a Kviria account. It has no email and no password: it is a random ID. You get one when you allow an app, such as Claude or ChatGPT, on Kviria's connect page, or when you create a Kviria key on the key page.
Both pages set a cookie on api.kviria.com that holds your account ID, signed so it can't be changed. It lasts 400 days, so this browser reaches the same account next time.
A key is shown to you once. We keep only a one-way fingerprint of it (its SHA-256 hash), never the key itself, so we can't show it again or send it to you. For an app you allow, we keep its name or the domain that publishes it, where its access goes, and a record of the access it was given. That access ends when the app hasn't renewed it for 90 days.
4. API calls
Agents call the API for their users. A call carries the request the agent made from what the user said, such as a place name, a kind of place, a street or an address, with where the user is and a state string that Kviria returned on the previous call. We use these to answer the call. We keep a short record of each call (section 5), not the request itself.
The state includes the user's position. When the user says what they are facing, it also holds that direction and where they said it. It is signed so it can't be changed, but it isn't encrypted: anyone who can read the agent's traffic can read the position in it.
A wallet only pays: it tops up your account's balance, in USDC on the Base network. We keep the paying wallet's address, the amount and the transaction with your account. Base transactions are public.
5. Call records
For each API call we keep a record with: your account ID, when the call came in, how long it took and how it ended; which app made it (the domain that publishes it, the name it gave itself, or "key"); the type of request; the kind of place asked for; the name, or the Kviria ID, of a place asked for; how many streets it named; how many places came back; a coarse area of about 36 km² around the user; and whether the call was paid.
A record never holds the user's position, an address, street names, the places in the answer or a wallet. We use these records to run the limits, to find faults and to see how Kviria is used.
6. Who else processes data
We use these outside services to run Kviria:
- Cloudflare hosts the site and the API, stores our databases, runs the bot check (Turnstile) on Playground sign-up, on forms and on the connect and key pages, and applies rate limits. It sees your IP address and basic request details. It also runs the Playground assistant on its Workers AI service. The assistant receives your Playground messages, your map point and Kviria's answers (see section 2). Cloudflare says it doesn't use this input to train models or to improve its services, and doesn't store it. API calls are not sent to an AI model.
- OpenFreeMap serves the map in the Playground. Your browser asks it for the map around your point, so it sees your IP address and the area you look at.
- Coinbase verifies and settles API payments. It receives the paying wallet's address and the payment.
- Resend delivers the contact and feedback forms to our inbox. It receives what you write, and your email address if you give one.
- PostHog gives us analytics for the website: which pages are opened, what is clicked, how long a reply takes, and which errors happen. It also records sessions: a replay of the page as you saw it, with your clicks and scrolling. What you type into a text box is hidden in a recording, but text shown on the page is not. So a recording of the Playground can include the conversation and the places in it. PostHog is reached through our own address, ingest.kviria.com.
These services handle data under their own privacy policies. We may also share information when the law requires it, or to protect the service and the people who use it.
7. Your browser
The Playground keeps your guest ID, the session you have open and the view you chose in your browser's local storage. The connect and key pages set the account cookie described in section 3. Turnstile may set a cookie for the bot check, and PostHog keeps an anonymous ID so it can count visits.
8. How long we keep it
- Playground sessions, messages and map points: 7 days after your guest ID is created, or at once when you use "Delete my data".
- The map data around your point: up to 24 hours, as a cache.
- Usage and call records: kept with no set end. A Playground record carries your guest ID until your guest data is deleted. A call record carries your account ID until your account is deleted; after that, nothing in it links it to you.
- Your account: deleted after 400 days without use, once it holds no balance and no working key. Its key fingerprints are deleted with it; an app's access has ended long before, after 90 days unused.
- Session recordings: kept by PostHog for up to 30 days. "Delete my data" removes what we store, but not a recording PostHog has already made.
- Daily usage counters, per account and per IP address (Playground turns, and new accounts opened from one network): deleted when the day ends (UTC).
- Balances: until they are spent. Payment records (the paying wallet, the amount and the transaction) are kept as financial records.
9. Your choices
You can remove your Playground data at any time with "Delete my data". You can replace a key on the key page, and the old one stops working. To get a copy of your data, to have it corrected or deleted, or if you lose your key, write to hello@kviria.com: Kviria sends no email itself. We don't sell personal information.
10. Security
Guest IDs, the account cookie and conversation states are signed, keys are kept only as fingerprints, and the site and the API use security headers and rate limits. No online service is perfectly secure. If you find a problem, write to hello@kviria.com.
11. Children
Kviria isn't meant for children under 13, or under the age of digital consent where they live.
12. Where data is processed
Resend and our PostHog project process data in the United States. Cloudflare runs in many countries, so a request can be handled near where it was made. Other providers may process data elsewhere.
13. Changes
When this policy changes, the date at the top changes with it.