Skip to content

Model vs model

Claude Haiku 4.5 vs Kimi K3

Claude Haiku 4.5 and Kimi K3 are both in llmwise. What each gets on every plan, what it reads, how it's served and what happens when its provider fails, from the catalog and the code that runs them.

Model prices and specs checked against OpenRouter's Claude Haiku 4.5 page, OpenRouter's Kimi K3 page. Updated .

Short answer

Claude Haiku 4.5 gets twice as many messages: up to 250 messages a month on Pro, against up to 125 messages a month for Kimi K3. Otherwise, only Claude Haiku 4.5 reads a PDF as the whole file. In our test runs, Claude Haiku 4.5 passed 43 of the 50 prompts both answered and Kimi K3 46; 9 prompts split them, most on coding (3 to 5).

Claude Haiku 4.5 vs Kimi K3, prompt by prompt

Every prompt Claude Haiku 4.5 and Kimi K3 both answered, compared directly, their biggest differences first. One run each, through OpenRouter: a wait depends on the provider and the load that day, so a lead under 10% counts as close.

Of the 50 prompts both answered, both passed 40, only Claude Haiku 4.5 passed 3, only Kimi K3 passed 6, and neither passed 1. Claude Haiku 4.5 answered sooner on 40 of the 50 and Kimi K3 on 2; the rest were within 10% of each other. The 50 replies cost $0.0741 on Claude Haiku 4.5 and $0.1938 on Kimi K3: 2.6× less on Claude Haiku 4.5.

The 9 prompts only one of Claude Haiku 4.5 and Kimi K3 passed

  • Evaluate an arithmetic expression, no eval (coding): Kimi K3 passed and Claude Haiku 4.5 didn't. Claude Haiku 4.5: 14 of 15 tests passed. First failure: evaluate("-2 ^ 2"): Expected values to be strictly deep-equal: Kimi K3: All 15 tests passed.

  • Parse CSV with quoted fields (coding): Kimi K3 passed and Claude Haiku 4.5 didn't. Claude Haiku 4.5: 5 of 8 tests passed. First failure: parseCsv('"line1\nline2",end\r\nnext,row\r\n'): Expected values to be strictly deep-equal: Kimi K3: All 8 tests passed.

  • An article in three bullets (summarization): Claude Haiku 4.5 passed and Kimi K3 didn't. Claude Haiku 4.5: Graded 4.0 of 5 on average (lowest 3). Kimi K3: Graded 4.0 of 5 on average (lowest 3); but 62 words, over the 60 allowed.

  • An email thread in one sentence (summarization): Claude Haiku 4.5 passed and Kimi K3 didn't. Claude Haiku 4.5: Graded 4.7 of 5 on average (lowest 4). Kimi K3: Graded 5.0 of 5 on average (lowest 5); but 32 words, over the 30 allowed.

  • Average order value in August (data analysis): Kimi K3 passed and Claude Haiku 4.5 didn't. Claude Haiku 4.5: Final answer 275.00; expected 300. Kimi K3: Final answer 300.00: right.

  • Correlation between ad spend and sign-ups (data analysis): Kimi K3 passed and Claude Haiku 4.5 didn't. Claude Haiku 4.5: Final answer 0.99; expected 0.97. Kimi K3: Final answer 0.97: right.

  • A frustrated customer (customer support): Kimi K3 passed and Claude Haiku 4.5 didn't. Claude Haiku 4.5: Graded 3.3 of 5 on average (lowest 3). Kimi K3: Graded 4.0 of 5 on average (lowest 3).

  • A refund request outside the window (customer support): Claude Haiku 4.5 passed and Kimi K3 didn't. Claude Haiku 4.5: Graded 4.7 of 5 on average (lowest 4). Kimi K3: Graded 4.0 of 5 on average (lowest 2).

  • A message with a planted instruction (customer support): Kimi K3 passed and Claude Haiku 4.5 didn't. Claude Haiku 4.5: Graded 4.3 of 5 on average (lowest 3); but 165 words, over the 150 allowed. Kimi K3: Graded 4.7 of 5 on average (lowest 4).

Job by job, the widest gaps first

  • Summarization: Claude Haiku 4.5 passed 5 of 5 and Kimi K3 3 of 5. Claude Haiku 4.5 answered 2.0× sooner at the median, 1.7 s against 3.4 s. Claude Haiku 4.5 cost 3.4× less, $0.0051 against $0.0172 for the 5 replies. Kimi K3's replies ran 13% longer, in tokens of reply, thinking not counted.

  • Data analysis: Claude Haiku 4.5 passed 3 of 5 and Kimi K3 5 of 5. Claude Haiku 4.5 answered 1.3× sooner at the median, 2.7 s against 3.5 s. Claude Haiku 4.5 cost 2.7× less, $0.0125 against $0.0339 for the 5 replies. Claude Haiku 4.5's replies ran 120% longer, in tokens of reply, thinking not counted.

  • Coding: Claude Haiku 4.5 passed 3 of 5 and Kimi K3 5 of 5. Claude Haiku 4.5 answered 1.8× sooner at the median, 2.3 s against 4.1 s. Claude Haiku 4.5 cost 2.3× less, $0.0137 against $0.0316 for the 5 replies. Claude Haiku 4.5's replies ran 45% longer, in tokens of reply, thinking not counted.

  • Customer support: Claude Haiku 4.5 passed 3 of 5 and Kimi K3 4 of 5. Claude Haiku 4.5 answered 1.6× sooner at the median, 2.7 s against 4.3 s. Claude Haiku 4.5 cost 3.1× less, $0.0073 against $0.0228 for the 5 replies. Claude Haiku 4.5's replies ran 14% longer, in tokens of reply, thinking not counted.

  • Writing: Claude Haiku 4.5 passed 4 of 5 and Kimi K3 4 of 5. Claude Haiku 4.5 answered 1.3× sooner at the median, 2.2 s against 3.0 s. Claude Haiku 4.5 cost 3.4× less, $0.0057 against $0.0192 for the 5 replies. Their replies ran to about the same length.

  • Agents and tool use: Claude Haiku 4.5 passed 5 of 5 and Kimi K3 5 of 5. Claude Haiku 4.5 answered 1.8× sooner at the median, 1.1 s against 2.0 s. Claude Haiku 4.5 cost 2.9× less, $0.0047 against $0.0135 for the 5 replies. Claude Haiku 4.5's replies ran 50% longer, in tokens of reply, thinking not counted.

  • Math: Claude Haiku 4.5 passed 5 of 5 and Kimi K3 5 of 5. Claude Haiku 4.5 answered 2.4× sooner at the median, 2.2 s against 5.4 s. Claude Haiku 4.5 cost 2.4× less, $0.0077 against $0.0187 for the 5 replies. Claude Haiku 4.5's replies ran 185% longer, in tokens of reply, thinking not counted.

  • Translation: Claude Haiku 4.5 passed 5 of 5 and Kimi K3 5 of 5. Claude Haiku 4.5 answered 2.8× sooner at the median, 1.8 s against 5.2 s. Claude Haiku 4.5 cost 2.4× less, $0.0074 against $0.0179 for the 5 replies. Their replies ran to about the same length.

  • SQL: Claude Haiku 4.5 passed 5 of 5 and Kimi K3 5 of 5. Claude Haiku 4.5 answered 1.3× sooner at the median, 1.2 s against 1.6 s. Claude Haiku 4.5 cost 2.4× less, $0.0049 against $0.0118 for the 5 replies. Their replies ran to about the same length.

  • RAG and answering from documents: Claude Haiku 4.5 passed 5 of 5 and Kimi K3 5 of 5. Claude Haiku 4.5 answered 2.2× sooner at the median, 1.2 s against 2.6 s. Claude Haiku 4.5 cost 1.4× less, $0.0050 against $0.0073 for the 5 replies. Claude Haiku 4.5's replies ran 46% longer, in tokens of reply, thinking not counted.

All 50 prompts: who passed, who answered sooner, who cost less
Claude Haiku 4.5 and Kimi K3 on each prompt of our test runs
PromptResultSoonerCheaper
Turn a title into a URL slugBoth passedClaude Haiku 4.5, 1.7×took 1.5 s and 2.6 sClaude Haiku 4.5, 3.7×cost $0.0010 and $0.0035
Parse a duration like “1h 30m”Both passedClaude Haiku 4.5, 3.0×took 2.3 s and 7.1 sClaude Haiku 4.5, 2.9×cost $0.0022 and $0.0063
Merge overlapping intervalsBoth passedClosetook 2.0 s and 2.0 sClaude Haiku 4.5, 2.2×cost $0.0017 and $0.0036
Evaluate an arithmetic expression, no evalOnly Kimi K3Claude Haiku 4.5, 1.3×took 7.6 s and 9.9 sClaude Haiku 4.5, 2.0×cost $0.0056 and $0.0113
Parse CSV with quoted fieldsOnly Kimi K3Claude Haiku 4.5, 1.2×took 3.5 s and 4.1 sClaude Haiku 4.5, 2.1×cost $0.0033 and $0.0069
Announce a second bakery shop on LinkedInBoth passedClaude Haiku 4.5, 1.5×took 2.6 s and 3.9 sClaude Haiku 4.5, 3.6×cost $0.0013 and $0.0046
Rewrite corporate jargon in plain wordsBoth passedClaude Haiku 4.5, 1.2×took 1.6 s and 2.0 sClaude Haiku 4.5, 3.7×cost $0.0008 and $0.0030
Decline a meeting and offer two timesBoth passedClaude Haiku 4.5, 1.5×took 2.0 s and 3.0 sClaude Haiku 4.5, 3.4×cost $0.0010 and $0.0034
A product announcement with five rulesNeither passedClosetook 2.2 s and 2.3 sClaude Haiku 4.5, 2.7×cost $0.0012 and $0.0033
Argue both sides of free busesBoth passedClosetook 3.4 s and 3.6 sClaude Haiku 4.5, 3.5×cost $0.0014 and $0.0049
A discount, then sales taxBoth passedClaude Haiku 4.5, 4.4×took 1.1 s and 5.0 sClaude Haiku 4.5, 4.9×cost $0.0007 and $0.0037
Pens at 3 for $4Both passedClaude Haiku 4.5, 2.5×took 2.2 s and 5.4 sClaude Haiku 4.5, 3.2×cost $0.0014 and $0.0046
Compound interest over three yearsBoth passedClaude Haiku 4.5, 1.7×took 3.5 s and 5.9 sClaude Haiku 4.5, 3.4×cost $0.0013 and $0.0044
Four-digit numbers whose digits sum to 9Both passedClaude Haiku 4.5, 2.1×took 2.9 s and 6.0 sClaude Haiku 4.5, 1.3×cost $0.0024 and $0.0032
The highest of three dice is a 5Both passedClosetook 2.2 s and 2.4 sClaude Haiku 4.5, 1.5×cost $0.0018 and $0.0027
An article in three bulletsOnly Claude Haiku 4.5Claude Haiku 4.5, 1.6×took 1.8 s and 2.8 sClaude Haiku 4.5, 2.6×cost $0.0011 and $0.0028
An email thread in one sentenceOnly Claude Haiku 4.5Claude Haiku 4.5, 4.9×took 1.3 s and 6.4 sClaude Haiku 4.5, 4.1×cost $0.0007 and $0.0030
Decisions and action items from a meetingBoth passedClaude Haiku 4.5, 2.0×took 1.7 s and 3.4 sClaude Haiku 4.5, 4.1×cost $0.0011 and $0.0044
A quarterly memo for the CEOBoth passedClaude Haiku 4.5, 10.2×took 1.5 s and 15.7 sClaude Haiku 4.5, 4.1×cost $0.0012 and $0.0049
A study with a negative resultBoth passedClosetook 3.4 s and 3.2 sClaude Haiku 4.5, 2.1×cost $0.0010 and $0.0021
The region with the most revenueBoth passedKimi K3, 1.2×took 2.7 s and 2.2 sClaude Haiku 4.5, 1.9×cost $0.0026 and $0.0049
Average order value in AugustOnly Kimi K3Claude Haiku 4.5, 1.3×took 2.1 s and 2.7 sClaude Haiku 4.5, 2.3×cost $0.0023 and $0.0054
Revenue change from July to AugustBoth passedClaude Haiku 4.5, 1.5×took 4.2 s and 6.4 sClaude Haiku 4.5, 2.9×cost $0.0022 and $0.0064
A median, filtered two waysBoth passedClaude Haiku 4.5, 1.8×took 2.0 s and 3.5 sClaude Haiku 4.5, 2.6×cost $0.0016 and $0.0042
Correlation between ad spend and sign-upsOnly Kimi K3Claude Haiku 4.5, 4.1×took 5.0 s and 20.2 sClaude Haiku 4.5, 3.5×cost $0.0037 and $0.0131
A late orderBoth passedClaude Haiku 4.5, 1.2×took 2.0 s and 2.5 sClaude Haiku 4.5, 3.3×cost $0.0014 and $0.0045
A return inside the windowBoth passedClaude Haiku 4.5, 1.8×took 2.4 s and 4.3 sClaude Haiku 4.5, 2.5×cost $0.0013 and $0.0033
A frustrated customerOnly Kimi K3Claude Haiku 4.5, 1.9×took 3.0 s and 5.6 sClaude Haiku 4.5, 4.0×cost $0.0016 and $0.0063
A refund request outside the windowOnly Claude Haiku 4.5Closetook 2.7 s and 2.6 sClaude Haiku 4.5, 3.4×cost $0.0013 and $0.0045
A message with a planted instructionOnly Kimi K3Claude Haiku 4.5, 3.6×took 3.2 s and 11.5 sClaude Haiku 4.5, 2.3×cost $0.0018 and $0.0041
A delivery message into SpanishBoth passedClaude Haiku 4.5, 1.9×took 1.5 s and 2.9 sClaude Haiku 4.5, 2.7×cost $0.0011 and $0.0031
A product description into FrenchBoth passedClaude Haiku 4.5, 3.9×took 1.4 s and 5.4 sClaude Haiku 4.5, 3.2×cost $0.0011 and $0.0037
A meeting note into GermanBoth passedClaude Haiku 4.5, 1.6×took 1.8 s and 3.0 sClaude Haiku 4.5, 1.3×cost $0.0010 and $0.0014
Idioms into natural JapaneseBoth passedClaude Haiku 4.5, 1.6×took 3.3 s and 5.2 sClaude Haiku 4.5, 2.8×cost $0.0019 and $0.0053
A lease clause into Brazilian PortugueseBoth passedClaude Haiku 4.5, 2.9×took 3.5 s and 10.1 sClaude Haiku 4.5, 2.0×cost $0.0022 and $0.0044
Customers in one countryBoth passedClosetook 1.1 s and 1.1 sClaude Haiku 4.5, 2.7×cost $0.0007 and $0.0018
Count orders by statusBoth passedClaude Haiku 4.5, 1.9×took 0.8 s and 1.5 sClaude Haiku 4.5, 1.4×cost $0.0006 and $0.0009
Revenue by categoryBoth passedClaude Haiku 4.5, 1.3×took 1.2 s and 1.6 sClaude Haiku 4.5, 1.8×cost $0.0011 and $0.0019
Every customer, even those without ordersBoth passedClaude Haiku 4.5, 1.2×took 2.1 s and 2.5 sClaude Haiku 4.5, 3.0×cost $0.0010 and $0.0031
Monthly revenue with a running totalBoth passedClaude Haiku 4.5, 1.5×took 1.6 s and 2.5 sClaude Haiku 4.5, 2.7×cost $0.0016 and $0.0042
A fact from one sectionBoth passedClaude Haiku 4.5, 6.1×took 1.1 s and 6.5 sClaude Haiku 4.5, 1.1×cost $0.0009 and $0.0010
Core hours and start timesBoth passedClosetook 1.1 s and 1.2 sClaude Haiku 4.5, 1.2×cost $0.0009 and $0.0011
Two sections in one answerBoth passedClaude Haiku 4.5, 2.0×took 1.3 s and 2.6 sClaude Haiku 4.5, 1.8×cost $0.0011 and $0.0020
A later amendment changes the answerBoth passedClaude Haiku 4.5, 2.5×took 1.9 s and 4.8 sClaude Haiku 4.5, 1.8×cost $0.0012 and $0.0022
A question the handbook doesn't answerBoth passedKimi K3, 1.3×took 1.2 s and 0.9 sClosecost $0.0009 and $0.0010
Pick the tool and work out the dateBoth passedClaude Haiku 4.5, 3.5×took 1.1 s and 3.7 sClaude Haiku 4.5, 3.8×cost $0.0008 and $0.0032
Convert a currencyBoth passedClaude Haiku 4.5, 2.9×took 1.0 s and 2.9 sClaude Haiku 4.5, 3.0×cost $0.0008 and $0.0025
Book a meeting from a sentenceBoth passedClaude Haiku 4.5, 1.3×took 1.2 s and 1.6 sClaude Haiku 4.5, 3.0×cost $0.0010 and $0.0031
Search, but don't bookBoth passedClaude Haiku 4.5, 1.8×took 1.1 s and 2.0 sClaude Haiku 4.5, 3.6×cost $0.0010 and $0.0034
Two calls with a unit conversionBoth passedClaude Haiku 4.5, 1.4×took 1.2 s and 1.7 sClaude Haiku 4.5, 1.2×cost $0.0011 and $0.0012

Claude Haiku 4.5 vs Kimi K3 in our test runs

Claude Haiku 4.5 and Kimi K3 on the same prompts, job by job: how many replies passed their check.

Based on 100 of our test runs on , through OpenRouter with the app's own prompt and settings. Updated .

Claude Haiku 4.5 and Kimi K3 in our test runs, job by job
JobClaude Haiku 4.5Kimi K3
Coding3 of 55 of 5
Writing4 of 54 of 5
Math5 of 55 of 5
Summarization5 of 53 of 5
Data analysis3 of 55 of 5
Customer support3 of 54 of 5
Translation5 of 55 of 5
SQL5 of 55 of 5
RAG and answering from documents5 of 55 of 5
Agents and tool use5 of 55 of 5
All jobs43 of 50 · 1 message each · $0.0015 a reply46 of 50 · 1 message each · $0.0039 a reply

The same prompts, sent to both through llmwise's own pipeline and checked the same way: five for each job. A bold count is the one that passed more. Messages: what each reply counted as on Pro. Cost: what OpenRouter charged us per reply, on average. Every prompt, and how it's scored.

Where they differed most, coding: both replies to a prompt only one of them passed.

A hard prompt: “Evaluate an arithmetic expression, no eval”, in full.

  • Claude Haiku 4.5

    Failed: 14 of 15 tests passed. First failure: evaluate("-2 ^ 2"): Expected values to be strictly deep-equal:

    ```javascript
    function evaluate(expression) {
      const tokens = tokenize(expression);
      const parser = new Parser(tokens);
      const result = parser.parseExpression();
      
      if (parser.pos !== tokens.length) {
        throw new Error("Unexpected tokens after expression");
      }
      
      return result;
    }
    
    function tokenize(expression) {
      const tokens = [];
      let i = 0;
      
      while (i < expression.length) {
        const ch = expression[i];
        
        if (/\s/.test(ch)) {
          i++;
          continue;
        }
        
        if (/\d/.test(ch)) {
          let num = '';
          while (i < expression.length && /[\d.]/.test(expression[i])) {
            num += expression[i];
            i++;
          }
          const parsed = parseFloat(num);
          if (isNaN(parsed)) {
            throw new Error(`Invalid number: ${num}`);
          }
          tokens.push({ type: 'NUMBER', value: parsed });
          continue;
        }
        
        if ('+-*/^()'.includes(ch)) {
          tokens.push({ type: ch, value: ch });
          i++;
          continue;
        }
        
        throw new Error(`Unexpected character: ${ch}`);
      }
      
      return tokens;
    }
    
    class Parser {
      constructor(tokens) {
        this.tokens = tokens;
        this.pos = 0;
      }
      
      peek() {
        return this.tokens[this.pos];
      }
      
      consume() {
        return this.tokens[this.pos++];
      }
      
      parseExpression() {
        return this.parseAddSub();
      }
      
      parseAddSub() {
        let left = this.parseMulDiv();
        
        while (this.peek() && (this.peek().type === '+' || this.peek().type === '-')) {
          const op = this.consume().type;
          const right = this.parseMulDiv();
          left = op === '+' ? left + right : left - right;
        }
        
        return left;
      }
      
      parseMulDiv() {
        let left = this.parsePower();
        
        while (this.peek() && (this.peek().type === '*' || this.peek().type === '/')) {
          const op = this.consume().type;
          const right = this.parsePower();
          left = op === '*' ? left * right : left / right;
        }
        
        return left;
      }
      
      parsePower() {
        let left = this.parseUnary();
        
        if (this.peek() && this.peek().type === '^') {
          this.consume();
          const right = this.parsePower();
          left = Math.pow(left, right);
        }
        
        return left;
      }
      
      parseUnary() {
        if (this.peek() && this.peek().type === '-') {
          this.consume();
          return -this.parseUnary();
        }
        
        if (this.peek() && this.peek().type === '+') {
          this.consume();
          return this.parseUnary();
        }
        
        return this.parsePrimary();
      }
      
      parsePrimary() {
        const token = this.peek();
        
        if (!token) {
          throw new Error("Unexpected end of expression");
        }
        
        if (token.type === 'NUMBER') {
          this.consume();
          return token.value;
        }
        
        if (token.type === '(') {
          this.consume();
          const result = this.parseExpression();
          
          if (!this.peek() || this.peek().type !== ')') {
            throw new Error("Missing closing parenthesis");
          }
          
          this.consume();
          return result;
        }
        
        throw new Error(`Unexpected token: ${token.value}`);
      }
    }
    ```

    599 tokens in, 1,007 out · 7.6 s · $0.0056 · 1 message on Pro · answered by anthropic/claude-haiku-4.5 via Amazon Bedrock ·

  • Kimi K3

    Passed: All 15 tests passed.

    ```javascript
    function evaluate(expression) {
      if (typeof expression !== "string") {
        throw new Error("Input must be a string");
      }
    
      let pos = 0;
    
      function skipSpaces() {
        while (pos < expression.length && expression[pos] === " ") {
          pos++;
        }
      }
    
      function peek() {
        skipSpaces();
        return pos < expression.length ? expression[pos] : null;
      }
    
      function parseExpression() {
        let value = parseTerm();
        for (;;) {
          const ch = peek();
          if (ch === "+") {
            pos++;
            value += parseTerm();
          } else if (ch === "-") {
            pos++;
            value -= parseTerm();
          } else {
            return value;
          }
        }
      }
    
      function parseTerm() {
        let value = parseUnary();
        for (;;) {
          const ch = peek();
          if (ch === "*") {
            pos++;
            value *= parseUnary();
          } else if (ch === "/") {
            pos++;
            value /= parseUnary();
          } else {
            return value;
          }
        }
      }
    
      function parseUnary() {
        const ch = peek();
        if (ch === "-") {
          pos++;
          return -parseUnary();
        }
        if (ch === "+") {
          pos++;
          return parseUnary();
        }
        return parsePower();
      }
    
      function parsePower() {
        const base = parsePrimary();
        if (peek() === "^") {
          pos++;
          const exponent = parseUnary(); // right-associative, allows 2^-1
          return Math.pow(base, exponent);
        }
        return base;
      }
    
      function parsePrimary() {
        const ch = peek();
        if (ch === null) {
          throw new Error("Unexpected end of expression");
        }
        if (ch === "(") {
          pos++;
          const value = parseExpression();
          if (peek() !== ")") {
            throw new Error("Missing closing parenthesis");
          }
          pos++;
          return value;
        }
        return parseNumber();
      }
    
      function parseNumber() {
        skipSpaces();
        const start = pos;
        let sawDigit = false;
        while (pos < expression.length && expression[pos] >= "0" && expression[pos] <= "9") {
          pos++;
          sawDigit = true;
        }
        if (pos < expression.length && expression[pos] === ".") {
          pos++;
          while (pos < expression.length && expression[pos] >= "0" && expression[pos] <= "9") {
            pos++;
            sawDigit = true;
          }
        }
        if (!sawDigit) {
          throw new Error("Expected a number at position " + start);
        }
        return Number(expression.slice(start, pos));
      }
    
      const result = parseExpression();
      if (peek() !== null) {
        throw new Error("Unexpected character '" + expression[pos] + "' at position " + pos);
      }
      return result;
    }
    ```
    
    A recursive-descent parser with the precedence levels: `+`/`-` (lowest), then `*`/`/`, then unary minus, then `^` (right-associative, binds tighter than unary minus, and its exponent is parsed as unary so `2^-1` works), then numbers and parentheses. Leftover characters or missing operands throw an `Error`.

    636 tokens in, 816 out (99 of them reasoning) · 9.9 s · $0.0113 · 1 message on Pro · answered by moonshotai/kimi-k3 via Phala ·

Claude Haiku 4.5 and Kimi K3 on every plan

Whether the one-time free trial reaches each model, then each paid plan's messages on it.

Messages on Claude Haiku 4.5 and Kimi K3, plan by plan
PlanPriceClaude Haiku 4.5Kimi K3
Free$0In the one-time trial of 5 messagesIn the one-time trial of 5 messages
Pro$20 a monthUp to 250 a monthUp to 125 a month
Max$50 a monthUp to 800 a monthUp to 400 a month
Ultra$100 a monthUp to 1,800 a monthUp to 900 a month
Studio$200 a monthUp to 4,000 a monthUp to 2,000 a month

Prices don't include tax, which is added where it applies and shown before you pay. A paid plan's month is one allowance shared by every model, so each monthly count is the most you get if all of it goes to that model. It renews each billing period; everyday models refill daily at 00:00 UTC. Long chats count more per reply. How pricing works.

Every limit is published. Paid plans also have a monthly fair-use limit on AI cost: Pro $7.50, Max $20, Ultra $42, Studio $85. Using every message on your plan at typical sizes stays under it; very large messages and heavy research use it faster. Every limit, explained.

What differs

  • Messages on Pro

    Claude Haiku 4.5 gets twice as many messages: up to 250 messages a month on Pro, against up to 125 messages a month for Kimi K3.

  • Context window

    Claude Haiku 4.5 takes up to 200K tokens; Kimi K3 up to 1.05M tokens. A chat in llmwise holds up to 200k tokens, which fits in either, so the difference shows only through each maker's own API.

  • Images and PDFs

    Both read images. Kimi K3 gets a PDF's text rather than the file itself.

  • On Free

    Both are in the free trial.

  • Where messages go

    Claude Haiku 4.5: Sent to Anthropic directly. Kimi K3: Served through OpenRouter, only by hosts that don't store or train on prompts. The maker's own endpoint is never asked.

Fact by fact

Claude Haiku 4.5 and Kimi K3, fact by fact
FactClaude Haiku 4.5Kimi K3
Context window200K tokens1.05M tokens
Reads imagesYesYes
PDFsWhole fileText only
ReasoningNoYes
API price (September 2026)$1.00 in / $5.00 out per million tokens$3.00 in / $15.00 out per million tokens
A typical message at API prices (4,000 tokens in, 700 out)$0.0075$0.0225
A $10 top-up adds200 messages100 messages
Where a message goesSent to Anthropic directly.Served through OpenRouter, only by hosts that don't store or train on prompts. The maker's own endpoint is never asked.
If the provider failsIf Anthropic fails before the reply starts (an overload, a server error, a dropped connection), llmwise sends the same request to Claude Haiku 4.5 through OpenRouter instead.When one host is down, OpenRouter moves the request to another host that meets the same rules.
Anthropic's safety fallbackDoesn't applyDoesn't apply
API prices are what our model catalog lists (Claude: Anthropic's list price; Kimi: Moonshot's list price). In llmwise you pay per message, not per token: the counts above are what you get.

Claude Haiku 4.5 or Kimi K3?

From the facts above and our test runs: the rest is how their answers suit your work, which one chat can show you.

  • Pick Claude Haiku 4.5: more messages for the money, up to 250 messages a month on Pro; it reads a PDF as the whole file, charts and scans included.

Each model's page, the families, and other pairs

Claude Haiku 4.5 vs Kimi K3 is one pair of models. The page below covers the whole families.

Questions

Is Claude Haiku 4.5 or Kimi K3 cheaper in llmwise?

Claude Haiku 4.5 gets twice as many messages: up to 250 messages a month on Pro, against up to 125 messages a month for Kimi K3. Every paid plan's monthly allowance is shared by all models, so each count is the most you get if it all goes to that model.

Can I try Claude Haiku 4.5 and Kimi K3 for free?

Yes: both are in the free trial of 5 messages.

Which has the bigger context window, Claude Haiku 4.5 or Kimi K3?

Kimi K3: 1.05M tokens, against 200K tokens. A chat in llmwise holds up to 200k tokens, which fits in either, so the difference shows only through each maker's own API.

Can I use Claude Haiku 4.5 and Kimi K3 in the same chat?

Yes. Pick Claude Haiku 4.5 for one message and Kimi K3 for the next; the second sees the whole chat, including the first one's answer.

Which did better in your test runs, Claude Haiku 4.5 or Kimi K3?

On the same 50 prompts, run on September 27, 2026, Claude Haiku 4.5 passed 43 and Kimi K3 passed 46. The table on this page has each job, and every reply is published.

Claude, GPT, Gemini, DeepSeek, Grok, Kimi, and GLM, in one chat.

See what a message costs before you send it. Free is 5 messages to try; sign in with an email link, no password or card.