Como Configurar e Usar a API REST v1
O AffiliateWP possui uma série de endpoints REST somente leitura que se baseiam na infraestrutura incluída no WordPress 4.4 e posterior.
Neste artigo, mostraremos como configurar e usar a API REST v1 para acessar os Dados do AffiliateWP.
API REST – Autenticação
Para aproveitar os endpoints REST principais, todos os consumidores da API devem se autenticar usando chaves de API geradas a partir de uma nova guia Chaves de API localizada em Afiliados → Ferramentas → Chaves de API.
A API REST usa autenticação básica com uma combinação de Chave Pública e Token.
Antes de autenticar uma solicitação de API, você precisa de um conjunto de chaves de API. Estas são específicas do usuário e podem ser criadas em Afiliados → Ferramentas → Chaves de API:

Para gerar um novo conjunto de chaves de API, insira o nome de usuário do usuário ao qual as chaves devem pertencer e clique em Gerar Novas Chaves de API.

Observação: A conta de usuário à qual as chaves de API estão associadas deve ter as permissões adequadas para que a API funcione. Normalmente, isso significa que o usuário precisa ter a função de Administrador. Veja nossa documentação sobre funções e permissões para mais informações.
Depois que as chaves de API forem criadas, você poderá se autenticar com a API REST incluindo as chaves no cabeçalho de autenticação. A Chave Pública deve ser passada como o usuário e o Token como a senha.
Por exemplo, usando o Postman, nossa solicitação autenticada ficaria assim:

Se estiver usando o curl, uma solicitação autenticada ficaria assim:
curl -u 229c1d4292800a4fdaa1099a4c646c9a:c7fd218923e058e1637698e5257855de http://local.wp/woo/wp-json/affwp/v1/affiliates
O cabeçalho de autorização deve ser incluído em todas as solicitações de API para autenticar corretamente com a API. Se a autenticação básica não for fornecida ou as credenciais estiverem incorretas, uma mensagem de erro será retornada:
{
"code": "rest_forbidden",
"message": "Sorry, you are not allowed to do that.",
"data": {
"status": 403
}
}
Rotas e Endpoints
O AffiliateWP oferece cinco rotas e múltiplos endpoints subjacentes. Essas cinco rotas são:
Clique nos nomes das rotas acima para saber mais sobre seus respectivos endpoints, ver exemplos de solicitações e muito mais.
Observação: operações completas de Criação, Leitura, Atualização e Exclusão (CRUD) podem ser habilitadas através do add-on REST API Extended. Consulte a documentação da REST API Extended para obter informações sobre as operações de Criação, Atualização e Exclusão.
1. Endpoints de Afiliados
O AffiliateWP core 1.9+ oferece dois endpoints REST somente leitura para afiliados:
- afiliados – Recupera objetos de resposta para todos os afiliados no site atual
- afiliados/{ID} – Recupera um objeto de resposta para um afiliado com o ID de afiliado fornecido
Os endpoints de afiliados podem ser acessados via solicitações GET nos seguintes locais:
http://example.com/wp-json/affwp/v1/affiliates http://example.com/wp-json/affwp/v1/affiliates/ID
Todos os endpoints de afiliados e suas várias opções também podem ser descobertos visitando o namespace REST do AffiliateWP diretamente:
http://example.com/wp-json/affwp/v1/
Endpoints
O endpoint affiliates aceita quaisquer argumentos válidos de get_affiliates():
- number – O número de resultados a serem recuperados (se disponíveis)
- offset – O número de resultados a serem deslocados na consulta. O padrão é 0 (sem deslocamento)
- affiliate_id – O ID do afiliado ou um array de IDs para consultar.
- user_id – O ID do usuário ou um array de IDs para consultar pagamentos.
- exclude – ID do afiliado ou array de IDs a serem excluídos da solicitação.
- search – Termos para pesquisar afiliados. Aceita um ID de afiliado ou uma string.
- status – O status do afiliado. Aceita ‘active’, ‘inactive’, ‘pending’ ou ‘rejected’.
- order – Como ordenar os resultados. Aceita ‘ASC’ (ascendente) ou ‘DESC’ (descendente).
- orderby – Por qual campo ordenar os resultados da resposta. O padrão é ‘date’
- fields – Campos específicos a serem retornados para cada afiliado na resposta. O padrão é ‘*’ (todos). Aceita ‘ids’ ou qualquer coluna válida
Argumentos adicionais:
- user – Se user for passado como true, objetos de usuário personalizados serão recuperados dinamicamente para cada afiliado na resposta. Deve-se ter cuidado ao usar esta opção devido ao aumento de 1:1 nas consultas ao banco de dados associadas a cada afiliado
- meta – Se passado como true, um array de metadados de afiliados será recuperado dinamicamente para cada afiliado na resposta. Assim como com user, deve-se ter cuidado devido ao impacto reduzido no desempenho.
Todos os argumentos válidos também podem ser derivados enviando uma solicitação OPTIONS para qualquer um dos endpoints.
O endpoint affiliates/{ID} aceita qualquer ID de afiliado válido. Além disso, se user e/ou meta forem passados como true, um objeto de usuário personalizado e/ou um array de metadados de afiliados serão respectivamente recuperados dinamicamente para incluir na resposta.
Visibilidade
Todos os endpoints exigem a chave de API e o token, exceto o endpoint principal affwp/v1.
Resposta
As respostas são retornadas em formato JSON.
Exemplo de resposta 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
}
]
Exemplo de resposta 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"
}
Exemplo de resposta 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": ""
}
}
Exemplo de resposta 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 Criativos
O AffiliateWP core 1.9+ oferece dois endpoints REST somente leitura para criativos:
- creatives – Recupera objetos de resposta para todos os criativos no site atual
- creatives/{ID} – Recupera um objeto de resposta para um criativo com o ID de criativo fornecido
Os endpoints de criativos podem ser acessados via requisições GET nos seguintes locais:
http://example.com/wp-json/affwp/v1/creatives http://example.com/wp-json/affwp/v1/creatives/ID
Todos os endpoints de criativos e suas várias opções também podem ser descobertos visitando o namespace REST do AffiliateWP diretamente:
http://example.com/wp-json/affwp/v1/
Endpoints
O endpoint creatives aceita quaisquer argumentos válidos de get_creatives():
- number – O número de resultados a serem recuperados (se disponíveis)
- offset – O número de resultados a serem deslocados na consulta. O padrão é 0 (sem deslocamento)
- creative_id – O ID do criativo ou array de IDs para consultar.
- status – O status do criativo. Aceita ‘active’ ou ‘inactive’.
- order – Como ordenar os resultados. Aceita ‘ASC’ (ascendente) ou ‘DESC’ (descendente).
- orderby – Coluna da tabela de criativos para ordenar.
- fields – Campos específicos a serem retornados para cada criativo na resposta. Padrão ‘*’ (todos). Aceita ‘ids’ ou qualquer coluna válida.
Todos os argumentos válidos também podem ser derivados enviando uma solicitação OPTIONS para qualquer um dos endpoints.
O endpoint creatives/{ID} aceita qualquer ID de criativo válido.
Visibilidade
Todos os endpoints exigem a chave de API e o token, exceto o endpoint principal affwp/v1.
Resposta
As respostas são retornadas em formato JSON.
Exemplo de resposta 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
},
Exemplo de resposta 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. Endpoints de Pagamentos
O AffiliateWP core 1.9+ oferece dois endpoints REST somente leitura para pagamentos:
- payouts – Recupera objetos de resposta para todos os pagamentos no site atual
- payouts/{ID} – Recupera um objeto de resposta para um pagamento com o ID de pagamento fornecido
Os endpoints de pagamento podem ser acessados via requisições GET nos seguintes locais:
http://example.com/wp-json/affwp/v1/payouts http://example.com/wp-json/affwp/v1/payouts/ID
Todos os endpoints de pagamento e suas várias opções também podem ser descobertos visitando o namespace REST do AffiliateWP diretamente:
http://example.com/wp-json/affwp/v1/
Endpoints
O endpoint payouts aceita quaisquer argumentos válidos de get_payouts():
- number – O número de resultados a serem recuperados (se disponíveis)
- offset – O número de resultados a serem deslocados na consulta. O padrão é 0 (sem deslocamento)
- payout_id – O ID do pagamento ou array de IDs para consultar.
- affiliate_id – O ID do afiliado ou array de IDs para consultar pagamentos.
- referrals – ID de referência ou array de IDs de referência para recuperar pagamentos.
- amount – Valor do pagamento (float) ou intervalo min/max (array) para recuperar pagamentos.
- amount_compare – Operador de comparação usado com amount. Aceita ‘>’, ‘<‘, ‘>=’, ‘<=’, ‘=’, ou ‘!=’.
- status – O status do pagamento. Aceita ‘paid’ ou ‘failed’
- date – O array ou string de data para consultar pagamentos dentro.
- order – Como ordenar os resultados. Aceita ‘ASC’ (ascendente) ou ‘DESC’ (descendente).
- orderby – Por qual campo ordenar os resultados da resposta. O padrão é ‘date’
- fields – Campos específicos a serem retornados para cada pagamento na resposta. Padrão ‘*’ (todos). Aceita ‘ids’ ou qualquer coluna válida
Todos os argumentos válidos também podem ser derivados enviando uma solicitação OPTIONS para qualquer um dos endpoints.
O endpoint payouts/{ID} aceita qualquer ID de pagamento válido.
Visibilidade
Todos os endpoints exigem a chave de API e o token, exceto o endpoint principal affwp/v1.
Resposta
As respostas são retornadas em formato JSON.
Exemplo de resposta 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
},
Exemplo de resposta 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 Indicações
O AffiliateWP core 1.9+ oferece dois endpoints REST somente leitura para indicações:
- referrals – Recupera objetos de resposta para todas as indicações no site atual
- referrals/{ID} – Recupera um objeto de resposta para uma indicação com o ID de indicação fornecido
Os endpoints de indicação podem ser acessados via requisições GET nos seguintes locais:
http://example.com/wp-json/affwp/v1/referrals http://example.com/wp-json/affwp/v1/referrals/ID
Todos os endpoints de indicação e suas várias opções também são descobertos visitando o namespace REST do AffiliateWP diretamente:
http://example.com/wp-json/affwp/v1/
Endpoints
O endpoint referrals aceita quaisquer argumentos válidos de get_referrals():
- number – O número de resultados a serem recuperados (se disponíveis)
- offset – O número de resultados a serem deslocados na consulta. O padrão é 0 (sem deslocamento)
- referral_id – O ID da indicação ou array de IDs para consultar.
- affiliate_id – O ID do afiliado ou um array de IDs para consultar.
- reference – Informações de referência (ID do produto) para a indicação.
- ref_context – O contexto sob o qual a indicação foi criada (integração).
- campaign – A campanha associada.
- status – O status da indicação ou array de status. Aceita ‘paid’, ‘unpaid’, ‘pending’, ou ‘rejected’.
- order – Como ordenar os resultados. Aceita ‘ASC’ (ascendente) ou ‘DESC’ (descendente).
- orderby – Por qual campo ordenar os resultados da resposta. O padrão é ‘date’
- search – Um ID de indicação ou a string de busca para consultar indicações.
- date – O array de datas ou string para consultar indicações dentro.
- fields – Campos específicos a serem retornados para cada indicação na resposta. Padrão ‘*’ (todos). Aceita ‘ids’ ou qualquer coluna válida
Todos os argumentos válidos também podem ser derivados enviando uma solicitação OPTIONS para qualquer um dos endpoints.
O endpoint referrals/{ID} aceita qualquer ID de indicação válido.
Visibilidade
Todos os endpoints exigem a chave de API e o token, exceto o endpoint principal affwp/v1.
Resposta
As respostas são retornadas em formato JSON.
Exemplo de resposta referrals :
{
"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
},
Exemplo de resposta referrals/{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
O AffiliateWP core 1.9+ oferece dois endpoints REST somente leitura para visitas:
- visits – Recupera objetos de resposta para todas as visitas no site atual
- visits/{ID} – Recupera um objeto de resposta para uma visita com o ID de visita fornecido
Os endpoints de visita podem ser acessados via requisições GET nos seguintes locais:
http://example.com/wp-json/affwp/v1/visits http://example.com/wp-json/affwp/v1/visits/ID
Todos os endpoints de visita e suas várias opções também são descobertos visitando o namespace REST do AffiliateWP diretamente:
http://example.com/wp-json/affwp/v1/
Endpoints
O endpoint visits aceita quaisquer argumentos válidos de get_visits():
- number – O número de resultados a serem recuperados (se disponíveis)
- offset – O número de resultados a serem deslocados na consulta. O padrão é 0 (sem deslocamento)
- visit_id – O ID da visita ou array de IDs para consultar visitas.
- affiliate_id – O ID do afiliado ou array de IDs para consultar visitas.
- referral_id – O ID da indicação ou array de IDs para consultar visitas.
- referral_status – O status da indicação ou array de status para recuperar visitas.
- campaign – A campanha associada.
- order – Como ordenar a visita na resposta. O padrão é ‘ASC’ (ascendente)
- orderby – Por qual campo ordenar os resultados da resposta. O padrão é ‘date’
- campos – Campos específicos a serem retornados para cada visita na resposta. Padrão ‘*’ (todos). Aceita ‘ids’ ou qualquer coluna válida
Todos os argumentos válidos também podem ser derivados enviando uma solicitação OPTIONS para qualquer um dos endpoints.
O endpoint visits/{ID} aceita qualquer ID de visita válido.
Visibilidade
Todos os endpoints exigem a chave de API e o token, exceto o endpoint principal affwp/v1.
Resposta
As respostas são retornadas em formato JSON.
Exemplo de resposta visits:
{
"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
},
Exemplo de resposta 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
}
.