---
title: "Listar remitentes del directorio"
method: GET
path: "/senders"
tags: ["addresses"]
---

# Listar remitentes del directorio

`GET /senders`

## Request

- Base URL: `https://api.enviadores.com.mx/api/v1`
- URL: `https://api.enviadores.com.mx/api/v1/senders`
- Auth: HTTP bearer

Remitentes visibles para la llave. Visibilidad: llaves de cliente y llaves admin SIN `X-PDV-ID` ven solo los registros creados por el usuario de la llave; una llave admin con `X-PDV-ID` validado ve exactamente el directorio de ese punto de venta (el mismo que usa el personal de mostrador). Nunca hay lectura global en este carril. Requiere scope `addresses:read`. Este endpoint SÍ devuelve dirección completa y teléfono — el guardián es la visibilidad, no el recorte de campos.

## Query parameters

- `page` integer
- `limit` integer
- `postal_code` string
- `q` string

## Headers

- `X-PDV-ID` string

## Response `200`

Página de remitentes.

- object
  - `success` unknown, required
  - `data` object, required
    - `senders` Sender[], required
      - `id` string, required
      - `name` string, nullable, required
      - `apellido_paterno` unknown, required
      - `apellido_materno` unknown, required
      - `company` string, nullable, required
      - `rfc` string, nullable, required
      - `phone` string, nullable, required
      - `email` string, nullable, required
      - `street` string, nullable, required
      - `number` string, nullable, required
      - `colonia` string, nullable, required
      - `city` string, nullable, required
      - `state` string, nullable, required
      - `postal_code` string, nullable, required
      - `created_at` string, nullable, required: ISO-8601 UTC (Z).
    - `pagination` Pagination, required
      - `page` integer, required
      - `limit` integer, required
      - `total` integer, required
  - `requestId` string, required: Correlación de logs; también en el header `X-Request-Id`.

## Other responses

- `401`: `UNAUTHORIZED` — credencial Bearer ausente/mal formada o llave desconocida/revocada (respuesta idéntica en ambos casos).
- `403`: `INSUFFICIENT_SCOPE` — a la llave le falta el scope requerido · `PDV_NOT_ALLOWED` — violación del carril X-PDV-ID. Nota de orden: el limitador por llave corre ANTES del gate de scope, así que una petición con scope incorrecto y el bucket agotado responde `429 RATE_LIMITED` (el 429 tiene precedencia sobre este 403).
- `422`: `VALIDATION_ERROR` — filtro inválido (details.fields).
- `429`: `RATE_LIMITED` — bucket de la llave agotado. Espera `Retry-After` s (`details.retry_after_ms` para el hint fino). El limitador corre antes del gate de scope, por lo que un 429 tiene precedencia sobre un 403 `INSUFFICIENT_SCOPE`.
- `500`: `SERVER_ERROR` — falla interna (p. ej. lectura de base de datos). Es transitoria; reintenta con backoff.

---

[API](https://skmtc.dev/enviadores/apis/enviadores-public-api.md) · [All operations](https://skmtc.dev/enviadores/apis/enviadores-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/enviadores/apis/enviadores-public-api/revisions/3633f08c889c?raw)
