Gerador de JSON Schema
Cole um documento JSON real e receba o JSON Schema correspondente: tipos de cada campo, obrigatórios e opcionais, objetos aninhados e arrays já mapeados. É o atalho para validar payloads de APIs, formulários e integrações — em vez de escrever o schema na mão, você parte de um rascunho gerado do dado verdadeiro.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Por que gerar o schema a partir do dado real
Escrever JSON Schema à mão é chato e propenso a erro: um campo esquecido, um tipo errado, e a validação deixa passar payload quebrado. Gerando o schema a partir de um exemplo verdadeiro, a estrutura nasce fiel ao que o sistema realmente envia — cada propriedade com seu tipo, os aninhamentos no lugar, os arrays com o formato dos itens. Você revisa, marca o que é de fato obrigatório e pluga o schema no seu validador.
O fluxo pela API
Mande o JSON de exemplo em uma chamada para /dev/json-schema-gen e receba o schema pronto, também em JSON. O campo $schema indica a versão do padrão usada. Dá para automatizar: um script percorre os payloads salvos dos seus webhooks, gera um schema para cada tipo de evento e commita tudo no repositório de contratos. A partir daí, qualquer payload fora do padrão é barrado na entrada, antes de virar bug em produção.
Custo por documento
US$ 0,003 por chamada, mais US$ 0,0135 por documento processado — cerca de US$ 0,017 por schema, em dólares americanos e com o valor publicado aqui na página. Gerar os schemas de vinte tipos de evento de um sistema inteiro custa menos de US$ 0,40. Sem assinatura, sem plano: você paga as chamadas que fizer e mais nada. A compra é direta, sem criar conta.
Casos de uso
Validar webhooks de pagamento
Sua loja recebe webhooks do gateway de pagamento e o backend confia que o formato nunca muda — até mudar. Gere o schema a partir de um evento real e valide todo payload na chegada: o que vier diferente é logado e rejeitado antes de bagunçar o fluxo de pedidos.
Contrato entre front e back
O time da TecnoSul Soluções Digitais mantém o front e a API em repositórios separados. Com um schema gerado a partir das respostas reais, os dois lados validam contra o mesmo contrato e a clássica discussão “o campo vinha como string” acaba.
Documentar uma API herdada
Você assumiu uma API sem documentação nenhuma. Colete respostas reais de cada endpoint, gere um schema por rota e pronto: nasce uma documentação técnica mínima e verificável do que o sistema devolve hoje.
Perguntas frequentes
O schema já marca os campos obrigatórios?
A partir de um único exemplo, o serviço mapeia todos os campos presentes — mas só você sabe o que é obrigatório de verdade no seu negócio. Revise a lista required antes de usar em produção e ajuste o que for opcional.
Serve para validar dados em qualquer linguagem?
Sim. JSON Schema é um padrão aberto: o schema gerado funciona com os validadores de JavaScript, Python, PHP, Java, Go e por aí vai. Gere uma vez, valide em todo lugar.
Tem problema mandar um JSON com dados pessoais?
O documento é processado no servidor apenas para gerar o schema da sua tarefa. Ainda assim, para payloads com CPF, e-mail ou endereço de clientes, a prática mais limpa — e mais alinhada com a LGPD — é trocar os valores por dados fictícios antes de enviar: para o schema, o que importa é a estrutura, não o conteúdo.
E se o meu JSON for gigante?
Não há limite publicado, mas raramente você precisa do documento inteiro: um exemplo representativo, com todos os campos presentes, gera um schema tão bom quanto — e sai mais barato de processar.
Quanto custa e como eu pago?
US$ 0,003 por chamada mais US$ 0,0135 por documento, pagos por uso via PayPal, sem mensalidade e sem cadastro. O valor é sempre em dólares americanos, como publicado na página.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/json-schema-gen \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/dev/json-schema-gen", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/json-schema-gen",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/json-schema-gen", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/json-schema-gen", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"input": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.json_schema_gen",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
422 | task_failed | A tarefa falhou do nosso lado. Você não paga nada por ela. |