Activate a connection

POST /v1/connections/{connection_id}:activate · permission connections:write

Sets the connection status to active. The request body is optional and has no fields. The operation is idempotent: if the connection already has this status nothing is written, the version is unchanged and the current connection is returned. If-Match is not used; if another writer changes the connection at the same moment the call is retried a few times. Activating an enterprise (SAML or OIDC) connection requires a successful test sign-in in the last 24 hours that covered the current protocol configuration and the allowed_email_domains the connection will have; otherwise the call returns 409 connection_test_required and nothing is written. If the check cannot be made, the connection is not activated and the call returns 503. Other connection types are not checked.

Request

Field Type Required Description
connection_id string yes Connection identifier (conn_…).
Idempotency-Key header no Optional key (16-64 characters) that makes a retried request safe.

The body is optional; if present it must be {}.

Response

200 OK with the connection and its ETag.

{
  "id": "conn_0k3v8m1q2x9dz4h7s5t6w0y1ab",
  "key": "google",
  "type": "social",
  "strategy": "google",
  "name": "Google",
  "display_name": "Sign in with Google",
  "status": "active",
  "org_id": null,
  "allowed_email_domains": [],
  "allow_external_domains": false,
  "jit_mode": null,
  "email_trust": null,
  "default_role_ids": [],
  "trust_idp_mfa": null,
  "allow_idp_initiated": null,
  "idp_initiated_default_application_id": null,
  "idp_initiated_allowed_application_ids": [],
  "settings": {},
  "created_at": "2026-10-05T09:30:00.123456Z",
  "updated_at": "2026-10-05T09:30:00.123456Z"
}

Errors

HTTP code When
400 unknown_field The body contains a field.
404 not_found The connection does not exist or belongs to another environment.
409 connection_test_required An enterprise connection has no successful test of its current configuration in the last 24 hours. Run a test sign-in, then retry.
412 precondition_failed The connection kept changing concurrently; retry.
401 unauthenticated The credential is missing, invalid or revoked.
403 insufficient_permissions The credential lacks the required permission.
429 rate_limited The rate limit was exceeded; retry after the Retry-After period.
503 service_unavailable A dependency is temporarily unavailable; retry after the Retry-After period.

Example

curl -X POST https://api.eu.keenauth.com/v1/connections/conn_0k3v8m1q2x9dz4h7s5t6w0y1ab:activate \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"