JAMRdev
0 Seleccionados

Dashboard

Total Enlaces
0
Total Tags
0
Total Grupos
0

Tendencia Global de Clics

Navegadores Populares

Tags más usados

Grupos más usados

Total Clicks
0
Último Clic
-
Top País
-

Tendencia de clics (Histórico)

Configuración del Link

EL ENLACE PODRÍA NO FUNCIONAR. SE RECOMIENDA AÑADIR http:// O https://

Países

Navegadores

Dispositivos

Top Sources (UTM)

Top Mediums (UTM)

Top Campaigns (UTM)

Referrers

JAMRdev URL Shortener - API Documentation

Para Desarrolladores: Guía completa para integrar tu aplicación con JAMRdev URL Shortener

Tabla de Contenidos

• Introducción • Autenticación • Endpoints • Crear Enlaces • Creación en Masa • Analíticas • Códigos de Error • Ejemplos

Introducción

La API de JAMRdev URL Shortener te permite crear, gestionar y analizar enlaces acortados desde tu propia aplicación. Puedes crear enlaces individuales o en masa, organizarlos con tags y grupos, y obtener estadísticas detalladas.

Base URL
https://short.jamrdev.com.ar

Autenticación

La API utiliza Clerk para autenticación. Necesitas un token Bearer para todas las peticiones.

¿Cómo obtener tu token?

Opción 1: Desde el Navegador (Testing)

  1. 1. Abre las DevTools (F12)
  2. 2. Ve a la pestaña Console
  3. 3. Ejecuta: await window.Clerk.session.getToken()
  4. 4. Copia el token resultante
Usar el Token en tus Peticiones
Authorization: Bearer TU_TOKEN_AQUI

Endpoints Disponibles

Método Endpoint Descripción
POST /api/shorten Crear un enlace acortado
GET /api/links Obtener todos tus enlaces
PATCH /api/links/:id Actualizar un enlace
DELETE /api/links/:id Eliminar un enlace
GET /api/analytics Analíticas globales
GET /api/analytics/:slug Analíticas de un enlace específico

Crear Enlaces (Individual)

Endpoint
POST /api/shorten

Request Body

Campo Tipo Requerido Descripción
url string Sí URL a acortar
customSlug string No Slug personalizado
tags array No Array de tags
group string No Nombre del grupo
async function crearEnlace(url, customSlug = null, tags = [], group = null) {
  const token = await window.Clerk.session.getToken();
  
  const response = await fetch('https://short.jamrdev.com.ar/api/shorten', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${token}`
    },
    body: JSON.stringify({ url, customSlug, tags, group })
  });

  const data = await response.json();
  console.log(`Enlace creado: https://short.jamrdev.com.ar/${data.slug}`);
return data;
}

Crear Enlaces en Masa

Para crear múltiples enlaces, usa Promise.all para ejecutar peticiones en paralelo:

async function crearEnlacesEnMasa(enlaces) {
  const token = await window.Clerk.session.getToken();
  
  const promesas = enlaces.map(enlace => 
    fetch('https://short.jamrdev.com.ar/api/shorten', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${token}`
      },
      body: JSON.stringify(enlace)
    })
    .then(res => res.json())
    .catch(err => ({ error: err.message, url: enlace.url }))
  );

  const resultados = await Promise.all(promesas);
  console.log(`Resultados: ${resultados.filter(r => !r.error).length} enlaces creados`);
  return resultados;
}

// Uso
const enlaces = [
  { url: 'https://ejemplo.com/pagina1', tags: ['blog'] },
  { url: 'https://ejemplo.com/pagina2', tags: ['blog'] },
  { url: 'https://ejemplo.com/pagina3', tags: ['blog'], group: 'Blog 2024' }
];
crearEnlacesEnMasa(enlaces);

Analíticas

Analíticas Globales

GET /api/analytics

Obtén estadísticas de todos tus enlaces

Analíticas por Enlace

GET /api/analytics/:slug

Estadísticas de un enlace específico

Códigos de Error

Código Significado Solución
400 Bad Request Verifica que todos los campos requeridos sean válidos
401 Unauthorized Token inválido o expirado. Obtén uno nuevo
404 Not Found El recurso no existe
409 Conflict Slug ya en uso. Elige otro
500 Server Error Error interno. Intenta más tarde

Ejemplos Completos

Ejemplo 1: Obtener Estadísticas

async function obtenerEstadisticas() {
  const token = await window.Clerk.session.getToken();
  const res = await fetch('https://short.jamrdev.com.ar/api/analytics', {
    headers: { 'Authorization': `Bearer ${token}` }
  });
  const stats = await res.json();
  console.log('Total clicks:', stats.totalClicks);
  console.log('Top países:', stats.countries);
  return stats;
}

Ejemplo 2: Obtener Tus Enlaces

async function obtenerMisEnlaces() {
  const token = await window.Clerk.session.getToken();
  const res = await fetch('https://short.jamrdev.com.ar/api/links', {
    headers: { 'Authorization': `Bearer ${token}` }
  });
  const enlaces = await res.json();
  console.log(`Tienes ${enlaces.length} enlaces`);
  return enlaces;
}

Tips y Mejores Prácticas

  • Manejo de Errores: Siempre implementa try-catch para errores de red
  • Rate Limiting: Máximo 5-10 peticiones concurrentes
  • Tokens: Los tokens de Clerk expiran, renuévalos automáticamente
  • Slugs: Verifica disponibilidad antes de crear con slug personalizado

Soporte

¿Necesitas ayuda? Contacta al equipo de JAMRdev

Email: soporte@jamrdev.com.ar
Versión de la API: 1.0
QR

Nuevo Link

short.jamrdev.com.ar/

EL ENLACE PODRÍA NO FUNCIONAR. SE RECOMIENDA AÑADIR http:// O https://

/

Gestionar Enlaces

Total: 0 links

Puedes quitar el enlace de esta lista o eliminarlo permanentemente.

JAMRdev

Acceso Restringido.

Inicia sesión con tu cuenta de ingeniería para continuar.

Aviso

Confirmar

Entrada