Try

   {"messages":[
      {"role": "user",
       "content": "hi"}
   ]}
but also an explicitly empty system message:

   {"messages":[
      {"role": "system",
       "content": ""}
      {"role": "user",
       "content": "hi"}
   ]}
and finally

   {"messages":[
      {"role": "system",
       "content": "x"}
      {"role": "user",
       "content": "hi"}
   ]}

Comparing OpenRouter’s tokensPrompt with nativeTokensPrompt can tell you if it came from the provider

I tried prompting "hi" without my own system prompt and it took 86 input tokens, then I set the system prompt to just the word "french" and it jumped up to 99 input tokens. https://gist.github.com/simonw/629b8d05864d7c13e8625a7c48cec...