API e-mail

Al momento non abbiamo ancora rilasciato alcun wrapper API, ma prevediamo di farlo nel prossimo futuro. Invia una e-mail a api@forwardemail.net se desideri essere avvisato quando viene rilasciato il wrapper API di un particolare linguaggio di programmazione. Nel frattempo, puoi utilizzare queste librerie di richieste HTTP consigliate nella tua applicazione o semplicemente usarle arricciare come negli esempi seguenti.

linguaggioBiblioteca
RubinoFaraday
Pitonerichieste
GiavaOkHttp
PHPgozzovigliare
javascriptsuperagente (siamo manutentori)
Nodo.jssuperagente (siamo manutentori)
Partirenet / http
.NETRest Sharp

L'attuale percorso dell'URI di base HTTP è: https://api.forwardemail.net.

Tutti gli endpoint richiedono il tuo Chiave API da impostare come valore "nome utente" della richiesta Autorizzazione di base intestazione. Non preoccuparti: di seguito vengono forniti esempi per te se non sei sicuro di cosa si tratti.

Se si verificano errori, il corpo della risposta della richiesta API conterrà un messaggio di errore dettagliato.

CodiceNome
200OK
400Brutta richiesta
401non autorizzato
403Vietato
404Non trovato
429Troppe richieste
500Errore interno del server
501Non implementato
502Cattivo gateway
503Servizio non disponibile
504Timeout gateway
Suggerimento: Se ricevi un codice di stato 5xx (cosa che non dovrebbe accadere), contattaci all'indirizzo api@forwardemail.net e ti aiuteremo a risolvere immediatamente il tuo problema.

Il nostro servizio è tradotto in oltre 25 lingue diverse. Tutti i messaggi di risposta API vengono tradotti nell'ultima locale rilevata dall'utente che effettua la richiesta API. Puoi ignorarlo passando un'abitudine Accept-Language intestazione. Sentiti libero di provarlo usando il menu a discesa della lingua in fondo a questa pagina.

Se desideri essere avvisato quando l'impaginazione è disponibile, invia un'e-mail api@forwardemail.net.

Recupera i log

La nostra API ti consente in modo programmatico di scaricare i log per il tuo account. L'invio di una richiesta a questo endpoint elaborerà tutti i log per il tuo account e te li invierà via email come allegato (Gzip compresso CSV file del foglio di calcolo) una volta completato.

Ciò ti consente di creare lavori in background con a Lavoro Cron o utilizzando il nostro Bree, il software di pianificazione dei lavori Node.js per ricevere i log ogni volta che lo desideri. Tieni presente che questo endpoint è limitato a 10 richieste al giorno.

L'allegato è la forma minuscola di email-deliverability-logs-YYYY-MM-DD-h-mm-A-z.csv.gz e l'e-mail stessa contiene un breve riepilogo dei registri recuperati. Puoi anche scaricare i registri in qualsiasi momento da Il mio account → Registri

GET /v1/logs/download

Parametro QuerystringnecessariogenereDescrizione
domainNOStringa (FQDN)Filtra i log in base al dominio completo ("FQDN"). Se non lo fornisci, verranno recuperati tutti i log di tutti i domini.
qNOCordaCerca i log per email, dominio, nome alias, indirizzo IP o data (M/Y, M/D/YY, M-D, M-D-YY, o M.D.YY formato).

Richiesta di esempio:

curl https://api.forwardemail.net/v1/logs/download \
  -u API_TOKEN:

Esempio di lavoro Cron (a mezzanotte tutti i giorni):

0 0 * * * /usr/bin/curl https://api.forwardemail.net/v1/logs/download -u API_TOKEN: &>/dev/null

Tieni presente che puoi utilizzare servizi come Crontab.guru per convalidare la sintassi dell'espressione del processo cron.

Esempio di lavoro Cron (a mezzanotte tutti i giorni e con i registri del giorno precedente):

Per MacOS:

0 0 * * * /usr/bin/curl https://api.forwardemail.net/v1/logs/download?q=`date -v-1d -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null

Per Linux e Ubuntu:

0 0 * * * /usr/bin/curl https://api.forwardemail.net/v1/logs/download?q=`date --date "-1 days" -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null

Creare un profilo

POST /v1/account

Parametro del corponecessariogenereDescrizione
emailString (email)Indirizzo email
passwordCordaParola d'ordine

Richiesta di esempio:

curl -X POST https://api.forwardemail.net/v1/account \
  -u API_TOKEN: \
  -d "email=user%40gmail.com"

Recupera account

GET /v1/account

Richiesta di esempio:

curl https://api.forwardemail.net/v1/account \
  -u API_TOKEN:

Aggiorna account

PUT /v1/account

Parametro del corponecessariogenereDescrizione
emailNOString (email)Indirizzo email
given_nameNOCordanome di battesimo
family_nameNOCordaCognome
avatar_urlNOStringa (URL)Link all'immagine avatar

Richiesta di esempio:

curl -X PUT https://api.forwardemail.net/v1/account \
  -u API_TOKEN: \
  -d "email=user%40gmail.com"

Assicurati di aver seguito le istruzioni di configurazione per il tuo dominio. Queste istruzioni sono disponibili all'indirizzo Il mio account → Domini → Impostazioni → Configurazione SMTP in uscita. Devi garantire la configurazione di DKIM, Return-Path e DMARC per l'invio di SMTP in uscita con il tuo dominio.

Ottieni il limite di posta elettronica

Questo è un semplice endpoint che restituisce un oggetto JSON contenente il file count e limit per il numero di messaggi SMTP in uscita giornalieri per account.

GET /v1/emails/limit

Richiesta di esempio:

curl https://api.forwardemail.net/v1/emails/limit \
  -u API_TOKEN:

Elenca le email

Si noti che questo endpoint non restituisce un'e-mail già creata message, headers, accepted, né rejectedErrors proprietà.

Per restituire tali proprietà e i relativi valori, utilizzare il Recupera la posta elettronica endpoint con un ID e-mail.

Questo endpoint restituirà al massimo 50 risultati alla volta. Se desideri eseguire una query per più pagine, aggiungi ?page=NUMBER Dove NUMBER è un numero intero, ad es. ?page=1.

GET /v1/emails

Parametro QuerystringnecessariogenereDescrizione
qNOString (supportato da RegExp)Cerca le email per metadati
domainNOString (supportato da RegExp)Cerca le email per nome di dominio
pageNONumeroPagina in cui restituire i risultati (l'impostazione predefinita è 1)
"limite".NONumeroNumero di risultati per pagina da restituire (l'impostazione predefinita è 50 – il massimo è 50 e il minimo è 10)

Richiesta di esempio:

curl https://api.forwardemail.net/v1/emails \
  -u API_TOKEN:

Crea e-mail

La nostra API per la creazione di un'e-mail è ispirata e sfrutta la configurazione delle opzioni di messaggio di Nodemailer. Si prega di rimandare al Configurazione dei messaggi di Nodemailer per tutti i parametri del corpo di seguito.

Si noti che ad eccezione di envelope e dkim (poiché li impostiamo automaticamente per te), supportiamo tutte le opzioni di Nodemailer. Abbiamo impostato automaticamente disableFileAccess e disableUrlAccess opzioni a true per motivi di sicurezza.

Dovresti passare l'unica opzione di raw con la tua e-mail completa non elaborata, comprese le intestazioni o passa le opzioni dei singoli parametri del corpo di seguito.

POST /v1/emails

Parametro del corponecessariogenereDescrizione
fromNOString (email)L'indirizzo email del mittente (deve esistere come alias del dominio).
toNOString o ArrayElenco separato da virgole o una matrice di destinatari per l'intestazione "A".
ccNOString o ArrayElenco separato da virgole o una matrice di destinatari per l'intestazione "Cc".
bccNOString o ArrayElenco separato da virgole o una matrice di destinatari per l'intestazione "Ccn".
subjectNOCordaL'oggetto dell'e-mail.
textNOStringa o BufferLa versione in testo normale del messaggio.
htmlNOStringa o BufferLa versione HTML del messaggio.
attachmentsNOVettoreUna matrice di oggetti attaccamento (vedi Campi comuni di Nodemailer).
senderNOCordaL'indirizzo e-mail per l'intestazione "Mittente" (vedi I campi più avanzati di Nodemailer).
replyToNOCordaL'indirizzo email per l'intestazione "Rispondi a".
inReplyToNOCordaIl Message-ID a cui il messaggio è in risposta.
referencesNOString o ArrayElenco separato da spazi o un array di Message-ID.
attachDataUrlsNObooleanoSe true poi si converte data: immagini nel contenuto HTML del messaggio negli allegati incorporati.
watchHtmlNOCordaUna versione HTML del messaggio specifica per Apple Watch (secondo i documenti di Nodemailer, gli orologi più recenti non richiedono questa impostazione).
ampNOCordaUna versione HTML specifica di AMP4EMAIL del messaggio (vedi L'esempio di Nodemailer).
icalEventNOOggettoUn evento iCalendar da utilizzare come contenuto alternativo del messaggio (vedi Gli eventi del calendario di Nodemailer).
alternativesNOVettoreUn array di contenuti di messaggi alternativi (vedi Contenuto alternativo di Nodemailer).
encodingNOCordaCodifica per le stringhe di testo e HTML (predefinito a "utf-8", ma supporta "hex" e "base64" anche i valori di codifica).
rawNOStringa o BufferUn messaggio in formato RFC822 generato in modo personalizzato da utilizzare (invece di uno generato da Nodemailer – vedere Fonte personalizzata di Nodemailer).
textEncodingNOCordaCodifica forzata per essere utilizzata per i valori di testo (o "quoted-printable" o "base64"). Il valore predefinito è il valore più vicino rilevato (per uso ASCII "quoted-printable").
priorityNOCordaLivello di priorità per l'e-mail (può essere "high", "normal" (predefinito), o "low"). Si noti che un valore di "normal" non imposta un'intestazione di priorità (questo è il comportamento predefinito). Se un valore di "high" o "low" è impostato, quindi il X-Priority, X-MSMail-Priority, e Importance intestazioni sarà impostato di conseguenza.
headersNOOggetto o matriceUn oggetto o un array di campi di intestazione aggiuntivi da impostare (vedi Intestazioni personalizzate di Nodemailer).
messageIdNOCordaUn valore Message-ID facoltativo per l'intestazione "Message-ID" (se non impostato, verrà creato automaticamente un valore predefinito; tieni presente che il valore dovrebbe aderire alla specifica RFC2822).
dateNOStringa o dataUn valore Date facoltativo che verrà utilizzato se l'intestazione Date risulta mancante dopo l'analisi, altrimenti verrà utilizzata la stringa UTC corrente se non impostata. L'intestazione della data non può essere più di 30 giorni prima dell'ora corrente.
listNOOggettoUn oggetto facoltativo di List-* intestazioni (cfr Le intestazioni dell'elenco di Nodemailer).

Richiesta di esempio:

curl -X POST https://api.forwardemail.net/v1/emails \
  -u API_TOKEN: \
  -d "from=alias@example.com" \
  -d "to=user%40gmail.com" \
  -d "subject=test" \
  -d "text=test"

Richiesta di esempio:

curl -X POST https://api.forwardemail.net/v1/emails \
  -u API_TOKEN: \
  -d "raw=`cat file.eml`"

Recupera la posta elettronica

GET /v1/emails/:id

Richiesta di esempio:

curl https://api.forwardemail.net/v1/emails/:id \
  -u API_TOKEN:

Elimina e-mail

L'eliminazione dell'e-mail imposterà lo stato su "rejected" (e successivamente non elaborarlo in coda) se e solo se lo stato corrente è uno di "pending", "queued", o "deferred". Potremmo eliminare automaticamente le e-mail dopo 30 giorni dalla creazione e/o dall'invio, pertanto è necessario conservare una copia delle e-mail SMTP in uscita nel client, nel database o nell'applicazione. Puoi fare riferimento al nostro valore ID e-mail nel tuo database se lo desideri: questo valore viene restituito da entrambi Crea e-mail e Recupera la posta elettronica punti finali.

DELETE /v1/emails/:id

Richiesta di esempio:

curl -X DELETE https://api.forwardemail.net/v1/emails/:id \
  -u API_TOKEN:

Suggerimento: Endpoint di dominio con il nome di un dominio /v1/domains/:domain_name poiché il loro percorso è intercambiabile con l'ID di un dominio :domain_id. Ciò significa che puoi fare riferimento al dominio con i suoi name o id valore.

Elenca domini

GET /v1/domains

Parametro QuerystringnecessariogenereDescrizione
qNOString (supportato da RegExp)Cerca domini per nome
nameNOString (supportato da RegExp)Cerca domini per nome

Richiesta di esempio:

curl https://api.forwardemail.net/v1/domains \
  -u API_TOKEN:

Crea dominio

POST /v1/domains

Parametro del corponecessariogenereDescrizione
domainString (FQDN o IP)Nome di dominio completo ("FQDN") o indirizzo IP
planNOString (enumerabile)Tipo di piano (deve essere "free", "enhanced_protection", o "team", per impostazione predefinita "free" o l'attuale piano a pagamento dell'utente se su uno)
catchallNOStringa (indirizzi di posta elettronica delimitati) o booleanoCrea un alias catch-all predefinito, per impostazione predefinita true (Se true utilizzerà l'indirizzo e-mail dell'utente API come destinatario e se false non verrà creato alcun catch-all). Se viene passata una stringa, è un elenco delimitato di indirizzi e-mail da utilizzare come destinatari (separati da interruzione di riga, spazio e/o virgola)
has_adult_content_protectionNObooleanoSe abilitare la protezione dei contenuti per adulti di Spam Scanner su questo dominio
has_phishing_protectionNObooleanoSe abilitare la protezione dal phishing di Spam Scanner su questo dominio
has_executable_protectionNObooleanoSe abilitare la protezione eseguibile di Spam Scanner su questo dominio
has_virus_protectionNObooleanoSe abilitare la protezione antivirus Spam Scanner su questo dominio
has_recipient_verificationNObooleanoImpostazione predefinita del dominio globale per richiedere ai destinatari dell'alias di fare clic su un collegamento di verifica dell'e-mail affinché le e-mail possano fluire
retention_daysNONumeroIntero tra 0 e 30 che corrisponde al numero di giorni di conservazione per archiviare le e-mail SMTP in uscita una volta consegnate con successo o errate in modo permanente. Il valore predefinito è 0, il che significa che le e-mail SMTP in uscita vengono eliminate e oscurate immediatamente per la tua sicurezza.

Richiesta di esempio:

curl -X POST https://api.forwardemail.net/v1/domains \
  -u API_TOKEN: \
  -d domain=example.com \
  -d plan=free

Recupera dominio

GET /v1/domains/example.com

Richiesta di esempio:

curl https://api.forwardemail.net/v1/domains/example.com \
  -u API_TOKEN:

Verifica i record di dominio

GET /v1/domains/example.com/verify-records

Richiesta di esempio:

curl https://api.forwardemail.net/v1/domains/example.com/verify-records \
  -u API_TOKEN:

Aggiorna dominio

PUT /v1/domains/example.com

Parametro del corponecessariogenereDescrizione
smtp_portNOStringa o numeroPorta personalizzata da configurare per l'inoltro SMTP (l'impostazione predefinita è "25")
has_adult_content_protectionNObooleanoSe abilitare la protezione dei contenuti per adulti di Spam Scanner su questo dominio
has_phishing_protectionNObooleanoSe abilitare la protezione dal phishing di Spam Scanner su questo dominio
has_executable_protectionNObooleanoSe abilitare la protezione eseguibile di Spam Scanner su questo dominio
has_virus_protectionNObooleanoSe abilitare la protezione antivirus Spam Scanner su questo dominio
has_recipient_verificationNObooleanoImpostazione predefinita del dominio globale per richiedere ai destinatari dell'alias di fare clic su un collegamento di verifica dell'e-mail affinché le e-mail possano fluire
retention_daysNONumeroIntero tra 0 e 30 che corrisponde al numero di giorni di conservazione per archiviare le e-mail SMTP in uscita una volta consegnate con successo o errate in modo permanente. Il valore predefinito è 0, il che significa che le e-mail SMTP in uscita vengono eliminate e oscurate immediatamente per la tua sicurezza.

Richiesta di esempio:

curl -X PUT https://api.forwardemail.net/v1/domains/example.com \
  -u API_TOKEN:

Elimina dominio

DELETE /v1/domains/:domain_name

Richiesta di esempio:

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name \
  -u API_TOKEN:

Accetta l'invito al dominio

GET /v1/domains/:domain_name/invites

Richiesta di esempio:

curl https://api.forwardemail.net/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Crea un invito al dominio

POST /v1/domains/example.com/invites

Parametro del corponecessariogenereDescrizione
emailString (email)Indirizzo email da invitare all'elenco dei membri del dominio
groupString (enumerabile)Gruppo con cui aggiungere l'utente all'appartenenza al dominio (può essere uno di "admin" o "user")

Richiesta di esempio:

curl -X POST https://api.forwardemail.net/v1/domains/example.com/invites \
  -u API_TOKEN: \
  -d "email=user%40gmail.com" \
  -d group=admin

Rimuovi l'invito al dominio

DELETE /v1/domains/:domain_name/invites

Parametro del corponecessariogenereDescrizione
emailString (email)Indirizzo e-mail da rimuovere dall'elenco dei membri del dominio

Richiesta di esempio:

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Aggiorna membro del dominio

PUT /v1/domains/example.com/members/:member_id

Parametro del corponecessariogenereDescrizione
groupString (enumerabile)Gruppo con cui aggiornare l'utente all'appartenenza al dominio (può essere uno di "admin" o "user")

Richiesta di esempio:

curl -X PUT https://api.forwardemail.net/v1/domains/example.com/members/:member_id \
  -u API_TOKEN:

Rimuovi membro del dominio

DELETE /v1/domains/:domain_name/members/:member_id

Richiesta di esempio:

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/members/:member_id \
  -u API_TOKEN:

Genera una password alias

Tieni presente che se non invii le istruzioni via email, il nome utente e la password si troveranno nel corpo della risposta JSON di una richiesta andata a buon fine nel formato { username: 'alias@yourdomain.com', password: 'some-generated-password' }.

POST /v1/domains/example.com/aliases/:alias_id/generate-password

Parametro del corponecessariogenereDescrizione
new_passwordNOCordaLa tua nuova password personalizzata da utilizzare per l'alias. Tieni presente che puoi lasciare questo campo vuoto o mancarlo del tutto dal corpo della richiesta API se desideri ottenere una password complessa e generata casualmente.
passwordNOCordaPassword esistente per l'alias per modificare la password senza eliminare l'archivio della casella di posta IMAP esistente (vedi is_override opzione qui sotto se non hai più la password esistente).
is_overrideNObooleanoUSE WITH CAUTION: questa operazione sovrascriverà completamente la password e il database dell'alias esistente, eliminerà permanentemente l'archivio IMAP esistente e reimposterà completamente il database di posta elettronica SQLite dell'alias. Se possibile, esegui un backup se hai una casella di posta esistente collegata a questo alias.
emailed_instructionsNOCordaIndirizzo email a cui inviare la password dell'alias e le istruzioni di configurazione.

Richiesta di esempio:

curl -X POST https://api.forwardemail.net/v1/domains/example.com/aliases/:alias_id/generate-password \
  -u API_TOKEN:

Elenca gli alias di dominio

GET /v1/domains/example.com/aliases

Parametro QuerystringnecessariogenereDescrizione
qNOString (supportato da RegExp)Cerca alias in un dominio per nome, etichetta o destinatario
nameNOString (supportato da RegExp)Cerca gli alias in un dominio in base al nome
recipientNOString (supportato da RegExp)Cerca alias in un dominio in base al destinatario

Richiesta di esempio:

curl https://api.forwardemail.net/v1/domains/example.com/aliases \
  -u API_TOKEN:

Crea un nuovo alias di dominio

POST /v1/domains/example.com/aliases

Parametro del corponecessariogenereDescrizione
nameNOCordaNome alias (se non fornito o se vuoto, viene generato un alias casuale)
recipientsNOString o ArrayElenco dei destinatari (deve essere una stringa separata da interruzione di riga/spazio/virgola o una matrice di indirizzi e-mail validi, nomi di dominio completi ("FQDN"), indirizzi IP e/o URL webhook e, se non forniti o è vuoto Array, l'e-mail dell'utente che effettua la richiesta API verrà impostata come destinatario)
descriptionNOCordaDescrizione alias
labelsNOString o ArrayElenco di etichette (deve essere un'interruzione di riga / spazio / virgola separati String o Array)
has_recipient_verificationNObooleanoRichiedi ai destinatari di fare clic su un collegamento di verifica email affinché le email possano passare (l'impostazione predefinita è quella del dominio se non impostata esplicitamente nel corpo della richiesta)
is_enabledNObooleanoSe abilitare o disabilitare questo alias (se disabilitato, le email non verranno instradate da nessuna parte ma restituiranno i codici di stato di successo). Se viene passato un valore, viene convertito in un valore booleano utilizzando booleano)
has_imapNObooleanoSe abilitare o disabilitare l'archiviazione IMAP per questo alias (se disabilitato, le email in entrata ricevute non verranno archiviate in Archiviazione IMAP. Se viene passato un valore, viene convertito in un valore booleano utilizzando booleano)
has_pgpNObooleanoSe abilitare o disabilitare Crittografia OpenPGP per Archiviazione e-mail crittografata IMAP/POP3 usando l'alias' public_key.
public_keyNOCordaChiave pubblica OpenPGP in formato ASCII Armor (clicca qui per vedere un esempio; per esempio. Chiave GPG per support@forwardemail.net). Questo vale solo se lo hai has_pgp impostato true. Scopri di più sulla crittografia end-to-end nelle nostre Domande frequenti.

Richiesta di esempio:

curl -X POST https://api.forwardemail.net/v1/domains/example.com/aliases \
  -u API_TOKEN:

Recupera alias di dominio

Puoi recuperare un alias di dominio in entrambi i modi id o il suo name valore.

GET /v1/domains/:domain_name/aliases/:alias_id

Richiesta di esempio:

curl https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN:

GET /v1/domains/:domain_name/aliases/:alias_name

Richiesta di esempio:

curl https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_name \
  -u API_TOKEN:

Aggiorna alias di dominio

PUT /v1/domains/example.com/aliases/:alias_id

Parametro del corponecessariogenereDescrizione
nameNOCordaPseudonimo
recipientsNOString o ArrayElenco di destinatari (deve essere una stringa / spazio / virgola separati da stringa o matrice di indirizzi e-mail validi, nomi di dominio completi ("FQDN"), indirizzi IP e / o URL di webhook)
descriptionNOCordaDescrizione alias
labelsNOString o ArrayElenco di etichette (deve essere un'interruzione di riga / spazio / virgola separati String o Array)
has_recipient_verificationNObooleanoRichiedi ai destinatari di fare clic su un collegamento di verifica email affinché le email possano passare (l'impostazione predefinita è quella del dominio se non impostata esplicitamente nel corpo della richiesta)
is_enabledNObooleanoSe abilitare o disabilitare questo alias (se disabilitato, le email non verranno instradate da nessuna parte ma restituiranno i codici di stato di successo)
has_imapNObooleanoSe abilitare o disabilitare l'archiviazione IMAP per questo alias (se disabilitato, le email in entrata ricevute non verranno archiviate in Archiviazione IMAP. Se viene passato un valore, viene convertito in un valore booleano utilizzando booleano)
has_pgpNObooleanoSe abilitare o disabilitare Crittografia OpenPGP per Archiviazione e-mail crittografata IMAP/POP3 usando l'alias' public_key.
public_keyNOCordaChiave pubblica OpenPGP in formato ASCII Armor (clicca qui per vedere un esempio; per esempio. Chiave GPG per support@forwardemail.net). Questo vale solo se lo hai has_pgp impostato true. Scopri di più sulla crittografia end-to-end nelle nostre Domande frequenti.

Richiesta di esempio:

curl -X PUT https://api.forwardemail.net/v1/domains/example.com/aliases/:alias_id \
  -u API_TOKEN:

Elimina alias di dominio

DELETE /v1/domains/:domain_name/aliases/:alias_id

Richiesta di esempio:

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN: