HonkIO Auth
Applications
Créez des applications de connexion, modifiez leurs réglages et leur image de marque, vérifiez leurs domaines, remplacez leurs secrets et supprimez-les.
Créer une application
POST/v1/auth-apps
Permission: auth_apps: w
Crée une application de connexion sur un nom d’hôte qui vous appartient, dans le mode de votre clé. La réponse indique les enregistrements DNS à publier et, pour une application confidentielle, le secret client : il n’est affiché qu’ici.
Corps
| Nom | Type | Description |
|---|---|---|
| hostnameobligatoire | string | Un sous-domaine que vous contrôlez, comme login.acme.ca. Il devient l’émetteur. Pour déménager plus tard, faites un PATCH de l’application avec un nouveau hostname. |
| nameobligatoire | string | Le nom d’application affiché sur la page de connexion, dans les courriels et dans les textos. |
| redirect_urisobligatoire | string[] | Où la connexion peut revenir. Correspondance exacte, HTTPS, au plus 10; http://localhost sur les applications de test seulement. Un PATCH remplace la liste. |
| post_logout_redirect_uris | string[] | Où la déconnexion peut revenir. Mêmes règles que redirect_uris. |
| confidential | boolean | true (par défaut) émet un secret client, affiché une fois. false crée un client public sans secret. |
| plan | "free" | "pro" | "business" | Le forfait de départ : free (par défaut), pro ou business. Une application réelle sur un forfait payant paie ses premiers frais mensuels à même votre solde, tout de suite; une seule application réelle par compte peut être au forfait gratuit. |
curl -X POST https://api.honkio.ca/v1/auth-apps \
-H "Authorization: Bearer mk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"hostname": "login-dev.acme.ca",
"name": "Acme",
"redirect_uris": [
"http://localhost:3000/auth/callback"
],
"post_logout_redirect_uris": [
"http://localhost:3000/"
]
}'{
"id": "clxxxappxxxxxxxxxxxxxxxxx",
"hostname": "login-dev.acme.ca",
"issuer": "https://login-dev.acme.ca",
"domain_status": "PENDING_DNS",
"dns_records": [
{
"type": "TXT",
"name": "_honkio-auth.login-dev.acme.ca",
"value": "honkio-auth=xxxxxxxxxxxxxxxxxxxxxxxx"
},
{
"type": "CNAME",
"name": "login-dev.acme.ca",
"value": "edge.signin.honkio.ca"
}
],
"client_id": "hka_xxxxxxxxxxxx",
"redirect_uris": [
"http://localhost:3000/auth/callback"
],
"post_logout_redirect_uris": [
"http://localhost:3000/"
],
"mode": "test",
"brand_color": "#2b6cb0",
"name": "Acme",
"plan": "free",
"confidential": true,
"logo_url": null,
"name_review": "clear",
"email_enabled": true,
"passkeys_enabled": true,
"texts_enabled": false,
"passkey_scope": "hostname",
"sms_from_number_id": null,
"send_from_email_domain_id": null,
"pending_hostname": null,
"pending_txt_missing_since": null,
"previous_hostname": null,
"hostname_changed_at": null,
"created_at": "2026-11-02T15:04:05.000Z",
"client_secret": "hka_cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}Lister les applications
GET/v1/auth-apps
Permission: auth_apps: r
Vos applications dans le mode de la clé, les plus récentes d’abord.
Paramètres de requête
| Nom | Type | Description |
|---|---|---|
| limit | integer | Combien en renvoyer par page. |
| cursor | string | Le next_cursor de la page précédente. |
curl https://api.honkio.ca/v1/auth-apps \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"data": [
{
"id": "clxxxappxxxxxxxxxxxxxxxxx",
"hostname": "login-dev.acme.ca",
"issuer": "https://login-dev.acme.ca",
"domain_status": "PENDING_DNS",
"dns_records": [
{
"type": "TXT",
"name": "_honkio-auth.login-dev.acme.ca",
"value": "honkio-auth=xxxxxxxxxxxxxxxxxxxxxxxx"
},
{
"type": "CNAME",
"name": "login-dev.acme.ca",
"value": "edge.signin.honkio.ca"
}
],
"client_id": "hka_xxxxxxxxxxxx",
"redirect_uris": [
"http://localhost:3000/auth/callback"
],
"post_logout_redirect_uris": [
"http://localhost:3000/"
],
"mode": "test",
"brand_color": "#2b6cb0",
"name": "Acme",
"plan": "free",
"confidential": true,
"logo_url": null,
"name_review": "clear",
"email_enabled": true,
"passkeys_enabled": true,
"texts_enabled": false,
"passkey_scope": "hostname",
"sms_from_number_id": null,
"send_from_email_domain_id": null,
"pending_hostname": null,
"pending_txt_missing_since": null,
"previous_hostname": null,
"hostname_changed_at": null,
"created_at": "2026-11-02T15:04:05.000Z"
}
],
"next_cursor": null
}Obtenir une application
GET/v1/auth-apps/:id
Permission: auth_apps: r
Une application, avec le statut de son domaine et ses enregistrements DNS.
curl https://api.honkio.ca/v1/auth-apps/APP_ID \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"id": "clxxxappxxxxxxxxxxxxxxxxx",
"hostname": "login-dev.acme.ca",
"issuer": "https://login-dev.acme.ca",
"domain_status": "PENDING_DNS",
"dns_records": [
{
"type": "TXT",
"name": "_honkio-auth.login-dev.acme.ca",
"value": "honkio-auth=xxxxxxxxxxxxxxxxxxxxxxxx"
},
{
"type": "CNAME",
"name": "login-dev.acme.ca",
"value": "edge.signin.honkio.ca"
}
],
"client_id": "hka_xxxxxxxxxxxx",
"redirect_uris": [
"http://localhost:3000/auth/callback"
],
"post_logout_redirect_uris": [
"http://localhost:3000/"
],
"mode": "test",
"brand_color": "#2b6cb0",
"name": "Acme",
"plan": "free",
"confidential": true,
"logo_url": null,
"name_review": "clear",
"email_enabled": true,
"passkeys_enabled": true,
"texts_enabled": false,
"passkey_scope": "hostname",
"sms_from_number_id": null,
"send_from_email_domain_id": null,
"pending_hostname": null,
"pending_txt_missing_since": null,
"previous_hostname": null,
"hostname_changed_at": null,
"created_at": "2026-11-02T15:04:05.000Z"
}Modifier une application
PATCH/v1/auth-apps/:id
Permission: auth_apps: m
Modifie les champs envoyés. Au moins une méthode de connexion doit rester activée, et les textos exigent Pro ou Affaires et un numéro vérifié. Un nouveau hostname est envoyé seul et attend dans pending_hostname que ses enregistrements soient vérifiés; l’application bascule ensuite vers lui.
Corps
| Nom | Type | Description |
|---|---|---|
| hostname | string | Déplace l’application vers un nouveau nom d’hôte qui vous appartient. Envoyez-le seul. L’application garde ses utilisateurs, son ID client et son secret, et continue d’être servie sur son nom d’hôte actuel pendant que le nouveau attend dans pending_hostname : publiez ses enregistrements DNS, puis vérifiez. Quand son certificat est actif, l’application bascule : l’émetteur change, chaque session prend fin, et les clés d’accès créées pour un domaine que le nouveau nom d’hôte ne partage pas cessent de fonctionner. hostname_change dans la réponse indique combien. Exige une confirmation d’identité depuis une session du tableau de bord. |
| name | string | Le nom d’application affiché sur la page de connexion, dans les courriels et dans les textos. |
| brand_color | string | Une couleur hexadécimale comme #2b6cb0. |
| redirect_uris | string[] | Où la connexion peut revenir. Correspondance exacte, HTTPS, au plus 10; http://localhost sur les applications de test seulement. Un PATCH remplace la liste. |
| post_logout_redirect_uris | string[] | Où la déconnexion peut revenir. Mêmes règles que redirect_uris. |
| email_enabled | boolean | Connexion par code ou lien par courriel. |
| passkeys_enabled | boolean | Connexion par clé d’accès. |
| texts_enabled | boolean | Connexion par code texto. Pro et Affaires, avec sms_from_number_id défini. Une application de test n’envoie aucun texto et n’a pas besoin de numéro. |
| passkey_scope | "domain" | "hostname" | domain (par défaut) lie les clés d’accès à votre domaine entier; hostname, au seul nom d’hôte de connexion. Le changer retire les clés existantes jusqu’à ce que vous reveniez en arrière; la réponse en donne le nombre dans passkeys_retired. |
| sms_from_number_id | string | null | L’identifiant de votre numéro HonkIO vérifié qui envoie les textos de connexion. |
| send_from_email_domain_id | string | null | L’identifiant d’un domaine d’envoi vérifié d’où envoyer les courriels de connexion; null utilise signin.honkio.ca. |
curl -X PATCH https://api.honkio.ca/v1/auth-apps/APP_ID \
-H "Authorization: Bearer mk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"brand_color": "#0f766e",
"passkeys_enabled": true
}'{
"id": "clxxxappxxxxxxxxxxxxxxxxx",
"hostname": "login-dev.acme.ca",
"issuer": "https://login-dev.acme.ca",
"domain_status": "PENDING_DNS",
"dns_records": [
{
"type": "TXT",
"name": "_honkio-auth.login-dev.acme.ca",
"value": "honkio-auth=xxxxxxxxxxxxxxxxxxxxxxxx"
},
{
"type": "CNAME",
"name": "login-dev.acme.ca",
"value": "edge.signin.honkio.ca"
}
],
"client_id": "hka_xxxxxxxxxxxx",
"redirect_uris": [
"http://localhost:3000/auth/callback"
],
"post_logout_redirect_uris": [
"http://localhost:3000/"
],
"mode": "test",
"brand_color": "#0f766e",
"name": "Acme",
"plan": "free",
"confidential": true,
"logo_url": null,
"name_review": "clear",
"email_enabled": true,
"passkeys_enabled": true,
"texts_enabled": false,
"passkey_scope": "hostname",
"sms_from_number_id": null,
"send_from_email_domain_id": null,
"pending_hostname": null,
"pending_txt_missing_since": null,
"previous_hostname": null,
"hostname_changed_at": null,
"created_at": "2026-11-02T15:04:05.000Z"
}Téléverser un logo
PUT/v1/auth-apps/:id/logo
Permission: auth_apps: m
Remplace le logo de la page de connexion. Envoyez un PNG, JPEG, WebP ou GIF d’au plus 1 Mo. HonkIO le réencode en PNG ou en WebP et le sert depuis une origine statique distincte; le SVG n’est pas accepté. Un logo proche d’une marque protégée est examiné.
Corps : multipart/form-data avec une partie fichier nommée logo.
curl -X PUT https://api.honkio.ca/v1/auth-apps/APP_ID/logo \
-H "Authorization: Bearer mk_test_YOUR_KEY" \
-F "logo=@logo.png"{
"id": "clxxxappxxxxxxxxxxxxxxxxx",
"hostname": "login-dev.acme.ca",
"issuer": "https://login-dev.acme.ca",
"domain_status": "PENDING_DNS",
"dns_records": [
{
"type": "TXT",
"name": "_honkio-auth.login-dev.acme.ca",
"value": "honkio-auth=xxxxxxxxxxxxxxxxxxxxxxxx"
},
{
"type": "CNAME",
"name": "login-dev.acme.ca",
"value": "edge.signin.honkio.ca"
}
],
"client_id": "hka_xxxxxxxxxxxx",
"redirect_uris": [
"http://localhost:3000/auth/callback"
],
"post_logout_redirect_uris": [
"http://localhost:3000/"
],
"mode": "test",
"brand_color": "#2b6cb0",
"name": "Acme",
"plan": "free",
"confidential": true,
"logo_url": "https://assets.signin.honkio.ca/logos/xxxxxxxxxxxx.webp",
"name_review": "clear",
"email_enabled": true,
"passkeys_enabled": true,
"texts_enabled": false,
"passkey_scope": "hostname",
"sms_from_number_id": null,
"send_from_email_domain_id": null,
"pending_hostname": null,
"pending_txt_missing_since": null,
"previous_hostname": null,
"hostname_changed_at": null,
"created_at": "2026-11-02T15:04:05.000Z"
}Retirer le logo
DELETE/v1/auth-apps/:id/logo
Permission: auth_apps: d
La page de connexion revient à la marque de couleur. Renvoie l’application.
curl -X DELETE https://api.honkio.ca/v1/auth-apps/APP_ID/logo \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"id": "clxxxappxxxxxxxxxxxxxxxxx",
"hostname": "login-dev.acme.ca",
"issuer": "https://login-dev.acme.ca",
"domain_status": "PENDING_DNS",
"dns_records": [
{
"type": "TXT",
"name": "_honkio-auth.login-dev.acme.ca",
"value": "honkio-auth=xxxxxxxxxxxxxxxxxxxxxxxx"
},
{
"type": "CNAME",
"name": "login-dev.acme.ca",
"value": "edge.signin.honkio.ca"
}
],
"client_id": "hka_xxxxxxxxxxxx",
"redirect_uris": [
"http://localhost:3000/auth/callback"
],
"post_logout_redirect_uris": [
"http://localhost:3000/"
],
"mode": "test",
"brand_color": "#2b6cb0",
"name": "Acme",
"plan": "free",
"confidential": true,
"logo_url": null,
"name_review": "clear",
"email_enabled": true,
"passkeys_enabled": true,
"texts_enabled": false,
"passkey_scope": "hostname",
"sms_from_number_id": null,
"send_from_email_domain_id": null,
"pending_hostname": null,
"pending_txt_missing_since": null,
"previous_hostname": null,
"hostname_changed_at": null,
"created_at": "2026-11-02T15:04:05.000Z"
}Remplacer le secret client
POST/v1/auth-apps/:id/rotate-secret
Permission: auth_apps: w
Émet un nouveau secret client; l’ancien cesse de fonctionner immédiatement. Un client public renvoie AUTH_APP_PUBLIC_CLIENT.
curl -X POST https://api.honkio.ca/v1/auth-apps/APP_ID/rotate-secret \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"client_secret": "hka_cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}Vérifier le domaine
POST/v1/auth-apps/:id/domain/verify
Permission: auth_apps: w
Vérifie les enregistrements TXT et CNAME et fait avancer l’application : PENDING_DNS, PENDING_CERT, ACTIVE. Un changement de nom d’hôte en attente est vérifié dans le même appel (pending_hostname); l’application bascule vers lui dès que son certificat est actif. Appelez-la aussi souvent que vous voulez.
curl -X POST https://api.honkio.ca/v1/auth-apps/APP_ID/domain/verify \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"domain_status": "PENDING_CERT",
"found": {
"txt": true,
"cname": true
}
}Annuler un changement de nom d’hôte
DELETE/v1/auth-apps/:id/hostname-change
Permission: auth_apps: d
Abandonne le nom d’hôte vers lequel l’application se déplaçait, et son certificat. L’application garde son nom d’hôte, son émetteur, ses sessions et ses clés d’accès actuels. 404 quand aucun changement n’attend, y compris un changement déjà basculé.
curl -X DELETE https://api.honkio.ca/v1/auth-apps/APP_ID/hostname-change \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"id": "clxxxappxxxxxxxxxxxxxxxxx",
"hostname": "login-dev.acme.ca",
"issuer": "https://login-dev.acme.ca",
"domain_status": "PENDING_DNS",
"dns_records": [
{
"type": "TXT",
"name": "_honkio-auth.login-dev.acme.ca",
"value": "honkio-auth=xxxxxxxxxxxxxxxxxxxxxxxx"
},
{
"type": "CNAME",
"name": "login-dev.acme.ca",
"value": "edge.signin.honkio.ca"
}
],
"client_id": "hka_xxxxxxxxxxxx",
"redirect_uris": [
"http://localhost:3000/auth/callback"
],
"post_logout_redirect_uris": [
"http://localhost:3000/"
],
"mode": "test",
"brand_color": "#2b6cb0",
"name": "Acme",
"plan": "free",
"confidential": true,
"logo_url": null,
"name_review": "clear",
"email_enabled": true,
"passkeys_enabled": true,
"texts_enabled": false,
"passkey_scope": "hostname",
"sms_from_number_id": null,
"send_from_email_domain_id": null,
"pending_hostname": null,
"pending_txt_missing_since": null,
"previous_hostname": null,
"hostname_changed_at": null,
"created_at": "2026-11-02T15:04:05.000Z"
}Supprimer une application
DELETE/v1/auth-apps/:id
Permission: auth_apps: d
Supprime l’application et libère son nom d’hôte immédiatement; sa page de connexion cesse d’être servie.
curl -X DELETE https://api.honkio.ca/v1/auth-apps/APP_ID \
-H "Authorization: Bearer mk_test_YOUR_KEY"204 · Aucun contenu.
HonkIO