> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trynito.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> A key and a request.

<Steps>
  <Step title="Create a key" icon="1" iconType="solid" stepNumber={1} titleSize="h2">
    Create one in the developer console at [app.trynito.ai/api](https://app.trynito.ai/api), then export it:

    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    export NITO_API_KEY="z_sk_your_key_here"
    export NITO_BASE_URL="https://app.trynito.ai"
    ```
  </Step>

  <Step title="Send a request" icon="2" iconType="solid" stepNumber={2} titleSize="h2">
    With curl, or with the OpenAI SDK pointed at Nito (`pip install openai` or `npm install openai`). The base URL ends in `/v1`; the SDK appends `/chat/completions`.

    <CodeGroup>
      ```bash cURL wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
      curl "$NITO_BASE_URL/v1/chat/completions" \
        -H "Authorization: Bearer $NITO_API_KEY" \
        -H "Content-Type: application/json" \
        -d '{
          "model": "z-ai/glm-5.2",
          "messages": [
            { "role": "user", "content": "Say hello in one short sentence." }
          ]
        }'
      ```

      ```python Python wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
      import os
      from openai import OpenAI

      client = OpenAI(
          api_key=os.environ["NITO_API_KEY"],
          base_url="https://app.trynito.ai/v1",
      )

      resp = client.chat.completions.create(
          model="z-ai/glm-5.2",
          messages=[{"role": "user", "content": "Say hello in one short sentence."}],
      )

      print(resp.choices[0].message.content)
      ```

      ```typescript TypeScript wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
      import OpenAI from "openai";

      const client = new OpenAI({
        apiKey: process.env.NITO_API_KEY,
        baseURL: "https://app.trynito.ai/v1",
      });

      const resp = await client.chat.completions.create({
        model: "z-ai/glm-5.2",
        messages: [{ role: "user", content: "Say hello in one short sentence." }],
      });

      console.log(resp.choices[0].message.content);
      ```
    </CodeGroup>

    The reply is at `choices[0].message.content`; `usage` reports the tokens used.
  </Step>
</Steps>

That is it. You are calling Nito.

## Try Next

* **Switch models.** Change `model` and nothing else: `moonshotai/kimi-k3` (open-weight, Private), `anthropic/claude-sonnet-5` or `openai/gpt-5.5` (frontier, Anonymous). `GET /v1/models` is the live list. See [Model List](/models/all-models).
* **Run inside attested hardware.** On models with an attested build, the `:confidential` variant, for example `z-ai/glm-5.2:confidential`, runs inside sealed hardware and returns attestation evidence you can verify. A model that cannot serve the level is rejected, never downgraded. See [Privacy Levels](/privacy/levels).
* **Stream the reply.** Add `stream: true`. See [Stream Your First Response](/api/get-started/stream-your-first-response).

## If Something Fails

* **401:** the key is missing, mistyped, or not sent as `Authorization: Bearer <key>`. Keys start with `z_sk_`.
* **400 naming the model:** the ID is not in the catalog. Copy an exact one from `GET /v1/models`.
* **429 with `insufficient_quota`:** the organization has no funding. An API key needs a subscription or a prepaid balance; add funds on Billing. See [Plans](/plans).

## Next

<CardGroup cols={2}>
  <Card title="Make Your First Request" icon="play" href="/api/get-started/make-your-first-request">
    The same call, field by field.
  </Card>

  <Card title="Stream Your First Response" icon="bolt" href="/api/get-started/stream-your-first-response">
    Tokens as they arrive.
  </Card>

  <Card title="OpenAI SDK Drop-in" icon="plug" href="/api/get-started/quickstart-openai-sdk">
    Existing OpenAI code.
  </Card>

  <Card title="Privacy Overview" icon="shield-check" href="/privacy/overview">
    Levels and attestation.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.