cURL
curl --request GET \
--url https://api.cakto.com.br/public_api/offers/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cakto.com.br/public_api/offers/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cakto.com.br/public_api/offers/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cakto.com.br/public_api/offers/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.cakto.com.br/public_api/offers/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.get("https://api.cakto.com.br/public_api/offers/")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.cakto.com.br/public_api/offers/");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "5Hrb526",
"name": "Nome da Oferta",
"image": "https://example.com/image.png",
"price": 5,
"units": 1,
"default": true,
"product": "fb3fda61-e88f-43b5-982a-32d50f112414",
"status": "active",
"type": "unique",
"intervalType": "week",
"interval": 1,
"recurrence_period": 30,
"quantity_recurrences": -1,
"trial_days": 0,
"max_retries": 3,
"retry_interval": 1
}
]
}{
"detail": "As credenciais de autenticação não foram fornecidas."
}Ofertas
Listar Ofertas
Lista ofertas dos seus produtos com suporte a filtros, busca e paginação
GET
/
public_api
/
offers
/
cURL
curl --request GET \
--url https://api.cakto.com.br/public_api/offers/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cakto.com.br/public_api/offers/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cakto.com.br/public_api/offers/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cakto.com.br/public_api/offers/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.cakto.com.br/public_api/offers/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.get("https://api.cakto.com.br/public_api/offers/")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.cakto.com.br/public_api/offers/");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
{
"count": 123,
"next": "http://api.example.org/accounts/?page=4",
"previous": "http://api.example.org/accounts/?page=2",
"results": [
{
"id": "5Hrb526",
"name": "Nome da Oferta",
"image": "https://example.com/image.png",
"price": 5,
"units": 1,
"default": true,
"product": "fb3fda61-e88f-43b5-982a-32d50f112414",
"status": "active",
"type": "unique",
"intervalType": "week",
"interval": 1,
"recurrence_period": 30,
"quantity_recurrences": -1,
"trial_days": 0,
"max_retries": 3,
"retry_interval": 1
}
]
}{
"detail": "As credenciais de autenticação não foram fornecidas."
}Escopo
read offers
Filtros Disponíveis
Filtros podem ser combinados para refinar ainda mais os resultados.Exemplo:
?product=123&status=active,disabled - Filtra ofertas ativas ou desabilitadas de um produto específico.Filtros por Identificação
Filtros por Identificação
id- Id da oferta (múltiplos valores separados por vírgula)name- Nome da oferta (busca parcial, case-insensitive)
?id=OFF123,OFF456&name=meu-produto - Filtra ofertas com Id OFF123 ou OFF456 e nome contendo “meu-produto”Filtros por Valor
Filtros por Valor
price- Valor da oferta
Suporte a operadores de comparação (
__gt, __gte, __lt, __lte)?price__gte=5000 - Filtra ofertas com valor maior ou igual a R$ 50,00Filtros por Datas
Filtros por Datas
createdAt- Data de criaçãoupdatedAt- Data de última atualização
Suporte a operadores de comparação (
__gt, __gte, __lt, __lte)Formato de data:
YYYY-MM-DD ou ISO 8601 YYYY-MM-DDTHH:MM:SS±hh:mm?createdAt__gte=2024-01-01&createdAt__lt=2024-02-01T23:59:59Z - Filtra produtos criados em janeiro de 2024Filtros por Status
Filtros por Status
status- Status da oferta (active, disabled)
Suporte a múltiplos valores separados por vírgula.
?status=active&type=subscription - Filtra ofertas ativas de assinaturaFiltros por Tipo
Filtros por Tipo
type- Tipo da oferta (unique, subscription)
Suporte a múltiplos valores separados por vírgula.
?type=subscription - Filtra ofertas de assinaturaFiltros para Ofertas de Pagamento Único
Filtros para Ofertas de Pagamento Único
Esses filtros são aplicáveis apenas para ofertas do tipo
unique.intervalType- Tipo de intervalo da oferta (day, week, month, year) (múltiplos valores suportados)interval- Quantidade de intervalos (número inteiro)
?intervalType=month&interval=6 - Filtra ofertas com intervalo de 6 mesesFiltros para Ofertas de Pagamento Recorrente
Filtros para Ofertas de Pagamento Recorrente
Esses filtros são aplicáveis apenas para ofertas do tipo
subscription.recurrence_period- Período de recorrência em dias (número inteiro)quantity_recurrences- Quantidade de recorrências (número inteiro)trial_days- Quantidade de dias de período de teste (número inteiro)max_retries- Quantidade máxima de tentativas de cobrança (número inteiro)retry_interval- Quantidade de dias entre tentativas de cobrança (número inteiro)
?recurrence_period=30&quantity_recurrences=12 - Filtra ofertas com renovação mensal e duração de 1 anoFiltros por Relacionamentos
Filtros por Relacionamentos
product- Id do produto ao qual a oferta pertence
Suporte a múltiplos valores separados por vírgula.
?product=AB123,BC456 - Filtra ofertas dos produtos com Id AB123 e BC456Outros Filtros
Outros Filtros
default- Se é a oferta padrão do produto (true/false)
?default=true - Filtra apenas ofertas padrão dos produtosBusca
O endpoint suporta busca textual pelo parâmetrosearch nos seguintes campos:
name- Nome da ofertaid- Id da ofertaproduct.name- Nome do produto associado à ofertaproduct.short_id- Id curto do produto associado à ofertaproduct.id- Id completo do produto associado à oferta
?search=meu-produto - Busca pelo texto “meu-produto” nos campos de busca.
Qualquer oferta onde um dos campos contenha o texto será retornada, (“meu-produto 2.0” e “Oferta B meu-produto” seriam retornadas).
Ordenação
Você pode ordenar os resultados usando o parâmetroordering:
Campos suportados: id, name, price, product, status, default, createdAt, updatedAt
Use o prefixo
- para ordenação decrescente.?ordering=-createdAt - Ordena por data de criação (mais recentes primeiro)Authorizations
Token de autenticação do tipo Bearer {access_token}, onde {access_token} é o token obtido no fluxo de autenticação.
Query Parameters
Número de resultados a serem retornados por página.
Número da página a ser retornada.
Was this page helpful?