Skip to content
AppmakeDocs
Log inGet started
Kalle by Appmake API · Endpoints

Messages

Send a conversation and get Kalle by Appmake's next message.

Base URLhttps://api.kalle.build/v1AuthBearer kalle_sk_…VersionKalle-Version: 2026-11-01

Create a message

modelstringRequiredThe model ID or snapshot, for example kalle-turbo-max. See Models.
messagesarrayRequiredThe conversation so far. Each item has a role (user or assistant) and content, a string or a list of content blocks. The first and the last message are from user.
max_tokensintegerRequiredThe most tokens the reply may use, up to the model's max output. The model may stop earlier.
systemstringInstructions for the whole conversation, such as tone or rules. A list of text blocks also works.
effortstringlow, medium, high, extra or max, within the levels the model allows. Defaults to the model's recommended effort. max needs the Pro plan. See Effort.
temperaturenumberFrom 0 to 1. Lower gives more predictable wording. Ignored at high effort and above, where the model reasons first.
stop_sequencesarrayUp to four strings that end the reply when the model writes them.
streambooleanSend the reply as server-sent events. See Streaming.
toolsarrayFunctions the model may ask you to run. See Tool use.
tool_choiceobjectWhether the model must use a tool. See Tool use.
metadataobjectYour own user_id, for your records. It is not stored and never used for training.
POST/v1/messages
curl https://api.kalle.build/v1/messages \
  -H "Authorization: Bearer $KALLE_API_KEY" \
  -H "Kalle-Version: 2026-11-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kalle-turbo-max",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": "Write a short welcome text for a yoga studio in Copenhagen."
      }
    ]
  }'
Open in Appmake

The response

idstringThe message ID, starting with msg_.
modelstringThe snapshot that answered, for example kalle-turbo-max-2026-11-01.
contentarrayContent blocks. Text is in blocks with type: "text". Tool calls are in blocks with type: "tool_use".
stop_reasonstringend_turn, max_tokens, tool_use, stop_sequence or refusal.
usageobjectinput_tokens and output_tokens for billing. Output includes the reasoning tokens that effort adds.

Multi-turn conversations

The API keeps no memory between calls. To continue a conversation, send the earlier messages again with the new one at the end, alternating user and assistant.

Conversation
"messages": [
  { "role": "user", "content": "Suggest a name for my yoga studio." },
  { "role": "assistant", "content": "How about Lotus Yoga?" },
  { "role": "user", "content": "Something warmer, please." }
]