🚀 ADS MANAGER API - Documentação Completa v1.0
📋 Índice
- Visão Geral
- Autenticação
- Endpoints Básicos
- Endpoints Avançados
- Endpoints de Analytics
- Exemplos de Uso
- Códigos de Erro
- Rate Limits
- Changelog
🎯 Visão Geral
A Ads Manager API é uma API RESTful profissional que permite acesso completo aos dados de campanhas, métricas, keywords e anúncios das plataformas:
- ✅ Google Ads
- ✅ Meta Ads (Facebook/Instagram)
- ✅ LinkedIn Ads
Base URL
https://adsmanager.com.br/api/v1
Formato de Resposta
Todas as respostas são em JSON:
{
"success": true,
"data": { ... }
}
🔐 Autenticação
Obter Token de API
- Acesse: https://adsmanager.com.br/settings
- Clique na aba "API"
- Clique em "Criar Novo Token"
- Copie o token (será exibido apenas uma vez!)
Usar o Token
Inclua o token no header Authorization de todas as requisições:
Authorization: Bearer seu_token_aqui
Exemplo
curl -H "Authorization: Bearer adsm_1098d12d..." \
https://adsmanager.com.br/api/v1/clients
📊 Endpoints Básicos
1. Listar Clientes
Lista todos os clientes da sua agência.
GET /api/v1/clients
Resposta:
{
"success": true,
"data": {
"total": 75,
"clients": [
{
"id": "6884f0170242d672246527bc",
"name": "BIOTERAPICA",
"email": "contato@bioterapica.com",
"phone": "(11) 99999-9999",
"created_at": "2025-07-26T15:11:19Z"
}
]
}
}
2. Listar Contas de Anúncios
Lista todas as contas de anúncios de um cliente.
GET /api/v1/clients/{client_id}/accounts
Resposta:
{
"success": true,
"data": {
"client_id": "6884f0170242d672246527bc",
"total_accounts": 5,
"accounts": {
"google_ads": [
{
"account_id": "123-456-7890",
"account_name": "Conta Google Ads Principal",
"currency": "BRL",
"status": "active"
}
],
"meta_ads": [
{
"account_id": "1563628453988276",
"account_name": "Conta Meta Ads",
"currency": "BRL",
"status": "active"
}
],
"linkedin_ads": []
}
}
}
3. Dashboard Completo
Retorna TODOS os dados estruturados do dashboard.
GET /api/v1/accounts/{platform}/{account_id}/dashboard
Parâmetros Query:
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição | |-----------|------|-------------|--------|-----------| | start_date | string | Não | 30 dias atrás | Data inicial (YYYY-MM-DD) | | end_date | string | Não | Hoje | Data final (YYYY-MM-DD) |
Exemplo:
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/google_ads/123456789/dashboard?start_date=2026-01-01&end_date=2026-01-15"
Resposta: Ver estrutura completa
🎯 Endpoints Avançados
4. Listar Campanhas
Lista todas as campanhas com métricas detalhadas.
GET /api/v1/accounts/{platform}/{account_id}/campaigns
Parâmetros Query:
| Parâmetro | Tipo | Padrão | Descrição | |-----------|------|--------|-----------| | start_date | string | 30 dias atrás | Data inicial | | end_date | string | Hoje | Data final | | status | string | - | Filtrar por status (ACTIVE, PAUSED) | | sort_by | string | spend | Ordenar por (spend, clicks, conversions, ctr) | | order | string | desc | Ordem (asc, desc) | | limit | number | 100 | Limite de resultados |
Exemplo:
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/google_ads/123456789/campaigns?sort_by=conversions&limit=20"
Resposta:
{
"success": true,
"data": {
"period": {
"start_date": "2026-01-01",
"end_date": "2026-01-15"
},
"total_campaigns": 15,
"campaigns": [
{
"campaign_id": "987654321",
"campaign_name": "Campanha de Vendas Q1",
"status": "ACTIVE",
"spend": 15234.56,
"clicks": 1250,
"impressions": 45000,
"conversions": 85.5,
"ctr": 2.78,
"cpc": 12.19,
"cpm": 338.55,
"conversion_rate": 6.84,
"cost_per_conversion": 178.13
}
]
}
}
5. Detalhes de uma Campanha
Retorna detalhes completos de uma campanha específica.
GET /api/v1/accounts/{platform}/{account_id}/campaigns/{campaign_id}
Parâmetros Query:
| Parâmetro | Tipo | Padrão | Descrição | |-----------|------|--------|-----------| | start_date | string | 30 dias atrás | Data inicial | | end_date | string | Hoje | Data final |
Exemplo:
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/google_ads/123456789/campaigns/987654321"
Resposta:
{
"success": true,
"data": {
"campaign_id": "987654321",
"campaign_name": "Campanha de Vendas Q1",
"status": "ACTIVE",
"objective": "CONVERSIONS",
"budget": 50000.00,
"period": {
"start_date": "2026-01-01",
"end_date": "2026-01-15"
},
"summary": {
"spend": 15234.56,
"clicks": 1250,
"impressions": 45000,
"conversions": 85.5,
"ctr": 2.78,
"cpc": 12.19,
"cpm": 338.55,
"conversion_rate": 6.84,
"cost_per_conversion": 178.13
},
"daily_metrics": [
{
"date": "2026-01-01",
"spend": 1000.00,
"clicks": 85,
"impressions": 3000,
"conversions": 5.5
}
]
}
}
6. Keywords com Melhor Performance
Retorna as keywords com melhor performance (apenas Google Ads).
GET /api/v1/accounts/google_ads/{account_id}/keywords/top-performing
Parâmetros Query:
| Parâmetro | Tipo | Padrão | Descrição | |-----------|------|--------|-----------| | start_date | string | 30 dias atrás | Data inicial | | end_date | string | Hoje | Data final | | metric | string | conversions | Métrica para ordenar (conversions, clicks, ctr, quality_score) | | limit | number | 50 | Número de keywords | | min_impressions | number | 100 | Mínimo de impressões |
Exemplo:
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/google_ads/123456789/keywords/top-performing?metric=conversions&limit=20"
Resposta:
{
"success": true,
"data": {
"period": {
"start_date": "2026-01-01",
"end_date": "2026-01-15"
},
"metric": "conversions",
"total_keywords": 20,
"keywords": [
{
"keyword": "comprar produto online",
"spend": 2500.00,
"clicks": 450,
"impressions": 15000,
"conversions": 35.5,
"ctr": 3.00,
"cpc": 5.56,
"conversion_rate": 7.89,
"cost_per_conversion": 70.42,
"quality_score": 8
}
]
}
}
7. Anúncios com Melhor Performance
Retorna os anúncios com melhor performance.
GET /api/v1/accounts/{platform}/{account_id}/ads/top-performing
Parâmetros Query:
| Parâmetro | Tipo | Padrão | Descrição | |-----------|------|--------|-----------| | start_date | string | 30 dias atrás | Data inicial | | end_date | string | Hoje | Data final | | metric | string | conversions | Métrica para ordenar (conversions, clicks, ctr, engagement) | | limit | number | 50 | Número de anúncios | | min_impressions | number | 100 | Mínimo de impressões |
Exemplo:
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/meta_ads/1563628453988276/ads/top-performing?metric=ctr&limit=20"
Resposta:
{
"success": true,
"data": {
"period": {
"start_date": "2026-01-01",
"end_date": "2026-01-15"
},
"metric": "ctr",
"total_ads": 20,
"ads": [
{
"ad_id": "23851234567890",
"ad_name": "Anúncio Carrossel Produto A",
"campaign_name": "Campanha de Vendas Q1",
"spend": 3500.00,
"clicks": 850,
"impressions": 18000,
"conversions": 45.5,
"engagement": 1200,
"ctr": 4.72,
"cpc": 4.12,
"conversion_rate": 5.35,
"cost_per_conversion": 76.92,
"engagement_rate": 6.67
}
]
}
}
8. Comparação de Performance
Compara performance entre dois períodos.
GET /api/v1/accounts/{platform}/{account_id}/performance/comparison
Parâmetros Query:
| Parâmetro | Tipo | Obrigatório | Descrição | |-----------|------|-------------|-----------| | current_start | string | Sim | Início do período atual | | current_end | string | Sim | Fim do período atual | | previous_start | string | Não | Início do período anterior (calculado automaticamente se não informado) | | previous_end | string | Não | Fim do período anterior (calculado automaticamente se não informado) |
Exemplo:
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/google_ads/123456789/performance/comparison?current_start=2026-01-01¤t_end=2026-01-15"
Resposta:
{
"success": true,
"data": {
"current_period": {
"start_date": "2026-01-01",
"end_date": "2026-01-15",
"metrics": {
"spend": 15234.56,
"clicks": 1250,
"impressions": 45000,
"conversions": 85.5,
"ctr": 2.78,
"cpc": 12.19,
"conversion_rate": 6.84
}
},
"previous_period": {
"start_date": "2025-12-17",
"end_date": "2025-12-31",
"metrics": {
"spend": 12500.00,
"clicks": 1100,
"impressions": 42000,
"conversions": 75.0,
"ctr": 2.62,
"cpc": 11.36,
"conversion_rate": 6.82
}
},
"comparison": {
"spend": {
"current": 15234.56,
"previous": 12500.00,
"change": 2734.56,
"change_percent": 21.88
},
"conversions": {
"current": 85.5,
"previous": 75.0,
"change": 10.5,
"change_percent": 14.00
}
}
}
}
📊 Endpoints de Analytics
10. Demografia
Retorna dados demográficos completos (idade, gênero, localização, dispositivos).
GET /api/v1/accounts/{platform}/{account_id}/demographics
Parâmetros Query:
| Parâmetro | Tipo | Obrigatório | Descrição |
|-----------|------|-------------|-----------|
| start_date | string | Não | Data inicial (YYYY-MM-DD) - padrão: 30 dias atrás |
| end_date | string | Não | Data final (YYYY-MM-DD) - padrão: hoje |
| breakdown | string | Não | Tipo de quebra: age, gender, location, device, all (padrão: all) |
Exemplo:
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/google_ads/123456789/demographics?breakdown=all"
Resposta:
{
"success": true,
"data": {
"account_id": "123456789",
"platform": "google_ads",
"period": {
"start_date": "2026-01-01",
"end_date": "2026-01-31"
},
"demographics": {
"age": [
{
"age_range": "18-24",
"impressions": 6750,
"clicks": 187,
"conversions": 12.5,
"cost": 1500.00,
"ctr": 2.77,
"conversion_rate": 6.68
},
{
"age_range": "25-34",
"impressions": 15750,
"clicks": 437,
"conversions": 29.2,
"cost": 3500.00,
"ctr": 2.77,
"conversion_rate": 6.68
}
],
"gender": [
{
"gender": "male",
"impressions": 23400,
"clicks": 650,
"conversions": 43.3,
"cost": 5200.00,
"ctr": 2.78,
"conversion_rate": 6.66
},
{
"gender": "female",
"impressions": 20700,
"clicks": 575,
"conversions": 38.3,
"cost": 4600.00,
"ctr": 2.78,
"conversion_rate": 6.66
}
],
"location": [
{
"location": "São Paulo, SP",
"city": "São Paulo",
"state": "SP",
"impressions": 12500,
"clicks": 347,
"conversions": 23.1,
"cost": 2780.00,
"ctr": 2.78,
"conversion_rate": 6.66
}
],
"device": [
{
"device": "mobile",
"impressions": 29250,
"clicks": 812,
"conversions": 54.1,
"cost": 6500.00,
"ctr": 2.78,
"conversion_rate": 6.66
},
{
"device": "desktop",
"impressions": 13500,
"clicks": 375,
"conversions": 25.0,
"cost": 3000.00,
"ctr": 2.78,
"conversion_rate": 6.67
}
]
}
}
}
11. Leads
Retorna lista de leads capturados via campanhas.
GET /api/v1/accounts/{platform}/{account_id}/leads
Parâmetros Query:
| Parâmetro | Tipo | Obrigatório | Descrição |
|-----------|------|-------------|-----------|
| start_date | string | Não | Data inicial (YYYY-MM-DD) - padrão: 30 dias atrás |
| end_date | string | Não | Data final (YYYY-MM-DD) - padrão: hoje |
| status | string | Não | Status do lead: new, contacted, qualified, converted |
| limit | integer | Não | Número de resultados (padrão: 100) |
| offset | integer | Não | Paginação (padrão: 0) |
Exemplo:
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/meta_ads/123456789/leads?limit=50"
Resposta:
{
"success": true,
"data": {
"account_id": "123456789",
"platform": "meta_ads",
"period": {
"start_date": "2026-01-01",
"end_date": "2026-01-31"
},
"pagination": {
"total": 245,
"limit": 50,
"offset": 0,
"has_more": true
},
"summary": {
"total_leads": 245,
"total_cost": 18750.00,
"average_cost_per_lead": 76.53,
"lead_conversion_rate": 8.45
},
"leads": [
{
"campaign_id": "987654321",
"campaign_name": "Campanha de Leads Q1",
"date": "2026-01-31",
"lead_conversions": 15,
"cost": 1200.00,
"cost_per_lead": 80.00,
"impressions": 5000,
"clicks": 180,
"conversion_rate": 8.33
}
]
}
}
12. Alcance (Reach)
Retorna métricas de alcance e frequência.
GET /api/v1/accounts/{platform}/{account_id}/reach
Parâmetros Query:
| Parâmetro | Tipo | Obrigatório | Descrição |
|-----------|------|-------------|-----------|
| start_date | string | Não | Data inicial (YYYY-MM-DD) - padrão: 30 dias atrás |
| end_date | string | Não | Data final (YYYY-MM-DD) - padrão: hoje |
| breakdown | string | Não | Quebra por: campaign, daily, total (padrão: total) |
Exemplo:
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/meta_ads/123456789/reach?breakdown=campaign"
Resposta:
{
"success": true,
"data": {
"account_id": "123456789",
"platform": "meta_ads",
"period": {
"start_date": "2026-01-01",
"end_date": "2026-01-31"
},
"breakdown": "campaign",
"campaigns": [
{
"campaign_id": "987654321",
"campaign_name": "Campanha de Awareness",
"reach": 125000,
"impressions": 450000,
"frequency": 3.6,
"social_reach": 115000,
"social_impressions": 420000
}
]
}
}
13. Insights
Retorna insights e recomendações automáticas baseadas nos dados.
GET /api/v1/accounts/{platform}/{account_id}/insights
Parâmetros Query:
| Parâmetro | Tipo | Obrigatório | Descrição |
|-----------|------|-------------|-----------|
| type | string | Não | Tipo de insight: performance, budget, optimization, all (padrão: all) |
| limit | integer | Não | Número de insights (padrão: 10) |
Exemplo:
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/google_ads/123456789/insights?type=performance"
Resposta:
{
"success": true,
"data": {
"account_id": "123456789",
"platform": "google_ads",
"total_insights": 5,
"insights": [
{
"type": "budget",
"severity": "high",
"campaign_id": "987654321",
"campaign_name": "Campanha de Vendas",
"title": "CPC Elevado",
"description": "A campanha 'Campanha de Vendas' tem CPC de R$ 8.50, acima do ideal.",
"recommendation": "Revise os lances e considere adicionar palavras-chave negativas.",
"metrics": {
"cpc": 8.50,
"cost": 12500.00,
"clicks": 1470
}
},
{
"type": "performance",
"severity": "warning",
"campaign_id": "123456789",
"campaign_name": "Campanha de Branding",
"title": "CTR Abaixo da Média",
"description": "A campanha 'Campanha de Branding' tem CTR de 0.85%, abaixo da média de 1%.",
"recommendation": "Considere revisar os anúncios e palavras-chave para melhorar a relevância.",
"metrics": {
"ctr": 0.85,
"impressions": 45000,
"clicks": 382
}
}
]
}
}
💡 Exemplos de Uso
Python
import requests
from datetime import datetime, timedelta
class AdsManagerAPI:
def __init__(self, token):
self.token = token
self.base_url = "https://adsmanager.com.br/api/v1"
self.headers = {"Authorization": f"Bearer {token}"}
def get_clients(self):
response = requests.get(
f"{self.base_url}/clients",
headers=self.headers
)
return response.json()['data']
def get_campaigns(self, platform, account_id, **params):
response = requests.get(
f"{self.base_url}/accounts/{platform}/{account_id}/campaigns",
headers=self.headers,
params=params
)
return response.json()['data']
def get_top_keywords(self, account_id, metric='conversions', limit=20):
response = requests.get(
f"{self.base_url}/accounts/google_ads/{account_id}/keywords/top-performing",
headers=self.headers,
params={'metric': metric, 'limit': limit}
)
return response.json()['data']
def get_top_ads(self, platform, account_id, metric='conversions', limit=20):
response = requests.get(
f"{self.base_url}/accounts/{platform}/{account_id}/ads/top-performing",
headers=self.headers,
params={'metric': metric, 'limit': limit}
)
return response.json()['data']
# Usar a API
api = AdsManagerAPI("seu_token_aqui")
# Listar clientes
clients = api.get_clients()
print(f"Total de clientes: {clients['total']}")
# Buscar campanhas
campaigns = api.get_campaigns(
'google_ads',
'123456789',
sort_by='conversions',
limit=10
)
print(f"Top 10 campanhas: {len(campaigns['campaigns'])}")
# Top keywords
keywords = api.get_top_keywords('123456789', metric='conversions', limit=20)
for kw in keywords['keywords'][:5]:
print(f"Keyword: {kw['keyword']} - Conversões: {kw['conversions']}")
# Top ads
ads = api.get_top_ads('meta_ads', '1563628453988276', metric='ctr', limit=20)
for ad in ads['ads'][:5]:
print(f"Anúncio: {ad['ad_name']} - CTR: {ad['ctr']}%")
JavaScript (Node.js)
const axios = require('axios');
class AdsManagerAPI {
constructor(token) {
this.token = token;
this.baseURL = 'https://adsmanager.com.br/api/v1';
this.headers = { 'Authorization': `Bearer ${token}` };
}
async getClients() {
const response = await axios.get(`${this.baseURL}/clients`, {
headers: this.headers
});
return response.data.data;
}
async getCampaigns(platform, accountId, params = {}) {
const response = await axios.get(
`${this.baseURL}/accounts/${platform}/${accountId}/campaigns`,
{
headers: this.headers,
params: params
}
);
return response.data.data;
}
async getTopKeywords(accountId, metric = 'conversions', limit = 20) {
const response = await axios.get(
`${this.baseURL}/accounts/google_ads/${accountId}/keywords/top-performing`,
{
headers: this.headers,
params: { metric, limit }
}
);
return response.data.data;
}
async getTopAds(platform, accountId, metric = 'conversions', limit = 20) {
const response = await axios.get(
`${this.baseURL}/accounts/${platform}/${accountId}/ads/top-performing`,
{
headers: this.headers,
params: { metric, limit }
}
);
return response.data.data;
}
}
// Usar a API
const api = new AdsManagerAPI('seu_token_aqui');
async function main() {
// Listar clientes
const clients = await api.getClients();
console.log(`Total de clientes: ${clients.total}`);
// Buscar campanhas
const campaigns = await api.getCampaigns('google_ads', '123456789', {
sort_by: 'conversions',
limit: 10
});
console.log(`Top 10 campanhas: ${campaigns.campaigns.length}`);
// Top keywords
const keywords = await api.getTopKeywords('123456789', 'conversions', 20);
keywords.keywords.slice(0, 5).forEach(kw => {
console.log(`Keyword: ${kw.keyword} - Conversões: ${kw.conversions}`);
});
// Top ads
const ads = await api.getTopAds('meta_ads', '1563628453988276', 'ctr', 20);
ads.ads.slice(0, 5).forEach(ad => {
console.log(`Anúncio: ${ad.ad_name} - CTR: ${ad.ctr}%`);
});
}
main();
cURL
# Listar clientes
curl -H "Authorization: Bearer seu_token" \
https://adsmanager.com.br/api/v1/clients
# Listar campanhas
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/google_ads/123456789/campaigns?sort_by=conversions&limit=10"
# Top keywords
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/google_ads/123456789/keywords/top-performing?metric=conversions&limit=20"
# Top ads
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/meta_ads/1563628453988276/ads/top-performing?metric=ctr&limit=20"
# Comparação de performance
curl -H "Authorization: Bearer seu_token" \
"https://adsmanager.com.br/api/v1/accounts/google_ads/123456789/performance/comparison?current_start=2026-01-01¤t_end=2026-01-15"
⚠️ Códigos de Erro
| Código | Descrição | |--------|-----------| | 200 | Sucesso | | 400 | Requisição inválida (parâmetros incorretos) | | 401 | Não autenticado (token inválido ou ausente) | | 403 | Acesso negado (sem permissão) | | 404 | Recurso não encontrado | | 429 | Rate limit excedido | | 500 | Erro interno do servidor |
Formato de erro:
{
"success": false,
"error": "Descrição do erro"
}
📌 Metas contratuais (painel web / sessão Flask)
Endpoints adicionados para cadastro multitenant de metas (gasto, CPL, ROAS) e preferências de alertas.
Usam autenticação por sessão (cookie do utilizador já autenticado no painel), não o prefixo /api/v1 nem Bearer token.
Base: raiz da aplicação (ex.: https://adsmanager.com.br).
| Método | Caminho | Descrição |
|--------|---------|-----------|
| GET | /api/clients/<client_id>/performance-targets | Lista metas (?status=active | archived | all) |
| POST | /api/clients/<client_id>/performance-targets | Cria meta (JSON: scope, platform, period_kind, etc.) |
| GET | /api/clients/<client_id>/performance-targets/evaluate | Todas metas activas avaliadas no período configurado |
| GET | /api/clients/<client_id>/performance-targets/resolved | Meta efectiva (?platform=& account_id& division_id& subdivision_id) |
| PATCH | /api/performance-targets/<target_id> | Atualização parcial |
| DELETE | /api/performance-targets/<target_id> | Arquivar (status → archived) |
| GET | /api/clients/<client_id>/performance-target-alerts-settings | Lê { "enabled": bool } (alertas Celery ↔ coleção alerts) |
| PATCH | /api/clients/<client_id>/performance-target-alerts-settings | Corpo { "enabled": true } | false |
Detalhes de campos e riscos: docs/METAS_PERFORMANCE_CONTROLE.md.
🚦 Rate Limits
- Limite padrão: 1000 requisições por hora
- Limite por endpoint: Varia conforme o endpoint
- Headers de resposta:
X-RateLimit-Limit: Limite totalX-RateLimit-Remaining: Requisições restantesX-RateLimit-Reset: Timestamp do reset
📝 Changelog
Painel web — maio 2026
- Metas contratuais (performance targets) em
/api/clients/<id>/performance-targets*e preferência/performance-target-alerts-settings(METAS_PERFORMANCE_CONTROLE.md).
v1.0 - 15/01/2026
- ✅ Endpoint de listagem de clientes
- ✅ Endpoint de listagem de contas
- ✅ Endpoint de dashboard completo
- ✅ Endpoint de listagem de campanhas
- ✅ Endpoint de detalhes de campanha
- ✅ Endpoint de top keywords
- ✅ Endpoint de top ads
- ✅ Endpoint de comparação de performance
- ✅ Autenticação via Bearer token
- ✅ Isolamento multitenant
- ✅ Documentação completa
📞 Suporte
Para dúvidas ou problemas:
- Email: suporte@adsmanager.com.br
- Documentação: https://adsmanager.com.br/api/docs
- Status da API: https://status.adsmanager.com.br
Desenvolvido com ❤️ pela equipe Ads Manager
Versão: 1.0
Última atualização: 15/01/2026