Référence de l’API
Numéros de téléphone
Provisionner et gérer des numéros de téléphone canadiens.
/v1/phone-numbers/area-codesLister les provinces et leurs indicatifs régionaux actifs
phone_numbers:rSDK Node.jshonkio.phoneNumbers.areaCodes()Nécessite phone_numbers:r.
Réponses
200Provinces et leurs indicatifs régionaux actifs.
Champ Type Description data[]obligatoireobject[] provinceobligatoirestring countryobligatoirestring area_codesobligatoirestring[] - 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.phoneNumbers.areaCodes()
if (error) throw new Error(error.message)
console.log(data.data)curl https://api.honkio.ca/v1/phone-numbers/area-codes \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/phone-numbers/searchRechercher des numéros de téléphone canadiens disponibles à provisionner
phone_numbers:rSDK Node.jshonkio.phoneNumbers.search()Filtrage facultatif par area_codes : jusqu’à 25 codes distincts (les doublons comptent une seule fois), chacun étant un indicatif régional canadien actif (GET /v1/phone-numbers/area-codes) ou un préfixe sans frais (833, 844, 855, 866, 877, 888). Les préfixes sans frais sont acceptés même si la liste des indicatifs régionaux ne les inclut pas : ils sont vendus au palier sans frais, et la recherche par préfixe permet d’en trouver un. Les numéros 1-800 ne sont pas encore offerts ; 800 est donc refusé comme un code inconnu. Au-delà de 25 codes, la requête renvoie 422 TOO_MANY_AREA_CODES ; tout autre code non valide renvoie 422 VALIDATION_ERROR, qui le nomme dans details.area_codes. Chaque compte peut effectuer 30 recherches par minute ; au-delà, 429 RATE_LIMITED avec Retry-After.
Nécessite phone_numbers:r.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
area_codesrequête | string | Indicatifs régionaux séparés par des virgules servant de filtre (p. ex. 416,647) : 25 au maximum, chacun étant un indicatif régional canadien actif ou un préfixe sans frais (833, 844, 855, 866, 877, 888) |
limitrequête | integer |
|
Réponses
200Numéros disponibles. Un tableau simple, non enveloppé dans data.
Champ Type Description phone_numberobligatoirestring E.164
country_codeobligatoirestring area_codeobligatoirestring - Peut être null
regionobligatoirestring Province ou territoire, lorsque l’indicatif régional y correspond.
- Peut être null
capabilitiesobligatoirestring[] monthly_cost_centsobligatoireinteger Loyer récurrent en cents CAD, selon la catégorie (local ou sans frais) à laquelle ce numéro serait vendu.
upfront_cost_centsobligatoireinteger Le loyer du premier mois, facturé lors du provisionnement du numéro.
activation_fee_centsobligatoireinteger Frais d’activation uniques facturés avec le premier mois. Non remboursés à la libération.
currencyobligatoirestring - Une valeur parmi : CAD
- 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 (details.area_codes énumère les indicatifs qui ne sont pas offerts) ou TOO_MANY_AREA_CODES.Le corps d’erreur standard.
- 429RATE_LIMITED : 30 recherches par minute et par compte, ou 100 requêtes par seconde.Le corps d’erreur standard.
- 500Erreur de serveur inattendue.Le corps d’erreur standard.
- 502NUMBER_SEARCH_FAILED : la recherche auprès de l’opérateur a échoué.Le corps d’erreur standard.
Exemple
const { data: available, error } = await honkio.phoneNumbers.search({ areaCodes: ['416', '647'], limit: 5 })
if (error) throw new Error(error.message)
for (const n of available) console.log(n.phone_number, n.monthly_cost_cents)curl https://api.honkio.ca/v1/phone-numbers/search \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/phone-numbersLister les numéros de téléphone provisionnés du compte
phone_numbers:rSDK Node.jshonkio.phoneNumbers.list()Nécessite phone_numbers:r.
Réponses
200Les numéros du compte, à l’exclusion des numéros libérés, des plus récents aux plus anciens. Non paginé.
Champ Type Description data[]obligatoireobject[] idobligatoirestring phone_numberobligatoirestring E.164
area_codeobligatoirestring regionobligatoirestring Province ou territoire, lorsque l’indicatif régional y correspond.
- Peut être null
capabilitiesobligatoirestring[] statusobligatoirestring - Une valeur parmi : ACTIVE | SUSPENDED | RELEASING | RELEASED
monthly_cost_centsobligatoireinteger Loyer récurrent en cents CAD.
provisioned_atobligatoirestring - Format : date-time
released_atobligatoirestring - Format : date-time
- 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.
- 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.phoneNumbers.list()
if (error) throw new Error(error.message)
for (const n of data.data) console.log(n.phone_number, n.status)curl https://api.honkio.ca/v1/phone-numbers \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/phone-numbersProvisionner (acheter) un numéro de téléphone
phone_numbers:wSDK Node.jshonkio.phoneNumbers.provision()Provisionne un numéro et débite, en un seul achat, son premier mois de loyer et des frais d’activation uniques (voir GET /v1/pricing pour ces deux montants ; les frais d’activation sont les mêmes pour toutes les catégories de numéros et ne sont pas remboursés à la libération). Si le solde ne peut couvrir le total, la réponse est 402 INSUFFICIENT_BALANCE, avant toute facturation ou commande. Le nombre de numéros de téléphone qu’un compte peut détenir simultanément est plafonné (en comptant les numéros ACTIVE et SUSPENDED) : il s’agit d’une limite propre au compte qui, à défaut, reprend une valeur par défaut de la plateforme que notre équipe peut modifier à tout moment. La dépasser renvoie 403 NUMBER_LIMIT_REACHED, avec la limite et l’utilisation actuelle dans details. Demandez une allocation plus élevée depuis le tableau de bord. Peut aussi renvoyer 409 PURCHASE_IN_PROGRESS lorsqu’un autre achat pour ce compte est déjà en cours : cette erreur est passagère, contrairement à l’erreur définitive 409 CONFLICT renvoyée lorsque le numéro vous appartient déjà. En cas de PURCHASE_IN_PROGRESS, réessayez après un court délai plutôt que de considérer l’achat comme échoué.
Nécessite phone_numbers:w.
Corps de la requête
| Champ | Type | Description |
|---|---|---|
phone_numberobligatoire | string | Numéro E.164 à provisionner (issu de la recherche de numéros disponibles) |
Réponses
201Le numéro provisionné.
Champ Type Description idobligatoirestring phone_numberobligatoirestring E.164
area_codeobligatoirestring regionobligatoirestring Province ou territoire, lorsque l’indicatif régional y correspond.
- Peut être null
capabilitiesobligatoirestring[] statusobligatoirestring - Une valeur parmi : ACTIVE | SUSPENDED | RELEASING | RELEASED
monthly_cost_centsobligatoireinteger Loyer récurrent en cents CAD.
provisioned_atobligatoirestring - Format : date-time
released_atobligatoirestring - Format : date-time
- Peut être null
- 401Clé API manquante, invalide, révoquée ou expirée.Le corps d’erreur standard.
- 402INSUFFICIENT_BALANCE : le solde ne couvre pas le premier mois et les frais d’activation. Rien n’a été facturé ni commandé.Le corps d’erreur standard.
- 403NUMBER_LIMIT_REACHED (details contient limit et used), LIVE_KEY_REQUIRED (les clés de test ne peuvent pas provisionner) ou ACCOUNT_NOT_VERIFIED (le compte n’a pas vérifié de numéro mobile du propriétaire).Le corps d’erreur standard.
- 409CONFLICT (le numéro est déjà détenu) ou PURCHASE_IN_PROGRESS (un autre achat est en cours pour ce compte ; réessayez sous peu).Le corps d’erreur standard.
- 422NON_CANADIAN_NUMBER ou VALIDATION_ERROR.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.
- 500INTERNAL_ERROR : la facturation a échoué pour une raison autre que le solde.Le corps d’erreur standard.
- 501TOLLFREE_800_COMING_SOON : les numéros 1-800 ne sont pas encore offerts.Le corps d’erreur standard.
- 502PROVISIONING_FAILED : l’opérateur n’a pas provisionné le numéro. Le montant facturé est remboursé.Le corps d’erreur standard.
Exemple
const { data: number, error } = await honkio.phoneNumbers.provision({ phoneNumber: '+1416XXXXXXX' })
if (error) throw new Error(error.message)
console.log(number.id, number.status)curl -X POST https://api.honkio.ca/v1/phone-numbers \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone_number": "+1613XXXXXXX"
}'/v1/phone-numbers/{id}Obtenir un numéro de téléphone par identifiant
phone_numbers:rSDK Node.jshonkio.phoneNumbers.get()Nécessite phone_numbers:r.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string |
Réponses
200Le numéro, y compris s’il a été libéré.
Champ Type Description idobligatoirestring phone_numberobligatoirestring E.164
area_codeobligatoirestring regionobligatoirestring Province ou territoire, lorsque l’indicatif régional y correspond.
- Peut être null
capabilitiesobligatoirestring[] statusobligatoirestring - Une valeur parmi : ACTIVE | SUSPENDED | RELEASING | RELEASED
monthly_cost_centsobligatoireinteger Loyer récurrent en cents CAD.
provisioned_atobligatoirestring - Format : date-time
released_atobligatoirestring - Format : date-time
- 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.
- 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
const { data, error } = await honkio.phoneNumbers.get('NUMBER_ID')
if (error) throw new Error(error.message)
console.log(data.phone_number, data.status)curl https://api.honkio.ca/v1/phone-numbers/ID \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/phone-numbers/{id}Libérer (annuler) un numéro de téléphone
phone_numbers:dSDK Node.jshonkio.phoneNumbers.release()Libère le numéro chez l’opérateur et répond 204, y compris lorsque l’opérateur l’avait déjà libéré. Si l’opérateur n’accepte pas la libération, répond 502 RELEASE_FAILED et le numéro vous appartient toujours, inchangé ; réessayez.
Nécessite phone_numbers:d.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
idobligatoirechemin | string |
Réponses
- 204Libéré, ou déjà libéré chez l’opérateur.
- 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 : les clés de test ne peuvent pas accéder ici aux ressources de production. Aussi FORBIDDEN lorsque la clé ne dispose pas de la permission requise par cette opération, ou lorsque le compte est suspendu ou fermé.Le corps d’erreur standard.
- 404NOT_FOUND : aucun numéro correspondant sur ce compte, ou il a déjà été libéré.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.
- 502RELEASE_FAILED : l’opérateur n’a pas accepté la libération. Le numéro vous appartient toujours, inchangé ; réessayez.Le corps d’erreur standard.
Exemple
const { error } = await honkio.phoneNumbers.release('NUMBER_ID')
if (error) throw new Error(error.message)curl -X DELETE https://api.honkio.ca/v1/phone-numbers/ID \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/phone-numbers/allowance-requestsLister vos demandes d’allocation de numéros de téléphone
phone_numbers:rNécessite phone_numbers:r.
Réponses
200Les demandes d’allocation du compte, des plus récentes aux plus anciennes.
Champ Type Description data[]obligatoireobject[] idobligatoirestring requested_limitobligatoireinteger Nombre total de numéros demandés, et non un incrément.
limit_at_requestobligatoireinteger held_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 https://api.honkio.ca/v1/phone-numbers/allowance-requests \
-H "Authorization: Bearer mk_live_YOUR_KEY"/v1/phone-numbers/allowance-requestsDemander une allocation de numéros de téléphone plus élevée
phone_numbers:wSoumet une demande à l’équipe HonkIO pour examen. Une seule demande peut être en attente à la fois. Une approbation relève la limite du compte ; vous en êtes alors avisé par courriel.
Nécessite phone_numbers:w.
Corps de la requête
| Champ | Type | Description |
|---|---|---|
requested_limitobligatoire | integer | Nombre total de numéros que vous voulez pouvoir détenir (et non un incrément)
|
reasonobligatoire | string | L’usage que vous en ferez. Notre équipe en tient compte pour décider.
|
Réponses
201La demande, en attente d’examen.
Champ Type Description idobligatoirestring requested_limitobligatoireinteger Nombre total de numéros demandés, et non un incrément.
limit_at_requestobligatoireinteger held_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.
- 403LIVE_KEY_REQUIRED : les clés de test ne peuvent pas accéder ici aux ressources de production. Aussi FORBIDDEN lorsque la clé ne dispose pas de la permission requise par cette opération, ou lorsque le compte est suspendu ou fermé.Le corps d’erreur standard.
- 409ALLOWANCE_REQUEST_PENDING : une demande est déjà en attente.Le corps d’erreur standard.
- 422VALIDATION_ERROR, ou INVALID_ALLOWANCE_REQUEST lorsque requested_limit n’est pas supérieur à la limite actuelle.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 -X POST https://api.honkio.ca/v1/phone-numbers/allowance-requests \
-H "Authorization: Bearer mk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"requested_limit": 2,
"reason": "..."
}'
HonkIO