API promemoria
API Elenca promemoria
Ottieni i promemoria del tuo spazio di lavoro, 50 alla volta, dal più recente. Usala per trovare gli ID dei promemoria, controllare le tue automazioni o farne un backup.
https://wbiztool.com/api/v1/reminder/list/Corpo: JSON o campi di un modulo
Questo endpoint accetta solo POST. Una richiesta GET, anche con una query string, restituisce HTTP 400 con Invalid JSON format: Expecting value….
L'elenco include i promemoria attivi e in pausa dell'intero spazio di lavoro, che siano stati creati tramite l'API o dalla pagina Promemoria. I promemoria annullati non sono inclusi.
Esempio rapido#
curl -X POST https://wbiztool.com/api/v1/reminder/list/ \
-H "Content-Type: application/json" \
-d '{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"page": 1
}'import requests
response = requests.post(
"https://wbiztool.com/api/v1/reminder/list/",
json={"client_id": 12345, "api_key": "YOUR_API_KEY", "page": 1},
timeout=60,
)
try:
result = response.json() # read the body even when the HTTP code is 400
except ValueError:
raise SystemExit(f"HTTP {response.status_code}: not JSON. Check that your api_key exists.")
if result["status"] == 1:
print(f"{result['total']} reminders in total")
for reminder in result["reminders"]:
print(reminder["id"], reminder["name"], reminder["cron_expression"], reminder["is_active"])
else:
print("Failed:", result["message"])// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v1/reminder/list/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ client_id: 12345, api_key: "YOUR_API_KEY", page: 1 }),
});
// Read the body even when the HTTP code is 400. A non-JSON reply means the api_key wasn't found.
const text = await response.text();
let result;
try {
result = JSON.parse(text);
} catch {
throw new Error(`HTTP ${response.status}: not JSON. Check that your api_key exists.`);
}
if (result.status === 1) {
console.log(`${result.total} reminders in total`);
for (const reminder of result.reminders) {
console.log(reminder.id, reminder.name, reminder.cron_expression, reminder.is_active);
}
} else {
console.error("Failed:", result.message);
}<?php
$ch = curl_init('https://wbiztool.com/api/v1/reminder/list/');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'page' => 1,
]),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$result = json_decode(curl_exec($ch), true);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($result === null) {
echo "HTTP $httpCode: not JSON. Check that your api_key exists.";
} elseif ($result['status'] === 1) {
foreach ($result['reminders'] as $reminder) {
echo $reminder['id'] . ' ' . $reminder['name'] . ' ' . $reminder['cron_expression'] . "\n";
}
} else {
echo 'Failed: ' . $result['message'];
}Sostituisci 12345 e YOUR_API_KEY con i tuoi valori. Consulta Autenticazione per sapere dove trovarli.
Parametri della richiesta#
client_idintegerobbligatorioIl tuo ID Client API, da Impostazioni → Chiavi API.
api_keystringobbligatorioLa tua chiave API, dalla stessa pagina.
pageintegerfacoltativoNumero di pagina, a partire da
1(predefinito). Ogni pagina contiene 50 promemoria e la dimensione della pagina non può essere modificata. Un valore che non è un numero intero pari o superiore a 1 viene trattato come1.
Risposta#
Una richiesta riuscita restituisce HTTP 200:
{
"reminders": [
{
"id": 3187,
"name": "Monthly rent reminder",
"to_number": "919876543210",
"message_template": "Hi Aman, a reminder that your rent is due on {current_date_formatted}.",
"msg_type": 0,
"msg_type_display": "Text",
"img_url": "",
"file_name": "",
"cron_expression": "0 10 1 * *",
"next_run": "2026-10-01 10:00:00 UTC",
"is_active": true,
"whatsapp_client_id": 678,
"created_at": "2026-09-16 04:45:12"
}
],
"total": 1,
"page": 1,
"page_size": 50,
"message": "Success",
"status": 1
}
| Campo | Tipo | Descrizione |
|---|---|---|
status | integer | 1 in caso di successo, 0 se la richiesta non è riuscita. |
message | string | Success, altrimenti l'errore. |
reminders | array | I promemoria di questa pagina, dal più recente. Vuoto se la pagina è oltre la fine. |
total | integer | Promemoria nello spazio di lavoro, su tutte le pagine. |
page | integer | La pagina restituita. |
page_size | integer | Sempre 50. |
Campi del promemoria#
| Campo | Tipo | Descrizione |
|---|---|---|
id | integer | L'ID del promemoria. Usalo con Annulla promemoria. |
name | string | Il nome del promemoria, oppure Unnamed Reminder se non ne ha uno. |
to_number | string | Numero di telefono o nome del gruppo a cui viene inviato il promemoria. |
message_template | string | Il messaggio, con le variabili di modello non ancora compilate. |
msg_type | integer | 0 testo, 1 immagine, 2 file. |
msg_type_display | string | Text, Image o File. |
img_url | string or null | URL dell'immagine per i promemoria con immagine, oppure URL del file per i promemoria con file creati tramite l'API. Negli altri casi può essere vuoto o null. |
file_name | string or null | Per i promemoria con file: l'URL del file (promemoria creati dalla dashboard) oppure il nome del file (promemoria creati tramite l'API, il cui URL si trova in img_url). Negli altri casi può essere vuoto o null. |
cron_expression | string | La pianificazione. Vedi Espressioni cron. |
next_run | string | La prossima volta in cui la pianificazione corrisponde, nel formato YYYY-MM-DD HH:MM:SS UTC, oppure Invalid cron se l'espressione non può essere letta. Vedi l'avviso sotto. |
is_active | boolean | true se il promemoria è in esecuzione, false se è in pausa. |
whatsapp_client_id | integer or null | Il numero WhatsApp da cui invia, oppure null se usa il primo numero collegato. |
created_at | string | Quando è stato creato il promemoria, in UTC, nel formato YYYY-MM-DD HH:MM:SS. |
Errori#
Gli errori restituiscono HTTP 400 con status impostato su 0, salvo dove indicato:
{ "status": 0, "message": "Upgrade your plan to use reminders feature" }
| Messaggio | Come risolvere |
|---|---|
Invalid JSON format: … | Il corpo JSON non è valido. Ricevi questo errore anche per una richiesta GET o per una richiesta con campi di un modulo senza client_id. |
Auth Error - Please send correct API key and Client id | Invia sia client_id sia api_key. |
Invalid client id | Invia client_id come numero. |
Auth Error: invalid api key | La chiave appartiene a un altro client_id. |
Auth Error: please check client id | La chiave non è associata a uno spazio di lavoro. Crea una nuova chiave nello spazio di lavoro che vuoi usare. |
Demo Account cannot access APIs | Usa un account normale. |
Upgrade your plan to use reminders feature | Il tuo piano non include i promemoria. Passa a un piano superiore. I promemoria esistenti continuano a essere eseguiti e a consumare crediti dopo un downgrade, e non possono essere elencati, annullati o sospesi finché non passi a un piano superiore. |
Error fetching reminders: … (HTTP 500) | Si è verificato un problema da parte nostra. Riprova. |
Se l'api_key non esiste o è stata eliminata, la risposta è una pagina di errore HTML con HTTP 500 invece di JSON. Prova la tua chiave con Verifica credenziali.
Leggere tutte le pagine#
Continua a richiedere la pagina successiva finché una pagina non contiene meno di 50 promemoria.
import requests
reminders, page = [], 1
while True:
response = requests.post(
"https://wbiztool.com/api/v1/reminder/list/",
json={"client_id": 12345, "api_key": "YOUR_API_KEY", "page": page},
timeout=60,
)
try:
result = response.json()
except ValueError:
raise SystemExit(f"HTTP {response.status_code}: not JSON. Check that your api_key exists.")
if result["status"] != 1:
raise RuntimeError(result["message"])
reminders += result["reminders"]
if len(result["reminders"]) < result["page_size"]:
break
page += 1
print(len(reminders), "reminders")// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const reminders = [];
let page = 1;
while (true) {
const response = await fetch("https://wbiztool.com/api/v1/reminder/list/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ client_id: 12345, api_key: "YOUR_API_KEY", page }),
});
const text = await response.text();
let result;
try {
result = JSON.parse(text);
} catch {
throw new Error(`HTTP ${response.status}: not JSON. Check that your api_key exists.`);
}
if (result.status !== 1) throw new Error(result.message);
reminders.push(...result.reminders);
if (result.reminders.length < result.page_size) break;
page += 1;
}
console.log(reminders.length, "reminders");Suggerimenti#
- Conserva una tua copia del
timezonedi ogni promemoria quando lo crei, perché questo endpoint non lo restituisce. - Trova i promemoria in pausa filtrando quelli con
is_activeuguale afalse. Riattivali dalla pagina Promemoria. - Fai pulizia delle vecchie automazioni: prima raccogli su tutte le pagine gli ID che vuoi annullare, poi chiama Annulla promemoria per ciascuno. Se annulli mentre scorri le pagine, i promemoria successivi si spostano sulle pagine precedenti e alcuni vengono saltati.
