---
title: "Claim an unresolved contact address"
method: POST
path: "/contact_addresses/{id}/claim"
tags: ["Contact"]
---

# Claim an unresolved contact address

`POST /contact_addresses/{id}/claim`

Attaches a currently-unresolved contact address (contact_id is NULL) to the given contact. Idempotent if already claimed by the same contact.
Default behavior (force absent or false): unchanged from before — returns 409 (Conflict) if the address is already claimed by a different, still-active (non-tombstoned) contact. Existing callers are unaffected.
force: true (new): if the address is already claimed by a different, still-active contact, the claim overwrites that ownership instead of returning 409 — the previous owner's open ownership period is closed and a new one is opened for the requesting contact. Addresses owned by a tombstoned (soft-deleted) contact are repaired in place exactly as before, regardless of force.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `contact_id` string, uuid, required
  - `force` boolean — When true, overwrite ownership even if the address is currently claimed by a different, still-active contact (no 409). Defaults to false, which preserves the original claim behavior. Has no effect when the address is unresolved or already owned by the requesting contact.

## Response `200`

Address claimed successfully.

- ContactManagerAddress — Contains source or destination detail info.
  - `type` '' | 'agent' | 'conference' | 'email' | 'extension' | 'line' | 'sip' | 'tel' | 'web_session' — Type of address.
  - `target` string — The address endpoint. Format depends on type: phone number for tel (e.g. +14155551234), UUID for agent/conference/extension, email for email, SIP URI for sip.
  - `target_name` string — Address's name.
  - `name` string — Optional label for this address.
  - `detail` string — Additional notes about this address.
  - `id` string, uuid — Unique identifier for the address.
  - `contact_id` string, uuid — Unique identifier of the contact this address belongs to.
  - `customer_id` string, uuid — Unique identifier of the customer this address belongs to.
  - `is_primary` boolean — Indicates if this is the primary address for the given type.
  - `tm_create` string, date-time — Timestamp when the address was created.

## Other responses

- `400` — Invalid request (INVALID_ARGUMENT).
- `401` — Authentication required (UNAUTHENTICATED).
- `403` — Insufficient permission (PERMISSION_DENIED).
- `404` — Resource not found (NOT_FOUND).
- `409` — State conflict (ALREADY_EXISTS or FAILED_PRECONDITION).
- `500` — Internal error (INTERNAL).

## Changes

- **2026-07-26** `d5569b315411` — 1 warning, 1 info
  - added the new `web_session` enum value to the `allOf[#/components/schemas/CommonAddress]/type` response property for the response status `200`
  - added the new optional request property `force`
- **2026-07-01** `505b7c32e910` — 1 info
  - endpoint added
- **2026-05-30** `995c56ba9219` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/voipbin/apis/voipbin-api/changes/contact_addresses/:id/claim/post.md)

---

[API](https://skmtc.dev/voipbin/apis/voipbin-api.md) · [All operations](https://skmtc.dev/voipbin/apis/voipbin-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/voipbin/voipbin-api/revisions/6acd77e2f160/schema)
