Recursive: Flint (free) vs XingChen: Xing4.0 29B A4B (free)
A side-by-side comparison of Recursive: Flint (free) (Free) and XingChen: Xing4.0 29B A4B (free) (Free) using current USD prices and capabilities from the api14 catalog. Both run through the same OpenAI-compatible API.
Specifications
| Recursive: Flint (free) | XingChen: Xing4.0 29B A4B (free) | |
|---|---|---|
| Provider | Recursive | XingChen |
| Context window | 262,144 | 262,144 |
| Max output | 235,929 | 235,929 |
| Input | text | text |
| Output | text | text |
| Tool calling | ||
| Structured output | ||
| Reasoning control | ||
| Added | Oct 21, 2026 | Oct 16, 2026 |
Key differences
- Only XingChen: Xing4.0 29B A4B (free) supports structured JSON output.
In depth
Recursive: Flint (free) is a text model from Recursive, released on 2026-10-21. XingChen: Xing4.0 29B A4B (free) is a text model from XingChen, released on 2026-10-16. Both are listed on api14 under the text category, and both are offered as free endpoints, so the choice between them comes down to behaviour and parameter support rather than headline price. Neither model accepts or returns anything other than text, so if your application needs to send or receive images, audio or files, neither of these is the right call and you should look elsewhere on the gateway.
The two models are close on the fundamentals. Both expose a context window of 262144 tokens, so long documents, large codebases and extended conversation histories fit equally well in either. Both support reasoning output, and both accept tools, so function calling and agent style loops are available on each side. The clearest difference is in structured output: Xing4.0 29B A4B supports structured outputs, while Flint does not list that capability. The parameter sets also diverge in flavour. Flint exposes logprobs and top_logprobs, which is useful when you want token level confidence signals, plus include_reasoning, reasoning, response_format, seed, stop, temperature, top_p, max_tokens and tools. Xing4.0 29B A4B exposes a broader sampling and control surface: frequency_penalty, presence_penalty, repetition_penalty, min_p, top_k, top_p, temperature, seed, stop, max_tokens, response_format, structured_outputs, tool_choice, tools, include_reasoning and reasoning. In short, Flint leans toward introspection via log probabilities, while Xing4.0 29B A4B leans toward fine grained control and schema constrained generation.
For day to day work, pick based on the shape of the output you need. If you are building extraction pipelines, form filling, classification with a fixed label set, or anything that must return JSON matching a schema, Xing4.0 29B A4B is the more natural fit because structured outputs are supported directly, and tool_choice gives you explicit control over when a tool must be called. Its penalty parameters also help when you are generating long repetitive text and want to suppress loops. If instead you are debugging a prompt, comparing candidate completions, or building a system that scores its own outputs, Flint is attractive because logprobs and top_logprobs let you inspect the distribution behind each token. Both handle long context reasoning tasks equally well on paper, so for a straightforward chat or summarisation workload with a large input, either will do and you can decide on latency and output quality from your own testing.
Calling either model through api14 is the same operation. The API is OpenAI compatible, so you point your existing client at the gateway, keep your usual chat completions request body, and change only the model id. Use "recursive/flint-v1.0:free" to route to Recursive: Flint (free), or "xingchen-agi/xing4.0-29b-a4b:free" to route to XingChen: Xing4.0 29B A4B (free). Everything else, including your messages array, temperature, max_tokens and tools definitions, stays where it is. This makes A/B testing trivial: run the same prompt against both ids, log the responses, and compare. Just remember that parameters are not perfectly interchangeable. If you send logprobs to Xing4.0 29B A4B or structured_outputs to Flint, expect the request to be rejected or the field to be ignored, so keep a small per model parameter map in your code rather than assuming one config fits both.
Switch with one string
Both models use the same endpoint and request shape. Change the model value from "recursive/flint-v1.0:free" to "xingchen-agi/xing4.0-29b-a4b:free" and prompts, streaming and tools keep working.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "xingchen-agi/xing4.0-29b-a4b:free",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
More comparisons
- LiquidAI: LFM3-1.7B vs Ricursive: Ripple 65B Preview
- LiquidAI: LFM3-1.7B vs Crouton Alpha
- LiquidAI: LFM3-1.7B vs Tencent: Hy4
- LiquidAI: LFM3-1.7B vs Z.ai: GLM 5.3 FlashX Legal
- Ricursive: Ripple 65B Preview vs Crouton Alpha
- Ricursive: Ripple 65B Preview vs Tencent: Hy4
- Ricursive: Ripple 65B Preview vs Z.ai: GLM 5.3 FlashX Legal
- Crouton Alpha vs Tencent: Hy4