← Back to home

Privacy policy

What we collect, what we don't, why we're able not to, and which records survive account closure — we state that last one more plainly than is customary.

Last updated
2026-08-14
Status
Draft · not yet in force, pending review by qualified counsel

1Scope

  1. 1.1

    This policy covers how we handle your personal data when you use the agiplan.dev website, console and API. The operating entity is the data controller for the purposes of this policy.

  2. 1.2

    It does not cover how upstream model providers handle data within their own services. Your requests ultimately reach one of those providers; see section 6 and that provider's own policy.

2What we collect

  1. 2.1

    Account data: email address, an irreversible digest of your credentials, account creation time, your stated location. No third-party account identifiers — third-party sign-in is not built, so we hold none of that data.

  2. 2.2

    Transaction data: orders, payment channel receipts, invoice details and tax number (only when you request an invoice), balance ledger entries. Refunds additionally involve identity verification data.

  3. 2.3

    Usage metadata: call time, target capability group and model identifier, input and output token counts, the resulting CU, latency, whether a failover occurred, HTTP status code, trace ID.

  4. 2.4

    Technical logs: IP address, user agent, API key identifier (never the key itself). Used for abuse prevention and troubleshooting.

3What we do not collect

  1. 3.1

    Request and response bodies are never written to persistent storage. The prompts, context and attachments you send to a model, and what the model sends back, do not enter our logs, databases or object storage.

  2. 3.2

    One exception, stated here rather than buried elsewhere. `/v1/responses` offers `previous_response_id` so you don't have to resend the whole context each turn; when you use it we have to keep that conversation's messages server-side to continue it. That content lives in our database for at most 5 hours and is then deleted by a scheduled job. Not using the parameter produces no such storage, and neither do `/v1/chat/completions` or `/v1/messages`. We hold this state ourselves rather than at an upstream provider so that failover stays invisible to you — those 5 hours are the price, so we write them down.

  3. 3.3

    This is not "retained briefly" or "retained encrypted". It is *not written*. Nothing in the usage metadata listed above contains the content itself.

  4. 3.4

    We use no cookies or equivalent technology for cross-site tracking, and integrate no third-party advertising or behavioural analytics SDK. The console sets only the session cookie required to keep you signed in.

4Why we're able not to collect it

  1. 4.1

    The gateway streams request and response bodies through: data passes through memory buffers to the upstream provider and back to you, and at no point does any code hand it to the storage layer. Token counts for metering come from the upstream usage fields or a local tokenizer, neither of which requires keeping the text.

  2. 4.2

    This carries a cost we accept: when something goes wrong, we cannot look at what you sent. When you report a problem we see only metadata against a trace ID. We think the trade is worth it — the difference between a system that *could* retrieve your content if it had to and one that *cannot* is a difference in kind, not degree.

  3. 4.3

    If you want help diagnosing a specific call, you will need to supply the content yourself. We will not, and cannot, recover it from history.

5How we use it

  1. 5.1

    To run the service: routing requests, metering quota, producing invoices, keeping you signed in.

  2. 5.2

    To keep it safe: identifying anomalous call patterns, preventing key abuse and quota circumvention. Every such judgement rests on metadata (see section 8).

  3. 5.3

    To meet legal obligations: tax, accounting and record-keeping requirements.

  4. 5.4

    To notify you: quota warnings, incident notices, changes to terms. Marketing email requires separate consent and can be turned off at any time.

  5. 5.5

    We do not use any of your data to train or fine-tune models, and we do not sell, rent or otherwise supply it to data brokers. This is also a contractual obligation under our Promises.

6Who we share it with

  1. 6.1

    Upstream model providers. Your request body must reach the provider behind the model you selected, or no inference is possible. We transmit over API channels and enable the provider's zero-retention or no-training options wherever they exist. The console shows which provider currently serves each model.

  2. 6.2

    Payment channels. Order amount and order number only. We never touch your card number or payment credentials.

  3. 6.3

    Infrastructure providers. Cloud compute and managed database. They act as processors under contract and may not access business data for their own purposes.

  4. 6.4

    Courts and regulators, on receipt of a legally effective demand. We check the demand's validity and scope, disclose only the narrowest data actually required, and notify you unless prohibited by law. We publish counts of such demands in a transparency report.

  5. 6.5

    That is the complete list. There is no fourth category.

7Cross-border transfers

  1. 7.1

    The service is offered worldwide and some upstream providers sit outside mainland China. When you select a model served from abroad, your request content is transmitted to that provider's jurisdiction.

  2. 7.2

    Users in mainland China may use only models marked as available there (see section 4 of the Terms); inference for those models is performed within the mainland.

  3. 7.3

    Account and transaction data are stored in the database of the service region. Where a transfer crosses borders we complete the assessment and notification duties applicable law requires.

8Retention

  1. 8.1

    Request and response bodies: not retained. The only exception is Responses session state when you use `previous_response_id`, see the next line.

  2. 8.2

    Responses session state: created only when you use `previous_response_id`, kept for at most 5 hours, then deleted automatically.

  3. 8.3

    Technical logs: deleted automatically after 30 days.

  4. 8.4

    Usage metadata: kept while the account exists so you can query and reconcile it. On closure, handled per section 10.

  5. 8.5

    Transaction and ledger records: retained 10 years from the accounting date, as financial and tax law requires.

  6. 8.6

    Account data: kept while the account exists, deleted within 30 days of closure.

9Your rights

  1. 9.1

    Access and export: the console exports your full usage detail and invoices as CSV and JSON at any time. No request, no waiting.

  2. 9.2

    Correction: account details are editable in the console.

  3. 9.3

    Deletion and closure: see the next section.

  4. 9.4

    Withdrawing consent: you can switch off marketing notices, disable pay-as-you-go and revoke API keys at any time.

  5. 9.5

    Complaints: if you think we have handled your data improperly, write to privacy@agiplan.dev. We respond within 15 working days. You are also entitled to complain to your supervisory authority.

10What happens when you close your account

  1. 10.1

    Status first: self-service account closure is not built yet. What follows is the rule closure will follow, not a button you can find in the console today. Until it exists, email support@agiplan.dev to request deletion and we apply the same rules by hand; this sentence goes away once it ships.

  2. 10.2

    Erased outright: email address, credentials, stated location, invoice and identity verification details, every API key, technical logs. Within 30 days, with written confirmation once done.

  3. 10.3

    Not erased, but detached from you: transaction records, balance ledger, usage metering records.

  4. 10.4

    Why. These three are append-only in our database — they cannot be modified or deleted. That is not a failure to implement deletion; it is the precondition for a ledger anyone can trust. A ledger that can be edited proves nothing in a billing dispute, and it would let us quietly paper over our own metering errors. The same rule binds us as binds you.

  5. 10.5

    What detaching actually means. The user identifier in those records is replaced with an irreversible anonymous identifier and direct identifiers such as the email are cleared. Afterwards nothing in those records points back to you, and we ourselves cannot re-associate them.

  6. 10.6

    We could have written "on closure we delete all of your data" here, as most policies in this category do. It would not match our implementation. We would rather state this clearly than make a promise we cannot keep.

  7. 10.7

    "Unlinking" requires changing append-only ledger tables, which is a change that has to be designed carefully — we will not loosen the rules on those three tables to ship faster.

11Security

  1. 11.1

    TLS end to end. The database sits on a private network with no public exposure.

  2. 11.2

    API keys are stored as SHA-256 digests; the plaintext is shown once at creation and cannot be recovered afterwards, by us included. Keys can be rotated, and the old key stays valid for a 24-hour grace period so a rotation doesn't cut you off mid-deploy.

  3. 11.3

    Low-entropy secrets such as sign-in credentials are stored with salted argon2id. Using different algorithms for the two is deliberate: high-entropy keys must be verifiable by constant-time lookup, low-entropy secrets must resist brute force.

  4. 11.4

    Internal access follows least privilege, and any operation touching user data is written to an immutable audit log.

12Security incidents

  1. 12.1

    If an incident could affect your personal data we notify affected users within 72 hours of confirming it, describing what happened, the likely impact, what we have done and what you can do.

  2. 12.2

    For incidents affecting more than 1% of users we publish a signed post-mortem within 30 days, with a timeline and remediation items.

  3. 12.3

    We will not delay notification on the grounds that "we have no evidence the data was misused".

13Children

  1. 13.1

    The service is not directed at children under 14. If we learn we have collected a child's personal data we delete it immediately.

  2. 13.2

    Users aged 14 to 18 should use the service with the consent of a parent or guardian.

14Changes to this policy

  1. 14.1

    Changes are marked with the update date at the top of the page.

  2. 14.2

    Material changes that broaden collection, add a category of recipient or extend retention take effect 30 calendar days after we notify you by email, and until then you may close your account and receive a pro-rata refund.

  3. 14.3

    We keep every historical version of this policy publicly available.

Privacy questions: privacy@agiplan.dev. This is a draft, pending review by qualified counsel.