Reasoning

On models that support it, reasoning_effort controls how much the model thinks before answering. Higher efforts cost more time and more reasoning tokens, and usually give better answers on hard problems.

Supported values

Weakest first. Each model supports a different subset — check reasoning_effort.values in GET /v1/models and send only a value from that list.

none

No reasoning. On a model without reasoning, this is simply ignored.

low

Light reasoning for easy questions. Fastest and cheapest.

medium

Balanced reasoning for everyday tasks.

high

Deep reasoning for hard problems. Slower and more tokens.

xhigh

Very deep reasoning. Only listed on some models.

max

The strongest reasoning available. Only listed on some models.

Unsupported values return 400

Any effort the model does not list — including any effort at all on a model without reasoning — returns 400 invalid_request. The error names the values that model accepts.

Example

curl https://api.astorias.ai/v1/chat/completions \
  -H "Authorization: Bearer $ASTORIAS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "{huggingface-model-id}",
    "messages": [{"role": "user", "content": "Count the primes below 30."}],
    "reasoning_effort": "high"
  }'

Reasoning tokens count toward completion_tokens in the usage object. When the model lists a separate reasoning price, they are billed at that rate instead of the completion rate. See Usage and billing.