Replace an application's connections

PUT /v1/applications/{application_id}/connections · permissions applications:write and connections:write

Replaces the whole list of connections enabled on the application in one step. The order of connection_ids is the order of the buttons on the hosted login page; an empty list disables every connection. Each connection must exist in the same environment: a connection of another environment is treated like one that does not exist (422 at /connection_ids) and nothing is written. Sending the list the application already has changes nothing and keeps the version. The change is written to the management audit log as application.updated and published as an application_changed event; removing a connection takes effect at the next sign-in.

Request

Headers: If-Match: "<version>" (optional). With If-Match the list is only written if the application is still at that version (412 otherwise); without it the list is written whatever the version is. Send an Idempotency-Key header to make retries safe.

Parameter In Required Description
application_id path yes Application id, prefixed app_.

Body

Field Type Required Description
connection_ids array of string yes Connection ids (conn_…), unique, at most 100, in button order.

Response

200 OK with the application and its new ETag.

Errors

Every error is an application/problem+json body with a stable code.

HTTP code When
400 malformed_request, unknown_field The body is not valid JSON or has an unknown field.
401 unauthenticated The API key is missing, invalid or revoked.
403 insufficient_permissions The key lacks applications:write or connections:write.
404 not_found The application does not exist in this environment (or the id is malformed).
412 precondition_failed The version in If-Match is stale.
422 validation_failed connection_ids is missing, has more than 100 items, a malformed or repeated id, or a connection that is not in this environment.
429 rate_limited The rate limit was exceeded; honor Retry-After.
503 service_unavailable A dependency is temporarily unavailable; retry later.

Example

curl -X PUT https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg/connections \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"connection_ids":["conn_01h455vb4pex5vsknk084sn02q"]}'

CLI: keenauth applications put-connections app_6f8d0cjgbmf0gtn2rg6pscp3cg --connection-ids conn_01h455vb4pex5vsknk084sn02q (to disable every connection, send {"connection_ids":[]} with --data -)