Unicode Internationalization Test Data Generator API

API ID 13372

Unicode test data for internationalization testing: combining marks, bidi overrides, ZWJ emoji, homoglyphs. Deterministic seeds, and every value explains what it breaks.

Documentação da API

Endpoints

Requisição
Gera dados de teste de caso extremo para um único tipo de campo — os valores de entrada hostis, mas legais, que quebram códigos reais. Retorna valores com os metadados que os tornam acionáveis: a qual categoria o valor pertence e uma explicação em linguagem simples do tipo exato de código que ele quebra Escolha entre 16 tipos em 8 grupos: unicode_string, emoji_sequence, person_name, organization_name, email, email_display_name, date, datetime, integer, float, UUID, path_or_filename, postal_code, phone_number, JSON key e JSON value Exemplos do que você obtém: datas de dias bissextos que quebram a aritmética de datas ingênua, o timestamp do ano 2038 que transborda time_t de 32 bits, 0.30000000000000004 de arredondamento IEEE 754, famílias de emojis ZWJ que são um grapheme mas sete pontos de código, homógrafos cirílicos usados em spoofing de domínio, nomes de arquivos reservados do Windows como CON, e endereços de email válidos segundo o RFC 5322 que validadores regex ingênuos rejeitam erroneamente Totalmente determinístico: passe uma semente e os mesmos valores exatos retornam toda vez, de modo que os resultados possam ser fixados em fixtures de CI. Omitir a semente gera uma para você e a retorna na resposta, pronta para ser fixada mais tarde Saída como JSON (padrão), CSV ou texto simples. Filtre para uma única categoria com o parâmetro de categoria. Descubra todos os tipos e categorias através do endpoint do Catálogo
Endpoint ID: 28541
GET https://creators.zylalabs.com/api/13372/unicode+internationalization+test+data+generator+api/28541/generate+edge+case+test+data
PARÂMETROS DE ENTRADA

Gerar dados de teste de caso extremo — Recursos do endpoint

Objeto Descrição
type Obrigatório Field type to generate. One of the 16 types — call the Catalog endpoint for the full list.
count Opcional Number of values to return, 1–500. Default 50.
seed Opcional Integer seed for reproducible output. Omit for a random seed, which is returned in the response.
category Opcional Restrict output to one category within the type, e.g. leap_day or homoglyph.
format Opcional json (default), csv, or text.
csv_escape Opcional Only for format=csv. true (default) neutralises spreadsheet formula injection; false returns raw values.

Solicitações gratuitas de teste restantes: 3 de 3.


PARÂMETROS DE ENTRADA

type
count
seed
category
format
csv_escape
RESPOSTA DE EXEMPLO DA API
JSON
{
    "type": "email",
    "seed": 42,
    "count": 3,
    "items": [
        {
            "value": "user@[192.168.1.1]",
            "category": "ip_literal_domain",
            "breaks": "Domain-parsing code that assumes the part after '@' is always a hostname (never a bracketed IP literal) fails to extract or validate the domain correctly.",
            "safe_to_display": true
        },
        {
            "value": "[email protected]",
            "category": "punycode_domain",
            "breaks": "The domain is punycode-encoded (an internationalized domain name). Domain allowlist or comparison logic that does not decode punycode may fail to recognize this as equivalent to its Unicode form, or fail to catch a homograph-spoofed lookalike domain encoded the same way.",
            "safe_to_display": true
        },
        {
            "value": "[email protected]",
            "category": "plus_addressing",
            "breaks": "Deduplication logic treating '[email protected]' and '[email protected]' as different accounts misses that most mail providers deliver both to the same inbox (sub-addressing, RFC 5233).",
            "safe_to_display": true
        }
    ]
}
Gerar dados de teste de caso extremo — TRECHOS DE CÓDIGO

curl --location --request GET 'https://zylalabs.com/api/13372/unicode+internationalization+test+data+generator+api/28541/generate+edge+case+test+data?type=email&count=3&seed=42' --header 'Authorization: Bearer YOUR_API_KEY' 


    
Requisição
Gera um fixture de teste completo em uma chamada: defina seus próprios nomes de campo, mapeie cada um para um tipo e receba linhas prontas para semear um banco de dados, um fixture de CI ou um conjunto de dados de QA Envie um objeto de campos mapeando qualquer nome de campo que você quiser para um dos 16 tipos suportados, por exemplo, {"user_email": "email", "signup_at": "datetime", "display_name": "person_name"}. Cada linha combina um valor hostil por campo, então uma única chamada exercita muitos modos de falha ao mesmo tempo Até 20 campos e 500 linhas por chamada. Dois campos compartilhando o mesmo tipo recebem valores embaralhados de forma independente ao invés de cópias idênticas, então um billing_email e um personal_email na mesma linha são endereços genuinamente diferentes Determinístico: a mesma semente sempre retorna as mesmas linhas. Omitindo a semente, uma é gerada e retornada para que a execução possa ser reproduzida exatamente Saída como JSON (padrão) ou CSV. CSV retorna uma coluna por nome de campo, na ordem em que você os declarou—cole diretamente em uma planilha ou script de semeadura
Endpoint ID: 28542
POST https://creators.zylalabs.com/api/13372/unicode+internationalization+test+data+generator+api/28542/generate+multi-field+test+fixture+rows
PARÂMETROS DE ENTRADA

Gerar Linhas de Equipamento de Teste de Múltiplos Campos — Recursos do endpoint

Objeto Descrição
Corpo da requisição Obrigatório Json
Corpo da requisição Obrigatório Json

Solicitações gratuitas de teste restantes: 3 de 3.


PARÂMETROS DE ENTRADA

RESPOSTA DE EXEMPLO DA API
JSON
{
    "seed": 7,
    "count": 2,
    "rows": [
        {
            "user_email": {
                "value": "a234567890123456789012345678901234567890123456789012345678901234@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com",
                "category": "max_length_254",
                "breaks": "This address is near the RFC 5321 maximum length of 254 characters. Database columns sized below that maximum truncate or reject it even though it is technically valid.",
                "safe_to_display": true
            },
            "signup_at": {
                "value": "2026-11-01T01:30:00-04:00",
                "category": "dst_fall_back_ambiguous",
                "breaks": "In US Eastern time, this local clock time occurs twice during the fall-back transition. Without an explicit fold indicator, converting it to UTC is genuinely ambiguous, and libraries may silently pick the wrong occurrence.",
                "safe_to_display": true
            }
        },
        {
            "user_email": {
                "value": "[email protected]",
                "category": "plus_addressing",
                "breaks": "Deduplication logic treating '[email protected]' and '[email protected]' as different accounts misses that most mail providers deliver both to the same inbox (sub-addressing, RFC 5233).",
                "safe_to_display": true
            },
            "signup_at": {
                "value": "2026-01-01T24:00:00",
                "category": "midnight_as_24_00",
                "breaks": "ISO 8601 permits 24:00:00 to represent midnight at the end of a day, but many parsers only accept 00:00:00 through 23:59:59 and reject this equally valid representation.",
                "safe_to_display": true
            }
        }
    ]
}
Gerar Linhas de Equipamento de Teste de Múltiplos Campos — TRECHOS DE CÓDIGO

curl --location --request POST 'https://zylalabs.com/api/13372/unicode+internationalization+test+data+generator+api/28542/generate+multi-field+test+fixture+rows' --header 'Authorization: Bearer YOUR_API_KEY' 

--data-raw '{
  "fields": {
    "user_email": "email",
    "signup_at": "datetime"
  },
  "count": 2,
  "seed": 7
}'

    
Requisição
Retorna todos os tipos de campo que esta API pode gerar, junto com seu grupo de categoria, uma descrição, a lista de tags de categoria disponíveis para filtragem e quantos valores distintos existem em cada grupo. Chame isso primeiro ao integrar programaticamente — incluindo de um agente de IA ou assistente de codificação — para descobrir o conjunto completo de capacidades sem codificar nomes de tipo ou ler documentação. Também retorna os formatos de saída suportados e o número máximo de linhas por solicitação
Endpoint ID: 28543
GET https://creators.zylalabs.com/api/13372/unicode+internationalization+test+data+generator+api/28543/list+available+types+and+categories
PARÂMETROS DE ENTRADA

Solicitações gratuitas de teste restantes: 3 de 3.

Este endpoint não requer parâmetros de entrada.

RESPOSTA DE EXEMPLO DA API
JSON
{
    "types": [
        {
            "type": "date",
            "category_group": "datetimes",
            "description": "Calendar-boundary and invalid-looking-but-real dates.",
            "categories": [
                "earliest_iso_year",
                "far_future_sentinel",
                "invalid_day_of_month",
                "leap_day",
                "pre_epoch",
                "year_2038"
            ],
            "entry_count": 6
        },
        {
            "type": "datetime",
            "category_group": "datetimes",
            "description": "Timestamps at DST transitions, unusual UTC offsets, and precision boundaries.",
            "categories": [
                "dst_fall_back_ambiguous",
                "dst_spring_forward_gap",
                "leap_second",
                "midnight_as_24_00",
                "quarter_hour_offset",
                "sub_microsecond_precision"
            ],
            "entry_count": 7
        },
        {
            "type": "email",
            "category_group": "emails",
            "description": "RFC 5322-valid but unusual email addresses.",
            "categories": [
                "comment_syntax",
                "ip_literal_domain",
                "max_length_254",
                "mixed_case",
                "plus_addressing",
                "punycode_domain",
                "quoted_local_part"
            ],
            "entry_count": 7
        },
        {
            "type": "email_display_name",
            "category_group": "emails",
            "description": "Display-name strings that can corrupt naively-built SMTP headers.",
            "categories": [
                "angle_bracket_in_display_name",
                "comma_in_display_name",
                "crlf_header_injection",
                "null_byte",
                "very_long_display_name"
            ],
            "entry_count": 5
        },
        {
            "type": "emoji_sequence",
            "category_group": "unicode",
            "description": "Multi-codepoint emoji: ZWJ sequences, skin-tone modifiers, flag sequences, keycaps.",
            "categories": [
                "flag_sequence",
                "keycap_sequence",
                "skin_tone_modifier",
                "zwj_family",
                "zwj_generic_pair"
            ],
            "entry_count": 5
        },
        {
            "type": "float",
            "category_group": "numbers",
            "description": "Floating-point values that are not representable in JSON, or that expose IEEE 754 rounding.",
            "categories": [
                "denormal_minimum",
                "ieee754_rounding",
                "infinity",
                "not_a_number",
                "scientific_notation"
            ],
            "entry_count": 5
        },
        {
            "type": "integer",
            "category_group": "numbers",
            "description": "Integer values at 32-bit and 64-bit signed boundaries.",
            "categories": [
                "int32_max_plus_one",
                "int32_min_minus_one",
                "int64_max",
                "leading_zeros",
                "negative_zero"
            ],
            "entry_count": 5
        },
        {
            "type": "json_key",
            "category_group": "structural",
            "description": "Strings intended for use as a JSON object key, including reserved and unsafe names.",
            "categories": [
                "dollar_prefix",
                "embedded_dot",
                "empty_string_key",
                "numeric_string_key",
                "prototype_pollution_key",
                "very_long_key",
                "whitespace_only_key"
            ],
            "entry_count": 8
        },
        {
            "type": "json_value",
            "category_group": "structural",
            "description": "JSON values at precision, nesting, and null/empty/missing boundaries.",
            "categories": [
                "boolean_as_string",
                "empty_array",
                "empty_object",
                "explicit_null",
                "float64_precision_loss",
                "leading_zero_numeric_string"
            ],
            "entry_count": 6
        },
        {
            "type": "organization_name",
            "category_group": "names",
            "description": "Company/brand names with punctuation, leading digits, or unusual casing.",
            "categories": [
                "accented_character",
                "ampersand",
                "apostrophe",
                "intentional_lowercase_brand",
                "leading_digit",
                "trailing_punctuation",
                "very_long_legal_name"
            ],
            "entry_count": 7
        },
        {
            "type": "path_or_filename",
            "category_group": "identifiers",
            "description": "Filenames and paths that are legal but mishandled by common filesystem or validation code.",
            "categories": [
                "bare_parent_reference",
                "leading_dot_hidden_file",
                "max_length_255",
                "path_traversal",
                "reserved_windows_device_name",
                "trailing_dot",
                "trailing_space",
                "unicode_normalization_mismatch"
            ],
            "entry_count": 8
        },
        {
            "type": "person_name",
            "category_group": "names",
            "description": "Names that break naive validation, splitting, or templating logic -- includes canonical injection probes.",
            "categories": [
                "apostrophe",
                "emoji_in_name",
                "leading_trailing_whitespace",
                "mononym",
                "multi_word_particle_surname",
                "reserved_word",
                "right_to_left_script",
                "shell_metacharacter_probe",
                "single_character",
                "sql_injection_probe",
                "ssti_probe",
                "very_long_name",
                "xss_probe"
            ],
            "entry_count": 14
        },
        {
            "type": "phone_number",
            "category_group": "addresses_phones",
            "description": "Phone numbers at E.164 length boundaries and common formatting variants.",
            "categories": [
                "e164_maximum_length",
                "e164_near_minimum_length",
                "extension_suffix",
                "human_formatted_punctuation",
                "leading_zero_national_format",
                "long_country_code"
            ],
            "entry_count": 6
        },
        {
            "type": "postal_code",
            "category_group": "addresses_phones",
            "description": "Postal codes from formats that break US-centric assumptions.",
            "categories": [
                "canada_alternating_pattern",
                "country_without_postal_code",
                "eircode",
                "embedded_hyphen",
                "leading_zero_us_zip",
                "uk_postcode_variable_length"
            ],
            "entry_count": 6
        },
        {
            "type": "unicode_string",
            "category_group": "unicode",
            "description": "Strings with combining marks, bidi overrides, zero-width characters, and homoglyphs.",
            "categories": [
                "astral_plane",
                "bidi_override",
                "byte_order_mark",
                "combining_diacritic",
                "combining_mark_stack",
                "homoglyph",
                "mixed_script",
                "variation_selector",
                "zero_width_space"
            ],
            "entry_count": 9
        },
        {
            "type": "uuid",
            "category_group": "identifiers",
            "description": "Syntactically valid UUIDs at sentinel and formatting boundaries.",
            "categories": [
                "invalid_version_nibble",
                "max_uuid",
                "nil_uuid",
                "unhyphenated_form",
                "uppercase_hex"
            ],
            "entry_count": 5
        }
    ],
    "formats": [
        "csv",
        "json",
        "text"
    ],
    "max_count": 500
}
Listar Tipos e Categorias Disponíveis — TRECHOS DE CÓDIGO

curl --location --request GET 'https://zylalabs.com/api/13372/unicode+internationalization+test+data+generator+api/28543/list+available+types+and+categories' --header 'Authorization: Bearer YOUR_API_KEY' 


    

Chave de acesso à API e autenticação

Após se cadastrar, cada desenvolvedor recebe uma chave de acesso à API pessoal, uma combinação única de letras e dígitos para acessar nosso endpoint de API. Para autenticar com a Unicode Internationalization Test Data Generator API basta incluir seu token Bearer no cabeçalho Authorization.

Cabeçalhos
Cabeçalho Descrição
Authorization Obrigatório Deve ser Bearer access_key. Veja "Sua chave de acesso à API" acima quando você estiver inscrito.

Sem compromisso de longo prazo. Faça upgrade, downgrade ou cancele a qualquer momento. O teste gratuito inclui até 50 requisições.

(Economize 2 meses com cobrança anual 🎉)

🚀 Plano Empresarial

A partir de
$ 10.000/Ano


  • Volume personalizado
  • Limite de taxa personalizado
  • Suporte ao cliente especializado
  • Monitoramento de API em tempo real
zeiss-logo amazon-logo zoom-logo decathlon-logo

Empresas líderes confiam em nós

Visão Geral

Edge case test data for QA and fuzz testing: Unicode, injection probes, boundary dates, float precision. 16 types, reproducible seeds, and every value explains what it breaks.

Unicode Internationalization Test Data Generator API FAQs

Dados de teste de casos extremos são entradas que são tecnicamente válidas, mas estão nos limites onde o software costuma falhar—datas de dia bissexto, inteiros nos limites de 32 bits, nomes contendo apóstrofos, emojis feitos de múltiplos pontos de código e nomes de arquivos reservados pelo Windows. Geradores de dados falsos comuns produzem dados plausíveis; dados de casos extremos são os que realmente encontram bugs

Faker Mockaroo e ferramentas semelhantes otimizam para dados que parecem realistas nomes endereços e datas plausíveis Esta API faz o oposto cada valor é escolhido porque quebra algo Ela também informa o que quebra para que um teste falho seja diagnosticável imediatamente em vez de ser um mistério

Uma explicação em inglês simples do modo de falha específico que o valor foi projetado para expor - por exemplo, que 0.30000000000000004 é o resultado real de 0.1 + 0.2 na aritmética IEEE 754 e falhará em uma verificação de igualdade contra 0.3. Isso transforma uma string bruta em um caso de teste documentado

Sim. Passe uma semente e os mesmos valores são retornados sempre, permanentemente, nos endpoints /v1 - seguro para fixar em fixtures de CI. Omitir a semente e uma aleatória é gerada e retornada na resposta para que você possa reproduzir essa execução exata mais tarde

Dezesseis tipos em oito grupos: strings Unicode e sequências de emoji, nomes de pessoas e organizações, e-mails e nomes de exibição de e-mail, datas e datetimes, inteiros e floats, UUIDs e caminhos de arquivos, códigos postais e números de telefone, e chaves e valores JSON

Sim POST /v1/generate aceita um objeto fields mapeando seus próprios nomes de campo para tipos e retorna até 500 linhas completas até 20 campos cada prontas para semear um banco de dados ou um fixture de CI

Inclui sondas de detecção canônicas e inofensivas do tipo publicadas em guias padrão de testes de segurança - uma tautologia SQL uma sonda básica XSS uma string de travessia de caminho Estas são para testar seu próprio manuseio de entrada Não há exploits funcionais payloads de shell ou cadeias de ataque específicas de CVE

Ele distingue dois riscos diferentes "Falso" significa que o valor não é seguro para ser renderizado como bruto em uma interface de usuário uma sobreposição bidirecional que pode enganar visualmente um nome de arquivo por exemplo "Verdadeiro" significa que é seguro exibir como texto inerte mesmo que ainda possa quebrar o código de backend que o processa Filtre-o se você mostrar valores gerados aos usuários

Sim — format=csv, além de format=text para um valor bruto por linha. Por padrão, as células CSV que acionariam a execução de fórmulas de planilhas são neutralizadas. Defina csv_escape=false se você estiver testando deliberadamente seu próprio manuseio de importação CSV

Não A API é sem estado sem banco de dados Nada que você solicitar e nada gerado para você é escrito em logs apenas metadados de solicitação como endpoint código de status e qual tipo foi solicitado

Perguntas Frequentes Gerais

O Zyla API Hub é como uma grande loja de APIs, onde você pode encontrar milhares delas em um só lugar. Também oferecemos suporte dedicado e monitoramento em tempo real de todas as APIs. Após se cadastrar, você pode escolher quais APIs deseja usar. Lembre-se apenas de que cada API precisa de sua própria assinatura. Mas se você se inscrever em várias, usará a mesma chave para todas elas, facilitando as coisas para você.
Os preços são listados em USD (Dólar Americano), EUR (Euro), CAD (Dólar Canadense), AUD (Dólar Australiano) e GBP (Libra Esterlina). Aceitamos todos os principais cartões de débito e crédito. Nosso sistema de pagamento usa a mais recente tecnologia de segurança e é operado pela Stripe, uma das empresas de pagamento mais confiáveis do mundo. Se tiver problemas para pagar com cartão, entre em contato conosco em [email protected]

Além disso, se você já tiver uma assinatura ativa em qualquer uma dessas moedas (USD, EUR, CAD, AUD, GBP), essa moeda será mantida para assinaturas subsequentes. Você pode alterar a moeda a qualquer momento, desde que não tenha assinaturas ativas.
A moeda local exibida na página de preços é baseada no país do seu endereço IP e é fornecida apenas como referência. Os preços reais são em USD (Dólar Americano). Ao efetuar o pagamento, a cobrança aparecerá no extrato do seu cartão em USD, mesmo que você veja o valor equivalente em sua moeda local em nosso site. Isso significa que você não pode pagar diretamente com sua moeda local.
Ocasionalmente, o banco pode recusar a cobrança devido às configurações de proteção contra fraude. Sugerimos contatar seu banco inicialmente para verificar se estão bloqueando nossas cobranças. Você também pode acessar o Portal de Cobrança e alterar o cartão associado para realizar o pagamento. Se isso não funcionar e precisar de mais ajuda, entre em contato com nossa equipe em [email protected]
Os preços são determinados por uma assinatura recorrente mensal ou anual, dependendo do plano escolhido.
As chamadas de API são descontadas do seu plano com base nas requisições bem-sucedidas. Cada plano possui um número específico de chamadas por mês. Apenas chamadas bem-sucedidas, indicadas por uma resposta com Status 200, serão contabilizadas, garantindo que falhas não afetem sua cota mensal.
O Zyla API Hub funciona com um sistema de assinatura mensal recorrente. Seu ciclo de cobrança começa no dia em que você compra um dos planos pagos e será renovado no mesmo dia do mês seguinte. Portanto, cancele sua assinatura com antecedência se quiser evitar cobranças futuras.
Para fazer upgrade do seu plano atual, acesse a página de preços da API e selecione o novo plano desejado. O upgrade é instantâneo, permitindo aproveitar imediatamente os recursos do novo plano. Observe que as chamadas restantes do plano anterior não serão transferidas; você será cobrado pelo valor integral do novo plano.
Para verificar quantas chamadas de API restam para o mês atual, consulte o campo 'X-Zyla-API-Calls-Monthly-Remaining' no cabeçalho da resposta. Por exemplo, se seu plano permite 1.000 requisições por mês e você usou 100, este campo no cabeçalho da resposta indicará 900 chamadas restantes.
Para ver o número máximo de requisições de API que seu plano permite, verifique o cabeçalho de resposta 'X-Zyla-RateLimit-Limit'. Por exemplo, se seu plano inclui 1.000 requisições por mês, este cabeçalho exibirá 1.000.
O cabeçalho 'X-Zyla-RateLimit-Reset' mostra o número de segundos até seu limite de taxa ser redefinido. Isso informa quando sua contagem de requisições começará do zero. Por exemplo, se exibir 3.600, significa que restam 3.600 segundos até o limite ser redefinido.
Sim, você pode cancelar seu plano a qualquer momento acessando sua conta e selecionando a opção de cancelamento na página de Cobrança. Observe que upgrades, downgrades e cancelamentos têm efeito imediato. Além disso, após o cancelamento, você não terá mais acesso ao serviço, mesmo que ainda tenha chamadas restantes na sua cota.
Para oferecer a oportunidade de experimentar nossas APIs sem compromisso, oferecemos um teste gratuito de 7 dias que permite realizar até 50 chamadas de API sem custo. Esse teste pode ser usado apenas uma vez; recomendamos aplicá-lo à API que mais interessa. Embora a maioria das APIs ofereça teste gratuito, algumas podem não oferecer. O teste termina após 7 dias ou quando você atingir 50 requisições, o que ocorrer primeiro. Se atingir o limite, será necessário "Iniciar seu plano pago" para continuar. Você encontra esse botão no perfil em Assinatura -> Escolha a API -> aba Preços. Se não cancelar até o 7º dia, sua assinatura será cobrada automaticamente, liberando todas as chamadas do plano.
Após 7 dias, será cobrado o valor total do plano ao qual você estava inscrito durante o teste. Portanto, é importante cancelar antes do término do período. Solicitações de reembolso por esquecimento de cancelamento não são aceitas.
Ao assinar um teste gratuito de API, você pode fazer até 50 chamadas. Se desejar fazer chamadas adicionais além desse limite, a API solicitará que você "Inicie seu plano pago". Você encontra o botão no perfil em Assinatura -> Escolha a API -> aba Preços.
As Ordens de Pagamento são processadas entre os dias 20 e 30 de cada mês. Se você enviar sua solicitação antes do dia 20, seu pagamento será processado dentro desse período.
Você pode nos contatar via chat para receber assistência imediata. Estamos online de 8h às 17h (EST). Se nos contatar após esse horário, retornaremos o mais rápido possível. Além disso, você pode enviar um e-mail para [email protected]

APIs relacionadas