Rowsmith

Dados de teste fictícios (CSV, JSON, SQL) a partir de um esquema, um catálogo de valores inválidos com motivos, e um sandbox de pagamentos que nunca movimenta dinheiro. Grátis, sem chave.

Documentação

Rowsmith

Dados de teste falsos a partir de um esquema de tabela, como CSV, JSON ou instruções SQL INSERT. Gratuito e com limite de taxa, sem conta e sem chave de API.

Para fixtures, dados de seed, demonstrações e CI. Envie um esquema, receba linhas de volta.

Início rápido (60 segundos)

1. Adicione o Rowsmith ao Claude Desktop, Cursor ou outro cliente MCP:

{"mcpServers":{"rowsmith":{"command":"npx","args":["-y","rowsmith-mcp"]}}}

2. Pergunte: Generate 20 orders with a fixed seed as CSV

3. Ou chame a API diretamente:

curl -s https://testdata-api.re-jam620.workers.dev/v1/generate -H 'content-type: application/json' \
  -d '{"rows":20,"seed":42,"format":"csv","columns":[{"name":"order_id","type":"sequence","prefix":"ord_","pad":4},{"name":"email","type":"email"},{"name":"total_usd","type":"decimal","min":1,"max":500}]}'

curl -s 'https://testdata-api.re-jam620.workers.dev/v1/invalid?kind=email&count=5&seed=42'

ID=$(curl -s https://testdata-api.re-jam620.workers.dev/v1/sandbox -H 'content-type: application/json' -d '{"seed":42}' | sed -E 's/.*"id":"([^"]+)".*/\1/')
curl -s https://testdata-api.re-jam620.workers.dev/v1/sandbox/$ID/charges -H 'content-type: application/json' \
  -d '{"amount":1999,"currency":"usd","card":"4242424242424242"}'

O urllib da biblioteca padrão do Python é bloqueado pela Cloudflare antes de chegar à API (403, código de erro 1010) quando envia seu User-Agent padrão. Defina o seu próprio, por exemplo, User-Agent: my-tests/1.0. Em nossos testes em 18/10/2026, requests, httpx, aiohttp, Node e curl funcionaram com seus padrões.

  • Gratuito, com limite de taxa, sem conta, sem chave de API.
  • O mesmo esquema e seed geram saída byte-idêntica para a mesma versão do gerador.
  • Um catálogo de valores inválidos com o motivo de cada valor ser inválido.
  • Um sandbox de pagamento que nunca movimenta dinheiro: um sandbox e tudo o que está nele é excluído 1 hora após sua criação. Ele aceita apenas números de cartão da lista de testes publicada pela Stripe e não armazena texto livre que você enviar.
  • Listado no Registro MCP oficial como io.github.meiorz/rowsmith.

Experimente

curl -s https://testdata-api.re-jam620.workers.dev/v1/generate \
  -H 'content-type: application/json' \
  -d '{"table":"orders","rows":3,"seed":42,"format":"csv","columns":[{"name":"order_id","type":"sequence","prefix":"ord_","pad":4},{"name":"email","type":"email"},{"name":"total_usd","type":"decimal","min":1,"max":500},{"name":"status","type":"enum","values":["paid","refunded","partially_refunded"],"weights":[8,1,1]}]}'

O que retorna

order_id,email,total_usd,status
ord_0001,amara.weber561@mail.test,230.25,paid
ord_0002,maya.wang873@mail.test,17.04,paid
ord_0003,jin.weber19@mail.test,92.51,paid

Essa solicitação, executada agora pelo próprio serviço. O mesmo esquema e seed geram saída byte-idêntica para a mesma versão do gerador (gerador 1, sfc32-splitmix32, enviado como x-generator-version), portanto, uma execução de CI é reproduzível.

Use a partir de um agente de IA

O servidor rowsmith-mcp fornece aos clientes MCP uma ferramenta generate_test_data. Ele está listado no Registro MCP oficial como io.github.meiorz/rowsmith.

{
  "mcpServers": {
    "rowsmith": { "command": "npx", "args": ["-y", "rowsmith-mcp"] }
  }
}

Para mais de cerca de 50 linhas, a ferramenta pode gravar um arquivo em vez de colocar os dados no contexto do modelo.

Tipos de coluna

  • uuid
  • sequence
  • integer
  • decimal
  • boolean
  • enum
  • date
  • datetime
  • first_name
  • last_name
  • full_name
  • email
  • phone
  • test_card
  • ssn_invalid
  • iban_invalid
  • text

Opções por tipo: /v1/types. Esquema completo da solicitação: /openapi.json.

O que são os dados

  • Cada valor é gerado por um programa a partir de um seed. Nenhum dado de pessoa real é usado como entrada, e nenhum registro é derivado de uma pessoa real.
  • Identificadores vêm apenas de intervalos reservados ou inválidos: domínios de e-mail example.com, example.org, example.net e .test; números de telefone 555-0100 a 555-0199; números de cartão publicados para testes; valores com formato de SSN e IBAN em intervalos que nunca podem ser válidos.
  • Um nome gerado pode coincidir com o de uma pessoa real por acaso.
  • Envie apenas esquemas, nunca dados reais.

Limites

Até 500 linhas e 50 colunas por chamada, com limites diários por chamador (200) e gerais. Ao exceder um limite, você recebe HTTP 429 com Retry-After. Os limites atuais estão em /openapi.json.