Terms of Service
Last updated: August 5, 2026
These Terms of Service (“Terms”) govern your use of Gandr’s website, its checkout, and the Spex-TTS streaming text-to-speech API (together, the “Service”). You accept them when you sign in, when you place an order, and every time you send a request with a Gandr API key.
Some terms a contract normally carries are not settled yet. They are named one by one under What is not settled at the end, and nothing above that section papers over them.
Who may use the Service
You may use the Service if you can enter into a contract. If you are using it for an organisation, you are telling us you are authorised to accept these Terms on its behalf, and they bind that organisation.
You are responsible for everything done under your email address and under your API keys, whether or not you did it.
We may decline an order, withdraw self-serve availability, or route an order to a person instead of a button. What you have already paid for is unaffected when we do.
Your account is an email address
The sign-in at gandr.ai/join has no password. You sign in with a six-digit code we mail you or with Google, and proving you can read the inbox is the whole of the sign-in. A code is good for ten minutes and for five attempts; sends are limited to five an hour per address.
The address is the identity. We hold no separate account record, so every order, receipt and key belongs to the address that bought it, and we show them to that address and to nobody else. A sign-in lasts fourteen days on that browser, then you sign in again.
The name on an order is a label for the receipt, not an identity. Keep the inbox itself secure: anyone who can read it can sign in as you, and anyone signed in as you can see your keys.
We send mail that is part of the Service, sign-in codes, receipts, and notices about your orders and your subscription. Those are not marketing and there is nothing to unsubscribe from while you hold an account.
What we sell
Streams. A stream is one thing talking at a time, held open around the clock and pointed wherever you like. What you buy is how many streams you hold at once, concurrency. A stream is not priced by the minute, by the voice, or by the request. The key we cut for it is provisioned with a character allowance set from the streams on your order, and tokens are counted against it.
Four streams is the largest fleet we set up at a button. Past four we size it with you before it goes live, because a stream is capacity held open for you whether you are speaking through it or not. From 500 lines there is no published number and a person quotes it, with volume, burst and failover priced together.
Packs. A pack is prepaid tokens: $10 per million tokens, one payment, nothing recurring. One token is one character. The largest pack we sell in one go is 50 million tokens. The key carries the tokens it was bought with and it runs one session at a time. GET /v1/usage reports the tokens counted against the key for the current month and the allowance on it. That count is kept per serving node rather than in one place, so a remaining figure is approximate.
A monthly token plan. The same rate as a pack, $10 a million tokens, charged every month instead of once. You choose how many millions: one million is $10 a month, five million is $50 a month. One token is one character. The allowance is set for the period and is reset when the period renews, so what you have not spent by the end of a month is not added to the next one.
The amount you are charged never arrives from your browser. Your order carries a quantity; the price is the one we publish, resolved on our own server and held by our payment processor.
Billing and renewal
Our payment processor takes the card. We never see the number.
Currency and tax. Every price on this site is in US dollars and is exclusive of tax. Where a sales tax, VAT or other duty applies to your purchase, you are responsible for it. We do not add tax at checkout today; if we are required to collect it, it will be shown to you before you pay.
A monthly token plan. Charged every month at $10 a million tokens for the number of millions on your order, renewing monthly until you cancel. Each renewal starts a new allowance for that month.
A stream, month to month. $180 per stream per month, renewing monthly until you cancel.
A stream, annually. $1,800 per stream for the year, $150 a month, for 1 to 50 streams, and $1,620 per stream for the year, $135 a month, for 51 to 499. From 51 streams up, annual is the only recurring rate we publish. It renews yearly until you cancel.
A first month. Where we set one on your order, it is a single charge at the published month-to-month rate and nothing recurs from it. Anything after it is a subscription you agree to separately.
A pack. One payment for a fixed number of tokens. It does not renew, it cannot lapse, and the tokens on it do not expire. Whether the allowance ever refreshes is not settled; see What is not settled.
An order becomes active when our payment processor tells us the payment settled, we ask it rather than believe a browser, and the key appears on your dashboard. We do not send keys by email. If a payment fails and the subscription ends, the key is revoked in the same way a cancellation ends it.
A failed payment. Our payment processor retries a failed charge on its own schedule, and your key keeps working while it does. We do not promise a grace period of any particular length. When the processor gives up and the subscription ends, the key is revoked at every door.
If we change a price. We may change the prices we publish. A change never applies to a period you have already paid for. For a recurring order, we will tell you at least 30 days before the first renewal charged at the new price, and cancelling before that renewal is how you decline it.
Cancelling, refunds, and what happens to your key
Cancel at any time from Manage billing on your dashboard, which opens the billing portal for the customer record on your address.
Cancelling is not a revocation. It is a decision about the next period: your key keeps working to the last second of the period you have already paid for, and it is revoked when that period ends. We are told the period has ended by our payment processor, and the key stops being honoured at every door that serves the API, not at one of them.
Nothing is prorated. A period is charged whole and it runs whole: cancelling part way through one does not reduce that charge and does not credit the rest of it back. Nothing in this system computes a part period, in either direction.
A pack has no period to cancel. Nothing recurs from it, so there is nothing to stop, and the tokens on the key do not expire, they are there until you spend them.
If you come back to a stream later, we re-issue the key under the same name, so the credential already in your code starts working again. At a different size the key string itself changes, because the size is part of the key, your dashboard always shows the current one.
A refund is not a cancellation, and it does not wait. A refunded payment is not a paid period, so when our payment processor tells us one was refunded in full we revoke the key it paid for straight away, at every door, a pack the same as a stream, its tokens with it. A partial refund is not that and leaves the key alone.
When a refund is owed. A pack is refundable in full for 14 days from the payment, as long as no characters on its key have been spent. Once any of it has been used, it has been delivered and it is not refundable. A subscription period is not refundable once it has begun: the capacity was held open for you whether you spoke through it or not, which is what the price pays for, and cancelling stops the next charge rather than returning the current one. This is the whole of what you are entitled to. We can always choose to refund more than this, and sometimes will, but a goodwill refund is not a promise of the next one.
When the failure is ours. If we cannot serve you and the cause is on our side, we refund the period or the unspent tokens you paid for, whichever is the thing you cannot use, and you do not have to ask within any window. If we end your access for a breach of these Terms, we do not refund what is left. If we end it for any other reason of our own, we refund the unused part.
Characters come back when the failure is ours. When a render dies on our side, the fleet saturated, or a worker refusing before any audio has reached you, the tokens it reserved are returned to your key automatically. They are not returned for a render that started and was cut off part way, because the machine time was spent, nor for a call we refused because of the request itself.
Your API key
A key is a signed credential that names the order that paid for it. It is shown on your dashboard, and on the status page for the order it was cut for. We never put a key in an email. Anyone holding it can spend what it holds, so treat it like a password.
A stream key carries the number of streams you bought as its concurrency. A pack key carries the tokens you bought and one session.
Keys are per customer. Do not publish one, and do not share or split one to get past a limit you did not buy. To rotate a key or add another, write to contact@gandr.ai. Tell us the moment you think one has leaked and we will revoke it.
Acceptable use
This is a voice API, so this section is the one that matters most. It applies to what you send, what you generate, and what you do with the audio afterwards.
Consent for every cloned voice. Clone only from audio you have the right to use. For a real person’s voice that means that person’s permission for this use. Ten seconds of a consenting speaker is enough audio to make a clone, which is exactly why consent is the line rather than difficulty. We cannot verify it for you, so keep your own record of it.
No impersonation. Do not use the Service to make a real person appear to say something they did not say, and do not present generated audio as an authentic recording of a person.
No deception for gain. No voice phishing, no defeating voice authentication, no posing as a company, an official, a bank or a relative, and no synthetic audio built to make someone act against their interests by believing it is human when it is not.
Nothing unlawful, and nothing that harms people. That includes harassment, threats, sexual content involving minors, unlawful surveillance or recording, and any use that breaks the law where you are or where your listeners are.
The text is yours to answer for. We render what you send. You are responsible for the transcripts your system produces, for holding the rights to the words in them, and for what your listeners are told.
Leave the watermark alone. Every render carries an inaudible watermark applied at generation. It marks audio as made by our engine; it does not say whose voice it is. Do not strip or obscure it. Report suspected misuse to contact@gandr.ai and we will investigate against the watermark record.
Do not work around the limits. No scripting the sign-in or the order endpoints, no evading a rate limit or a revoked key, and the keyless demo on this site is for hearing the engine rather than for running on.
Where the law requires a listener to be told they are hearing a synthetic voice, making that disclosure is yours.
Limits, and what they are for
The published per-key limits are 2,000 characters per request, 120 requests a minute, a clone reference of about 1.5 MB, and a 4 MB request body at the edge. Over the request rate the API answers 429 rate_limited. A saturated node answers 503 at_capacity, and that call is worth retrying.
Concurrency is what you bought: a stream key holds the streams on your order, a pack key holds one. Every key also carries a character allowance, the tokens a pack was bought with, and an allowance set from your order on a stream key. Over that allowance the API answers 402 quota_exceeded, which is not a rate limit and not worth a retry. A stream is not priced by the minute, by the voice, or by the request.
The doors on this site are limited too, and for the same reason: ordering is capped at six orders an hour and twenty a day from one network address, and sign-in codes at five an hour per address. These stop scripts, not customers.
We may change a technical limit to keep the fleet standing. Where a change would reduce what you bought, we will tell you before it applies to you.
Your content, and ours
We do not train models on your content. Not your transcripts, not your reference audio, and not the audio we generate for you.
Transcripts are processed in memory for the render and are not kept after the response completes, and no durable archive of your renders is kept. A cloned reference is fingerprinted so a repeat call can skip re-cloning; that cache holds derived voice features, not a copy of your library. We keep usage counts per key, and those are numbers rather than content. Traffic is encrypted in transit, and keys never appear in generated audio, in publicly served logs, or in error bodies.
We claim no ownership of the text or the reference audio you send us.
The Service stays ours: the site, the documentation, the API and the Spex-TTS engine behind it. These Terms give you the right to call the API with your key, and transfer nothing else.
Rights in the generated audio are not decided here. Nothing on this site or in the API states who holds them, or whether generated audio may be used to train other speech models, so this document does not decide it either. It is listed below as a gap the founders must close.
How we handle personal information is in the privacy policy.
Availability, and the absence of a warranty
The Service is provided as it is. We publish no uptime commitment anywhere on this site and we make none here. Any service-level commitment has to be written into an agreement signed with us; nothing on this page is one.
The performance figures we publish are measurements, taken on our own production API with the basis stated beside each one. They are not promises. A measurement on our fleet is not a guarantee about your traffic, your network, or your workload.
Formal certification, SOC 2 included, is on the roadmap and is not complete. What is in force today is on the security page, and we say only what is true there.
To the maximum extent the law allows, we disclaim the implied warranties, merchantability, fitness for a particular purpose, and non-infringement, and we do not warrant that the Service will be uninterrupted, error-free, or fit for a use we have not agreed with you in writing.
Limitation of liability
To the maximum extent the law allows, we are not liable for indirect, incidental, special, consequential or punitive damages, or for lost profits, lost revenue, lost data, or the cost of substitute services, arising out of your use of the Service.
Our total liability for all claims is limited to what you paid us for the Service in the twelve months before the claim. That figure is the common shape of this clause rather than a decision anybody here has made yet; it is listed below for counsel to confirm.
Some places do not allow these exclusions. Where that is so, they apply as far as the law there allows and no further.
Suspension and termination
You can stop at any time. Cancel in the billing portal and access runs to the end of the period you have paid for.
We may suspend a key or revoke it when the subscription ends or a payment fails, when this document’s acceptable use is breached, when a key has leaked, or when a request pattern threatens the fleet or other customers.
For a serious breach, impersonation, fraud, unlawful content, we may revoke without notice, and we will tell you why. Revocation stops the key being honoured at the API; audio you have already generated is unaffected.
Whether an unused prepaid balance is returned when we end access for a breach is not settled; see below.
Changes to these Terms
We may change these Terms. The date at the top of this page moves when we do.
A material change is announced by email to the address on your account, or on the site, before it applies to you. Your price does not change inside a period you have already paid for.
If you do not accept a change, cancel, access runs to the end of the paid period.
What is not settled
Every item here is a hole this document refuses to fill by guessing. Each one names what has to be inserted and who has to decide it.
- The legal entity. No company name, registered address or place of incorporation appears on this site or anywhere in its code. Insert the entity that contracts with the customer, and its address, in the first paragraph.
- Governing law and venue. Not chosen anywhere. Insert the law these Terms are read under and where a dispute is heard.
- Disputes. There is no arbitration clause, no class-action waiver and no notice-before-suit period here, deliberately. Decide with counsel whether you want them; they cannot be written from the code.
- The pack allowance over time. What a pack costs and what it buys is fixed: one payment, a fixed number of tokens, nothing recurring. What the key’s character allowance does after the first month, a balance that depletes once, or one that renews with the month, is not decided in the code, so this document does not state it. Decide it, then say it here, on the pricing page and in the docs in the same words.
- Age and eligibility. No minimum age is set anywhere in this system. Set one, and check it against the places you sell into.
- Rights in generated audio. Neither the site nor the API says who holds the rights in the audio the Service returns, or whether it may be used to train other speech models. Decide both, then state them here and on the pricing page in the same words.
- The liability cap. The twelve-month cap above is a default, not a decision. Confirm or replace it.
- Data protection paperwork. No data-processing agreement is offered today and no sub-processor list is published. Decide what you will sign before an enterprise buyer asks.
- Review. These Terms have not been read by a lawyer. They were written from what the code and this site actually do, which is the right input and not a substitute for the review.
Contact
Questions about these Terms? Email contact@gandr.ai.