Calculadora de offset y límite de paginación
Convierta un número de página basado en uno en los valores exactos que necesita una consulta con offset.
Ejecutar — gratis
Indique la página solicitada, la cantidad máxima de registros por página y el total de elementos disponibles. La calculadora devuelve el offset basado en cero, el límite de la consulta y el número total de páginas. También rechaza números o tamaños de página inferiores a uno, lo que ayuda a evitar consultas de base de datos no válidas y controles de navegación incoherentes.
Convierta una solicitud de página en parámetros de consulta
Las interfaces suelen presentar la paginación con números de página comprensibles para las personas, mientras que las bases de datos y las API suelen exigir un offset basado en cero y un límite. Esta calculadora enlaza ambas convenciones. Introduzca un número de página que empiece en uno, un tamaño de página y el total de elementos de la colección completa. El offset se obtiene restando uno al número de página y multiplicando el resultado por el tamaño. El límite coincide con el tamaño indicado. Por ejemplo, la tercera página de una colección mostrada de veinticinco en veinticinco comienza después de los primeros cincuenta elementos; por tanto, su offset es cincuenta y su límite, veinticinco. Puede pasar estos valores directamente a una cláusula SQL LIMIT y OFFSET habitual o asignarlos a parámetros equivalentes de otro servicio. El resultado es determinista y no consulta los registros subyacentes. Solo realiza la aritmética necesaria para preparar una solicitud paginada, por lo que resulta útil en backends, scripts, pruebas, documentación y sesiones de diagnóstico.
Interprete el total de páginas y los casos límite
El número total de páginas se obtiene dividiendo el total de elementos por el tamaño de página y redondeando hacia arriba. Ese redondeo es imprescindible porque una última página parcialmente llena sigue contando como página. Si se muestran ciento un elementos de veinticinco en veinticinco, cuatro páginas contienen cien elementos y una quinta contiene el elemento restante. Cuando el total de elementos es cero, el total de páginas también es cero, pues no existe ninguna página de resultados. La página solicitada no se restringe automáticamente a ese total. Por ello, pedir la página diez puede producir un offset válido aunque la colección solo tenga tres páginas. Este comportamiento es intencionado: la calculadora informa de la aritmética y deja la política de aplicación a quien la invoca. Su aplicación puede comparar la página solicitada con total_pages y devolver un resultado vacío, redirigir a la última página o mostrar una respuesta de recurso inexistente. Separar el cálculo de la política mantiene un resultado predecible en bases de datos, servicios REST e interfaces.
Valide los datos antes de construir una consulta
page y page_size deben ser enteros seguros iguales o superiores a uno. Un valor cero o negativo rompería la convención de páginas basadas en uno o crearía un límite sin sentido, por lo que cualquiera de esas condiciones genera un error de entrada no válida. total_items debe ser un entero seguro igual o superior a cero, ya que una colección no puede contener una cantidad negativa o fraccionaria de registros. La comprobación de enteros seguros también evita pérdidas silenciosas de precisión en JavaScript al multiplicar cifras muy grandes. Si el offset calculado supera el intervalo seguro, la solicitud se rechaza en lugar de devolver un número inexacto. Estas reglas también sirven fuera de la calculadora: aplicar la misma validación en el límite de una API impide que parámetros defectuosos lleguen al adaptador de base de datos. La capacidad no realiza solicitudes de red, no almacena datos y no usa valores aleatorios ni dependientes del tiempo. La misma entrada siempre genera la misma salida. Cada automatización por API cuesta $0.002; puede usar el navegador para comprobar ejemplos mientras diseña o depura la paginación.
Qué puede hacer con ella
Construir una consulta de base de datos
Convierta una página elegida en una interfaz en valores LIMIT y OFFSET para una consulta SQL.
Mostrar controles de paginación
Calcule el total de páginas necesario para activar, desactivar o etiquetar los controles de navegación.
Probar casos límite de una API
Genere los valores esperados para colecciones vacías, últimas páginas parciales y páginas fuera del resultado.
Preguntas frecuentes
¿El número de página se basa en cero o en uno?
Se basa en uno: la página 1 tiene offset 0 y la página 2 comienza después de un page_size completo.
¿Cómo se calcula total_pages?
La calculadora divide total_items por page_size y redondea hacia arriba para contar una última página parcialmente llena.
¿Qué ocurre cuando total_items es cero?
total_pages vale 0, mientras que offset y limit se siguen calculando con la página y el tamaño solicitados.
¿Puedo solicitar una página posterior a total_pages?
Sí. La calculadora devuelve el offset matemático y permite que su aplicación decida si muestra un resultado vacío o rechaza la página.
¿Cuánto cuesta una solicitud por API?
Cada solicitud por API cuesta $0.002. El cálculo también está disponible en el navegador.
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/dev/pagination-offset-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"page":3,"page_size":25,"total_items":123}'const res = await fetch("https://api.kit.forhosting.com/dev/pagination-offset-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"page": 3,
"page_size": 25,
"total_items": 123
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/pagination-offset-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"page": 3,
"page_size": 25,
"total_items": 123
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/pagination-offset-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"page":3,"page_size":25,"total_items":123}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"page":3,"page_size":25,"total_items":123}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/pagination-offset-calc", 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
{
"page": 3,
"page_size": 25,
"total_items": 123
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.pagination_offset_calc",
"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. |