---
title: "POST /ai/generate-stream"
method: POST
path: "/ai/generate-stream"
tags: ["/ai/"]
---

# POST /ai/generate-stream

`POST /ai/generate-stream`

## Request body

- AiGenerateRequest
  - `input` string, required — Input for the text generation model
  - `model` '2.7B' | '6B-v4' | 'euterpe-v2' | 'genji-python-6b' | 'genji-jp-6b' | 'genji-jp-6b-v2' | 'krake-v2' | 'hypebot' | 'infillmodel' | 'cassandra' | 'sigurd-2.9b-v1' | 'blue' | 'red' | 'green' | 'purple' | 'clio-v1' | 'kayra-v1', required — Used text generation model
  - `parameters` AiGenerateParameters, required
    - `stop_sequences` array[]
      - integer[]
    - `bad_words_ids` array[]
      - integer[]
    - `line_start_ids` array[]
      - integer[]
    - `use_string` boolean — If false, input and output strings should be Base64-encoded uint16 numbers representing tokens
    - `logit_bias` array[]
      - integer[]
    - `logit_bias_exp` object[]
      - `sequence` integer[], required
      - `bias` number, float, required
      - `ensure_sequence_finish` boolean
      - `generate_once` boolean
    - `order` integer[]
    - `repetition_penalty_whitelist` integer[]
    - `temperature` number
    - `min_length` number, required
    - `max_length` number, required
    - `do_sample` boolean
    - `early_stopping` boolean
    - `num_beams` number
    - `top_k` number
    - `top_a` number
    - `top_p` number
    - `typical_p` number
    - `repetition_penalty` number
    - `pad_token_id` number
    - `bos_token_id` number
    - `eos_token_id` number
    - `length_penalty` number
    - `no_repeat_ngram_size` number
    - `encoder_no_repeat_ngram_size` number
    - `num_return_sequences` number
    - `force_emotion` boolean, required
    - `max_time` number
    - `use_cache` boolean
    - `num_beam_groups` number
    - `diversity_penalty` number
    - `tail_free_sampling` number
    - `repetition_penalty_range` number
    - `repetition_penalty_slope` number
    - `get_hidden_states` boolean
    - `repetition_penalty_frequency` number
    - `repetition_penalty_presence` number
    - `next_word` boolean
    - `prefix` string
    - `output_nonzero_probs` boolean
    - `generate_until_sentence` boolean
    - `num_logprobs` number
    - `cfg_uc` string
    - `cfg_scale` number
    - `cfg_alpha` number
    - `phrase_rep_pen` string
    - `top_g` number
    - `mirostat_tau` number
    - `mirostat_lr` number

## Response `201`

The request has been accepted and the output is generating (SSE).

- AiGenerateStreamableResponse
  - `ptr` number — Incrementing token pointer
  - `token` string — Generated token
  - `final` boolean — Set to true if the token is final and the generation ended
  - `error` string — Error from the generation node, if defined. Usually means the end of stream

## Other responses

- `400` — A validation error occured.
- `401` — Access Token is incorrect.
- `402` — An active subscription is required to access this endpoint.
- `409` — A conflict error occured.
- `500` — An unknown error occured.

---

[API](https://skmtc.net/novelai/apis/novelai-primary-api.md) · [All operations](https://skmtc.net/novelai/apis/novelai-primary-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/novelai/novelai-primary-api/revisions/327b3674db26/schema)
