Skip to content

developer docs

Build with Skena AI.

Skena's own models behind a plain HTTPS API, and every key you make calls both. Klok is a reasoning model with an OpenAI-compatible chat API. Kvick answers yes or no, multiple choice and ratings about any text or JSON, each with a probability.

Models

Base URL

https://api.skena.ai

Both APIs share one base, https://api.skena.ai, and every path starts with /v1. OpenAI's SDKs take https://api.skena.ai/v1 as their base URL; Jev clients take https://api.skena.ai.

  • Endpoint
    POST /v1/chat/completions
    What
    Klok: OpenAI-compatible chat
    Refusals
    skena_inference_error
  • Endpoint
    POST /v1/systemone
    What
    Kvick: Jev-compatible decisions
    Refusals
    skena_labs_error
  • Endpoint
    GET /v1/models
    What
    Every model your key can call, in OpenAI's shape and the Jev API's
    Refusals
    skena_inference_error

Any other path or method on the base answers 404, in an envelope of its own:

404 Not Found
{
  "error": {
    "message": "unknown-endpoint",
    "type": "skena_api_error",
    "code": "unknown-endpoint"
  }
}

Earlier per-product addresses on app.skena.ai keep working; new code should use this base.

Get an API key

  1. 01Create a Skena account, or sign in, and verify your email.
  2. 02On your dashboard's API key page, make a key and give it a name. Copy it then: it is shown once.
  3. 03Call Klok or Kvick with it. Every call is paid from your Skena AI credit.
  • Make one key per app or server, so you can revoke one without touching the others. An account holds up to 25 keys, each with a name of up to 64 characters; the key you had before names is listed as "Default".
  • Every key starts with skl_ (47 characters) and calls both APIs. A key is shown once, when you make it: Skena keeps only its hash and its last 4 characters, so a lost key cannot be shown again. Make a new one and revoke the old.
  • Revoke a key on the same page and it stops working at once. All of an account's keys share its credit and its limits, and Skena checks the key and your credit on every call, so spent credit takes effect on the next request.

Authenticate

Send your key on every request as Authorization: Bearer <key>, with Bearer spelled just so. The API takes Skena API keys only: a device key from Skena Builder or Skena Servant is refused with a 401.

klok
POST https://api.skena.ai/v1/chat/completions
Authorization: Bearer skl_…
Content-Type: application/json
kvick
POST https://api.skena.ai/v1/systemone
Authorization: Bearer skl_…
Content-Type: application/json

Keep keys on your server or in your own tools, never in a web page or an app you hand out: anyone holding one spends your account's credit. If a key leaks, revoke it.

Credit and prices

Plans cover the products. Credit pays for the API.

A Skena AI subscription, a company seat or early access granted by Skena covers Skena's own products: Skena Builder, Skena Servant and the Skena Agent Harness, each with its own device key.

Every call with your API key is paid from Skena AI credit, whatever plan the account has. Without credit, a call is refused before it runs and costs nothing.

Credit is priced per token, per model:

  • Model
    Klok (klok-1)
    Input
    $0.40 per million
    Output
    $4.00 per million
    Notes
    Text and images. Cached input is charged in full.
  • Model
    Kvick (kvick-1)
    Input
    $0.10 per million
    Output
    Free
    Notes
    Text. Images from Kvick's next release, per image token at this price times the image weight (today 440%).

Klok sets a hold aside before each call: the whole context as input plus max_tokens as output, $0.233 at the default. Only what the call used is charged. Kvick prices the call before it runs and charges its input.

Skena AI credit is one balance: the welcome gift and credit from Skena. Your balance, what it is made of and when each part expires are on the dashboard's Skena AI page.

The welcome gift pays for API calls once Skena Builder or Skena Servant, signed in to your account on a computer, has activated it. Until then a call answers 403 ai-credit-activation-required.

The welcome gift's daily limits on Kvick reset at 00:00 UTC.

Errors

When Skena Cloud refuses a call (a key, credit, a limit), the body is OpenAI's error envelope with a stable code. Its type names the API:

Klok

402 Payment Required
{
  "error": {
    "message": "ai-credit-insufficient",
    "type": "skena_inference_error",
    "code": "ai-credit-insufficient"
  }
}

Klok: skena_inference_error. Every code is in the Klok reference.

Kvick

429 Too Many Requests
{
  "error": {
    "message": "daily-limit-reached",
    "type": "skena_labs_error",
    "code": "daily-limit-reached"
  }
}

Kvick: skena_labs_error. Kvick's own refusals use the Jev API's shapes. Every code is in the Kvick reference.

Status

  • Neither API has an uptime guarantee yet, and either may change.
  • Kvick is a Skena Labs model: please do not send it personal or sensitive data.

Machine-readable descriptions (OpenAPI 3.1): /docs/klok/openapi.json and /docs/kvick/openapi.json. Questions or problems: hello@skena.ai.