Step 5 Preview is StepFun's frontier reasoning model. It accepts text, image, and video input, answers in text, and carries a 1,024,000 token context. It supports parallel function calling, strict JSON Schema structured output, automatic prompt caching, and a reasoning effort control with three levels.
It is live on EmpirioLabs today through an OpenAI-compatible API, with streaming and up to 131,072 output tokens. Try it in the playground or call it from any OpenAI-compatible client. The full spec and current rates live on the Step 5 Preview model page and the API docs.
Calling it
Point any OpenAI-compatible client at https://api.empiriolabs.ai/v1 and use step-5-preview as the model id.
curl https://api.empiriolabs.ai/v1/chat/completions \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "step-5-preview",
"messages": [{"role": "user", "content": "Plan a three step migration off a monolith."}],
"reasoning_effort": "high",
"max_tokens": 2000
}'
The same model answers on the Responses API, the Anthropic Messages format, and the Gemini-compatible route, so most existing clients work without a rewrite. The docs page lists every supported endpoint.
Working with images and video
Attach an image with a standard image_url content part, or a clip with a video_url part. Both accept a URL or a data URL. Keep video under 128 MB, and clips under about five minutes for the most reliable results.
Three things worth knowing before your first call
- The reasoning comes back in
reasoning_content, and it bills as output. Those tokens are included incompletion_tokens, butcompletion_tokens_details.reasoning_tokensreports zero, so readcompletion_tokensrather than the reasoning sub-count when you are attributing spend. - Set a real
max_tokens. Reasoning is spent from the same budget as the answer, so a small budget can return an empty message on a hard prompt. Give it room. - Caching is automatic, and you can see it. Send a long shared prefix and the next request reports the hit in
prompt_tokens_details.cached_tokens, billed at the cache read rate on the model page. Keep the stable part of your prompt at the front to benefit.
One note on reasoning_effort: low, medium, and high are the supported levels. Other values are accepted by the request and then ignored, so send one of the three rather than relying on a custom string.
What it costs
Step 5 Preview is pay as you go, billed per token with a separate discounted rate for cached input and no subscription. Current rates are on the model page and the pricing page.



