Desarrolladores

Toolorah API

Ejecuta nuestras herramientas mediante HTTPS: un endpoint coherente por herramienta, con entrada y salida JSON. Disponible en Pro (1.000 llamadas/día) y Elite (10.000 llamadas/día).

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://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.

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
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://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