Localizar unidades
Una ficha de producto escrita para México dice 180 cm; la misma ficha para Houston debería decir 5'11". Este endpoint reescribe números, unidades y notación para que cada mercado lea su propio sistema de forma nativa, sin que un traductor tenga que tocar una hoja técnica a mano.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
El problema de 'solo traducirlo'
Traducir mueve palabras de un idioma a otro, pero las medidas siguen un mapa distinto: Estados Unidos y un puñado de países más siguen usando el sistema imperial mientras la mayoría del mundo reporta en métrico, y aun dentro del métrico hay hábitos regionales sobre coma decimal versus punto, espaciado antes del símbolo y qué unidad resulta idiomática (una receta europea dice gramos, una estadounidense dice tazas). Los equipos que solo localizan cadenas de texto terminan publicando una página perfectamente traducida con una medida que se lee como extranjera o, peor, que un comprador calcula mal mentalmente.
Qué hace exactamente el endpoint
Se envía POST /locale/units con un texto o valores estructurados más una configuración regional de destino, y la tarea analiza las cantidades, reconoce su familia de unidad (longitud, peso, volumen, temperatura, área) y devuelve el equivalente expresado como esa región lo espera, incluyendo el separador decimal correcto, la convención de espaciado y el estilo de abreviatura. Funciona de manera asíncrona: se recibe un task_id de inmediato y el resultado llega por webhook firmado, o se puede recuperar desde un enlace firmado válido por 24 horas.
De dónde vienen las unidades, en breve
El sistema métrico se formalizó en Francia en la década de 1790 justamente para reemplazar un mosaico de medidas locales, muchas veces distintas de un pueblo a otro, por un estándar coherente; el sistema imperial persistió en Estados Unidos, Liberia y Myanmar más por herencia e inercia industrial que por mérito técnico. Esa división de doscientos años es la razón por la que un mismo catálogo vendido globalmente necesita dos juegos de números, no uno, y por la que la localización tiene que ocurrir en la capa de datos, no solo en la capa de texto.
Quién usa esto en la práctica
Catálogos de comercio electrónico que sincronizan tallas entre tiendas, plataformas de recetas y nutrición que atienden audiencias métricas e imperiales, aplicaciones de viajes y clima que localizan distancia y temperatura según la región del dispositivo, y herramientas de documentación técnica que necesitan que una hoja de especificaciones se lea bien sin importar quién la abra.
Cómo encaja en un flujo automatizado
Como la llamada es asíncrona y se cobra por solicitud a una tarifa plana de $0.002 sin importar la complejidad del contenido, encaja de forma limpia en trabajos por lotes: una sincronización nocturna de catálogo, un webhook de publicación desde el CMS, o una cadena posterior a una tarea de traducción, sin necesidad de calcular costo por unidad ni preocuparse por reintentos con límite de tasa; una tarea fallida nunca se cobra y el sistema reintenta tres veces antes de mostrar un error claro.
Qué puede hacer con ella
Catálogos de producto globales
Una marca de ropa guarda una tabla de tallas canónica en centímetros y la convierte al vuelo a pulgadas para la tienda en Estados Unidos, manteniendo una sola fuente de verdad.
Plataformas de recetas
Un sitio de cocina permite alternar entre gramos/mililitros y tazas/onzas sin mantener dos bases de recetas en paralelo.
Apps de viajes y clima
Una app de planificación de viajes muestra distancias en kilómetros a usuarios europeos y en millas a usuarios estadounidenses según la configuración del dispositivo, partiendo de los mismos datos.
Documentación técnica
Un manual de equipo industrial genera automáticamente una versión métrica y una imperial a partir de una sola hoja de especificaciones antes de cada lanzamiento.
Preguntas frecuentes
¿Qué familias de unidades soporta la API para localizar unidades de medida?
Longitud, peso, volumen, temperatura y área, junto con separadores decimales y convenciones de espaciado correctos según la región.
¿Existe un plan gratuito?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Cómo se cobra?
Una tarifa plana de $0.002 por solicitud, publicada y predecible, sin recargos ocultos por unidad sin importar cuántos valores traiga el contenido.
¿Cómo recibo el resultado?
Por webhook firmado cuando la tarea termina, o mediante un enlace firmado disponible durante 24 horas, sin necesidad de hacer sondeo.
¿También traduce el texto alrededor de la medida?
No, este endpoint se enfoca en medidas y notación; se puede combinar con una tarea de traducción si también se necesita localizar el texto circundante.
¿Qué pasa si una solicitud falla?
La tarea reintenta automáticamente hasta tres veces; si sigue fallando se recibe un error claro y nunca se cobra por eso.
¿Se pueden enviar solicitudes en volumen?
Sí, cada llamada se cobra y se procesa de forma independiente, así que dividir un catálogo en muchas solicitudes funciona bien para sincronizaciones nocturnas.
¿Se conservan mis datos después de procesarlos?
No. Los resultados se eliminan después de la ventana de retención y nunca se usan para entrenar modelos.
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, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/locale/units \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/locale/units", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/locale/units",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/locale/units", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/locale/units", 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
{
"items": [
"valor-1",
"valor-2"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "locale.units",
"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.
Límites
max_tokens | 20000 |
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. |