Toolorah
Desarrolladores

Toolorah API

El acceso a la API no está disponible para nuevas suscripciones.

Inicio rápido

Cada herramienta utiliza el endpoint indicado abajo. Envía tu clave de API como token bearer y un cuerpo JSON con input y options. Esta es la misma llamada en tres lenguajes: POST /api/v1/<tool> { input, options }

curl -X POST https://www.toolorah.com/api/v1/base64 \
  -H "Authorization: Bearer nt_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"input":"hello world","options":{"mode":"encode"}}'

Autenticación

Crea una clave en la página de claves de API y envíala como token bearer en cada solicitud: Obtener clave de API

Authorization: Bearer nt_live_xxxxxxxxxxxxxxxx

Las claves tienen los permisos del plan con el que fueron creadas. Trátalas como contraseñas: guárdalas en el servidor y revoca desde la página de claves cualquier clave expuesta.

Solicitudes y respuestas

Todos los endpoints usan POST y aceptan un cuerpo JSON con dos campos:

  • input — el texto (o archivo base64 para herramientas PDF) que se procesará.
  • options — un objeto de configuración específico de la herramienta. Es opcional y se aplican valores predeterminados razonables.

Una llamada correcta devuelve 200 con esta estructura:

{
  "tool": "base64",
  "result": "aGVsbG8gd29ybGQ=",
  "meta": { }
}

Los errores devuelven un estado distinto de 2xx con un único campo error:

{ "error": "Invalid or revoked API key." }

Límites de uso

  • Pro — 1.000 llamadas/día
  • Elite — 10.000 llamadas/día

Los límites se reinician a las 00:00 UTC. Cada respuesta incluye el saldo actual:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 942

Al superar el límite, las llamadas devuelven 429 con una cabecera Retry-After. Las solicitudes mal formadas no consumen cuota.

Solicitudes por lotes

Procesa muchas entradas en una sola solicitud en lugar de hacer una llamada HTTP por elemento. Envía inputs como un array de cadenas; options se aplica a todos los elementos. Disponible en Pro (25 entradas por solicitud) y Elite (250).

curl -X POST https://www.toolorah.com/api/v1/base64/batch   -H "Authorization: Bearer nt_live_..."   -H "Content-Type: application/json"   -d '{"inputs":["hello","world"],"options":{"mode":"encode"}}'
{
  "tool": "base64",
  "count": 2,
  "succeeded": 2,
  "failed": 0,
  "results": [
    { "index": 0, "result": "aGVsbG8=" },
    { "index": 1, "result": "d29ybGQ=" }
  ]
}

Cada entrada consume una llamada de tu cuota diaria: los lotes ahorran viajes de ida y vuelta, no cuota. Un lote que superaría tu límite diario se rechaza por completo y no se procesa nada, así que nunca recibes un conjunto de resultados a medias.

Los resultados se devuelven en el mismo orden que las entradas, cada uno con su index. Una entrada errónea no descarta el resto: devuelve un campo error para ese índice mientras los demás resultados se completan. Consulta succeeded y failed en la respuesta.

PlanEntradas por solicitud
Free—
Pro25
Elite250

Endpoints de utilidad

Dos endpoints GET para descubrir qué puedes llamar y cuánta cuota te queda. Ambos requieren la misma clave bearer.

EndpointCuerpo
GET /api/v1/tools Lista todas las herramientas disponibles con su endpoint, si aceptan texto o archivo, y el límite de lotes de tu plan. Úsalo en lugar de codificar una lista que quedará obsoleta cuando añadamos herramientas.
GET /api/v1/usage Devuelve tu plan, el uso de hoy y las llamadas restantes, tu límite de lotes y cuándo se reinicia la cuota. NO cuenta para tu cuota, así que puedes consultarlo con seguridad.
{
  "plan": "pro",
  "daily": { "limit": 1000, "used": 42, "remaining": 958 },
  "batch": { "maxInputsPerRequest": 25 },
  "resetsAt": "2026-08-24T00:00:00.000Z"
}

Endpoints

Herramientas de texto y utilidades. Usa las options indicadas para controlar el comportamiento.

HerramientaEndpointOpciones
base64 POST /api/v1/base64 { "mode": "encode" } mode: encode | decode
url-encoder POST /api/v1/url-encoder { "mode": "encode" } mode: encode | decode
json-formatter POST /api/v1/json-formatter { "mode": "format", "indent": 2 } mode: format | minify | validate
jwt-decoder POST /api/v1/jwt-decoder Decodifica la cabecera y el payload (sin verificar la firma).
hash-generator POST /api/v1/hash-generator { "algo": "SHA-256" } algo: SHA-1 | SHA-256 | SHA-512
regex-tester POST /api/v1/regex-tester { "pattern": "\\d+", "flags": "g", "mode": "match" } mode: match | replace (+ replaceWith)
word-counter POST /api/v1/word-counter Devuelve recuentos de palabras, caracteres y frases.
case-converter POST /api/v1/case-converter { "type": "title" } type: upper, lower, title, sentence, camel, pascal, snake, kebab, constant
text-cleaner POST /api/v1/text-cleaner { "trim": true, "collapseSpaces": true } Limpia espacios y caracteres especiales.
remove-duplicate-lines POST /api/v1/remove-duplicate-lines { "caseSensitive": false } Elimina líneas duplicadas.
text-sorter POST /api/v1/text-sorter { "order": "asc", "numeric": false } Ordena líneas.
text-reverser POST /api/v1/text-reverser { "mode": "characters" } mode: characters | words | lines
markdown-formatter POST /api/v1/markdown-formatter Convierte Markdown a HTML.
lorem-ipsum POST /api/v1/lorem-ipsum { "count": 3, "unit": "paragraphs" } unit: paragraphs | sentences | words (no necesita input)
password-generator POST /api/v1/password-generator { "length": 16, "symbols": true } No necesita input.
random-number POST /api/v1/random-number { "min": 1, "max": 100, "count": 5 } No necesita input.
percentage-calculator POST /api/v1/percentage-calculator { "operation": "percentOf", "a": 20, "b": 150 } operation: percentOf | isWhatPercentOf | percentChange
bmi-calculator POST /api/v1/bmi-calculator { "weight": 70, "height": 175 }
emi-calculator POST /api/v1/emi-calculator { "principal": 300000, "rate": 6.5, "months": 360 }
sip-calculator POST /api/v1/sip-calculator { "amount": 10000, "rate": 12, "years": 10, "mode": "sip", "stepUp": 0 }
gst-calculator POST /api/v1/gst-calculator { "amount": 1000, "rate": 18, "mode": "add", "supply": "intra" }
income-tax-calculator POST /api/v1/income-tax-calculator { "income": 1500000, "regime": "new", "age": "below60", "deductions": 0 }
uuid-generator POST /api/v1/uuid-generator { "count": 5, "upper": false, "noHyphens": false, "braces": false } Genera UUID v4 (no necesita input).
timestamp-converter POST /api/v1/timestamp-converter Acepta un timestamp Unix en segundos o milisegundos y devuelve valores ISO, UTC, local y epoch.
css-minifier POST /api/v1/css-minifier Minifica CSS eliminando comentarios y espacios.
html-formatter POST /api/v1/html-formatter { "mode": "beautify", "indent": 2 } mode: beautify | minify (indent: number | "tab")
markdown-preview POST /api/v1/markdown-preview Convierte Markdown a HTML.

Endpoints de PDF

Las herramientas PDF trabajan con archivos. Las solicitudes llevan archivos codificados en base64 dentro del JSON y result contiene el PDF de salida en base64. Mantén la carga decodificada por debajo de unos 4 MB. WebP solo funciona en el navegador; envía PNG o JPG.

HerramientaEndpointCuerpo
pdf-merger POST /api/v1/pdf-merger { "files": ["<base64>", "<base64>", …] } Entre 2 y 20 PDF, combinados en el orden del array.
pdf-splitter POST /api/v1/pdf-splitter { "file": "<base64>", "options": { "mode": "extract", "pages": "1-3, 5" } } mode: extract | remove. Los intervalos funcionan como en la herramienta web.
png-to-pdf POST /api/v1/png-to-pdf { "images": ["<base64>", …], "options": { "pageSize": "a4", "orientation": "auto", "margin": "small" } } Entre 1 y 50 imágenes PNG/JPG, una por página. pageSize: a4 | letter | fit; margin: none | small | large.
# Merge two PDFs (bash)
curl -X POST https://www.toolorah.com/api/v1/pdf-merger \
  -H "Authorization: Bearer nt_live_xxx" \
  -H "Content-Type: application/json" \
  -d "{\"files\":[\"$(base64 -w0 a.pdf)\",\"$(base64 -w0 b.pdf)\"]}" \
  | jq -r '.result' | base64 -d > merged.pdf

Errores

  • 401 — clave de API ausente o no válida
  • 403 — tu plan no incluye acceso a la API
  • 404 — herramienta desconocida
  • 422 — entrada incorrecta (por ejemplo, JSON o regex no válidos)
  • 429 — límite diario alcanzado