Criar ZIP de arquivos de texto
Crie um ZIP para download colando texto em até 50 entradas nomeadas. A ferramenta preserva subpastas relativas seguras e roda localmente; ainda não aceita PDF, imagens ou outros arquivos binários.
Executar grátis
Um pacote só, em vez de dez anexos
Configurações, logs, CSV, notas de código e outros textos podem virar um único download. Adicione uma linha por entrada, informe um caminho relativo seguro, cole o texto e baixe o ZIP.
Como criar o ZIP de texto
Cada entrada tem nome ou caminho relativo e conteúdo UTF-8. Caminhos como docs/readme.txt preservam subpastas seguras. O ZIP usa o método store: empacota sem reduzir o tamanho.
ZIP gerado pelo seu sistema, via API
Via API, envie até 50 objetos {name, content} de texto a /data/zip. A chamada custa US$ 0,002, retorna uma tarefa e entrega um ZIP padrão. Upload binário ainda não faz parte deste contrato.
Casos de uso
Exportar dados textuais
Um sistema agrupa um CSV, um manifesto JSON e um resumo de texto em um único download.
Empacotar arquivos de projeto em texto
Uma equipe empacota README, licença e configurações de texto em subpastas seguras.
Agrupar logs diários
Um processo diário agrupa até 50 arquivos de log em um ZIP.
Agrupar relatórios CSV
Um serviço de relatórios empacota saídas CSV e texto em um arquivo.
Perguntas frequentes
Preciso instalar WinRAR ou 7-Zip?
Não. Você informa nomes relativos e cola o conteúdo de texto; o ZIP é gerado no navegador.
Dá para colocar senha no ZIP?
Não. O arquivo é gerado sem senha e contém apenas as entradas de texto informadas.
Quanto o arquivo diminui?
Não diminui: o método store apenas empacota o conteúdo. O ganho é reunir as entradas em um único arquivo.
Funciona no celular?
Sim, para entradas de texto. PDF, imagens e outros binários ainda não podem ser enviados por este formulário.
É grátis mesmo?
Sim no navegador. A API custa US$ 0,002 por chamada e aceita até 50 entradas de texto.
Qual o limite e para onde vão meus arquivos?
Até 50 entradas de texto. O formulário não aceita uploads binários; o texto permanece no navegador.
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/data/zip \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"files":[{"name":"a.txt","content":"hola"}]}'const res = await fetch("https://api.kit.forhosting.com/data/zip", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"files": [
{
"name": "a.txt",
"content": "hola"
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/zip",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"files": [
{
"name": "a.txt",
"content": "hola"
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/zip", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"files":[{"name":"a.txt","content":"hola"}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"files":[{"name":"a.txt","content":"hola"}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/zip", 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
{
"files": [
{
"name": "a.txt",
"content": "hola"
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.zip",
"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.
Limites
max_mb | 25 |
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. |