Introduction
Ksty.ch is one account and one key for every API in the catalog. This guide covers the base URL, authentication, billing and errors — everything you need before your first call. Browsing the docs never requires a login.
One account, many APIs
Each API in the catalog is an independent service with its own endpoints, parameters and price — but they all sit behind a single gateway and a single identity. You integrate once: the auth header, the error shape and the billing model never change as you add more APIs. Pick any API from the sidebar to read its full reference.
X-Api-Key header works for every API you have access to.Base URL
Every API is served from a single stateless gateway. Address an API by its slug, and a specific endpoint on that API with dot notation (slug.endpoint). There are no per-vendor hosts to manage.
The gateway accepts both GET and POST for every endpoint. Use query-string parameters for GET, or a form / JSON body for POST — they are read identically.
Quick start
Creating your first API key releases 500 free credits, so you can build before you pay. Call any endpoint with your key in the X-Api-Key header — a first successful call takes under a minute.
X-Api-Key header on any request.That calls Text Analysis; every API works the same way at https://ksty.ch/api/v1/{slug}.
Authentication
All requests are authenticated with an API key sent in the X-Api-Key header. Keys come in live and test modes and are shown in plaintext only once — at creation.
Never send your key as Authorization: Bearer — that header is reserved by the platform. Always use X-Api-Key.
Credits & billing
Usage is metered in credits — no subscriptions, no per-API contracts. 1 USD = 1,000 credits, and every successful live call tells you exactly what it cost in the response headers.
Credits are drawn in a fixed order so free and expiring balances are always spent before money you paid:
If your balance is too low to cover a call, the gateway returns 402 insufficient_credits and nothing is charged — the call never reaches the upstream.
Errors
Every error from the gateway is JSON with a stable machine-readable code, a human message and the request id. Branch on error.code — never on the message text, which may change.
invalid_requestA parameter is missing or malformed. Each API's reference lists its own validation errors.missing_keyNo API key was sent. Send your key in the X-Api-Key header (or an api_key parameter).invalid_keyThe key is not recognised — mistyped, truncated or never issued. Copy the key again from the API keys page. Repeated bad keys from one address are throttled, so fix it rather than retrying.insufficient_creditsThe balance can't cover the call. Top up on the Billing page. Nothing is charged and the call never reaches the API.key_suspendedThe key is suspended (for example after an abuse review). The reason is shown on the API keys page; contact support to have it restored.key_revokedThe key was revoked, or it belongs to a team you have left. Create or use another key.key_expiredThe key is past the expiry date set on it. Create a new key, or one without an expiry.out_of_scopeThe key is valid but not scoped to this API. Add this API to the key's scopes, or use a key scoped to all APIs.sandbox_disabledA test (ksty_test_) key was used on an API with no sandbox. Use a live key for this API.ip_blockedThe key has an IP allowlist and the calling address isn't on it. Call from an allowed address, or edit the key's allowlist.geo_blockedCalls from this country aren't permitted for this API. Contact support if you believe this is wrong.spend_cap_reachedThe account has the credits, but this API's monthly spend cap is used up. Raise or clear the cap on the API's page in your dashboard — topping up won't help.unknown_apiNo public API has that slug. Check the slug against the catalog.unknown_endpointThe API has no endpoint with that name. Check the endpoint list on the API's reference page.method_not_allowedThe endpoint accepts only GET or only POST. Use the method shown for the endpoint.rate_limitedA rate limit was exceeded — per key, per account across all your keys, or the tighter per-account limit on AI APIs. Wait for Retry-After seconds. A second key shares the account limit, so it won't help.api_unavailableThe API is temporarily unavailable. Nothing was charged. Retry later; check the status page.upstream_errorThe API failed while processing the call. Safe to retry — any credits taken are refunded automatically.If an API fails after you were charged, the credits are refunded automatically — so it is always safe to retry a 502.
Rate limits & response headers
Live calls are limited per minute at three levels — per key, per account across all your keys, and a tighter per-account limit on AI APIs. Every response reports the limit you're closest to, so you can slow down before you hit it; a 429 adds Retry-After.
All APIs
8 APIs in 6 categories. One key calls all of them; the badge is the credit cost per call.