HonkIO Auth
Organisations
La politique de connexion, les organisations, les adhésions, les rôles et les invitations.
Obtenir la politique de connexion
GET/v1/auth-apps/:id/sign-in-policy
Permission: auth_apps: r
Qui peut s’inscrire, et si l’application exige la vérification en deux étapes.
curl https://api.honkio.ca/v1/auth-apps/APP_ID/sign-in-policy \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"sign_up_mode": "open",
"sign_up_domains": [],
"two_step_required": false
}Modifier la politique de connexion
PATCH/v1/auth-apps/:id/sign-in-policy
Permission: auth_apps: m
Modifie les champs envoyés. Exiger deux étapes demande Pro ou Affaires.
Corps
| Nom | Type | Description |
|---|---|---|
| sign_up_mode | "open" | "invite_only" | "domains" | Qui peut s’inscrire. open par défaut. |
| sign_up_domains | string[] | Les domaines de courriel permis à l’inscription quand le mode est domains. |
| two_step_required | boolean | Exiger la vérification en deux étapes de chaque utilisateur. Pro et Affaires. |
curl -X PATCH https://api.honkio.ca/v1/auth-apps/APP_ID/sign-in-policy \
-H "Authorization: Bearer mk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"sign_up_mode": "domains",
"sign_up_domains": [
"acme.ca"
]
}'{
"sign_up_mode": "domains",
"sign_up_domains": [
"acme.ca"
],
"two_step_required": false
}Lister les organisations
GET/v1/auth-apps/:id/organizations
Permission: auth_organizations: r
Les organisations de l’application.
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/APP_ID/organizations \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"data": [
{
"id": "org_clxxxorgxxxxxxxxxxxxxxx",
"name": "Northwind",
"slug": "northwind",
"two_step_required": false,
"created_at": "2026-11-02T15:04:05.000Z",
"member_count": 12
}
],
"next_cursor": null
}Créer une organisation
POST/v1/auth-apps/:id/organizations
Permission: auth_organizations: w
Forfait Affaires. Envoie organization.created.
Corps
| Nom | Type | Description |
|---|---|---|
| nameobligatoire | string | Le nom de l’organisation, affiché au moment du choix. |
| slug | string | Unique dans l’application; les jetons le portent comme org_slug. |
| two_step_required | boolean | Exiger la vérification en deux étapes pour se connecter à cette organisation. |
curl -X POST https://api.honkio.ca/v1/auth-apps/APP_ID/organizations \
-H "Authorization: Bearer mk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Northwind",
"slug": "northwind"
}'{
"id": "org_clxxxorgxxxxxxxxxxxxxxx",
"name": "Northwind",
"slug": "northwind",
"two_step_required": false,
"created_at": "2026-11-02T15:04:05.000Z"
}Obtenir une organisation
GET/v1/auth-apps/:id/organizations/:orgId
Permission: auth_organizations: r
Une organisation.
curl https://api.honkio.ca/v1/auth-apps/APP_ID/organizations/ORG_ID \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"id": "org_clxxxorgxxxxxxxxxxxxxxx",
"name": "Northwind",
"slug": "northwind",
"two_step_required": false,
"created_at": "2026-11-02T15:04:05.000Z"
}Modifier une organisation
PATCH/v1/auth-apps/:id/organizations/:orgId
Permission: auth_organizations: m
Modifie les champs envoyés. Envoie organization.updated.
Corps
| Nom | Type | Description |
|---|---|---|
| name | string | Le nom de l’organisation, affiché au moment du choix. |
| slug | string | Unique dans l’application; les jetons le portent comme org_slug. |
| two_step_required | boolean | Exiger la vérification en deux étapes pour se connecter à cette organisation. |
curl -X PATCH https://api.honkio.ca/v1/auth-apps/APP_ID/organizations/ORG_ID \
-H "Authorization: Bearer mk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"two_step_required": true
}'{
"id": "org_clxxxorgxxxxxxxxxxxxxxx",
"name": "Northwind",
"slug": "northwind",
"two_step_required": true,
"created_at": "2026-11-02T15:04:05.000Z"
}Supprimer une organisation
DELETE/v1/auth-apps/:id/organizations/:orgId
Permission: auth_organizations: d
Supprime l’organisation. Le prochain renouvellement des membres dans celle-ci échoue. Envoie organization.deleted.
curl -X DELETE https://api.honkio.ca/v1/auth-apps/APP_ID/organizations/ORG_ID \
-H "Authorization: Bearer mk_test_YOUR_KEY"204 · Aucun contenu.
Lister les membres
GET/v1/auth-apps/:id/organizations/:orgId/memberships
Permission: auth_organizations: r
Les membres de l’organisation et leurs rôles. Le nom, le courriel et le téléphone de chaque membre (user) ne sont inclus que si votre clé peut aussi lire les utilisateurs (lecture de auth_users).
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/APP_ID/organizations/ORG_ID/memberships \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"data": [
{
"organization_id": "org_clxxxorgxxxxxxxxxxxxxxx",
"user_id": "usr_clxxxuserxxxxxxxxxxxxxx",
"role": "admin",
"last_used_at": null,
"created_at": "2026-11-02T15:04:05.000Z",
"updated_at": "2026-11-02T15:04:05.000Z",
"user": {
"name": "Olivia Tremblay",
"email": "olivia@northwind.ca",
"phone": null
}
}
],
"next_cursor": null
}Ajouter un membre
POST/v1/auth-apps/:id/organizations/:orgId/memberships
Permission: auth_organizations: w
Ajoute un utilisateur existant avec un rôle. Envoie membership.created.
Corps
| Nom | Type | Description |
|---|---|---|
| user_idobligatoire | string | L’identifiant de l’utilisateur (usr_…). |
| role | string | admin, member ou l’un de vos rôles. |
curl -X POST https://api.honkio.ca/v1/auth-apps/APP_ID/organizations/ORG_ID/memberships \
-H "Authorization: Bearer mk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"user_id": "usr_clxxxuserxxxxxxxxxxxxxx",
"role": "admin"
}'{
"organization_id": "org_clxxxorgxxxxxxxxxxxxxxx",
"user_id": "usr_clxxxuserxxxxxxxxxxxxxx",
"role": "admin",
"last_used_at": null,
"created_at": "2026-11-02T15:04:05.000Z",
"updated_at": "2026-11-02T15:04:05.000Z"
}Obtenir une adhésion
GET/v1/auth-apps/:id/organizations/:orgId/memberships/:userId
Permission: auth_organizations: r
Le rôle d’un utilisateur dans l’organisation.
curl https://api.honkio.ca/v1/auth-apps/APP_ID/organizations/ORG_ID/memberships/USER_ID \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"organization_id": "org_clxxxorgxxxxxxxxxxxxxxx",
"user_id": "usr_clxxxuserxxxxxxxxxxxxxx",
"role": "admin",
"last_used_at": null,
"created_at": "2026-11-02T15:04:05.000Z",
"updated_at": "2026-11-02T15:04:05.000Z"
}Changer le rôle d’un membre
PATCH/v1/auth-apps/:id/organizations/:orgId/memberships/:userId
Permission: auth_organizations: m
Les jetons portent le nouveau rôle dès le prochain renouvellement. Envoie membership.updated.
Corps
| Nom | Type | Description |
|---|---|---|
| roleobligatoire | string | admin, member ou l’un de vos rôles. |
curl -X PATCH https://api.honkio.ca/v1/auth-apps/APP_ID/organizations/ORG_ID/memberships/USER_ID \
-H "Authorization: Bearer mk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"role": "member"
}'{
"organization_id": "org_clxxxorgxxxxxxxxxxxxxxx",
"user_id": "usr_clxxxuserxxxxxxxxxxxxxx",
"role": "member",
"last_used_at": null,
"created_at": "2026-11-02T15:04:05.000Z",
"updated_at": "2026-11-02T15:04:05.000Z"
}Retirer un membre
DELETE/v1/auth-apps/:id/organizations/:orgId/memberships/:userId
Permission: auth_organizations: d
Son prochain renouvellement dans l’organisation échoue avec invalid_grant, d’ici 10 minutes. Envoie membership.deleted immédiatement.
curl -X DELETE https://api.honkio.ca/v1/auth-apps/APP_ID/organizations/ORG_ID/memberships/USER_ID \
-H "Authorization: Bearer mk_test_YOUR_KEY"204 · Aucun contenu.
Lister les rôles
GET/v1/auth-apps/:id/organizations/:orgId/roles
Permission: auth_organizations: r
admin, member et vos propres rôles.
curl https://api.honkio.ca/v1/auth-apps/APP_ID/organizations/ORG_ID/roles \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"data": [
{
"name": "admin",
"two_step_required": false
},
{
"name": "member",
"two_step_required": false
},
{
"name": "billing",
"two_step_required": true
}
]
}Créer ou modifier un rôle
PUT/v1/auth-apps/:id/organizations/:orgId/roles/:name
Permission: auth_organizations: m
Ajoute le rôle à l’organisation, ou change son exigence de deux étapes s’il existe. Le nom est dans le chemin.
Corps
| Nom | Type | Description |
|---|---|---|
| two_step_required | boolean | Exiger la vérification en deux étapes des membres ayant ce rôle. |
curl -X PUT https://api.honkio.ca/v1/auth-apps/APP_ID/organizations/ORG_ID/roles/ROLE_NAME \
-H "Authorization: Bearer mk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"two_step_required": true
}'{
"name": "billing",
"two_step_required": true
}Supprimer un rôle
DELETE/v1/auth-apps/:id/organizations/:orgId/roles/:name
Permission: auth_organizations: d
Retire un rôle que vous avez créé.
curl -X DELETE https://api.honkio.ca/v1/auth-apps/APP_ID/organizations/ORG_ID/roles/ROLE_NAME \
-H "Authorization: Bearer mk_test_YOUR_KEY"204 · Aucun contenu.
Lister les invitations
GET/v1/auth-apps/:id/invitations
Permission: auth_organizations: r
Les invitations en attente, acceptées et révoquées.
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/APP_ID/invitations \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"data": [
{
"id": "inv_clxxxinvitexxxxxxxxxxxxx",
"email": "grace@example.com",
"phone": null,
"organization_id": "org_clxxxorgxxxxxxxxxxxxxxx",
"role": "member",
"status": "pending",
"redirect_url": null,
"expires_at": "2026-11-09T15:04:05.000Z",
"accepted_at": null,
"accepted_user_id": null,
"revoked_at": null,
"created_at": "2026-11-02T15:04:05.000Z"
}
],
"next_cursor": null
}Créer une invitation
POST/v1/auth-apps/:id/invitations
Permission: auth_organizations: w
Envoie une invitation par courriel ou par texto. Elle ne sert qu’une fois, pendant 7 jours, et seulement pour l’identifiant invité.
Corps
| Nom | Type | Description |
|---|---|---|
| string | Le courriel à inviter. Envoyez ce champ ou phone. | |
| phone | string | Le numéro de mobile canadien à inviter, en E.164. Envoyez ce champ ou email. |
| organization_id | string | L’organisation à rejoindre à l’acceptation. |
| role | string | Le rôle dans cette organisation. |
| redirect_url | string | Où envoyer la personne après qu’elle accepte. L’une des URI de redirection de l’application. |
| locale | "en" | "fr" | La langue du courriel d’invitation. |
| send_email | boolean | Envoyer l’invitation par courriel. Mettez false pour partager vous-même le lien renvoyé. |
curl -X POST https://api.honkio.ca/v1/auth-apps/APP_ID/invitations \
-H "Authorization: Bearer mk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "grace@example.com",
"organization_id": "org_clxxxorgxxxxxxxxxxxxxxx",
"role": "member"
}'{
"id": "inv_clxxxinvitexxxxxxxxxxxxx",
"email": "grace@example.com",
"phone": null,
"organization_id": "org_clxxxorgxxxxxxxxxxxxxxx",
"role": "member",
"status": "pending",
"redirect_url": null,
"expires_at": "2026-11-09T15:04:05.000Z",
"accepted_at": null,
"accepted_user_id": null,
"revoked_at": null,
"created_at": "2026-11-02T15:04:05.000Z",
"url": "https://login-dev.acme.ca/invitations/xxxxxxxxxxxxxxxxxxxxxxxx"
}Obtenir une invitation
GET/v1/auth-apps/:id/invitations/:invitationId
Permission: auth_organizations: r
Son statut : pending, accepted, revoked ou expired.
curl https://api.honkio.ca/v1/auth-apps/APP_ID/invitations/INVITATION_ID \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"id": "inv_clxxxinvitexxxxxxxxxxxxx",
"email": "grace@example.com",
"phone": null,
"organization_id": "org_clxxxorgxxxxxxxxxxxxxxx",
"role": "member",
"status": "pending",
"redirect_url": null,
"expires_at": "2026-11-09T15:04:05.000Z",
"accepted_at": null,
"accepted_user_id": null,
"revoked_at": null,
"created_at": "2026-11-02T15:04:05.000Z"
}Révoquer une invitation
DELETE/v1/auth-apps/:id/invitations/:invitationId
Permission: auth_organizations: d
Le lien cesse de fonctionner. Renvoie l’invitation révoquée.
curl -X DELETE https://api.honkio.ca/v1/auth-apps/APP_ID/invitations/INVITATION_ID \
-H "Authorization: Bearer mk_test_YOUR_KEY"{
"id": "inv_clxxxinvitexxxxxxxxxxxxx",
"email": "grace@example.com",
"phone": null,
"organization_id": "org_clxxxorgxxxxxxxxxxxxxxx",
"role": "member",
"status": "revoked",
"redirect_url": null,
"expires_at": "2026-11-09T15:04:05.000Z",
"accepted_at": null,
"accepted_user_id": null,
"revoked_at": "2026-11-03T10:00:00.000Z",
"created_at": "2026-11-02T15:04:05.000Z"
}
HonkIO