Listar Assinaturas
curl --request GET \
--url https://garu.com.br/api/subscriptions \
--header 'Authorization: Bearer <token>'import requests
url = "https://garu.com.br/api/subscriptions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://garu.com.br/api/subscriptions', 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://garu.com.br/api/subscriptions",
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;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://garu.com.br/api/subscriptions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://garu.com.br/api/subscriptions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://garu.com.br/api/subscriptions")
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_body{
"data": [
{}
],
"count": 123,
"totalCount": 123,
"page": 123,
"totalPages": 123
}Assinaturas
Listar Assinaturas
Consulte todas as assinaturas com filtros e paginação
GET
/
api
/
subscriptions
Listar Assinaturas
curl --request GET \
--url https://garu.com.br/api/subscriptions \
--header 'Authorization: Bearer <token>'import requests
url = "https://garu.com.br/api/subscriptions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://garu.com.br/api/subscriptions', 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://garu.com.br/api/subscriptions",
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;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://garu.com.br/api/subscriptions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://garu.com.br/api/subscriptions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://garu.com.br/api/subscriptions")
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_body{
"data": [
{}
],
"count": 123,
"totalCount": 123,
"page": 123,
"totalPages": 123
}Visão Geral
Este endpoint retorna uma lista paginada de todas as assinaturas. Você pode filtrar por status, cliente, produto e buscar por nome ou email do cliente.Exemplo de Requisição
curl -X GET "https://garu.com.br/api/subscriptions?status=active&page=1&limit=20" \
-H "Authorization: Bearer sk_test_sua_chave"
const response = await fetch(
'https://garu.com.br/api/subscriptions?status=active&page=1&limit=20',
{
headers: {
'Authorization': `Bearer ${process.env.GARU_API_KEY}`
}
}
);
const { data, count, totalCount, totalPages } = await response.json();
data.forEach(sub => {
console.log(`${sub.customer.name}: ${sub.status}`);
});
import requests
import os
url = "https://garu.com.br/api/subscriptions"
headers = {
"Authorization": f"Bearer {os.environ['GARU_API_KEY']}"
}
params = {
"status": "active",
"page": 1,
"limit": 20
}
response = requests.get(url, headers=headers, params=params)
result = response.json()
for sub in result['data']:
print(f"{sub['customer']['name']}: {sub['status']}")
Parâmetros de Query
integer
default:"1"
Número da página para paginação.
integer
default:"20"
Quantidade de itens por página.
string
Filtrar por status:
pending, active, pending_cancellation, canceled, failed.integer
Filtrar por ID do cliente.
integer
Filtrar por ID do produto.
string
Buscar por nome ou email do cliente.
Resposta de Sucesso
array
Lista de assinaturas.
number
Total de assinaturas retornadas nesta página.
number
Total de assinaturas que correspondem aos filtros.
number
Página atual.
number
Total de páginas disponíveis.
Exemplo de Resposta (200 OK)
{
"data": [
{
"id": 100,
"uuid": "sub_xyz789",
"customerId": 50,
"subscriptionPriceId": 456,
"status": "active",
"currentPeriodStart": "2024-02-15T00:00:00.000Z",
"currentPeriodEnd": "2024-03-15T00:00:00.000Z",
"trialEndsAt": null,
"cancelAt": null,
"lastPaymentAt": "2024-02-15T10:00:00.000Z",
"nextPaymentAt": "2024-03-15T10:00:00.000Z",
"customer": {
"id": 50,
"name": "João Silva",
"email": "joao@email.com"
},
"subscriptionPrice": {
"id": 456,
"name": "Plano Mensal",
"unitAmount": 49.90,
"billingInterval": "monthly"
}
},
{
"id": 101,
"uuid": "sub_abc123",
"customerId": 51,
"subscriptionPriceId": 457,
"status": "active",
"currentPeriodStart": "2024-02-10T00:00:00.000Z",
"currentPeriodEnd": "2025-02-10T00:00:00.000Z",
"trialEndsAt": null,
"cancelAt": null,
"lastPaymentAt": "2024-02-10T10:00:00.000Z",
"nextPaymentAt": "2025-02-10T10:00:00.000Z",
"customer": {
"id": 51,
"name": "Maria Santos",
"email": "maria@email.com"
},
"subscriptionPrice": {
"id": 457,
"name": "Plano Anual",
"unitAmount": 479.00,
"billingInterval": "yearly"
}
}
],
"count": 2,
"totalCount": 50,
"page": 1,
"totalPages": 25
}
Status de Assinatura
| Status | Descrição |
|---|---|
pending | Aguardando primeiro pagamento |
active | Assinatura ativa e em dia |
pending_cancellation | Cancelamento agendado para fim do período |
canceled | Assinatura encerrada |
failed | Pagamento falhou após todas as tentativas |
Paginação
Para percorrer todas as assinaturas:async function listarTodasAssinaturas(status = 'active') {
const assinaturas = [];
let page = 1;
let totalPages = 1;
do {
const response = await fetch(
`https://garu.com.br/api/subscriptions?status=${status}&page=${page}&limit=50`,
{
headers: {
'Authorization': `Bearer ${process.env.GARU_API_KEY}`
}
}
);
const result = await response.json();
assinaturas.push(...result.data);
totalPages = result.totalPages;
page++;
} while (page <= totalPages);
return assinaturas;
}
Próximos Passos
Detalhes da Assinatura
Consulte os detalhes completos de uma assinatura
Gerenciar Assinaturas
Cancelar, pausar e retomar assinaturas
Was this page helpful?