Code API
Minifique, formate e converta JavaScript, CSS, HTML, SVG, JSON, XML e dezenas de pares de linguagens — em um contrato REST JSON limpo.
Texto entra → texto sai. Envie um trecho via JSON e receba o resultado minificado, formatado ou convertido. Usa as mesmas ferramentas Node (Terser, clean-css, html-minifier-terser, prettier, svgo) das nossas ferramentas web — então o resultado é exatamente o mesmo.
# Minify a JavaScript snippet
curl -X POST https://jinero.online/api/v1/code/minify \
-H "Content-Type: application/json" \
-d '{"code": "function add(a, b) { return a + b; }", "type": "js"}'
const r = await fetch("https://jinero.online/api/v1/code/minify", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ code: source, type: "js", mode: "minify" }),
});
const { output, savings_percent } = await r.json();
Todos os endpoints são públicos — sem chave. As operações são só transformações de texto (sem GPU nem processamento de imagem), então os limites são maiores que os da Images API.
# Anonymous limits (per IP):
# POST /code/minify 30 req/min
# POST /code/detect 30 req/min
# POST /code/convert 30 req/min
# GET /code/converters 30 req/min
# Max snippet size: 200,000 chars (~200 KB)
Comprima ou formate um trecho. O mesmo endpoint faz os dois caminhos pelo parâmetro mode — útil quando você tem arquivos de configuração JSON ou CSS minificado em uma linha que quer ler.
https://jinero.online/api/v1/code/minify
| Parâmetro | Tipo | Descrição |
|---|---|---|
code |
string | Código-fonte. Até 200.000 caracteres. |
type |
string | Um de: js, css, html, svg, json, xml, auto. Use "auto" para o servidor detectar o conteúdo. |
mode |
string | minify (padrão) ou beautify. |
keep_license |
boolean | Manter os comentários de licença /*! ... */ ao minificar. Padrão: true. |
curl -X POST https://jinero.online/api/v1/code/minify \
-H "Content-Type: application/json" \
-d @- <<JSON
{
"code": ".btn { color: red; padding: 8px 12px; }",
"type": "css",
"mode": "minify"
}
JSON
const r = await fetch("https://jinero.online/api/v1/code/minify", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
code: cssSource,
type: "css",
mode: "minify",
keep_license: true,
}),
});
const data = await r.json();
$response = Http::post("https://jinero.online/api/v1/code/minify", [
"code" => $jsSource,
"type" => "js",
"mode" => "minify",
]);
$minified = $response->json("output");
{
"success": true,
"type": "css",
"mode": "minify",
"output": ".btn{color:red;padding:8px 12px}",
"original_size": 46,
"output_size": 27,
"savings_percent": 41.3,
"line_count": 1
}
Detecta automaticamente a linguagem de um trecho. Retorna o tipo identificado e a lista de formatos de destino dos conversores que o aceitam como entrada — prático para montar menus “converter para…”.
https://jinero.online/api/v1/code/detect
| Parâmetro | Tipo | Descrição |
|---|---|---|
code |
string | Código-fonte. Até 200.000 caracteres. |
curl -X POST https://jinero.online/api/v1/code/detect \
-H "Content-Type: application/json" \
-d '{"code": "{\"name\": \"jinero\"}"}'
const r = await fetch("https://jinero.online/api/v1/code/detect", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ code: snippet }),
});
const { detected_type, available_targets } = await r.json();
{
"success": true,
"detected_type": "json",
"confidence": 0.97,
"available_targets": ["yaml", "toml", "xml", "csv"]
}
Todas as conversões suportadas (from → to), com o esquema de opções de cada par. Use para montar interfaces que se adaptam automaticamente quando adicionamos novos conversores.
https://jinero.online/api/v1/code/converters
curl https://jinero.online/api/v1/code/converters
const r = await fetch("https://jinero.online/api/v1/code/converters");
const { converters } = await r.json();
// converters is a flat list of { id, from, to, label, optionsSchema }
{
"success": true,
"converters": [
{ "id": "json-to-yaml", "from": "json", "to": "yaml", "label": "JSON → YAML", "optionsSchema": {} },
{ "id": "css-to-scss", "from": "css", "to": "scss", "label": "CSS → SCSS", "optionsSchema": {} },
{ "id": "html-to-pug", "from": "html", "to": "pug", "label": "HTML → Pug", "optionsSchema": {} }
]
}
Converte um trecho de uma linguagem para outra. Suporta JSON↔YAML↔TOML↔XML, CSS↔SCSS, HTML↔Pug, SVG↔JSX e outros — chame /code/converters para ver a lista completa.
https://jinero.online/api/v1/code/convert
| Parâmetro | Tipo | Descrição |
|---|---|---|
code |
string | Código-fonte. Até 200.000 caracteres. |
from |
string | Identificador da linguagem de origem, de /code/converters. |
to |
string | Identificador da linguagem de destino. |
options |
object | Ajustes específicos do conversor (veja optionsSchema em /code/converters). |
curl -X POST https://jinero.online/api/v1/code/convert \
-H "Content-Type: application/json" \
-d '{"code": "{\"name\": \"jinero\"}", "from": "json", "to": "yaml"}'
const r = await fetch("https://jinero.online/api/v1/code/convert", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
code: jsonSource,
from: "json",
to: "yaml",
}),
});
const { output } = await r.json();
$res = Http::post("https://jinero.online/api/v1/code/convert", [
"code" => $cssSource,
"from" => "css",
"to" => "scss",
]);
$scss = $res->json("output");
{
"success": true,
"from": "json",
"to": "yaml",
"output": "name: jinero\n",
"notes": null
}
Semântica HTTP padrão. Os erros retornam JSON com o campo "message", que descreve a falha.
// 422 — validation (unknown type, oversize snippet, unsupported converter)
{ "message": "The type field must be one of: js, css, html, svg, json, xml, auto." }
// 422 — minification/conversion error from the underlying tool
{ "message": "Unexpected token at line 12" }
// 429 — rate limit exceeded
{ "message": "Too Many Attempts." }
// 500 — registry unreachable (Node helper crashed)
{ "message": "Registry unavailable" }
Sobre a Code API do jinero.online
API REST gratuita para minificar, formatar e converter código — JS, CSS, HTML, SVG, JSON, YAML, TOML, XML, Pug, SCSS — em um único contrato JSON limpo.
Ferramentas consagradas
Terser, clean-css, html-minifier-terser, prettier, svgo — os mesmos motores que todo mundo usa, disponíveis em um contrato REST limpo.
Matriz de conversões
Mais de 20 pares de linguagens: JSON↔YAML↔TOML↔XML, CSS↔SCSS, HTML↔Pug, SVG↔JSX. Veja todos em /code/converters.
Limites de uso altos
30 requisições/minuto por IP — texto entra, texto sai, sem armazenamento de arquivos para se preocupar.
Sem estado e privado
Os trechos são processados em memória e nunca registrados em logs. Não sobra nada para limpar depois.
Perguntas frequentes
Não. A Code API é pública e tem limite de uso por IP — 30 requisições/minuto em cada endpoint. Se precisar de limites maiores, crie uma conta e gere um token.
200.000 caracteres (~200 KB) por requisição. Cabe até um CSS empacotado muito grande ou arquivos de configuração JSON enormes. Para minificações gigantescas, use o Terser localmente.
Sim. Os dois chamam os mesmos scripts auxiliares em Node (resources/node/minify.js e resources/node/converter.js) com as mesmas flags, então o comportamento é idêntico.
Mais de vinte pares no momento: JSON↔YAML↔TOML↔XML, CSV↔JSON, CSS↔SCSS, HTML↔Pug, SVG↔JSX e outros. Chame GET /code/converters para ter a lista atualizada e legível por máquina — com o esquema de opções de cada par.
Não. O corpo da requisição é gravado em um arquivo temporário para o script Node, processado e excluído imediatamente. Não registramos o conteúdo do código — só os metadados da requisição (tamanho, tipo, código de status) para controlar os limites.