Autenticación y primera solicitud
La URL base de la API es https://api.weprofit.com/v1/dev. Crea un token de acceso personal en la tarjeta Tokens de API de la página Desarrolladores. Envíalo en el encabezado Authorization como token Bearer. Guarda el token en el entorno de tu servidor, no en el JavaScript de la tienda online ni en un repositorio público.
El token sigue los permisos de tienda de su propietario. Los miembros del personal necesitan acceso de desarrollador y el permiso de analítica o de eventos correspondiente. Los tokens revocados o vencidos se rechazan.
curl https://api.weprofit.com/v1/dev/stores \
-H "Authorization: Bearer $WEPROFIT_API_TOKEN"Elige una tienda de la respuesta
Usa un ID que devuelva el endpoint de tiendas en las solicitudes siguientes. Los valores siguientes son ilustrativos y no contienen datos de clientes.
{
"items": [{
"id": "STORE_ID",
"name": "Example store",
"platform": "shopify",
"currency": "USD",
"timezone": "America/New_York",
"role": "owner"
}]
}Endpoints de informes
Todas las rutas siguientes son relativas a la base de la API y requieren autenticación Bearer. Reemplaza :storeId por el ID de una tienda activa a la que tengas acceso. La tabla cubre las lecturas de informes. La API REST también permite actualizar el gasto publicitario y gestionar suscripciones a webhooks; no es una API de solo lectura.
| Método y ruta | Finalidad | Parámetros de consulta opcionales |
|---|---|---|
| GET /me | Identidad del usuario y metadatos no secretos del token | Ninguno |
| GET /stores | Tiendas activas a las que tienes acceso y sus ID | Ninguno |
| GET /stores/:storeId/summary | Resumen de visitantes, sesiones, compras, ingresos, cobertura y ganancias | from, to |
| GET /stores/:storeId/orders | Pedidos, atribución y estado de envío por red | from, to, limit, cursor y filtros de pedidos |
| GET /stores/:storeId/events | Eventos normalizados, origen, canal, estado de consentimiento y valor | from, to, limit, cursor y filtros de eventos |
| GET /stores/:storeId/profit | Ingresos, reembolsos, costos de producto, comisiones, envío, gasto y ganancia neta | from, to |
| GET /stores/:storeId/profit/timeseries | Serie diaria de ganancias y costos | from, to |
| GET /stores/:storeId/profit/ad-spend | Gasto por día, red y campaña | month, con el formato YYYY-MM |
Fechas, filtros y paginación
Indica from y to como fechas UTC inclusivas en formato YYYY-MM-DD. Si las omites, el rango predeterminado es hoy y los seis días anteriores. Define ambas fechas explícitamente para que las comparaciones sean repetibles. El endpoint de gasto publicitario usa en cambio month, y su valor predeterminado es el mes UTC actual.
Las listas de pedidos y eventos devuelven 50 filas de forma predeterminada y aceptan hasta 200. Los resultados aparecen del más reciente al más antiguo. Pasa sin cambios el nextCursor devuelto para obtener otra página. Los datos pueden cambiar durante la paginación, así que no obtienes una instantánea fija.
- Los filtros de pedidos incluyen order_id, status, financial_status, tracked, link_method, link_confidence, channel, currency, min_total, max_total y sent_to.
- Los filtros de eventos incluyen event_name, event_id, source, channel, country, url_contains, consent_state, currency, min_value y max_value.
- Ambas listas admiten visitor_id y session_id. Los filtros de eventos también admiten checkout_token y cart_token.
curl "https://api.weprofit.com/v1/dev/stores/STORE_ID/profit?from=2026-09-01&to=2026-09-07" \
-H "Authorization: Bearer $WEPROFIT_API_TOKEN"Lee varias tiendas en una sola solicitud
GET /summary, /orders, /events, /profit y /profit/timeseries aceptan un parámetro de consulta stores obligatorio con hasta 50 ID de tienda separados por comas. Indica las mismas opciones de fecha y de filtros que en la solicitud equivalente para una sola tienda.
Las respuestas por lotes contienen resultados con entradas independientes de éxito o de error para cada tienda. Una tienda denegada no invalida las demás. Los resultados correctos de resumen, pedidos y eventos colocan su contenido en data; los de ganancias exponen sus campos de ganancias junto a storeId y ok. El resultado de pedidos o eventos de cada tienda tiene su propio nextCursor.
Interpreta bien los campos de ganancias
Los informes de ganancias usan datos de costos registrados y estimados. Los pedidos cancelados se excluyen del cálculo de ganancias y se reportan aparte. El margen es null cuando los ingresos netos son cero.
Timeseries devuelve los días con actividad de pedidos o de gasto publicitario, no un calendario rellenado con ceros. Su netProfit incluye los reembolsos, aunque cada elemento de la serie no exponga un campo de reembolsos aparte. Usa el endpoint de ganancias agregadas cuando necesites el total explícito de reembolsos.
Límites de solicitudes y errores comunes
Los límites actuales son 240 solicitudes por minuto y 20.000 solicitudes por día por token. Si alcanzas el límite, reduce la frecuencia de las solicitudes y usa reintentos limitados. No reintentes con credenciales o permisos no válidos sin corregir la causa.
| Estado HTTP | Significado | Qué hacer |
|---|---|---|
| 400 validation_error | Fechas, filtros u otros datos de la consulta no válidos | Corrige los parámetros de la solicitud. |
| 401 unauthorized | Token ausente, revocado o vencido | Usa un token activo y el encabezado Bearer. |
| 402 plan_required | La facturación de la tienda no incluye el acceso necesario | Revisa la facturación de la tienda y cualquier restricción por superar el límite. |
| 403 forbidden | Permiso insuficiente | Pide al propietario que revise el acceso del usuario del token. |
| 404 store_not_found | La tienda no está disponible para esta solicitud | Usa el ID de una tienda activa a la que tengas acceso, según GET /stores. |
| 429 rate_limited | Se alcanzó el límite de solicitudes del token | Espera y reduce el volumen de solicitudes. |