Référence de l’API

Comptes

Gestion du compte et clés API.

get/v1/accounts/{id}

Obtenir les détails du compte

Permissionaccount:r

Nécessite account:r.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Réponses

  • 200Le compte avec ses clés API actives.
    ChampTypeDescription
    accountobligatoireobject

    Un compte, tel que le renvoient l’inscription et PATCH /v1/accounts/{id}.

    idobligatoirestring
    nameobligatoirestring
    emailobligatoirestring
    stripe_customer_idobligatoirestring
    • Peut être null
    email_verified_atobligatoirestring
    • Format : date-time
    • Peut être null
    statusobligatoirestring
    • Une valeur parmi : PENDING_PAYMENT | ACTIVE | SUSPENDED | CLOSED
    balance_centsobligatoireinteger

    Solde de crédit en cents CAD.

    verified_phoneobligatoirestring
    • Peut être null
    phone_verified_atobligatoirestring
    • Format : date-time
    • Peut être null
    email_undeliverableobligatoireboolean

    Vaut true lorsque les courriels de la plateforme envoyés à cette adresse rebondissent ou sont signalés comme pourriels.

    email_undeliverable_atobligatoirestring

    Le rebond ou la plainte qui a rendu l’adresse injoignable.

    • Format : date-time
    • Peut être null
    email_undeliverable_reasonobligatoirestring

    BOUNCE ou COMPLAINT.

    • Peut être null
    terms_accepted_atobligatoirestring

    Moment où le propriétaire a accepté les Conditions d’utilisation et la Politique de confidentialité.

    • Format : date-time
    • Peut être null
    terms_versionobligatoirestring

    La version des Conditions (date de dernière mise à jour) qui a été acceptée.

    • Peut être null
    created_atobligatoirestring
    • Format : date-time
    monthly_rent_centsobligatoireinteger

    Loyer mensuel dû pour chaque numéro non encore libéré (ACTIVE et SUSPENDED).

    low_balanceobligatoireboolean

    Vaut true lorsque le solde créditeur ne suffirait pas à couvrir le loyer des numéros de téléphone du mois prochain.

    phone_number_limitobligatoireinteger

    Nombre maximal de numéros de téléphone que ce compte peut détenir.

    phone_numbers_usedobligatoireinteger

    Numéros actuellement détenus (ACTIVE et SUSPENDED).

    email_domain_limitinteger

    Nombre maximal de domaines d’envoi de production que ce compte peut détenir. Présent uniquement lorsque le courriel est offert.

    email_domains_usedinteger

    Domaines d’envoi de production détenus (tous les statuts sauf FAILED). Présent uniquement lorsque le courriel est offert.

    inbound_email_daily_capinteger

    Nombre de courriels reçus que ce compte peut accepter par période glissante de 24 h avant que les courriels suivants soient stockés comme rejetés, sans facturation (0 = illimité) ; la valeur propre au compte, ou la valeur par défaut de la plateforme. Présent uniquement lorsque le service de courriel est offert.

    inbound_email_received_24hinteger

    Courriels reçus comptabilisés dans le plafond ci-dessus, pour la fenêtre glissante actuelle de 24 h. Présent uniquement lorsque le service de courriel est offert.

    inbound_sms_daily_capobligatoireinteger

    Nombre de SMS reçus que ce compte peut accepter par période glissante de 24 h avant que les SMS suivants soient stockés sans facturation et ne soient pas transmis en tant que message.received (0 = illimité) ; la valeur propre au compte, ou la valeur par défaut de la plateforme.

    inbound_sms_received_24hobligatoireinteger

    SMS reçus comptabilisés dans le plafond ci-dessus, pour la fenêtre glissante actuelle de 24 h.

    api_keys[]obligatoireobject[]

    Les clés USER actives du compte (les clés de session du tableau de bord ne sont pas listées).

    idobligatoirestring
    keyPrefixobligatoirestring

    Préfixe non secret, pour l’affichage et l’identification.

    modeobligatoirestring
    • Une valeur parmi : LIVE | TEST
    labelobligatoirestring
    • Peut être null
    createdAtobligatoirestring
    • Format : date-time
    lastUsedAtobligatoirestring
    • Format : date-time
    • Peut être null
    defaultDenyobligatoireboolean

    Présent dans GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.

    permissionsobligatoireobject

    Permissions par ressource. Chaque clé de l’objet est le nom d’une ressource ; la valeur est une chaîne de lettres désignant les opérations permises : r=lecture, w=écriture/création, m=modification/mise à jour, d=suppression. Si une ressource est absente, tout accès à celle-ci est refusé.

    email_domain_idsobligatoirestring[]

    Les domaines de courriel à partir desquels cette clé peut envoyer (identifiants provenant de /v1/email-domains) : null en l’absence de restriction, [] lorsqu’elle n’est autorisée pour aucun domaine (ses domaines ont été supprimés). Présent dans GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.

    • Peut être null
    oauth_grantobligatoireboolean

    Vaut true lorsqu’une connexion OAuth détient cette clé : elle peut être révoquée, mais pas renouvelée (409 CONFLICT, details.reason "oauth_grant"). Présent sur GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.

    featuresobligatoireobject

    Fonctionnalités de la plateforme actuellement offertes à ce compte.

    emailobligatoireboolean

    Vaut true lorsque le produit courriel est offert ; false tant que son accès est encore restreint.

  • 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 : l’identifiant n’appartient pas au compte de la clé appelante, ou la clé n’a pas l’autorisation requise par cette opération.Le corps d’erreur standard.
  • 404NOT_FOUND : aucune ressource correspondante sur ce compte.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

cURL
curl https://api.honkio.ca/v1/accounts/ID \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
patch/v1/accounts/{id}

Mettre à jour le nom ou les paramètres du compte

Permissionaccount:m

name est obligatoire : une valeur omise ou vide est refusée avec 422 VALIDATION_ERROR.

Nécessite account:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Corps de la requête

ChampTypeDescription
namestring

Obligatoire.

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

Réponses

  • 200Le compte mis à jour.
    ChampTypeDescription
    idobligatoirestring
    nameobligatoirestring
    emailobligatoirestring
    stripe_customer_idobligatoirestring
    • Peut être null
    email_verified_atobligatoirestring
    • Format : date-time
    • Peut être null
    statusobligatoirestring
    • Une valeur parmi : PENDING_PAYMENT | ACTIVE | SUSPENDED | CLOSED
    balance_centsobligatoireinteger

    Solde de crédit en cents CAD.

    verified_phoneobligatoirestring
    • Peut être null
    phone_verified_atobligatoirestring
    • Format : date-time
    • Peut être null
    email_undeliverableobligatoireboolean

    Vaut true lorsque les courriels de la plateforme envoyés à cette adresse rebondissent ou sont signalés comme pourriels.

    email_undeliverable_atobligatoirestring

    Le rebond ou la plainte qui a rendu l’adresse injoignable.

    • Format : date-time
    • Peut être null
    email_undeliverable_reasonobligatoirestring

    BOUNCE ou COMPLAINT.

    • Peut être null
    terms_accepted_atobligatoirestring

    Moment où le propriétaire a accepté les Conditions d’utilisation et la Politique de confidentialité.

    • Format : date-time
    • Peut être null
    terms_versionobligatoirestring

    La version des Conditions (date de dernière mise à jour) qui a été acceptée.

    • Peut être null
    created_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.
  • 403FORBIDDEN : l’identifiant n’appartient pas au compte de la clé appelante, ou la clé n’a pas l’autorisation requise par cette opération.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

cURL
curl -X PATCH https://api.honkio.ca/v1/accounts/ID \
  -H "Authorization: Bearer mk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Clinics"
  }'
get/v1/accounts/me

Obtenir le compte auquel appartient la clé API

Permissionaccount:r

Renvoie le même document que GET /v1/accounts/{id}, en déterminant le compte à partir de la clé API ; aucun identifiant n’est donc nécessaire.

Nécessite account:r.

Réponses

  • 200Le compte auquel appartient la clé API.
    ChampTypeDescription
    accountobligatoireobject

    Un compte, tel que le renvoient l’inscription et PATCH /v1/accounts/{id}.

    idobligatoirestring
    nameobligatoirestring
    emailobligatoirestring
    stripe_customer_idobligatoirestring
    • Peut être null
    email_verified_atobligatoirestring
    • Format : date-time
    • Peut être null
    statusobligatoirestring
    • Une valeur parmi : PENDING_PAYMENT | ACTIVE | SUSPENDED | CLOSED
    balance_centsobligatoireinteger

    Solde de crédit en cents CAD.

    verified_phoneobligatoirestring
    • Peut être null
    phone_verified_atobligatoirestring
    • Format : date-time
    • Peut être null
    email_undeliverableobligatoireboolean

    Vaut true lorsque les courriels de la plateforme envoyés à cette adresse rebondissent ou sont signalés comme pourriels.

    email_undeliverable_atobligatoirestring

    Le rebond ou la plainte qui a rendu l’adresse injoignable.

    • Format : date-time
    • Peut être null
    email_undeliverable_reasonobligatoirestring

    BOUNCE ou COMPLAINT.

    • Peut être null
    terms_accepted_atobligatoirestring

    Moment où le propriétaire a accepté les Conditions d’utilisation et la Politique de confidentialité.

    • Format : date-time
    • Peut être null
    terms_versionobligatoirestring

    La version des Conditions (date de dernière mise à jour) qui a été acceptée.

    • Peut être null
    created_atobligatoirestring
    • Format : date-time
    monthly_rent_centsobligatoireinteger

    Loyer mensuel dû pour chaque numéro non encore libéré (ACTIVE et SUSPENDED).

    low_balanceobligatoireboolean

    Vaut true lorsque le solde créditeur ne suffirait pas à couvrir le loyer des numéros de téléphone du mois prochain.

    phone_number_limitobligatoireinteger

    Nombre maximal de numéros de téléphone que ce compte peut détenir.

    phone_numbers_usedobligatoireinteger

    Numéros actuellement détenus (ACTIVE et SUSPENDED).

    email_domain_limitinteger

    Nombre maximal de domaines d’envoi de production que ce compte peut détenir. Présent uniquement lorsque le courriel est offert.

    email_domains_usedinteger

    Domaines d’envoi de production détenus (tous les statuts sauf FAILED). Présent uniquement lorsque le courriel est offert.

    inbound_email_daily_capinteger

    Nombre de courriels reçus que ce compte peut accepter par période glissante de 24 h avant que les courriels suivants soient stockés comme rejetés, sans facturation (0 = illimité) ; la valeur propre au compte, ou la valeur par défaut de la plateforme. Présent uniquement lorsque le service de courriel est offert.

    inbound_email_received_24hinteger

    Courriels reçus comptabilisés dans le plafond ci-dessus, pour la fenêtre glissante actuelle de 24 h. Présent uniquement lorsque le service de courriel est offert.

    inbound_sms_daily_capobligatoireinteger

    Nombre de SMS reçus que ce compte peut accepter par période glissante de 24 h avant que les SMS suivants soient stockés sans facturation et ne soient pas transmis en tant que message.received (0 = illimité) ; la valeur propre au compte, ou la valeur par défaut de la plateforme.

    inbound_sms_received_24hobligatoireinteger

    SMS reçus comptabilisés dans le plafond ci-dessus, pour la fenêtre glissante actuelle de 24 h.

    api_keys[]obligatoireobject[]

    Les clés USER actives du compte (les clés de session du tableau de bord ne sont pas listées).

    idobligatoirestring
    keyPrefixobligatoirestring

    Préfixe non secret, pour l’affichage et l’identification.

    modeobligatoirestring
    • Une valeur parmi : LIVE | TEST
    labelobligatoirestring
    • Peut être null
    createdAtobligatoirestring
    • Format : date-time
    lastUsedAtobligatoirestring
    • Format : date-time
    • Peut être null
    defaultDenyobligatoireboolean

    Présent dans GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.

    permissionsobligatoireobject

    Permissions par ressource. Chaque clé de l’objet est le nom d’une ressource ; la valeur est une chaîne de lettres désignant les opérations permises : r=lecture, w=écriture/création, m=modification/mise à jour, d=suppression. Si une ressource est absente, tout accès à celle-ci est refusé.

    email_domain_idsobligatoirestring[]

    Les domaines de courriel à partir desquels cette clé peut envoyer (identifiants provenant de /v1/email-domains) : null en l’absence de restriction, [] lorsqu’elle n’est autorisée pour aucun domaine (ses domaines ont été supprimés). Présent dans GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.

    • Peut être null
    oauth_grantobligatoireboolean

    Vaut true lorsqu’une connexion OAuth détient cette clé : elle peut être révoquée, mais pas renouvelée (409 CONFLICT, details.reason "oauth_grant"). Présent sur GET /v1/accounts/me et /v1/accounts/{id} ; absent de la réponse de connexion.

    featuresobligatoireobject

    Fonctionnalités de la plateforme actuellement offertes à ce compte.

    emailobligatoireboolean

    Vaut true lorsque le produit courriel est offert ; false tant que son accès est encore restreint.

  • 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 : aucune ressource correspondante sur ce compte.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

cURL
curl https://api.honkio.ca/v1/accounts/me \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
get/v1/accounts/{id}/topup-allowance

Allocation de recharge (plafond de solde et plafond sur 30 jours glissants)

Permissionaccount:r

Nécessite account:r.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Réponses

  • 200Montant qu’il est possible d’ajouter maintenant. Les montants sont en cents CAD.
    ChampTypeDescription
    max_topup_now_centsobligatoireinteger

    La recharge la plus élevée acceptée actuellement : la plus petite des deux marges disponibles.

    headroom_balance_centsobligatoireinteger

    Marge restante sous le plafond de solde.

    headroom_30d_centsobligatoireinteger

    Marge restante sous le plafond glissant de 30 jours.

    max_balance_centsobligatoireinteger
    max_30d_centsobligatoireinteger
    balance_centsobligatoireinteger
    topped_up_30d_centsobligatoireinteger
  • 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 : l’identifiant n’appartient pas au compte de la clé appelante, ou la clé n’a pas l’autorisation requise par cette opération.Le corps d’erreur standard.
  • 404NOT_FOUND : aucune ressource correspondante sur ce compte.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

cURL
curl https://api.honkio.ca/v1/accounts/ID/topup-allowance \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
get/v1/accounts/{id}/usage

Obtenir le résumé d’utilisation d’une période de facturation

Permissionaccount:r

Nombre de messages, coût facturé et parties SMS pour la période (par défaut, le mois civil en cours), ainsi que l’état de la livraison réelle : "delivery" { liveOutbound, delivered, failed, undelivered, pending, failureRatePct } sur les messages sortants réels (réponses automatiques exclues) et "byNumber", les mêmes chiffres par numéro d’envoi, du plus actif au moins actif. Un failureRatePct en hausse signale généralement de mauvais numéros, des lignes fixes ou un script qui relance sans cesse le même destinataire ; au-delà de 10 % sur vos 50 derniers envois, vous recevez un courriel et l’événement account.delivery_warning est déclenché.

Nécessite account:r.

Paramètres

ParamètreTypeDescription
fromrequêtestring

Date de début (AAAA-MM-JJ)

  • Format : date
torequêtestring

Date de fin (AAAA-MM-JJ)

  • Format : date
idobligatoirecheminstring

Réponses

  • 200Utilisation pour la période. Les noms de champs sont en camelCase, contrairement au reste de l’API.
    ChampTypeDescription
    totalMessagesobligatoireinteger

    Tous les messages de la période, y compris les messages entrants et ceux en mode test.

    testMessagesobligatoireinteger

    Nombre de messages, parmi totalMessages, qui étaient des simulations en mode test, sans aucuns frais.

    outboundMessagesobligatoireinteger
    inboundMessagesobligatoireinteger
    totalCostCentsobligatoireinteger

    Coût des messages LIVE, en cents CAD.

    segmentCountobligatoireinteger

    Parties SMS facturées en mode LIVE.

    deliveryobligatoireobject
    liveOutboundobligatoireinteger
    deliveredobligatoireinteger
    failedobligatoireinteger
    undeliveredobligatoireinteger
    pendingobligatoireinteger

    Accepté, aucun verdict de l’opérateur pour l’instant.

    failureRatePctobligatoirenumber

    (failed + undelivered) / liveOutbound x 100, arrondi à une décimale ; 0 en l’absence de trafic.

    byNumber[]obligatoireobject[]

    Les mêmes statistiques de livraison par numéro d’envoi, du plus actif au moins actif.

    fromobligatoirestring
    liveOutboundobligatoireinteger
    deliveredobligatoireinteger
    failedobligatoireinteger
    undeliveredobligatoireinteger
    failureRatePctobligatoirenumber
    periodobligatoireobject
    fromobligatoirestring
    • Format : date-time
    toobligatoirestring

    Fin exclusive de la période.

    • 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.
  • 403FORBIDDEN : l’identifiant n’appartient pas au compte de la clé appelante, ou la clé n’a pas l’autorisation requise par cette opération.Le corps d’erreur standard.
  • 422VALIDATION_ERROR : date mal formée, ou to antérieur à from.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

cURL
curl https://api.honkio.ca/v1/accounts/ID/usage \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
get/v1/accounts/{id}/transactions

Lister les transactions du solde (grand livre), des plus récentes aux plus anciennes

Permissionaccount:r

Tous les mouvements de solde non liés aux messages : recharges, remboursements et litiges Stripe, loyer des numéros, frais de provisionnement et suppléments de vérification, paginés du plus récent au plus ancien. Les coûts par message SMS ou courriel n’y sont PAS inclus ; consultez la liste des messages ou des courriels pour les obtenir.

Nécessite account:r.

Paramètres

ParamètreTypeDescription
limitrequêteinteger
  • Minimum : 1
  • Maximum : 100
  • Par défaut : 50
beforerequêtestring

Identifiant de la plus ancienne transaction déjà consultée. Renvoie la page suivante (plus ancienne).

idobligatoirecheminstring

Réponses

  • 200Registre paginé des transactions du solde
    ChampTypeDescription
    transactions[]object[]
    idstring
    amount_centsinteger

    Valeur signée : positive = crédit, négative = débit

    balance_after_centsinteger
    reasonstring

    Raison du mouvement de solde : topup, refund, dispute, phone_rent, provisioning, activation, verification et leurs annulations *_refund ; admin_adjustment pour les modifications faites par notre équipe. Les frais SMS par message n’apparaissent pas ici : ils figurent sur les messages eux-mêmes. Les corrections ponctuelles portent leurs propres raisons (inbound_backfill, overcharge_refund, sweep_reversal).

    tax_centsinteger

    Recharges seulement, lorsque des taxes de vente ont été perçues : la TPS/TVH facturée en sus de amount_cents. amount_cents correspond toujours au crédit, avant taxes. Absent dans les autres cas.

    charged_centsinteger

    Recharges seulement, lorsque des taxes de vente ont été perçues : le montant débité de la carte, soit amount_cents plus tax_cents. Absent dans les autres cas.

    created_atstring
    • Format : date-time
    has_moreboolean
  • 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 : également lorsque l’id n’est pas celui du compte de la clé appelante (404 plutôt que 403, afin de ne pas confirmer l’existence du grand livre).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

cURL
curl https://api.honkio.ca/v1/accounts/ID/transactions \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
post/v1/accounts/{id}/api-keys

Émettre une nouvelle clé API

Permissionapi_keys:w

Nécessite api_keys:w.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
X-Step-Up-Tokenen-têtestring

Un jeton obtenu par POST /v1/auth/step-up avec la portée api_keys:elevate. Nécessaire uniquement pour demander des permissions plus étendues que celles de la clé appelante, ou lorsque la clé appelante est une clé de session du tableau de bord.

Corps de la requête

ChampTypeDescription
modestring

Par défaut, le mode de la clé appelante. Une clé de test ne peut créer que des clés de test.

  • Une valeur parmi : live | test
labelstring
  • Au plus 100 caractères
permissionsobject

Permissions par ressource. Chaque clé de l’objet est le nom d’une ressource ; la valeur est une chaîne des opérations permises : r=lecture, w=écriture, m=modification, d=suppression. Omettez une ressource pour en refuser tout accès. Exemple : { "messages": "rw", "contacts": "r" }. Si ce champ est omis, la nouvelle clé reçoit les permissions de la clé appelante. Une clé ne peut accorder que les permissions qu’elle détient elle-même, sauf si la requête comporte un jeton de confirmation api_keys:elevate (X-Step-Up-Token). Une clé de test ne peut créer que des clés de test. Une clé de session du tableau de bord (celle que crée la connexion) a toujours besoin de cette confirmation pour créer une clé, même une clé dont les permissions ne dépassent pas les siennes.

email_domain_idsstring[]

Restreint la clé à l’envoi de courriels depuis ces domaines (identifiants provenant de /v1/email-domains). Si ce champ est omis, la clé hérite de la restriction de la clé appelante, le cas échéant. Une clé restreinte ne peut créer que des clés restreintes à un sous-ensemble de ses propres domaines, sauf si la requête comporte un jeton de confirmation api_keys:elevate.

Réponses

  • 201Clé API émise. La clé brute n’est affichée qu’une seule fois : conservez-la en lieu sûr.
    ChampTypeDescription
    keystring

    Clé API complète (affichée une seule fois)

    prefixstring

    Préfixe non secret pour l’affichage et l’identification

    modestring
    • Une valeur parmi : live | test
    permissionsobject

    Permissions par ressource.

    email_domain_idsstring[]
    • Peut être null
    noticestring
  • 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 (ce n’est pas votre compte), LIVE_KEY_REQUIRED (une clé de test a demandé une clé de production), KEY_FENCED (la clé appelante est restreinte par une liste d’autorisation ou de blocage) ou PERMISSION_ESCALATION (autorisations ou domaines courriel plus étendus que ceux de la clé appelante, ou clé de session du tableau de bord, sans confirmation par mot de passe api_keys:elevate).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

cURL
curl -X POST https://api.honkio.ca/v1/accounts/ID/api-keys \
  -H "Authorization: Bearer mk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "live",
    "label": "Production server"
  }'
post/v1/accounts/{id}/api-keys/{keyId}/rotate

Renouveler une clé API (émettre une clé de remplacement et révoquer l’ancienne de façon atomique)

Permissionapi_keys:w

Les clés de session (celles créées lors de la connexion au tableau de bord) ne peuvent pas être renouvelées : elles expirent toujours d’elles-mêmes, et tenter d’en renouveler une renvoie 409 CONFLICT avec details.reason "session_key". Renouvelez plutôt une clé USER. Une clé détenue par une connexion OAuth (oauth_grant dans la liste des clés) ne peut pas non plus être renouvelée : la clé de remplacement n’appartiendrait pas à la connexion, et l’application cesserait de fonctionner. Cela renvoie 409 CONFLICT avec details.reason "oauth_grant" ; révoquez plutôt la connexion, puis reconnectez-la.

Nécessite api_keys:w.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring
X-Step-Up-Tokenen-têtestring

Un jeton obtenu par POST /v1/auth/step-up avec la portée api_keys:elevate. Nécessaire uniquement pour renouveler une clé en une clé détenant plus de permissions que la clé appelante, ou lorsque la clé appelante est une clé de session du tableau de bord.

Réponses

  • 201La clé de remplacement, affichée une seule fois. L’ancienne clé est révoquée dans la même opération ; la nouvelle conserve son mode, son libellé, ses permissions, son paramètre de refus par défaut, ses listes et sa restriction de domaines de courriel.
    ChampTypeDescription
    keyobligatoirestring

    La nouvelle clé API complète (affichée une seule fois).

    prefixobligatoirestring
    modeobligatoirestring
    • Une valeur parmi : live | test
    revoked_idobligatoirestring

    L’identifiant de la clé que celle-ci a remplacée.

    noticeobligatoirestring
  • 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 (ce n’est pas votre compte), LIVE_KEY_REQUIRED (une clé de test tente de renouveler une clé de production), KEY_FENCED (une clé restreinte par une liste d’autorisation ou de blocage tente de renouveler une autre clé qu’elle-même) ou PERMISSION_ESCALATION (la clé cible détient plus d’autorisations que la clé appelante, ou l’appelant est une clé de session du tableau de bord, sans confirmation par mot de passe api_keys:elevate).Le corps d’erreur standard.
  • 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
  • 409CONFLICT : la clé est déjà révoquée, est en cours de renouvellement par une autre requête, est une clé de session du tableau de bord (details.reason vaut session_key) ou est détenue par une connexion OAuth (details.reason vaut oauth_grant).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

cURL
curl -X POST https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/rotate \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
delete/v1/accounts/{id}/api-keys/{keyId}

Révoquer une clé API

Permissionapi_keys:d

Nécessite api_keys:d.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring

Réponses

  • 204Révocation effectuée.
  • 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 (ce n’est pas votre compte) ou LIVE_KEY_REQUIRED (une clé de test tente de révoquer une clé de production).Le corps d’erreur standard.
  • 404NOT_FOUND : aucune ressource correspondante sur ce compte.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

cURL
curl -X DELETE https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
patch/v1/accounts/{id}/api-keys/{keyId}/default-deny

Activer ou désactiver le mode de refus par défaut d’une clé API

Permissionapi_keys:m

Lorsque default_deny vaut true, les messages envoyés avec cette clé sont bloqués, sauf si le destinataire figure dans une liste ALLOW attribuée.

Nécessite api_keys:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring

Corps de la requête

ChampTypeDescription
default_denyobligatoireboolean

Réponses

  • 200Le nouveau paramètre de refus par défaut de la clé.
    ChampTypeDescription
    api_key_idobligatoirestring
    default_denyobligatoireboolean
  • 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 (ce n’est pas votre compte), LIVE_KEY_REQUIRED (une clé de test tente de modifier une clé de production) ou KEY_FENCED (une clé restreinte tente de modifier son propre refus par défaut ou celui d’une autre clé).Le corps d’erreur standard.
  • 404NOT_FOUND : aucune ressource correspondante sur ce compte.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

cURL
curl -X PATCH https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/default-deny \
  -H "Authorization: Bearer mk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "default_deny": false
  }'
get/v1/accounts/{id}/api-keys/{keyId}/lists

Obtenir les listes d’autorisation et de blocage attribuées à une clé API

Permissionapi_keys:r

Nécessite api_keys:r.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring

Réponses

  • 200Les listes d’autorisation et de blocage de la clé, null si aucune n’est attribuée.
    ChampTypeDescription
    allow_listobligatoireobject | any
    deny_listobligatoireobject | any
  • 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 : l’identifiant n’appartient pas au compte de la clé appelante, ou la clé n’a pas l’autorisation requise par cette opération.Le corps d’erreur standard.
  • 404NOT_FOUND : aucune ressource correspondante sur ce compte.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

cURL
curl https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/lists \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
put/v1/accounts/{id}/api-keys/{keyId}/lists/{mode}

Assigner une liste d’autorisation ou de blocage à une clé API

Permissionapi_keys:m

Nécessite api_keys:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring
modeobligatoirecheminstring
  • Une valeur parmi : allow | deny

Corps de la requête

ChampTypeDescription
list_idobligatoirestring

Réponses

  • 200La liste désormais attribuée.
    ChampTypeDescription
    api_key_idobligatoirestring
    modeobligatoirestring
    • Une valeur parmi : ALLOW | DENY
    list_idobligatoirestring
  • 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 (ce n’est pas votre compte), LIVE_KEY_REQUIRED (une clé de test tente de modifier une clé de production) ou KEY_FENCED (une clé restreinte tente de modifier ses propres listes ou celles d’une autre clé).Le corps d’erreur standard.
  • 404NOT_FOUND (clé inexistante) ou CONTACT_LIST_NOT_FOUND.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

cURL
curl -X PUT https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/lists/MODE \
  -H "Authorization: Bearer mk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "list_id": "..."
  }'
delete/v1/accounts/{id}/api-keys/{keyId}/lists/{mode}

Retirer une liste d’autorisation ou de blocage d’une clé API

Permissionapi_keys:m

Nécessite api_keys:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring
keyIdobligatoirecheminstring
modeobligatoirecheminstring
  • Une valeur parmi : allow | deny

Réponses

  • 204Attribution retirée (également lorsque rien n’était attribué).
  • 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 (ce n’est pas votre compte), LIVE_KEY_REQUIRED (une clé de test tente de modifier une clé de production) ou KEY_FENCED (une clé restreinte tente de modifier ses propres listes ou celles d’une autre clé).Le corps d’erreur standard.
  • 404NOT_FOUND : aucune ressource correspondante sur ce compte.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

cURL
curl -X DELETE https://api.honkio.ca/v1/accounts/ID/api-keys/KEY_ID/lists/MODE \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
post/v1/accounts/{id}/phone-verification

Démarrer la vérification du numéro du propriétaire du compte

Permissionaccount:m

Nécessite account:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Corps de la requête

ChampTypeDescription
phoneobligatoirestring

Numéro canadien ou américain du NANP au format E.164, p. ex. +14165551234

Réponses

  • 200Le code a été envoyé par SMS.
    ChampTypeDescription
    sentobligatoireboolean
    • Une valeur parmi : true
    expires_in_secondsobligatoireinteger
  • 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 (ce n’est pas votre compte) ou LIVE_KEY_REQUIRED (la vérification du propriétaire nécessite une clé de production).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.
  • 429RATE_LIMITED : 3 codes par heure et par compte.Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.
  • 502CARRIER_ERROR : l’opérateur n’a pas accepté le SMS.Le corps d’erreur standard.
  • 503SERVICE_UNAVAILABLE : la vérification du numéro du propriétaire n’est pas configurée.Le corps d’erreur standard.

Exemple

cURL
curl -X POST https://api.honkio.ca/v1/accounts/ID/phone-verification \
  -H "Authorization: Bearer mk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+1613XXXXXXX"
  }'
post/v1/accounts/{id}/phone-verification/confirm

Confirmer le code de vérification (NPU) pour terminer la vérification du numéro de téléphone

Permissionaccount:m

Nécessite account:m.

Paramètres

ParamètreTypeDescription
idobligatoirecheminstring

Corps de la requête

ChampTypeDescription
codeobligatoirestring

Le code à 6 chiffres envoyé par SMS

Réponses

  • 200Vérifié : les envois réels sont débloqués.
    ChampTypeDescription
    verifiedobligatoireboolean
    • Une valeur parmi : true
    verified_phoneobligatoirestring
    verified_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.
  • 403FORBIDDEN (ce n’est pas votre compte) ou LIVE_KEY_REQUIRED (la vérification du propriétaire nécessite une clé de production).Le corps d’erreur standard.
  • 422VALIDATION_ERROR, VERIFICATION_EXPIRED (aucun code en attente ; statusCode 422 dans le corps) ou VERIFICATION_INVALID_CODE.Le corps d’erreur standard.
  • 429VERIFICATION_MAX_ATTEMPTS : cinq codes erronés ; demandez-en un nouveau.Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

cURL
curl -X POST https://api.honkio.ca/v1/accounts/ID/phone-verification/confirm \
  -H "Authorization: Bearer mk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "123456"
  }'
get/v1/send-limit

Vos limites d’envoi et votre utilisation actuelle

Permissionaccount:r

La limite quotidienne (sur 24 heures glissantes), la part déjà utilisée, la limite par destinataire, le statut de probation qui conditionne « demander un volume plus élevé », toute pause en cours et vos demandes antérieures.

Nécessite account:r.

Réponses

  • 200Limites d’envoi, utilisation et demandes de volume antérieures.
    ChampTypeDescription
    daily_limitobligatoireinteger

    Envois réels autorisés sur une période mobile de 24 heures.

    sent_last_24hobligatoireinteger
    remainingobligatoireinteger
    window_hoursobligatoireinteger
    approved_daily_limitobligatoireinteger

    Le volume standard accordé par défaut à une demande.

    probation_daysobligatoireinteger
    recipient_rate_per_hourobligatoireinteger

    Messages qu’un même destinataire peut recevoir du compte par heure.

    recipient_rate_per_dayobligatoireinteger

    Messages qu’un même destinataire peut recevoir du compte par jour.

    probationobligatoireobject
    started_atobligatoirestring

    Le premier envoi réel ; null avant celui-ci.

    • Format : date-time
    • Peut être null
    ends_atobligatoirestring
    • Format : date-time
    • Peut être null
    eligible_to_requestobligatoireboolean
    paused_untilobligatoirestring

    Défini pendant que l’envoi est en pause.

    • Format : date-time
    • Peut être null
    pause_reasonobligatoirestring

    Raison de la pause des envois : OPT_OUT_RATE, FAILURE_RATE ou MANUAL.

    • Peut être null
    requests[]obligatoireobject[]
    idobligatoirestring
    requested_limitobligatoireinteger

    Nombre de messages par jour demandé ; null demande le volume approuvé standard.

    • Peut être null
    limit_at_requestobligatoireinteger
    sent_last_30d_at_requestobligatoireinteger
    reasonobligatoirestring
    statusobligatoirestring
    • Une valeur parmi : PENDING | APPROVED | DENIED
    granted_limitobligatoireinteger
    • Peut être null
    staff_noteobligatoirestring
    • Peut être null
    decided_atobligatoirestring
    • Format : date-time
    • Peut être null
    created_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.
  • 404NOT_FOUND : aucune ressource correspondante sur ce compte.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

cURL
curl https://api.honkio.ca/v1/send-limit \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
get/v1/send-limit/requests

Lister vos demandes de volume

Permissionaccount:r

Nécessite account:r.

Réponses

  • 200Les demandes de volume du compte, des plus récentes aux plus anciennes.
    ChampTypeDescription
    data[]obligatoireobject[]
    idobligatoirestring
    requested_limitobligatoireinteger

    Nombre de messages par jour demandé ; null demande le volume approuvé standard.

    • Peut être null
    limit_at_requestobligatoireinteger
    sent_last_30d_at_requestobligatoireinteger
    reasonobligatoirestring
    statusobligatoirestring
    • Une valeur parmi : PENDING | APPROVED | DENIED
    granted_limitobligatoireinteger
    • Peut être null
    staff_noteobligatoirestring
    • Peut être null
    decided_atobligatoirestring
    • Format : date-time
    • Peut être null
    created_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.
  • 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

cURL
curl https://api.honkio.ca/v1/send-limit/requests \
  -H "Authorization: Bearer mk_live_YOUR_KEY"
post/v1/send-limit/requests

Demander un volume d’envoi quotidien plus élevé

Permissionaccount:w

Accessible une fois que le compte a terminé sa période probatoire (comptée à partir de son premier envoi réel). Omettez requested_limit pour demander le volume approuvé standard, ou indiquez une cible. Une seule demande peut être en attente à la fois ; vous recevez un courriel lorsqu’une décision est rendue.

Nécessite account:w.

Corps de la requête

ChampTypeDescription
requested_limitinteger

Nombre de messages par jour souhaité (et non une augmentation). Omettez-le pour obtenir le volume approuvé standard.

  • Minimum : 1
  • Maximum : 1000000
reasonobligatoirestring

Ce que vous envoyez et à qui. Notre équipe en tient compte pour décider. De 10 à 1 000 caractères.

Réponses

  • 201La demande, en attente d’examen.
    ChampTypeDescription
    idobligatoirestring
    requested_limitobligatoireinteger

    Nombre de messages par jour demandé ; null demande le volume approuvé standard.

    • Peut être null
    limit_at_requestobligatoireinteger
    sent_last_30d_at_requestobligatoireinteger
    reasonobligatoirestring
    statusobligatoirestring
    • Une valeur parmi : PENDING | APPROVED | DENIED
    granted_limitobligatoireinteger
    • Peut être null
    staff_noteobligatoirestring
    • Peut être null
    decided_atobligatoirestring
    • Format : date-time
    • Peut être null
    created_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.
  • 403SEND_LIMIT_REQUEST_TOO_EARLY (période probatoire non terminée ; details.eligible_at) ou LIVE_KEY_REQUIRED.Le corps d’erreur standard.
  • 404NOT_FOUND : aucune ressource correspondante sur ce compte.Le corps d’erreur standard.
  • 409SEND_LIMIT_REQUEST_PENDING : une demande est déjà en attente.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.
  • 429RATE_LIMITED : 3 requêtes par jour et par compte.Le corps d’erreur standard.
  • 500Erreur de serveur inattendue.Le corps d’erreur standard.

Exemple

cURL
curl -X POST https://api.honkio.ca/v1/send-limit/requests \
  -H "Authorization: Bearer mk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "..."
  }'