Cómo configurar y usar la API REST v1
AffiliateWP tiene una gran cantidad de puntos de acceso REST de solo lectura que se basan en la infraestructura incluida con WordPress 4.4 y versiones posteriores.
En este artículo, te mostraremos cómo configurar y usar la API REST v1 para acceder a los datos de AffiliateWP.
API REST – Autenticación
Para poder utilizar los puntos de acceso REST principales, todos los consumidores de la API deben autenticarse utilizando claves de API generadas desde una nueva pestaña Claves de API ubicada en Afiliados → Herramientas → Claves de API.
La API REST utiliza autenticación básica con una combinación de una Clave Pública y un Token.
Antes de poder autenticar una solicitud de API, necesitas un conjunto de claves de API. Estas son específicas del usuario y se pueden crear en Afiliados → Herramientas → Claves de API:

Para generar un nuevo conjunto de claves de API, introduce el nombre de usuario del usuario al que deben pertenecer las claves y haz clic en Generar nuevas claves de API.

Nota: La cuenta de usuario con la que se asocian las claves de API debe tener los permisos adecuados para que la API funcione. Normalmente, esto significa que el usuario necesita tener el rol de Administrador. Consulta nuestra documentación sobre roles y permisos para obtener más información.
Una vez creadas las claves de API, puedes autenticarte con la API REST incluyendo las claves en la cabecera de autenticación. La Clave Pública debe pasarse como el usuario y el Token como la contraseña.
Por ejemplo, usando Postman, nuestra solicitud autenticada se vería así:

Si usas curl, una solicitud autenticada se vería así:
curl -u 229c1d4292800a4fdaa1099a4c646c9a:c7fd218923e058e1637698e5257855de http://local.wp/woo/wp-json/affwp/v1/affiliates
La cabecera de autorización debe incluirse en cada solicitud de API para autenticarse correctamente con la API. Si no se proporciona la autenticación básica o las credenciales son incorrectas, se devolverá un mensaje de error:
{
"code": "rest_forbidden",
"message": "Sorry, you are not allowed to do that.",
"data": {
"status": 403
}
}
Rutas y puntos de acceso
AffiliateWP ofrece cinco rutas y múltiples puntos de acceso subyacentes. Esas cinco rutas son:
Haz clic en los nombres de las rutas anteriores para obtener más información sobre sus respectivos puntos de acceso, ver solicitudes de ejemplo y más.
Nota: las operaciones completas de Creación, Lectura, Actualización y Eliminación (CRUD) se pueden habilitar a través del complemento REST API Extended. Consulta la documentación de REST API Extended para obtener información sobre las operaciones de Creación, Actualización y Eliminación.
1. Puntos de acceso de afiliados
AffiliateWP core 1.9+ ofrece dos puntos de acceso REST de solo lectura para afiliados:
- affiliates – Recupera objetos de respuesta para todos los afiliados en el sitio actual
- affiliates/{ID} – Recupera un objeto de respuesta para un afiliado con el ID de afiliado dado
Se puede acceder a los puntos de acceso de afiliados a través de solicitudes GET en las siguientes ubicaciones:
http://example.com/wp-json/affwp/v1/affiliates http://example.com/wp-json/affwp/v1/affiliates/ID
Todos los endpoints de afiliados y sus diversas opciones también se pueden descubrir visitando directamente el espacio de nombres REST de AffiliateWP:
http://example.com/wp-json/affwp/v1/
Endpoints
El endpoint de afiliados acepta cualquier argumento válido de get_affiliates():
- número – El número de resultados a recuperar (si están disponibles)
- offset – El número de resultados a omitir en la consulta. El valor predeterminado es 0 (sin offset)
- affiliate_id – El ID de afiliado o matriz de IDs a consultar.
- user_id – El ID de usuario o matriz de IDs para consultar pagos.
- exclude – ID de afiliado o matriz de IDs a excluir de la solicitud.
- search – Términos para buscar afiliados. Acepta un ID de afiliado o una cadena.
- status – El estado del afiliado. Acepta 'active', 'inactive', 'pending' o 'rejected'.
- order – Cómo ordenar los resultados. Acepta 'ASC' (ascendente) o 'DESC' (descendente).
- orderby – Por qué campo ordenar los resultados de la respuesta. El valor predeterminado es 'date'
- fields – Campos específicos a devolver para cada afiliado en la respuesta. El valor predeterminado es '*' (todos). Acepta 'ids' o cualquier columna válida
Argumentos adicionales:
- user – Si se pasa user como true, se recuperarán objetos de usuario personalizados sobre la marcha para cada afiliado en la respuesta. Se debe tener cuidado al usar esta opción debido al aumento de 1:1 en las consultas a la base de datos asociadas con cada afiliado
- meta – Si se pasa como true, se recuperará una matriz de metadatos de afiliados sobre la marcha para cada afiliado en la respuesta. Al igual que con user, se debe tener cuidado debido al impacto reducido en el rendimiento.
Todos los argumentos válidos también se pueden derivar enviando una solicitud de OPTIONS a cualquiera de los endpoints.
El endpoint affiliates/{ID} acepta cualquier ID de afiliado válido. Además, si user y/o meta se pasan como true, se recuperará respectivamente un objeto de usuario personalizado y/o una matriz de metadatos de afiliados sobre la marcha para incluirlos con la respuesta.
Visibilidad
Todos los endpoints requieren la clave API y el token, excepto el endpoint principal affwp/v1.
Respuesta
Las respuestas se devuelven en formato JSON.
Ejemplo de respuesta de affiliates:
[
{
"affiliate_id": 2736,
"user_id": 1336,
"rate": "",
"rate_type": "",
"payment_email": "",
"status": "active",
"earnings": 6,
"unpaid_earnings": 0,
"referrals": 6,
"visits": 0,
"date_registered": "2016-08-17 19:46:25",
"id": 2736
},
{
"affiliate_id": 2737,
"user_id": 1337,
"rate": "",
"rate_type": "",
"payment_email": "",
"status": "inactive",
"earnings": 1,
"unpaid_earnings": 3145.59,
"referrals": 1,
"visits": 0,
"date_registered": "2016-08-17 19:46:25",
"id": 2737
}
]
Ejemplo de respuesta de affiliates/{ID}:
{
"affiliate_id": 2737,
"user_id": 1337,
"rate": "",
"rate_type": "",
"payment_email": "",
"status": "inactive",
"earnings": 1,
"unpaid_earnings": 3145.59,
"referrals": 1,
"visits": 0,
"date_registered": "2016-08-17 19:46:25"
}
Ejemplo de respuesta de affiliates{ID}?user=1:
{
"affiliate_id": 2737,
"user_id": 1337,
"rate": "",
"rate_type": "",
"payment_email": "",
"status": "inactive",
"earnings": 1,
"unpaid_earnings": 3145.59,
"referrals": 1,
"visits": 0,
"date_registered": "2016-08-17 19:46:25",
"user": {
"ID": "1337",
"user_login": "user_1_11",
"user_nicename": "user_1_11",
"user_url": "",
"user_registered": "2016-08-17 19:46:25",
"user_status": "0",
"display_name": "User 11",
"spam": "0",
"deleted": "0",
"first_name": "",
"last_name": ""
}
}
Ejemplo de respuesta de affiliates{ID}?meta=1:
{
"affiliate_id": 2737,
"user_id": 1337,
"rate": "",
"rate_type": "",
"payment_email": "[email protected]",
"status": "active",
"earnings": 32039.07,
"unpaid_earnings": 3145.59,
"referrals": 3192,
"visits": 0,
"date_registered": "2016-08-17 19:46:25",
"meta": {
"some_key": [
"some_value"
]
},
"id": 2737
}<br>
.
2. Endpoints de creatividades
AffiliateWP core 1.9+ ofrece dos endpoints REST de solo lectura para creatividades:
- creatives – Recupera objetos de respuesta para todas las creatividades en el sitio actual
- creatives/{ID} – Recupera un objeto de respuesta para una creatividad con el ID de creatividad dado
Se puede acceder a los puntos de conexión de creatividades mediante solicitudes GET en las siguientes ubicaciones:
http://example.com/wp-json/affwp/v1/creatives http://example.com/wp-json/affwp/v1/creatives/ID
Todos los puntos de conexión de creatividades y sus diversas opciones también se pueden descubrir visitando el espacio de nombres REST de AffiliateWP directamente:
http://example.com/wp-json/affwp/v1/
Endpoints
El punto de conexión creatives acepta cualquier argumento válido de get_creatives():
- número – El número de resultados a recuperar (si están disponibles)
- offset – El número de resultados a omitir en la consulta. El valor predeterminado es 0 (sin offset)
- creative_id – El ID de creatividad o matriz de IDs para consultar.
- status – El estado de la creatividad. Acepta 'active' o 'inactive'.
- order – Cómo ordenar los resultados. Acepta 'ASC' (ascendente) o 'DESC' (descendente).
- orderby – Columna de la tabla de creatividades por la que ordenar.
- fields – Campos específicos a devolver para cada creatividad en la respuesta. Por defecto '*' (todos). Acepta 'ids' o cualquier columna válida.
Todos los argumentos válidos también se pueden derivar enviando una solicitud de OPTIONS a cualquiera de los endpoints.
El punto de conexión creatives/{ID} acepta cualquier ID de creatividad válido.
Visibilidad
Todos los puntos de conexión requieren la clave API y el token, excepto el punto de conexión principal affwp/v1.
Respuesta
Las respuestas se devuelven en formato JSON.
Ejemplo de respuesta de creatives s:
{
"creative_id": 2,
"name": "My Other Creative",
"description": "",
"url": "http://affiliate.dev",
"text": "AffiliateWP Plugin Testing",
"image": "",
"status": "inactive",
"date": "2016-05-11 23:35:58",
"id": 2
},
{
"creative_id": 3,
"name": "Special Case",
"description": "",
"url": "http://affiliate.dev",
"text": "AffiliateWP Plugin Testing",
"image": "https://affwp.dev/wp-content/images/brand-assets/affiliatewp-1v.png",
"status": "active",
"date": "2016-05-11 23:43:02",
"id": 3
},
Ejemplo de respuesta de creatives/{ID}:
{
"creative_id": 2,
"name": "My Other Creative",
"description": "",
"url": "http://affiliate.dev",
"text": "AffiliateWP Plugin Testing",
"image": "",
"status": "inactive",
"date": "2016-05-11 23:35:58",
"id": 2
}
.
3. Puntos de conexión de pagos
AffiliateWP core 1.9+ ofrece dos puntos de conexión REST de solo lectura para pagos:
- payouts – Recupera objetos de respuesta para todos los pagos en el sitio actual
- payouts/{ID} – Recupera un objeto de respuesta para un pago con el ID de pago dado
Se puede acceder a los puntos de conexión de pagos mediante solicitudes GET en las siguientes ubicaciones:
http://example.com/wp-json/affwp/v1/payouts http://example.com/wp-json/affwp/v1/payouts/ID
Todos los puntos de conexión de pagos y sus diversas opciones también se pueden descubrir visitando el espacio de nombres REST de AffiliateWP directamente:
http://example.com/wp-json/affwp/v1/
Endpoints
El punto de conexión payouts acepta cualquier argumento válido de get_payouts():
- número – El número de resultados a recuperar (si están disponibles)
- offset – El número de resultados a omitir en la consulta. El valor predeterminado es 0 (sin offset)
- payout_id – El ID de pago o matriz de IDs para consultar.
- affiliate_id – El ID de afiliado o matriz de IDs para consultar pagos.
- referrals – ID de referencia o matriz de IDs de referencia para recuperar pagos.
- amount – Monto del pago (float) o rango min/max (matriz) para recuperar pagos.
- amount_compare – Operador de comparación utilizado con amount. Acepta ‘>’, ‘<‘, ‘>=’, ‘<=’, ‘=’, o ‘!=’.
- status – El estado del pago. Acepta 'paid' o 'failed'.
- date – La matriz o cadena de fecha para consultar pagos dentro.
- order – Cómo ordenar los resultados. Acepta 'ASC' (ascendente) o 'DESC' (descendente).
- orderby – Por qué campo ordenar los resultados de la respuesta. El valor predeterminado es 'date'
- fields – Campos específicos a devolver para cada pago en la respuesta. Por defecto '*' (todos). Acepta 'ids' o cualquier columna válida.
Todos los argumentos válidos también se pueden derivar enviando una solicitud de OPTIONS a cualquiera de los endpoints.
El punto de conexión payouts/{ID} acepta cualquier ID de pago válido.
Visibilidad
Todos los puntos de conexión requieren la clave API y el token, excepto el punto de conexión principal affwp/v1.
Respuesta
Las respuestas se devuelven en formato JSON.
Ejemplo de respuesta de payouts :
[
{
"payout_id": 1,
"affiliate_id": 22,
"referrals": "2,3",
"amount": 1,
"payout_method": "manual",
"status": "paid",
"date": "2016-08-04 16:54:21",
"owner": 0,
"id": 1
},
{
"payout_id": 2,
"affiliate_id": 22,
"referrals": "2,3",
"amount": 1,
"payout_method": "manual",
"status": "paid",
"date": "2016-08-04 16:54:24",
"owner": 0,
"id": 2
},
Ejemplo de respuesta de payouts/{ID}:
{
"payout_id": 2,
"affiliate_id": 22,
"referrals": "2,3",
"amount": 1,
"payout_method": "manual",
"status": "paid",
"date": "2016-08-04 16:54:24",
"owner": 0,
"id": 2
}<br>
.
4. Endpoints de referidos
El núcleo de AffiliateWP 1.9+ ofrece dos endpoints REST de solo lectura para referidos:
- referidos – Recupera objetos de respuesta para todos los referidos en el sitio actual
- referidos/{ID} – Recupera un objeto de respuesta para un referido con el ID de referido dado
Se puede acceder a los endpoints de referidos mediante solicitudes GET en las siguientes ubicaciones:
http://example.com/wp-json/affwp/v1/referrals http://example.com/wp-json/affwp/v1/referrals/ID
Todos los endpoints de referidos y sus diversas opciones también se pueden descubrir visitando directamente el espacio de nombres REST de AffiliateWP:
http://example.com/wp-json/affwp/v1/
Endpoints
El endpoint referidos acepta cualquier argumento válido de get_referrals():
- número – El número de resultados a recuperar (si están disponibles)
- offset – El número de resultados a omitir en la consulta. El valor predeterminado es 0 (sin offset)
- referral_id – El ID de referido o array de IDs para consultar.
- affiliate_id – El ID de afiliado o matriz de IDs a consultar.
- reference – Información de referencia (ID de producto) para el referido.
- ref_context – El contexto bajo el cual se creó el referido (integración).
- campaign – La campaña asociada.
- status – El estado del referido o array de estados. Acepta ‘paid’, ‘unpaid’, ‘pending’ o ‘rejected’.
- order – Cómo ordenar los resultados. Acepta 'ASC' (ascendente) o 'DESC' (descendente).
- orderby – Por qué campo ordenar los resultados de la respuesta. El valor predeterminado es 'date'
- search – Un ID de referido o la cadena de búsqueda para consultar referidos.
- date – El array o cadena de fechas para consultar referidos dentro de ese rango.
- fields – Campos específicos a devolver para cada referido en la respuesta. Por defecto es ‘*’ (todos). Acepta ‘ids’ o cualquier columna válida
Todos los argumentos válidos también se pueden derivar enviando una solicitud de OPTIONS a cualquiera de los endpoints.
El endpoint referidos/{ID} acepta cualquier ID de referido válido.
Visibilidad
Todos los puntos de conexión requieren la clave API y el token, excepto el punto de conexión principal affwp/v1.
Respuesta
Las respuestas se devuelven en formato JSON.
Ejemplo de respuesta de referidos :
{
"referral_id": 21,
"affiliate_id": 0,
"visit_id": 0,
"description": "",
"status": "",
"amount": "",
"currency": "",
"custom": "",
"context": "",
"campaign": "",
"reference": "",
"products": "",
"date": "2016-08-17 19:57:30",
"payout_id": "102",
"id": 21
},
{
"referral_id": 22,
"affiliate_id": 2736,
"visit_id": 0,
"description": "",
"status": "paid",
"amount": "1.00",
"currency": "USD",
"custom": "",
"context": "",
"campaign": "",
"reference": "",
"products": "",
"date": "2016-08-17 19:57:43",
"payout_id": "81",
"id": 22
},
Ejemplo de respuesta de referidos/{ID}:
{
"referral_id": 21,
"affiliate_id": 0,
"visit_id": 0,
"description": "",
"status": "",
"amount": "",
"currency": "",
"custom": "",
"context": "",
"campaign": "",
"reference": "",
"products": "",
"date": "2016-08-17 19:57:30",
"payout_id": "102",
"id": 21
}
.
5. Endpoints de visitas
El núcleo de AffiliateWP 1.9+ ofrece dos endpoints REST de solo lectura para visitas:
- visitas – Recupera objetos de respuesta para todas las visitas en el sitio actual
- visitas/{ID} – Recupera un objeto de respuesta para una visita con el ID de visita dado
Se puede acceder a los endpoints de visita mediante solicitudes GET en las siguientes ubicaciones:
http://example.com/wp-json/affwp/v1/visits http://example.com/wp-json/affwp/v1/visits/ID
Todos los endpoints de visita y sus diversas opciones también se pueden descubrir visitando directamente el espacio de nombres REST de AffiliateWP:
http://example.com/wp-json/affwp/v1/
Endpoints
El endpoint visitas acepta cualquier argumento válido de get_visits():
- número – El número de resultados a recuperar (si están disponibles)
- offset – El número de resultados a omitir en la consulta. El valor predeterminado es 0 (sin offset)
- visit_id – El ID de visita o array de IDs para consultar visitas.
- affiliate_id – El ID de afiliado o array de IDs para consultar visitas.
- referral_id – El ID de referido o array de IDs para consultar visitas.
- referral_status – El estado del referido o array de estados para recuperar visitas.
- campaign – La campaña asociada.
- order – Cómo ordenar la visita en la respuesta. Por defecto es ‘ASC’ (ascendente)
- orderby – Por qué campo ordenar los resultados de la respuesta. El valor predeterminado es 'date'
- campos – Campos específicos a devolver para cada visita en la respuesta. Por defecto ‘*’ (todos). Acepta ‘ids’ o cualquier columna válida
Todos los argumentos válidos también se pueden derivar enviando una solicitud de OPTIONS a cualquiera de los endpoints.
El endpoint visits/{ID} acepta cualquier ID de visita válido.
Visibilidad
Todos los puntos de conexión requieren la clave API y el token, excepto el punto de conexión principal affwp/v1.
Respuesta
Las respuestas se devuelven en formato JSON.
Ejemplo de respuesta de visitas :
{
"visit_id": 1,
"affiliate_id": 5464,
"referral_id": 0,
"url": "http://google.com",
"referrer": "https://affiliatewp.com",
"campaign": "test",
"ip": "",
"date": "2016-09-20 21:58:09",
"id": 1
},
{
"visit_id": 2,
"affiliate_id": 5464,
"referral_id": 0,
"url": "http://google.com",
"referrer": "https://affiliatewp.com",
"campaign": "test",
"ip": "",
"date": "2016-09-18 21:58:11",
"id": 2
},
Ejemplo de respuesta de visits/{ID}:
{
"visit_id": 2,
"affiliate_id": 5464,
"referral_id": 0,
"url": "http://google.com",
"referrer": "https://affiliatewp.com",
"campaign": "test",
"ip": "",
"date": "2016-09-18 21:58:11",
"id": 2
}
.