Référence de l’API

Courriels

Envoyer et lire des courriels.

get/v1/emails/received/address

Votre adresse de réception gérée

Nécessite emails:r.

Réponses

  • 200L’adresse de réception gérée du compte (n’importe quoi@… y aboutit), créée au premier appel puis stable. enabled active ou désactive l’adresse gérée : les courriels qui y sont envoyés pendant qu’elle est désactivée sont supprimés, sans frais.
    ChampTypeDescription
    domainobligatoirestring
    exampleobligatoirestring
    livemodeobligatoireboolean
    enabledobligatoireboolean
  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403ACCOUNT_NOT_VERIFIED : l’adresse gérée de production nécessite un numéro mobile du propriétaire vérifié. Une clé de test n’est jamais refusée ; elle crée et renvoie toujours l’adresse de test. Également FORBIDDEN lorsque la clé n’a pas la permission requise par cette opération, ou que le compte est suspendu ou fermé.Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { data: address, error } = await honkio.emails.received.address()
if (error) throw new Error(error.message)
console.log(address.example)
patch/v1/emails/received/address

Activer ou désactiver votre adresse de réception gérée (clés de production seulement)

Nécessite emails:m.

Corps de la requête

Active ou désactive l’adresse de réception gérée de production du compte.

ChampTypeDescription
enabledobligatoireboolean

false cesse d’accepter les courriels à l’adresse gérée ; true les accepte de nouveau. Vos propres domaines de réception ne sont pas touchés.

Réponses

  • 200Le même objet d’adresse que celui renvoyé par GET, avec enabled défini sur la valeur demandée. Ce paramètre s’applique à tout le compte : le désactiver empêche l’adresse gérée de production de recevoir des courriels ; seule une clé de production peut donc le modifier.
    ChampTypeDescription
    domainobligatoirestring
    exampleobligatoirestring
    livemodeobligatoireboolean
    enabledobligatoireboolean
  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403LIVE_KEY_REQUIRED : ce réglage s’applique à tout le compte et désactive l’adresse de production, de sorte qu’une clé de test ne peut pas le modifier (GET l’indique tout de même). Aussi ACCOUNT_NOT_VERIFIED (un numéro mobile du propriétaire vérifié est requis) ou FORBIDDEN lorsque la clé ne dispose pas de emails:m.Le corps d’erreur standard.
  • 422VALIDATION_ERROR : la requête n’a pas passé la validation ; details indique les champs en cause.Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { data, error } = await honkio.emails.received.setAddressEnabled(false)
if (error) throw new Error(error.message)
console.log(data.enabled)
get/v1/emails/received

Lister les courriels reçus

Nécessite emails:r.

Réponses

  • 200Une page de courriels reçus, du plus récent au plus ancien.
    ChampTypeDescription
    data[]obligatoireobject[]
    idobligatoirestring
    fromobligatoirestring
    from_nameobligatoirestring
    • Peut être null
    toobligatoirestring[]
    ccobligatoirestring[]
    subjectobligatoirestring
    message_idobligatoirestring
    • Peut être null
    in_reply_toobligatoirestring
    • Peut être null
    received_atobligatoirestring
    • Format : date-time
    statusobligatoirestring
    • Une valeur parmi : received | rejected
    reject_reasonobligatoirestring
    • Peut être null
    verdictsobligatoireobject
    spfobligatoirestring
    dkimobligatoirestring
    dmarcobligatoirestring
    spamobligatoirestring
    virusobligatoirestring
    attachments_countobligatoireinteger
    size_bytesobligatoireinteger
    charge_millicentsobligatoireinteger
    domain_idobligatoirestring
    • Peut être null
    livemodeobligatoireboolean
    has_moreobligatoireboolean
    next_cursorobligatoirestring
    • Peut être null
  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
  • 422VALIDATION_ERROR : la requête n’a pas passé la validation ; details indique les champs en cause.Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { data, error } = await honkio.emails.received.list({ limit: 10 })
if (error) throw new Error(error.message)
for (const email of data.data) console.log(email.id, email.from, email.subject)
post/v1/emails/received/simulate

Simuler un courriel reçu (clés de test uniquement)

Nécessite emails:w.

Corps de la requête

Un message à recevoir comme s’il était arrivé par courriel, avec le même traitement, le même enregistrement et le même webhook email.received qu’un vrai courriel.

ChampTypeDescription
fromobligatoirestring

L’adresse de l’expéditeur.

  • Format : email
toobligatoirestring[]

Jusqu’à 10 destinataires, chacun étant votre adresse gérée de test ou une adresse de l’un de vos domaines en mode test.

ccstring[]

Jusqu’à 10 destinataires de plus, selon la même règle que to.

subjectstring

Jusqu’à 998 caractères.

  • Au plus 998 caractères
  • Par défaut :
textstring

Le corps en texte brut.

  • Au plus 1000000 caractères
htmlstring

Le corps HTML.

  • Au plus 2000000 caractères
attachments[]object[]

Jusqu’à 10 fichiers, 10 Mo au total.

filenameobligatoirestring

Le nom du fichier.

  • Au moins 1 caractères
  • Au plus 255 caractères
content_typeobligatoirestring

Le type MIME, par exemple application/pdf.

  • Au moins 1 caractères
  • Au plus 255 caractères
contentobligatoirestring

Le fichier, encodé en base64.

content_idstring

Un Content-ID, pour que html puisse faire référence au fichier avec cid:.

  • Au plus 255 caractères
inlineboolean

Marque le fichier comme intégré au corps plutôt que joint.

verdictsobject

Les verdicts de pourriel, de virus et d’authentification à enregistrer. virus FAIL stocke le message comme rejeté, comme pour un vrai courriel.

spfstring

Le verdict à enregistrer. S’il est omis, c’est PASS.

  • Une valeur parmi : PASS | FAIL | GRAY | PROCESSING_FAILED
dkimstring

Le verdict à enregistrer. S’il est omis, c’est PASS.

  • Une valeur parmi : PASS | FAIL | GRAY | PROCESSING_FAILED
dmarcstring

Le verdict à enregistrer. S’il est omis, c’est PASS.

  • Une valeur parmi : PASS | FAIL | GRAY | PROCESSING_FAILED
spamstring

Le verdict à enregistrer. S’il est omis, c’est PASS.

  • Une valeur parmi : PASS | FAIL | GRAY | PROCESSING_FAILED
virusstring

Le verdict à enregistrer. S’il est omis, c’est PASS.

  • Une valeur parmi : PASS | FAIL | GRAY | PROCESSING_FAILED
in_reply_tostring

Le Message-ID auquel ce message répond, pour le regroupement en fil.

  • Au plus 998 caractères
headers[]object[]

Jusqu’à 20 en-têtes supplémentaires.

nameobligatoirestring

Le nom de l’en-tête.

valueobligatoirestring

La valeur de l’en-tête.

Réponses

  • 201Le message simulé, sous la même forme que la réponse de GET /v1/emails/received/:id. livemode est toujours false.
    ChampTypeDescription
    idobligatoirestring
    fromobligatoirestring
    from_nameobligatoirestring
    • Peut être null
    toobligatoirestring[]
    ccobligatoirestring[]
    subjectobligatoirestring
    message_idobligatoirestring
    • Peut être null
    in_reply_toobligatoirestring
    • Peut être null
    received_atobligatoirestring
    • Format : date-time
    statusobligatoirestring
    • Une valeur parmi : received | rejected
    reject_reasonobligatoirestring
    • Peut être null
    verdictsobligatoireobject
    spfobligatoirestring
    dkimobligatoirestring
    dmarcobligatoirestring
    spamobligatoirestring
    virusobligatoirestring
    attachments_countobligatoireinteger
    size_bytesobligatoireinteger
    charge_millicentsobligatoireinteger
    domain_idobligatoirestring
    • Peut être null
    livemodeobligatoireboolean
    textobligatoirestring
    • Peut être null
    htmlobligatoirestring
    • Peut être null
    html_formatobligatoirestring
    • Une valeur parmi : cid | links | sanitized
    remote_imagesobligatoireinteger

    Images distantes mises de côté dans data-remote-src par html_format=sanitized ; null pour les autres formats.

    • Peut être null
    headers[]obligatoireobject[]
    nameobligatoirestring
    valueobligatoirestring
    referencesobligatoirestring[]
    reply_toobligatoirestring[]
    envelope_recipientsobligatoirestring[]
    body_purgedobligatoireboolean
    body_truncatedobligatoireboolean

    text ou html a été tronqué à 2 Mo (octets UTF-8) lors du stockage ; le message brut le conserve en entier.

    raw_availableobligatoireboolean
    parse_failedobligatoireboolean
    attachments_bytesobligatoireinteger

    Taille totale des pièces jointes, en octets.

    attachments[]obligatoireobject[]
    idobligatoirestring
    filenameobligatoirestring
    content_typeobligatoirestring
    content_idobligatoirestring
    • Peut être null
    inlineobligatoireboolean
    size_bytesobligatoireinteger
    expires_atobligatoirestring
    • Format : date-time
  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403TEST_KEY_REQUIRED : ce point de terminaison n’accepte que les clés de test.Le corps d’erreur standard.
  • 422VALIDATION_ERROR (entrée invalide, ou pièces jointes de plus de 10 Mo au total) ou SIMULATE_RECIPIENT_NOT_OWNED (une adresse to/cc n’est ni l’adresse gérée de test du compte ni l’un de ses propres domaines en mode test).Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

// Test keys only: no real sender involved.
const { data, error } = await honkio.emails.received.simulate({
  from: 'sam@example.com',
  to: ['support@yourdomain.ca'],
  subject: 'Where is my order?',
  text: 'Hi, it has been a week.',
})
if (error) throw new Error(error.message)
console.log(data.id)
get/v1/emails/received/{id}

Obtenir un courriel reçu

Nécessite emails:r.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Réponses

  • 200Le courriel reçu. html est réécrit pour que les images cid: pointent vers la route de la pièce jointe, sauf si html_format=cid demande l’original ; html_format=sanitized retire également les scripts et le balisage potentiellement dangereux, et place les images distantes dans data-remote-src (leur nombre figure dans remote_images).
    ChampTypeDescription
    idobligatoirestring
    fromobligatoirestring
    from_nameobligatoirestring
    • Peut être null
    toobligatoirestring[]
    ccobligatoirestring[]
    subjectobligatoirestring
    message_idobligatoirestring
    • Peut être null
    in_reply_toobligatoirestring
    • Peut être null
    received_atobligatoirestring
    • Format : date-time
    statusobligatoirestring
    • Une valeur parmi : received | rejected
    reject_reasonobligatoirestring
    • Peut être null
    verdictsobligatoireobject
    spfobligatoirestring
    dkimobligatoirestring
    dmarcobligatoirestring
    spamobligatoirestring
    virusobligatoirestring
    attachments_countobligatoireinteger
    size_bytesobligatoireinteger
    charge_millicentsobligatoireinteger
    domain_idobligatoirestring
    • Peut être null
    livemodeobligatoireboolean
    textobligatoirestring
    • Peut être null
    htmlobligatoirestring
    • Peut être null
    html_formatobligatoirestring
    • Une valeur parmi : cid | links | sanitized
    remote_imagesobligatoireinteger

    Images distantes mises de côté dans data-remote-src par html_format=sanitized ; null pour les autres formats.

    • Peut être null
    headers[]obligatoireobject[]
    nameobligatoirestring
    valueobligatoirestring
    referencesobligatoirestring[]
    reply_toobligatoirestring[]
    envelope_recipientsobligatoirestring[]
    body_purgedobligatoireboolean
    body_truncatedobligatoireboolean

    text ou html a été tronqué à 2 Mo (octets UTF-8) lors du stockage ; le message brut le conserve en entier.

    raw_availableobligatoireboolean
    parse_failedobligatoireboolean
    attachments_bytesobligatoireinteger

    Taille totale des pièces jointes, en octets.

    attachments[]obligatoireobject[]
    idobligatoirestring
    filenameobligatoirestring
    content_typeobligatoirestring
    content_idobligatoirestring
    • Peut être null
    inlineobligatoireboolean
    size_bytesobligatoireinteger
    expires_atobligatoirestring
    • Format : date-time
  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
  • 404RECEIVED_EMAIL_NOT_FOUND : aucun courriel reçu portant cet identifiant dans ce compte. Une clé de test ne trouve que les messages reçus à l’adresse gérée de test.Le corps d’erreur standard.
  • 422VALIDATION_ERROR : html_format ne vaut ni cid, ni links, ni sanitized.Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { data: email, error } = await honkio.emails.received.get('RECEIVED_EMAIL_ID')
if (error) throw new Error(error.message)
console.log(email.from, email.subject, email.text)
get/v1/emails/received/{id}/raw

Télécharger le MIME brut d’un courriel reçu

Nécessite emails:r.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Réponses

  • 200Le message MIME brut, exactement tel qu’il a été reçu.
  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
  • 404RECEIVED_EMAIL_NOT_FOUND : aucun courriel reçu portant cet identifiant dans ce compte. Une clé de test ne trouve que les messages reçus à l’adresse gérée de test.Le corps d’erreur standard.
  • 410ATTACHMENT_EXPIRED : le message brut ou la pièce jointe n’est plus conservé (durée de conservation de 40 jours).Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { data: mime, error } = await honkio.emails.received.raw('RECEIVED_EMAIL_ID')
if (error) throw new Error(error.message)
console.log(await mime.text())
get/v1/emails/received/{id}/attachments/{attachmentId}

Télécharger une pièce jointe reçue

Nécessite emails:r.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
attachmentIdobligatoirecheminstring

Réponses

  • 200Les octets de la pièce jointe, avec l’en-tête Content-Disposition défini sur le nom de fichier d’origine.
  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
  • 404RECEIVED_EMAIL_NOT_FOUND : aucun courriel reçu portant cet identifiant dans ce compte. Une clé de test ne trouve que les messages reçus à l’adresse gérée de test.Le corps d’erreur standard.
  • 410ATTACHMENT_EXPIRED : le message brut ou la pièce jointe n’est plus conservé (durée de conservation de 40 jours).Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { data: file, error } = await honkio.emails.received.attachment('RECEIVED_EMAIL_ID', 'ATTACHMENT_ID')
if (error) throw new Error(error.message)
const bytes = new Uint8Array(await file.arrayBuffer())
console.log(bytes.length)
get/v1/emails

Lister les courriels

Nécessite emails:r.

Paramètres

ParamètreTypeDescription
limitrequêtestring

De 1 à 100. Valeur par défaut : 50.

cursorrequêtestring

La valeur next_cursor de la page précédente.

statusrequêtestring

L’une des valeurs suivantes : queued, scheduled, sending, sent, delivered, bounced, complained, rejected, failed, cancelled.

tagrequêtestring | string[]

name:value. Répétez le paramètre pour exiger plusieurs conditions ; toutes doivent être remplies.

torequêtestring

Une adresse complète figurant dans la liste to du courriel (pas cc ni bcc), comparée à l’identique, sans égard à la casse.

fromrequêtestring

L’adresse complète de l’expéditeur, comparée exactement, sans tenir compte de la casse.

sincerequêtestring

Date et heure ISO 8601 avec décalage horaire : created_at égal ou postérieur à ce moment.

untilrequêtestring

Date et heure ISO 8601 avec décalage horaire : created_at égal ou antérieur à ce moment.

domain_idrequêtestring

L’identifiant du domaine d’envoi (GET /v1/email-domains).

Réponses

  • 200Une page de courriels envoyés dans le mode de la clé appelante (une clé de production ne liste jamais un envoi de test, ni une clé de test un envoi réel), du plus récent au plus ancien.
    ChampTypeDescription
    data[]obligatoireobject[]
    idobligatoirestring
    fromobligatoirestring
    toobligatoirestring[]
    subjectobligatoirestring
    body_purged_atobligatoirestring

    Défini une fois l’objet et le corps purgés par la politique de conservation.

    • Format : date-time
    • Peut être null
    statusobligatoirestring
    • Une valeur parmi : queued | scheduled | sending | sent | delivered | bounced | complained | rejected | failed | cancelled
    ses_message_idobligatoirestring
    • Peut être null
    is_commercialobligatoireboolean
    attachments_countobligatoireinteger
    livemodeobligatoireboolean
    tags[]obligatoireobject[]
    nameobligatoirestring
    valueobligatoirestring
    created_atobligatoirestring
    • Format : date-time
    has_moreobligatoireboolean
    next_cursorobligatoirestring
    • Peut être null
  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
  • 422VALIDATION_ERROR : la requête n’a pas passé la validation ; details indique les champs en cause.Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { data, error } = await honkio.emails.list({ status: 'bounced', limit: 20 })
if (error) throw new Error(error.message)
for (const email of data.data) console.log(email.id, email.to)
post/v1/emails

Envoyer un courriel

Nécessite emails:w.

Corps de la requête

Un courriel : un objet avec html, text ou les deux, ou un modèle.

ChampTypeDescription
fromstring

Expéditeur, avec un nom au besoin. Son domaine doit être un domaine d’envoi vérifié de votre compte. Facultatif quand le modèle en définit un.

  • Au moins 1 caractères
toobligatoirestring | string[]

Une chaîne ou un tableau ; au plus 50 destinataires entre to, cc et bcc.

ccstring | string[]

Une chaîne ou un tableau.

bccstring | string[]

Une chaîne ou un tableau.

reply_tostring | string[]

Une chaîne ou un tableau.

subjectstring

Jusqu’à 998 caractères. Omettez subject, html et text pour envoyer un modèle.

  • Au moins 1 caractères
  • Au plus 998 caractères
htmlstring

Le corps HTML. Fournissez html, text ou les deux, sauf pour envoyer un modèle.

textstring

Le corps en texte brut. Fournissez html, text ou les deux, sauf pour envoyer un modèle.

templateobject

Envoie un modèle enregistré au lieu de subject, html et text : son identifiant ou son alias, et les valeurs de ses variables.

idobligatoirestring

L’identifiant ou l’alias du modèle.

  • Au moins 1 caractères
  • Au plus 200 caractères
variablesobject

Les valeurs des variables du modèle, par clé.

  • Par défaut : {}
variablesobject

Valeurs à substituer dans subject, html et text. Ignoré quand template est présent ; les variables propres à un modèle vont dans template.variables.

  • Par défaut : {}
headersobject

En-têtes de courriel supplémentaires, envoyés tels quels.

  • Par défaut : {}
attachments[]object[]

Jusqu’à 10 fichiers et 25 Mo au total. Les 2 premiers Mo par destinataire sont inclus ; chaque Mo entamé au-delà est facturé par destinataire (GET /v1/pricing). Les exécutables et les scripts sont refusés.

  • Par défaut : []
filenameobligatoirestring

Le nom de fichier que voit le destinataire.

  • Au moins 1 caractères
  • Au plus 255 caractères
contentstring

Le fichier, encodé en base64. Fournissez exactement un seul de content, content_base64 ou path.

content_base64string

Le fichier, encodé en base64 (comme content).

pathstring

Une URL HTTPS d’où HonkIO récupère le fichier.

  • Format : uri
  • Au plus 2048 caractères
content_typestring

Le type MIME, par exemple application/pdf. Déduit s’il est omis.

  • Au plus 255 caractères
content_idstring

Intègre le fichier dans le corps : faites-y référence dans html avec cid: suivi de cet identifiant.

tags[]object[]

Jusqu’à 10 paires name et value, chaque partie de 1 à 256 lettres, chiffres, traits de soulignement ou traits d’union. Les noms commençant par honkio_ sont réservés. Les tags sont conservés après la purge de l’objet et du corps ; n’y mettez aucun renseignement personnel.

  • Par défaut : []
nameobligatoirestring
valueobligatoirestring
is_commercialboolean

false par défaut. true désigne un message commercial au sens de la LCAP : il va à un seul destinataire, exige un consentement consigné pour cette adresse et porte un pied de page et un en-tête de désabonnement.

  • Par défaut : false
scheduled_atstring

Envoi différé : une date et heure ISO 8601 avec décalage horaire, de 1 minute à 30 jours à l’avance.

  • Format : date-time
  • Par défaut : null
  • Peut être null
trackingobject

Suivi des ouvertures et des clics pour ce courriel, qui prime sur le réglage du domaine d’envoi.

  • Par défaut : {}
opensboolean

Suit les ouvertures au moyen d’un pixel.

clicksboolean

Suit les clics en réécrivant les liens.

disable_unsubscribe_footerboolean

Omet le pied de page de désabonnement que HonkIO ajoute à un courriel commercial. L’en-tête de désabonnement en un clic est tout de même envoyé : placez votre propre lien de désabonnement dans le corps.

  • Par défaut : false

Réponses

  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403FORBIDDEN (la clé n’a pas l’autorisation emails:w), EMAIL_DOMAIN_NOT_ALLOWED (cette clé ne peut pas envoyer depuis ce domaine) ou SENDING_PAUSED (l’envoi réel de courriels est mis en pause pour ce compte à la suite d’un taux élevé de rebonds ou de plaintes ; details contient paused_until, reason et channel: "email"). Les clés de test ne sont jamais mises en pause.Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { data, error } = await honkio.emails.send({
  from: 'Acme <hello@yourdomain.ca>',
  to: 'sam@example.com',
  subject: 'Your receipt',
  html: '<p>Thanks for your order, Sam.</p>',
})
if (error) throw new Error(`${error.name}: ${error.message}`)
console.log(data.id, data.status)
get/v1/emails/{id}

Obtenir un courriel par identifiant

Nécessite emails:r.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Réponses

  • 200Le courriel envoyé, avec la chronologie de ses événements.
    ChampTypeDescription
    idobligatoirestring
    fromobligatoirestring
    toobligatoirestring[]
    subjectobligatoirestring
    body_purged_atobligatoirestring

    Défini une fois l’objet et le corps purgés par la politique de conservation.

    • Format : date-time
    • Peut être null
    statusobligatoirestring
    • Une valeur parmi : queued | scheduled | sending | sent | delivered | bounced | complained | rejected | failed | cancelled
    ses_message_idobligatoirestring
    • Peut être null
    is_commercialobligatoireboolean
    attachments_countobligatoireinteger
    livemodeobligatoireboolean
    tags[]obligatoireobject[]
    nameobligatoirestring
    valueobligatoirestring
    created_atobligatoirestring
    • Format : date-time
    from_nameobligatoirestring
    • Peut être null
    ccobligatoirestring[]
    bccobligatoirestring[]
    htmlobligatoirestring
    • Peut être null
    textobligatoirestring
    • Peut être null
    templateobligatoireany | object
    attachments[]obligatoireobject[]
    filenameobligatoirestring
    content_typeobligatoirestring
    content_idobligatoirestring
    • Peut être null
    size_bytesobligatoireinteger
    cost_centsobligatoireinteger

    Nombre de cents entiers débités du solde pour cet envoi ; souvent 0 pour un seul courriel à une fraction de cent.

    charge_millicentsobligatoireinteger

    Le prix exact consommé par l’envoi, en millicents CAD.

    attachment_bytesobligatoireinteger

    Nombre total d’octets de pièces jointes sur lequel les frais ont été calculés.

    scheduled_atobligatoirestring
    • Format : date-time
    • Peut être null
    updated_atobligatoirestring
    • Format : date-time
    events[]obligatoireobject[]
    typeobligatoirestring
    occurred_atobligatoirestring
    • Format : date-time
    payloadobligatoireany
  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
  • 404NOT_FOUND (details.resource "email") : aucun courriel portant cet id sur ce compte dans le mode de la clé appelante. Une clé de test ne trouve que les envois de test, une clé de production que les envois réels.Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { data, error } = await honkio.emails.get('EMAIL_ID')
if (error) throw new Error(error.message)
console.log(data.status, data.events)
patch/v1/emails/{id}

Reprogrammer un courriel programmé

Nécessite emails:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Corps de la requête

La nouvelle heure d’envoi d’un courriel programmé.

ChampTypeDescription
scheduled_atobligatoirestring

Une date et heure ISO 8601 avec décalage horaire, de 1 minute à 30 jours à l’avance.

  • Format : date-time

Réponses

  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { data, error } = await honkio.emails.update('EMAIL_ID', { scheduledAt: '2026-10-01T14:00:00Z' })
if (error) throw new Error(error.message)
console.log(data.scheduled_at)
delete/v1/emails/{id}

Annuler un courriel programmé

Nécessite emails:d.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Réponses

  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403La clé API ne dispose pas de la permission requise pour cette opération, ou le compte est suspendu ou fermé.Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { error } = await honkio.emails.cancel('EMAIL_ID')
if (error) throw new Error(error.message)
post/v1/emails/batch

Effectuer un envoi groupé de courriels

Nécessite emails:w.

Corps de la requête

Un tableau JSON d’au plus 100 courriels indépendants, ou un même message pour au plus 500 destinataires, sous forme d’objet avec une liste recipients. Les pièces jointes ne sont pas offertes en envoi groupé, et la programmation ne l’est que sous forme d’objet.

Un tableau d’au plus 100 courriels, chacun envoyé séparément. Chaque élément est vérifié avant tout envoi.

ChampTypeDescription
fromstring

Expéditeur, avec un nom au besoin. Son domaine doit être un domaine d’envoi vérifié de votre compte. Facultatif quand le modèle en définit un.

  • Au moins 1 caractères
toobligatoirestring | string[]

Une chaîne ou un tableau ; au plus 50 destinataires entre to, cc et bcc.

ccstring | string[]

Une chaîne ou un tableau.

bccstring | string[]

Une chaîne ou un tableau.

reply_tostring | string[]

Une chaîne ou un tableau.

subjectstring

Jusqu’à 998 caractères. Omettez subject, html et text pour envoyer un modèle.

  • Au moins 1 caractères
  • Au plus 998 caractères
htmlstring

Le corps HTML. Fournissez html, text ou les deux, sauf pour envoyer un modèle.

textstring

Le corps en texte brut. Fournissez html, text ou les deux, sauf pour envoyer un modèle.

templateobject

Envoie un modèle enregistré au lieu de subject, html et text : son identifiant ou son alias, et les valeurs de ses variables.

idobligatoirestring

L’identifiant ou l’alias du modèle.

  • Au moins 1 caractères
  • Au plus 200 caractères
variablesobject

Les valeurs des variables du modèle, par clé.

  • Par défaut : {}
variablesobject

Valeurs à substituer dans subject, html et text. Ignoré quand template est présent ; les variables propres à un modèle vont dans template.variables.

  • Par défaut : {}
headersobject

En-têtes de courriel supplémentaires, envoyés tels quels.

  • Par défaut : {}
tags[]object[]

Jusqu’à 10 paires name et value, chaque partie de 1 à 256 lettres, chiffres, traits de soulignement ou traits d’union. Les noms commençant par honkio_ sont réservés. Les tags sont conservés après la purge de l’objet et du corps ; n’y mettez aucun renseignement personnel.

  • Par défaut : []
nameobligatoirestring
valueobligatoirestring
is_commercialboolean

false par défaut. true désigne un message commercial au sens de la LCAP : il va à un seul destinataire, exige un consentement consigné pour cette adresse et porte un pied de page et un en-tête de désabonnement.

  • Par défaut : false
trackingobject

Suivi des ouvertures et des clics pour ce courriel, qui prime sur le réglage du domaine d’envoi.

  • Par défaut : {}
opensboolean

Suit les ouvertures au moyen d’un pixel.

clicksboolean

Suit les clics en réécrivant les liens.

disable_unsubscribe_footerboolean

Omet le pied de page de désabonnement que HonkIO ajoute à un courriel commercial. L’en-tête de désabonnement en un clic est tout de même envoyé : placez votre propre lien de désabonnement dans le corps.

  • Par défaut : false

Un même message pour au plus 500 destinataires, chacun avec ses propres variables.

ChampTypeDescription
fromstring

Expéditeur, avec un nom au besoin. Son domaine doit être un domaine d’envoi vérifié de votre compte. Facultatif quand le modèle en définit un.

  • Au moins 1 caractères
subjectstring

Jusqu’à 998 caractères. Omettez subject, html et text pour envoyer un modèle.

  • Au moins 1 caractères
  • Au plus 998 caractères
htmlstring

Le corps HTML. Fournissez html, text ou les deux, sauf pour envoyer un modèle.

textstring

Le corps en texte brut. Fournissez html, text ou les deux, sauf pour envoyer un modèle.

templateobject

Envoie un modèle enregistré au lieu de subject, html et text : son identifiant ou son alias, et les valeurs de ses variables.

idobligatoirestring

L’identifiant ou l’alias du modèle.

  • Au moins 1 caractères
  • Au plus 200 caractères
variablesobject

Les valeurs des variables du modèle, par clé.

  • Par défaut : {}
headersobject

En-têtes de courriel supplémentaires, envoyés tels quels.

  • Par défaut : {}
tags[]object[]

Jusqu’à 10 paires name et value, chaque partie de 1 à 256 lettres, chiffres, traits de soulignement ou traits d’union. Les noms commençant par honkio_ sont réservés. Les tags sont conservés après la purge de l’objet et du corps ; n’y mettez aucun renseignement personnel.

  • Par défaut : []
nameobligatoirestring
valueobligatoirestring
is_commercialboolean

false par défaut. true désigne un message commercial au sens de la LCAP : il va à un seul destinataire, exige un consentement consigné pour cette adresse et porte un pied de page et un en-tête de désabonnement.

  • Par défaut : false
scheduled_atstring

Envoi différé : une date et heure ISO 8601, de 1 minute à 30 jours à l’avance.

  • Format : date-time
  • Par défaut : null
  • Peut être null
trackingobject

Suivi des ouvertures et des clics pour ce courriel, qui prime sur le réglage du domaine d’envoi.

  • Par défaut : {}
opensboolean

Suit les ouvertures au moyen d’un pixel.

clicksboolean

Suit les clics en réécrivant les liens.

disable_unsubscribe_footerboolean

Omet le pied de page de désabonnement que HonkIO ajoute à un courriel commercial. L’en-tête de désabonnement en un clic est tout de même envoyé : placez votre propre lien de désabonnement dans le corps.

  • Par défaut : false
recipients[]obligatoireobject[]

Jusqu’à 500 destinataires, chacun recevant son propre courriel.

toobligatoirestring

L’adresse du destinataire.

  • Format : email
variablesobject

Les valeurs des variables de ce destinataire, dans le contenu ou dans le modèle.

  • Par défaut : {}

Réponses

  • 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
  • 402Le compte n’a aucun solde, ou une clé LIVE a été utilisée avant la première recharge.Le corps d’erreur standard.
  • 403FORBIDDEN, EMAIL_DOMAIN_NOT_ALLOWED ou SENDING_PAUSED (l’envoi réel de courriels est mis en pause ; details contient paused_until, reason et channel: "email"). Refusé avant l’envoi de tout élément.Le corps d’erreur standard.
  • 429Limite de débit atteinte : 100 requêtes par seconde et par compte, ou une limite propre à la route (Retry-After est défini le cas échéant).Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

const { data, error } = await honkio.batch.send([
  { from: 'Acme <hello@yourdomain.ca>', to: 'sam@example.com', subject: 'Your receipt', html: '<p>Thanks, Sam.</p>' },
  { from: 'Acme <hello@yourdomain.ca>', to: 'alex@example.com', subject: 'Your receipt', html: '<p>Thanks, Alex.</p>' },
])
if (error) throw new Error(error.message)
console.log(data.batch_id, data.data.length)