Saltar al contenido
SendIt está en desarrollo y todavía no opera comercialmente · SendIt is in development and not yet commercially available.
SendItdocs
Español
Esc
navigateopen⌘Jpreview
En esta página

Registros de peticiones

Consulta el metadato de cada llamada de tu organización al API: método, ruta, código de estado y duración.

Cada llamada al API deja un registro con su método, su ruta, su código de estado y cuánto tardó. Úsalo para depurar una integración, rastrear qué llave hizo qué, o encontrar el patrón detrás de una racha de errores.

El registro guarda metadatos, no contenido. Nunca devuelve la dirección IP, el user agent ni los valores de tu query string.

Consulta tus llamadas recientes

Método Ruta Acceso
GET /v1/api-requests Cualquier miembro autenticado, o llave con api_keys:read

Una sesión del dashboard entra sin importar el rol: VIEWER también lee. Con llave de API necesitas el alcance api_keys:read (o *).

curl "https://api.sendit.mx/v1/api-requests?method=POST&statusCode=402&limit=20" \
  -H "X-API-Key: sk_test_..."

Parámetros de consulta

PropType
method?string

Filtra por método HTTP, por ejemplo POST.

Typestring
statusCode?integer

Filtra por código de estado exacto, por ejemplo 402.

Typeinteger
apiKeyId?string

Filtra por la llave que hizo la llamada.

Typestring
after?string

Fecha ISO-8601. Solo peticiones creadas después de ese momento.

Typestring
before?string

Fecha ISO-8601. Solo peticiones creadas antes de ese momento.

Typestring
cursor?string

Cursor opaco de la página anterior. Pásalo tal cual.

Typestring
limit?integer

Cuántos registros traer por página.

Typeinteger
{
  "success": true,
  "data": {
    "data": [
      {
        "id": "req_01J8Z9K2M4N6P8Q0R2S4T6",
        "apiKeyId": "key_a1b2c3d4e5f6",
        "method": "POST",
        "path": "/v1/shipments",
        "statusCode": 201,
        "durationMs": 142,
        "requestId": "01J8Z9K2M4N6P8Q0R2S4T6",
        "livemode": true,
        "createdAt": "2026-08-03T18:00:00.000Z"
      }
    ],
    "total": 1,
    "nextCursor": null,
    "hasMore": false
  }
}

Los campos apiKeyId, durationMs y requestId pueden llegar en null.

Campo Descripción
id Identificador del registro
apiKeyId La llave que hizo la llamada; null si fue una sesión del dashboard
method Método HTTP
path Ruta que se llamó
statusCode Código de estado que respondimos
durationMs Cuánto tardó la petición
requestId El mismo identificador que devolvemos en los errores
livemode false cuando la llamada ocurrió en modo de prueba
createdAt Cuándo entró la petición

Recorre las páginas

Los resultados llegan del más reciente al más antiguo. Pasa el nextCursor sin modificarlo y detente cuando hasMore sea false:

let cursor = null;

do {
  const url = new URL("https://api.sendit.mx/v1/api-requests");
  url.searchParams.set("limit", "100");
  if (cursor) url.searchParams.set("cursor", cursor);

  const res = await fetch(url, { headers: { "X-API-Key": process.env.SENDIT_KEY } });
  const { data } = await res.json();

  for (const row of data.data) process(row);

  cursor = data.hasMore ? data.nextCursor : null;
} while (cursor);

Separa prueba de producción

Los resultados siempre quedan acotados al modo activo. Con una llave de API el modo lo fija su propio ambiente. Con una sesión del dashboard agrega ?livemode=false para leer las peticiones de prueba.

El endpoint se excluye a sí mismo, así que consultar el registro no genera registros nuevos. Puedes hacer polling sin ensuciar tus datos.

Maneja los errores

Código Cuándo ocurre Cómo resolverlo
400 VALIDATION_ERROR Un filtro trae un valor inválido, por ejemplo una fecha que no es ISO-8601 Corrige el parámetro y reintenta
401 UNAUTHORIZED Falta la credencial o no es válida Manda una llave vigente o inicia sesión
403 INSUFFICIENT_SCOPE La llave no tiene api_keys:read Emite una llave con ese alcance
429 RATE_LIMIT_EXCEEDED Excediste el límite de lectura Respeta los encabezados de límite antes de reintentar

¿Te ha resultado útil esta página?