curl --request GET \
--url https://api.cakto.com.br/public_api/subscriptions/churn/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cakto.com.br/public_api/subscriptions/churn/"
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/subscriptions/churn/', 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/subscriptions/churn/",
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/subscriptions/churn/")
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/subscriptions/churn/")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.cakto.com.br/public_api/subscriptions/churn/");
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,
"results": [
{
"amount": "<string>",
"paymentMethod": "<string>",
"customer": {
"name": "<string>"
},
"product": "<string>",
"offer": "<string>",
"orders": [
"<string>"
],
"id": "<string>",
"status": "active",
"current_period": -1,
"recurrence_period": -1,
"quantity_recurrences": -1,
"trial_days": -1,
"max_retries": -1,
"retry_interval": -1,
"paid_payments_quantity": -1,
"retention": "<string>",
"next_payment_date": "2023-11-07T05:31:56Z",
"canceledAt": "2023-11-07T05:31:56Z"
}
],
"metrics": {
"at_risk_value": 123,
"at_risk_count": 123,
"churned_value": 123,
"churned_count": 123,
"affected_customers_count": 123,
"total_at_risk_value": 123
},
"next": "<string>",
"previous": "<string>"
}{
"detail": "As credenciais de autenticação não foram fornecidas."
}{
"detail": "Você não tem permissão para realizar esta ação."
}Assinaturas Perdidas
Acompanhe cancelamentos e assinaturas inativas para identificar padrões de perda, medir o impacto financeiro e tomar decisões que melhorem a retenção.
curl --request GET \
--url https://api.cakto.com.br/public_api/subscriptions/churn/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cakto.com.br/public_api/subscriptions/churn/"
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/subscriptions/churn/', 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/subscriptions/churn/",
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/subscriptions/churn/")
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/subscriptions/churn/")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.cakto.com.br/public_api/subscriptions/churn/");
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,
"results": [
{
"amount": "<string>",
"paymentMethod": "<string>",
"customer": {
"name": "<string>"
},
"product": "<string>",
"offer": "<string>",
"orders": [
"<string>"
],
"id": "<string>",
"status": "active",
"current_period": -1,
"recurrence_period": -1,
"quantity_recurrences": -1,
"trial_days": -1,
"max_retries": -1,
"retry_interval": -1,
"paid_payments_quantity": -1,
"retention": "<string>",
"next_payment_date": "2023-11-07T05:31:56Z",
"canceledAt": "2023-11-07T05:31:56Z"
}
],
"metrics": {
"at_risk_value": 123,
"at_risk_count": 123,
"churned_value": 123,
"churned_count": 123,
"affected_customers_count": 123,
"total_at_risk_value": 123
},
"next": "<string>",
"previous": "<string>"
}{
"detail": "As credenciais de autenticação não foram fornecidas."
}{
"detail": "Você não tem permissão para realizar esta ação."
}Escopo
read subscriptions
O que é este endpoint?
Lista todas as assinaturas canceladas ou inativas do seu negócio. A resposta inclui métricas agregadas com o valor financeiro em risco e a quantidade de clientes afetados.Casos de uso
Avaliar a retenção de clientes
Avaliar a retenção de clientes
Detectar picos de cancelamento
Detectar picos de cancelamento
Medir o impacto de reajustes de preço
Medir o impacto de reajustes de preço
Comparar desempenho entre períodos
Comparar desempenho entre períodos
Acompanhar a saúde da receita
Acompanhar a saúde da receita
total_at_risk_value mostra o valor total das assinaturas canceladas e inativas. Isso ajuda a dimensionar o problema em dinheiro.Descobrir sinais de insatisfação
Descobrir sinais de insatisfação
Insights que podem ser obtidos
Identificar problemas de retenção
Identificar problemas de retenção
Avaliar mudanças no negócio
Avaliar mudanças no negócio
Antecipar quedas na receita
Antecipar quedas na receita
Planejar campanhas de recuperação
Planejar campanhas de recuperação
Filtros Disponíveis
?status=canceled&createdAt__gte=2025-01-01 — Filtra assinaturas canceladas desde janeiro de 2025.Filtros por Status
Filtros por Status
status— Status da assinatura (canceled,inactive, ou ambos separados por vírgula)
?status=canceled,inactive — Traz tanto canceladas quanto inativasFiltros por Período
Filtros por Período
current_period— Período atual da assinatura (número inteiro)current_period__gt— Período maior quecurrent_period__lt— Período menor que
?current_period__gt=3 — Assinaturas que já passaram do 3º períodoFiltros por Data
Filtros por Data
createdAt— Data de criação (suporta__gte,__lte,__gt,__lt)canceledAt— Data de cancelamento (suporta__gte,__lte,__gt,__lt)next_payment_date— Próximo pagamento (suporta__gte,__lte,__gt,__lt)
YYYY-MM-DD ou ISO 8601 YYYY-MM-DDTHH:MM:SS±hh:mm?canceledAt__gte=2025-01-01&canceledAt__lt=2025-02-01 — Cancelamentos de janeiro de 2025Paginação
Paginação
limit— Número de resultados por página (padrão: 100)offset— Índice do primeiro resultado
?limit=50&offset=50 — Página 2 com 50 resultados por páginaMétricas Retornadas
A resposta inclui um objetometrics com as seguintes informações financeiras e quantitativas:
| Métrica | Descrição |
|---|---|
at_risk_value | Valor total das assinaturas inativas |
at_risk_count | Quantidade de assinaturas inativas |
churned_value | Valor total das assinaturas canceladas |
churned_count | Quantidade de assinaturas canceladas |
affected_customers_count | Número de clientes únicos afetados |
total_at_risk_value | Soma do valor inativo + cancelado |
name é retornado no objeto customer.Authorizations
Token de autenticação do tipo Bearer {access_token}, onde {access_token} é o token obtido no fluxo de autenticação.
Query Parameters
Filtra por moeda. Usa 'BRL' por padrão se não informado.
Valores múltiplos podem ser separados por vírgulas.
Number of results to return per page.
The initial index from which to return the results.
Which field to use when ordering the results.
Valores múltiplos podem ser separados por vírgulas.
A search term.
Valores múltiplos podem ser separados por vírgulas.
Was this page helpful?