Documentacion API
Referencia tecnica para desarrolladores e integraciones con Calcula.club.
Esquema de configuracion
Cada calculadora se define con un objeto JSON CalculatorConfig:
interface CalculatorConfig {
name: string; // Nombre de la calculadora
description: string; // Descripcion breve
icon: string; // Emoji del icono
fields: Field[]; // Campos de entrada
formula: string; // Formula principal
resultLabel: string; // Etiqueta del resultado
resultFormat: FormatType; // "number" | "currency" | "percent" | "integer"
category?: string;
theme?: { primary: string };
extraResults?: ExtraResult[];
resultThresholds?: ResultThreshold[];
breakdown?: BreakdownItem[];
pieConfig?: { segments: PieSegment[] };
}
Field:
interface Field {
id: string; // Identificador unico (usado en formulas)
label: string; // Texto visible
type: "number" | "slider" | "select" | "checkbox" | "section" | "radio" | "date" | "range" | "divider";
default: number;
min?: number;
max?: number;
step?: number;
options?: { label: string; value: number }[];
suffix?: string;
helpText?: string;
content?: string; // Para section/divider
imageUrl?: string; // Para divider
showIf?: string; // Formula de visibilidad condicional
}Motor de formulas
El motor de formulas soporta:
Operadores (por precedencia):
^ — Potencia*, /, % — Multiplicacion, division, modulo+, - — Suma, resta>, <, >=, <=, ==, != — Comparaciones (devuelven 1 o 0)Operador unario: - (negacion)
Funciones:
| Funcion | Firma | Descripcion |
|---|---|---|
pow |
pow(base, exp) |
Potencia |
sqrt |
sqrt(x) |
Raiz cuadrada |
abs |
abs(x) |
Valor absoluto |
round |
round(x) |
Redondeo al entero mas cercano |
floor |
floor(x) |
Redondeo hacia abajo |
ceil |
ceil(x) |
Redondeo hacia arriba |
min |
min(a, b, ...) |
Minimo |
max |
max(a, b, ...) |
Maximo |
avg |
avg(a, b, ...) |
Media aritmetica |
sum |
sum(a, b, ...) |
Suma |
factorial |
factorial(n) |
Factorial (n!) |
sin |
sin(x) |
Seno (radianes) |
cos |
cos(x) |
Coseno |
tan |
tan(x) |
Tangente |
asin |
asin(x) |
Arcoseno |
acos |
acos(x) |
Arcocoseno |
atan |
atan(x) |
Arcotangente |
ln |
ln(x) |
Logaritmo natural |
log |
log(x) |
Logaritmo natural |
log10 |
log10(x) |
Logaritmo base 10 |
exp |
exp(x) |
e^x |
if |
if(cond, then, else) |
Condicional (evaluacion perezosa) |
lookup |
lookup(val, t1, r1, ..., default) |
Busqueda por umbrales |
Constantes: pi (3.14159...), e (2.71828...)
Variables intermedias: Usa nombre = expresion; para definir variables locales. La ultima expresion es el resultado.
Formato de URL
Las calculadoras se codifican en la URL:
https://calcula.club/c/{config_codificada}
https://calcula.club/es/c/{config_codificada}
La configuracion se serializa como JSON, se comprime con deflate y se codifica en base64url. Para embeber, usa la ruta /embed/{config}.
Parametros de consulta para valores iniciales:
/embed/{config}?campo1=50&campo2=100
Cada parametro corresponde al id de un campo. Solo se aceptan valores numericos.
Embeber
Para embeber una calculadora, usa un iframe:
<iframe
src="https://calcula.club/embed/{config}"
width="100%"
height="600"
frameborder="0"
style="border: none; border-radius: 12px;"
></iframe>
O descarga el HTML autocontenido desde el Builder para alojar tu propia copia.
API de mensajes: El iframe comunica cambios de altura al padre via postMessage para ajuste automatico de tamano.