SOKKAN Router · Legal
Terms of Service
Draft — version 2026-10-04. Not yet approved for production. Passages marked “To be validated” are open decisions.
These Terms govern the SOKKAN Router inference API and its account pages (the “Service”), operated by NINABOT Sàrl, Chemin de Riantbosson 19, 1217 Meyrin (GE), Switzerland, company number CHE-287.575.522 (“NINABOT”, “we”). They apply between NINABOT and the person or organisation that opens an account (the “Customer”, “you”). You accept them by ticking the acceptance box when you request a sign-in link. The Data Processing Agreement (DPA) forms part of these Terms; the Privacy Policy explains how we handle account data.
To be validated: “SOKKAN Router” is served on router.sokkan.ch; the trademark check for the product name is not done.
1. The Service
The Service gives programmatic access, through an OpenAI-compatible API, to language models published by third parties (for example Qwen, Apertus or gpt-oss). Each model is run either on infrastructure that NINABOT operates (its own GPU servers in Geneva, or GPU capacity it rents) or by a third-party inference provider (an “upstream provider”). NINABOT does not train or own these models; they are served as published by their authors, under their own licences.
- Catalogue.
GET /v1/modelslists each model with its prices, context length and the regions where it is hosted (regions:CH,EUorUS). The upstream providers are named in the DPA. - Routing. A request is sent to one of the providers available for the requested model. If the first
provider has not started to answer within a short delay, or fails before answering, the request is also sent to the
next one, and the first answer wins. You can restrict routing by country with
X-Data-Location(CH,EUorany), as described in the DPA. The response headerx-sokkan-regionstates the region where each request was served. - Request filtering. Before a request leaves our platform, an automatic filter refuses it (HTTP 400) if the prompt contains credentials such as API keys, access tokens or private keys, and masks Swiss IBANs, Swiss social security (AHV/AVS) numbers and payment card numbers. The filter is pattern-based and is not a guarantee that no sensitive data is ever transmitted.
- Availability. Models are added, changed and withdrawn over time, and a model can be unavailable when none of its providers can serve it. The Service is provided without a service-level commitment, except for the guaranteed throughput of Committed throughput (section 5A).
2. Account and API keys
- The Service is intended for developers and businesses. You must be able to enter into a binding contract and, if you act for an organisation, be authorised to bind it.
- You sign in with a single-use link sent to your e-mail address. Keep access to that mailbox secure: it is the key to your account.
- You create and revoke API keys in your account. A key is shown once; we store only a hash of it and cannot recover it. Every request made with one of your keys is charged to your balance, whoever sends it, until you revoke the key. Tell us without delay at the address in section 13 if you believe a key or your mailbox is compromised.
- You may use the Service inside your own products and offer them to your own users. You remain responsible for those users and must impose on them rules at least as strict as section 6.
3. Prepaid credit
- The Service is prepaid. You buy credit in US dollars (USD) in the amounts offered in your account, through our payment provider Stripe. Credit is added to your balance once the payment is confirmed.
- Credit is not refundable and cannot be exchanged for cash, except where the law requires a refund.
- Credit is valid for 12 months from the date of the purchase that added it.
- Credit cannot be transferred to another account.
- Automatic top-up (optional). If you turn it on in your account, you authorise us to charge the card you saved with our payment provider Stripe, without any further action from you, the amount you chose each time your balance falls below the threshold you set, within the monthly limit you set and at most three times in 24 hours. Each charge comes with an invoice from Stripe and adds credit on the same terms as any other purchase. If a charge fails we turn automatic top-up off and tell you by e-mail; we do not retry. You can change the settings, turn it off or remove the card at any time in your account; this stops further charges.
- Top-up limits. To prevent fraud, the amount of credit you can buy is limited per 24 hours and per 30 days, per account and per card, according to the verification level shown in your account (for example, lower limits during an account's first days). Higher levels require an identity check through Stripe Identity or, for companies, a verification of the company by us. A payment that goes over your limit is refunded in full and adds no credit.
- Because several requests can run at the same time, your balance can occasionally fall slightly below zero. The negative amount is deducted from your next purchase.
- If a payment is reversed or disputed, we may deduct the corresponding credit from your balance and suspend the account until the matter is settled.
To be validated: automatic top-up mandate and top-up limits (added 2026-10-03, wording proposed). To be validated (proposed, not decided): non-refundable credit and the 12-month validity. The expiry is not yet enforced by the software. Tax treatment (Swiss VAT on USD credit sold internationally, Stripe Tax or not) is open: no tax is added at checkout today.
4. Prices and billing
- Models marked
"availability": "committed"are not sold per token: they are offered with Committed throughput under section 5A. The rest of this section applies to all other models. - Prices are those published in
/v1/modelsat the time of the request, in USD per million tokens, with three rates per model: input tokens, cached input tokens (prompt tokens read from the provider's cache) and output tokens. - Each request is charged on the tokens actually processed, as reported by the provider that served it: (input tokens − cached tokens) × input rate + cached tokens × cache rate + output tokens × output rate. The cache rate applies only when the serving provider reports cached tokens; otherwise all input tokens are charged at the input rate. Amounts are rounded up to the next millionth of a dollar.
- If the provider does not report usage (for example, when a stream is interrupted), we estimate it at one token per four characters, and the request is marked as estimated in our records.
- Tokens consumed by a provider that lost the routing race described in section 1 are not charged to you.
- A request is refused (HTTP 402) if your balance cannot cover its estimated input and requested output. Without a
max_tokensvalue, your balance limits the length of the answer. - Every response returns its token usage and cost. Your balance and your usage over the last 30 days are available from your account.
- We may change prices at any time by publishing them in
/v1/modelsbefore they apply. Requests already accepted keep the price in force when they were received. Launch prices may carry an end date.
5. Rate limits
Each API key is limited in requests per minute and in simultaneous requests (by default 60 requests per minute and
4 at a time). Above the limit, the API answers HTTP 429 with a Retry-After header. We may adjust these
limits per key, in particular to protect the Service or the upstream providers. Requests made under Committed
throughput follow section 5A instead.
5A. Committed throughput
Some models are offered only with Committed throughput: GET /v1/models lists them with
"availability": "committed" and the terms of one commitment in committed_throughput
(guaranteed_output_tps, max_streams, price_usd_per_hour, min_weeks,
activation_hours, zone). These terms, as published when we send you the invoice, apply to your
commitment.
- What you buy. Committed throughput is a service level of the SOKKAN Router API: a guaranteed output throughput, expressed in output tokens per second, for the requests of your account to one model. It is a characteristic of our API and nothing else. You do not rent, receive or control any infrastructure, and you are never given access to, an account with or credentials of any third party. The model is served from SOKKAN infrastructure in the zone shown; within that zone, NINABOT chooses, and may change at any time, the compute that serves it. Throughput that your commitment does not use may serve other traffic, including other models, at the same time, as long as your guaranteed throughput is met.
- Zone. Requests made under your commitment are processed in the zone published in
committed_throughput.zonewhen we send you the invoice (for exampleEU: the European Economic Area), under the DPA. The response headerx-sokkan-regionstates it for each request. - Data you must not send. You must not send, in requests made under Committed throughput, sensitive personal data: official identity numbers (such as passport, identity card, social security or tax numbers), financial account data, payment card data or health data. This is a rule of use of Committed throughput. The request filter described in section 1 does not guarantee that such data is detected; you remain responsible for what you send.
- Ordering and payment. You request a commitment by writing to support (the “Request committed throughput” button on the models page). We reply with an invoice from our payment provider Stripe for the hourly price × 168 hours × the number of weeks, at least the minimum number of weeks. The commitment is confirmed when the invoice is paid. Committed throughput is prepaid; it is not charged per token and does not use your credit balance.
- Activation. We activate the commitment within the published activation time (72 hours) after payment, and tell you by e-mail when it is active. Your committed period starts at that e-mail and runs for the weeks paid, in periods of 168 hours. If we do not activate it within the activation time, you may cancel the commitment and we refund the amount paid in full; if you do not cancel, the period starts when the commitment is active, and is not shortened.
- Use. During the committed period, requests from your account to the model are served without any charge to
your balance (tokens are included up to the guaranteed throughput), with at most
max_streamsrequests in progress at the same time across all your keys; above that, the API answers HTTP 429. The model is not available to accounts without an active commitment (HTTP 403). - Guaranteed throughput. For each clock hour of the committed period, the output-token-weighted average speed
at which your requests to the model receive output tokens after their first token is at least the guaranteed
throughput divided by
max_streams(for 1,800 tokens per second and 64 requests: 28.1 tokens per second per request), so that withmax_streamsrequests in progress you receive at least the guaranteed throughput in total. It is measured by us, from our records, on the requests that: (a) have a prompt of at most 4,096 tokens; (b) produce at least 64 output tokens; and (c) were sent while your requests in progress were withinmax_streams. An hour also counts as missed if, for more than 15 minutes of it, the model answered your requests with server errors (HTTP 5xx) or not at all. Hours in which your input tokens exceed three times your output tokens are not measured. A time to first token at or below 5 seconds (95th percentile, prompts of at most 4,096 tokens) is a target, not part of the guarantee. - Service credits. For each missed hour, you receive a service credit of 10% of the price of one week of the commitment, up to 100% of the price of the affected week. We report missed hours to you by e-mail at the end of each week; you may also claim within 30 days of the hour concerned. Service credits are added to your SOKKAN Router balance or deducted from your next Committed throughput invoice, as you choose; they are not paid in cash. They are your only remedy for a missed guarantee, subject to the next item and to section 10.
- No refund. Payments for Committed throughput are not refundable, except (i) as stated under “Activation” and (ii) if we end a commitment before its term for reasons other than your breach, in which case we refund the unused hours pro rata, in addition to any service credits.
- End and renewal. A commitment ends automatically at the end of the last week paid; there is nothing to cancel. To renew, pay the invoice for the next week or weeks, which we send at least 48 hours before the end. If it is not paid by the end of the period, the commitment ends and the throughput may be committed to others.
- Other terms. Sections 2, 6 to 12 and the DPA apply to Committed throughput as to the rest of the Service.
6. Acceptable use
You must not use the Service, or let anyone use it through your account:
- for anything unlawful, or to infringe the rights of others, including intellectual property, privacy and personality rights;
- for deliberate deception or disinformation, or to generate or spread defamatory, discriminatory, violent or sexually exploitative content, or content that encourages suicide or self-harm;
- for facial recognition, credit scoring or social scoring, or in critical systems (medical, legal, financial, military, transport and similar) without appropriate human oversight;
- in breach of export control or sanctions laws;
- to attack, probe or overload the Service, its providers or third parties, to bypass its limits, filters or billing, or to attempt to extract the weights or source code of a model;
- in breach of the licence or acceptable use policy of the model you call, which its author publishes with the model.
Some upstream providers impose their own conditions on the use of the models they serve, and require us to pass them on to you. By accepting these Terms you also accept them, as in force from time to time: for models served by OVHcloud, the OVHcloud Code of Conduct on the use of Artificial Intelligence and the model conditions listed at endpoints.ai.cloud.ovh.net/licences; for models served by Infomaniak, the Infomaniak LLM API terms of use.
7. Suspension and termination
- We may suspend an API key or an account, without notice where urgent, if it breaches these Terms, puts the Service or a third party at risk, is linked to fraud or a disputed payment, or if the law or an authority requires it. Where possible we tell you why and give you a chance to remedy.
- You may stop using the Service at any time and ask us to close your account.
- We may end the Service, or these Terms with you, on 30 days' notice by e-mail. If we end the Service for reasons other than your breach, we refund the unused credit on your balance.
- Sections 3, 8, 9, 10 and 12 survive termination.
To be validated: refund of unused credit if NINABOT itself closes the Service (proposed as the fair counterpart of non-refundable credit).
8. Your content
As between you and NINABOT, you keep all rights in your inputs and in the outputs generated for you; we claim none. You are responsible for having the rights needed to submit your inputs and for how you use the outputs. Prompts and completions are not stored by NINABOT and are never used to train or improve models; the details are in the DPA.
9. No warranty on outputs
Outputs are generated automatically by third-party models. They may be inaccurate, incomplete, biased, offensive or similar to existing protected content, and they do not reflect the views of NINABOT. You must check them before relying on them, in particular where they can affect the rights or well-being of a person. To the extent permitted by law, the Service and its outputs are provided “as is”, without any warranty of accuracy, fitness for a particular purpose or uninterrupted availability.
10. Liability
To the extent permitted by law, NINABOT's total liability under these Terms is limited to the amounts you paid to NINABOT in the three months before the event giving rise to the claim, and NINABOT is not liable for indirect or consequential loss, lost profits or lost data. These limits do not apply to damage caused intentionally or by gross negligence, or where the law does not allow them.
11. Changes to these Terms
We may change these Terms, the DPA and the Privacy Policy. We tell you of any material change by e-mail at least 30 days before it applies, and the new version is shown here with its date. If you do not agree, you may stop using the Service before the change applies; using it afterwards means you accept the new version. Price changes follow section 4.
12. Law and jurisdiction
These Terms are governed by Swiss law, excluding its conflict-of-law rules and the United Nations Convention on Contracts for the International Sale of Goods. The courts of Geneva, Switzerland, have exclusive jurisdiction, subject to any mandatory jurisdiction provided by law.
13. Contact
NINABOT Sàrl, Chemin de Riantbosson 19, 1217 Meyrin (GE), Switzerland — [email protected].