{
"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
}
]
}
curl --location --request GET 'https://zylalabs.com/api/13369/edge+case+test+data+generator+api/28532/generate+edge+case+test+data?type=email&count=3&seed=42' --header 'Authorization: Bearer YOUR_API_KEY'
{
"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
}
}
]
}
curl --location --request POST 'https://zylalabs.com/api/13369/edge+case+test+data+generator+api/28533/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
}'
{
"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
}
curl --location --request GET 'https://zylalabs.com/api/13369/edge+case+test+data+generator+api/28534/list+available+types+and+categories' --header 'Authorization: Bearer YOUR_API_KEY'
Después de registrarte, a cada desarrollador se le asigna una clave de acceso a la API personal, una combinación única de letras y dígitos proporcionada para acceder a nuestro endpoint de la API. Para autenticarte con el Generador de Datos de Prueba de Caso Limite API simplemente incluye tu token de portador en el encabezado de Autorización.
| Encabezado | Descripción |
|---|---|
Autorización
|
Requerido
Debería ser Bearer access_key. Consulta "Tu Clave de Acceso a la API" arriba cuando estés suscrito.
|
Sin compromiso a largo plazo. Mejora, reduce o cancela en cualquier momento. La Prueba Gratuita incluye hasta 50 solicitudes.
(Ahorra 2 meses pagando anualmente 🎉)
Empresas líderes confían en nosotros
Datos de prueba de casos extremos para QA y pruebas de fuzz: Unicode, sondas de inyección, fechas límite, precisión flotante. 16 tipos, semillas reproducibles y cada valor explica lo que rompe
Los datos de prueba de casos extremos son entradas que son técnicamente válidas pero se sitúan en los límites donde el software falla comúnmente - fechas de días bisiestos, enteros en los límites de 32 bits, nombres que contienen apóstrofes, emoji compuestos de múltiples puntos de código y nombres de archivos reservados por Windows. Los generadores de datos falsos ordinarios producen datos plausibles; los datos de casos extremos son los que realmente encuentran errores
Faker Mockaroo y herramientas similares optimizan para datos que parecen realistas nombres direcciones y fechas Esta API hace lo contrario cada valor se elige porque rompe algo También te dice qué rompe así que una prueba fallida es inmediatamente diagnosticable en lugar de un misterio
Una explicación en inglés sencillo del modo de fallo específico que el valor está diseñado para exponer por ejemplo que 0.30000000000000004 es el resultado real de 0.1 + 0.2 en la aritmética IEEE 754 y fallará en una comprobación de igualdad contra 0.3 Convierte una cadena sin procesar en un caso de prueba documentado
Sí Pasa una semilla y los mismos valores se devuelven cada vez de forma permanente en los endpoints /v1 seguro para fijar en los elementos de CI Omite la semilla y se genera una aleatoria que se devuelve en la respuesta para que puedas reproducir esa ejecución exacta más tarde
Dieciséis tipos en ocho grupos: cadenas Unicode y secuencias de emoji, nombres de personas y organizaciones, correos electrónicos y nombres de visualización de correos electrónicos, fechas y fechas y horas, enteros y flotantes, UUID y rutas de archivo, códigos postales y números de teléfono, y claves y valores JSON
Sí POST /v1/generate acepta un objeto fields que mapea tus propios nombres de campo a tipos y devuelve hasta 500 filas completas hasta 20 campos cada una listas para sembrar una base de datos o un fixture de CI
Incluye sondas de detección canónicas y inofensivas del tipo publicadas en guías de pruebas de seguridad estándar — una tautología SQL, una sonda básica de XSS, una cadena de recorrido de ruta. Estas son para probar el manejo de tu propia entrada. No hay exploits funcionales, cargas útiles de shell o cadenas de ataque específicas de CVE
Distingue dos riesgos diferentes "Falso" significa que el valor no es seguro para mostrarlo en crudo en una interfaz de usuario un anulación bidireccional que puede simular visualmente un nombre de archivo por ejemplo "Verdadero" significa que es seguro mostrarlo como texto inerte aunque todavía puede romper el código de backend que lo procesa Filtra sobre ello si muestras valores generados a los usuarios
Sí — format=csv, además format=text para un valor en crudo por línea. Por defecto, las celdas CSV que activarían la ejecución de fórmulas de hoja de cálculo están neutralizadas. Establezca csv_escape=false si está probando deliberadamente su propio manejo de importación de CSV
No La API es sin estado sin base de datos Nada de lo que solicites y nada que se genere para ti se escribe en los registros solo metadatos de la solicitud como punto final código de estado y qué tipo se solicitó