Validar formato de clave API: prefijo, longitud y caracteres
Una clave es válida si empieza por el prefijo esperado, mide exactamente 18 caracteres contando ese prefijo y después solo lleva letras y números. Detecte a tiempo claves cortadas, con espacios o del entorno equivocado. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Este validador comprueba esa forma: el prefijo obligatorio, la longitud total exacta y los caracteres permitidos después del prefijo. No realiza solicitudes de red, no autentica ante ningún proveedor ni afirma que una clave coincidente esté activa. Úselo para detectar truncamientos, espacios accidentales, errores al copiar o claves del entorno equivocado antes de guardar una credencial en una configuración o desplegarla.
Describa el formato esperado
Introduzca la cadena candidata en <code>key</code> y defina toda la expectativa en <code>pattern</code>. El patrón requiere tres valores: <code>prefix</code>, <code>length</code> y <code>charset</code>. La longitud es la de toda la cadena de JavaScript, incluido el prefijo, no solo la parte secreta.
El juego de caracteres se aplica a la parte posterior a un prefijo correcto. También puede indicar una cadena explícita con todos los caracteres admitidos para alfabetos propios de un proveedor. Si no existe prefijo, use una cadena vacía, pero incluya el campo.
El patrón es obligatorio y agrupa las tres restricciones para que una simple comprobación de longitud no se confunda con una validación completa. Se aceptan hasta 10,000 caracteres para mantener un procesamiento previsible.
Interprete cada resultado por separado
El valor principal <code>valid</code> solo es verdadero cuando pasan las tres pruebas. La clave candidata nunca se devuelve. Cuando el prefijo no coincide, se examina toda la cadena porque no es seguro adivinar dónde comenzaría la parte secreta.
Por eso pueden fallar varias comprobaciones a la vez. La salida es determinista y no depende de la hora, del azar, del estado del proveedor ni de la red. Un resultado falso indica únicamente una diferencia de formato, no una credencial revocada o inactiva.
Valide el formato en puntos seguros
Esta comprobación resulta especialmente útil justo antes de que una clave entre en un almacén de configuración, una variable de despliegue, una herramienta de línea de comandos o un formulario de integración. Así puede detectar errores estructurales sin enviar la credencial al emisor. Considere cualquier coincidencia solo como una prueba preliminar: no demuestra que la clave exista, pertenezca a la cuenta esperada, tenga permisos adecuados, no haya caducado o no haya sido revocada.
Esos hechos exigen autenticación ante el proveedor mediante un flujo separado y autorizado. No registre claves ni entradas completas en analítica, incidencias, solicitudes de soporte o registros de aplicación. En una interfaz, oculte la cadena original y muestre los indicadores y longitudes.
Defina siempre el patrón a partir de documentación vigente y revíselo cuando cambie el formato del proveedor.
Qué puede hacer con ella
Proteja una variable de despliegue
Rechace una clave truncada, con espacios o del entorno incorrecto antes de iniciar el despliegue.
Valide un formulario de integración
Ofrezca información precisa sobre prefijo, longitud y caracteres inválidos sin intentar autenticarse.
Revise migraciones de configuración
Confirme que los secretos migrados conservan la estructura esperada sin exponerlos en la salida.
Preguntas frecuentes
¿Qué incluye la longitud?
Es la longitud exacta de toda la cadena de JavaScript, incluidos el prefijo y la parte secreta.
¿Un resultado válido significa que mi clave de acceso funciona?
No. Solo confirma la forma de la clave. No puede demostrar que exista, que sea de la cuenta correcta, que tenga los permisos adecuados ni que no haya caducado o sido revocada; eso solo lo sabe el servicio que la emitió.
¿Se envía mi clave a algún sitio durante la comprobación?
No. La comprobación no hace ninguna conexión de red ni contacta con el proveedor que emitió la clave. Además, la clave no aparece en el resultado, así que puede mostrarlo sin exponer el secreto.
¿Por qué fallan varias comprobaciones si solo el prefijo está mal?
Si el prefijo no coincide, la herramienta no puede saber dónde empieza la parte secreta y revisa los caracteres de la clave entera. Por eso puede sumarse un fallo de caracteres al del prefijo, lo que ayuda a localizar el error real.
¿Qué juegos de caracteres puedo elegir?
Puede elegir letras y números, solo minúsculas y números, solo mayúsculas y números, hexadecimal, hexadecimal en minúsculas o Base64 apto para direcciones web. También puede escribir la lista exacta de caracteres que admite su proveedor.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/security/api-key-format-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"key":"sk_live_Ab3dE5fG7h","pattern":{"prefix":"sk_live_","length":18,"charset":"alphanumeric"}}'const res = await fetch("https://api.kit.forhosting.com/security/api-key-format-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"key": "sk_live_Ab3dE5fG7h",
"pattern": {
"prefix": "sk_live_",
"length": 18,
"charset": "alphanumeric"
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/api-key-format-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"key": "sk_live_Ab3dE5fG7h",
"pattern": {
"prefix": "sk_live_",
"length": 18,
"charset": "alphanumeric"
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/api-key-format-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"key":"sk_live_Ab3dE5fG7h","pattern":{"prefix":"sk_live_","length":18,"charset":"alphanumeric"}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"key":"sk_live_Ab3dE5fG7h","pattern":{"prefix":"sk_live_","length":18,"charset":"alphanumeric"}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/api-key-format-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"key": "sk_live_Ab3dE5fG7h",
"pattern": {
"prefix": "sk_live_",
"length": 18,
"charset": "alphanumeric"
}
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.api_key_format_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Las claves API suelen tener una forma reconocible, aunque solo el servicio emisor puede confirmar si siguen vigentes.
Describa el formato esperado
Están disponibles <code>alphanumeric</code>, <code>lowercase_alphanumeric</code>, <code>uppercase_alphanumeric</code>, <code>hex</code>, <code>lowercase_hex</code> y <code>base64url</code>.
Interprete cada resultado por separado
La respuesta también devuelve <code>has_prefix</code>, <code>length_matches</code> y <code>charset_matches</code> por separado para que una interfaz explique con precisión qué debe corregirse. <code>actual_length</code> y <code>expected_length</code> muestran enseguida un truncamiento o un carácter pegado de más. Si falla el alfabeto, <code>invalid_characters</code> enumera una sola vez cada carácter no permitido, en el orden de aparición.
Valide el formato en puntos seguros
La implementación determinista funciona localmente en el navegador; para automatización, la API cuesta $0.002 por solicitud.
Preguntas técnicas
¿Un resultado válido significa que la clave API está activa?
No. Solo indica que la cadena coincide con el formato aportado; no consulta ni autentica ante el proveedor emisor.
¿Qué juegos de caracteres predefinidos existen?
Puede usar alphanumeric, lowercase_alphanumeric, uppercase_alphanumeric, hex, lowercase_hex o base64url, o indicar explícitamente los caracteres permitidos.
¿La respuesta devuelve la clave API?
No. Solo contiene datos de validación y los caracteres inválidos distintos; nunca repite la clave candidata.
¿Qué ocurre si no se proporciona un patrón?
La solicitud falla con invalid_input porque son obligatorios el prefijo, la longitud y el juego de caracteres.
¿Cuánto cuesta una solicitud mediante API?
Cada solicitud cuesta $0.002. La misma validación determinista puede ejecutarse localmente en el navegador.