---
title: "List the SIP lines of the company"
method: GET
path: "/api/v1/extensions"
tags: ["Telecom"]
---

# List the SIP lines of the company

`GET /api/v1/extensions`

## 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/extensions`
- Auth: API key in header `X-API-Key`

Everything the company has in the telephony switch right now, of all three types, plus the plan quotas beside it. Deprovisioned lines are left out — they no longer exist in the switch and offering them as "what you have" would be a lie. Not paginated: the count is capped by the plan and measured in tens, and a caller usually wants the whole picture to answer one question — is there a free line. The SIP password is not part of the answer and cannot be obtained through this API at all.

## Response `200`

The lines and the quotas.

- object
  - `data` Extension[]
    - `uuid` string, uuid: Stable identifier — every extension endpoint takes this.
    - `extension` string: The line number inside the company. This is the same string that lands in the recipient's internal_sip contact.
    - `type` 'operator' | 'notification' | 'webrtc': `operator` — a SIP line a recipient registers a phone to, and the only type this API hands out. `notification` — the company's outbound bot line, provisioned automatically, one per company. `webrtc` — a browser softphone for a team member, allocated in the dashboard.
    - `status` 'provisioning' | 'active' | 'suspended': `active` — usable. `provisioning` — being set up in the telephony switch. `suspended` — temporarily off. Deprovisioned lines are not listed at all.
    - `caller_id` string, nullable: How the company presents itself on an outbound call placed from this line.
    - `did_number` string, nullable: External number wired to this line for inbound calls, if any. Allocated from the shared pool when the line is created, not bought.
    - `recipient` object, nullable: The person this line rings. Null means the line is free and can be handed to somebody.
      - `uuid` string, uuid
      - `name` string
    - `user` object, nullable: The team member owning this browser softphone. Only ever set on `webrtc` lines.
      - `uuid` string, uuid
      - `name` string
    - `provisioned_at` string, date-time, nullable
    - `last_registered_at` string, date-time, nullable: When a SIP device last registered to this line. Null on a line nobody has ever connected a phone to — worth checking before trusting it to wake somebody.
  - `meta` object
    - `limits` object: Plan quotas and current usage per line type, plus the cap on simultaneous calls. Read `can_add_operator` before asking for a line — a refusal after the fact costs a round trip.
      - `max_operators` integer
      - `current_operators` integer
      - `can_add_operator` boolean
      - `max_notifications` integer
      - `current_notifications` integer
      - `max_webrtc` integer
      - `current_webrtc` integer
      - `can_add_webrtc` boolean
      - `max_concurrent_calls` integer

## Other responses

- `401`: API key missing, invalid, revoked or expired.
- `403`: API key lacks the config.read ability.

---

[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)
