---
title: "Bind logins to recipients"
method: PUT
path: "/api/v1/observability/integrations/{integration}/login-map"
tags: ["Observability integrations"]
---

# Bind logins to recipients

`PUT /api/v1/observability/integrations/{integration}/login-map`

## Request

- Base URL: `https://wardenpoint.com` (the document declares no server; this is the origin it was published from)
- URL: `https://wardenpoint.com/api/v1/observability/integrations/{integration}/login-map`
- Auth: API key in header `X-API-Key`

Binds the logins you send and leaves every other one alone. Despite the verb this is NOT a full replacement: the map keeps filling itself while you work, and replacing it wholesale would erase logins that arrived between reading and writing. Send `null` as the value to unbind a login.

A login that is not in the map yet is created by this call, so bindings can be set before the first event names that person. Spelling is on you: the login must match what the source sends, and a typo binds a person who will never be named. Comparison ignores case.

A recipient uuid from another company, a system recipient or a deleted one is refused with 422 — a binding that silently stored nothing would read as done and page nobody.

The response is the whole map, not the part you sent, so one call both binds and shows who is still unbound.

## Path parameters

- `integration` string, uuid, required

## Request body

- object
  - `logins` object, required: Login → recipient UUID, or login → null to unbind. At most 500 entries; a login may hold letters, digits, dot, hyphen and underscore.

## Response `200`

The whole map after the change, unbound logins first.

- object
  - `data` LoginMapEntry[]
    - `username` string: The login as the source spells it, without a leading `@`.
    - `recipient_uuid` string, uuid, nullable: Recipient this login pages, or null when unbound.
    - `recipient_name` string, nullable: Display name of that recipient, or null when unbound.

## Other responses

- `401`: API key missing, invalid, revoked or expired.
- `403`: API key lacks config.write, or the integration belongs to another company.
- `404`: No integration with this UUID, or its type does not name people and therefore has no login map.
- `422`: The `logins` field is missing or is not an object, holds more than 500 entries, a login uses characters outside the allowed set, or a value is not a recipient of this company.

---

[API](https://skmtc.dev/wardenpoint/apis/wardenpoint-api.md) · [All operations](https://skmtc.dev/wardenpoint/apis/wardenpoint-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wardenpoint/apis/wardenpoint-api/revisions/259ee445728e?raw)
