{
"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/13370/boundary+value+generator+api/28535/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/13370/boundary+value+generator+api/28536/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/13370/boundary+value+generator+api/28537/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 Valores de Frontera 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 🎉)
Datos de prueba de valores límite para errores de uno: límites de int32 e int64, cadenas de longitud máxima, valores vacíos. Semillas deterministas y cada valor explica qué rompe
Los datos de prueba de casos límite son entradas que son técnicamente válidas pero se sitúan en los límites donde el software comúnmente falla—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 archivo reservados por Windows. Los generadores de datos falsos ordinarios producen datos plausibles; los datos de casos límite 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 es elegido porque rompe algo También te dice qué rompe así que una prueba fallida es inmediatamente diagnosable en lugar de un misterio
Una explicación en inglés sencillo del modo de fallo específico que se diseñó para exponer el valor — por ejemplo, que 0.30000000000000004 es el resultado real de 0.1 + 0.2 en la aritmética IEEE 754 y fallará en una comparación de igualdad contra 0.3. Convierte una cadena en crudo en un caso de prueba documentado
Sí Pasa una semilla y los mismos valores son devueltos cada vez permanentemente en los endpoints /v1 seguro para fijar en los accesorios de CI Omitir 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 de 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, UUIDs y rutas de archivos, códigos postales y números de teléfono, y claves y valores de 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 estándar de pruebas de seguridad — una tautología SQL, una sonda básica de XSS, una cadena de recorrido de ruta. Estas son para probar el manejo de tus propias entradas. No hay exploits funcionales, cargas útiles de shell, ni cadenas de ataque específicas de CVE
Distingue dos riesgos diferentes "Falso" significa que el valor es inseguro para mostrarlo en una interfaz de usuario un anulación bidireccional que puede falsificar visualmente un nombre de archivo por ejemplo "Verdadero" significa que es seguro mostrarlo como texto inerte aunque aún pueda romper el código de backend que lo procesa Filtra si muestras valores generados a los usuarios
Sí — format=csv, además format=text para un valor en bruto por línea. Por defecto, las celdas CSV que activarían la ejecución de fórmulas en hojas de cálculo son neutralizadas. Establezca csv_escape=false si está probando deliberadamente su propia gestión de importación de CSV.
No La API es sin estado sin base de datos Nada de lo que pidas y nada generado para ti se escribe en los registros solo metadatos de la solicitud como el punto final el código de estado y qué tipo fue solicitado