---
title: "Search numbers (advanced)"
method: GET
path: "/api/v2/numbers/search"
tags: ["Numbers & Inventory"]
---

# Search numbers (advanced)

`GET /api/v2/numbers/search`

## Request

- Base URL: `https://app.didlogic.com`
- URL: `https://app.didlogic.com/api/v2/numbers/search`
- Auth: HTTP bearer

Advanced search for available DID numbers with multiple filter criteria.

**Important notes:**
- Supports pagination (page, per_page parameters)
- All filter parameters are optional
- Combine multiple filters for precise results
- Use for complex search scenarios beyond location-based browsing

**When to use:**
- Implementing vanity number search
- Finding numbers with specific features
- Custom number selection interfaces
- Bulk number lookup

`dids.dids[].id` feeds numbers_purchase_create (`id_in`). `dids.dids[].number` feeds
numbers_purchase_create (`did_numbers`). See also: numbers_countries_cities_dids_index.

## Query parameters

- `id_in` integer
- `number_in` string
- `number_contains` integer
- `begins_with` integer
- `ends_with` integer
- `city_name_contains` string
- `country_name_contains` string
- `state_name_contains` string
- `sms_enabled` string
- `no_local_cli` string
- `vendor_id` integer
- `city_id` integer
- `region_id` integer
- `require_docs` integer
- `commitment_months` integer
- `cheap_sorting` string
- `page` integer
- `per_page` integer

## Response `200`

returns search results

- object
  - `dids` object, required: Paginated search results
    - `pagination` object, required: Pagination metadata
      - `total` integer, required: Total number of items
      - `total_pages` integer, required: Total number of pages
      - `current_page` integer, required: Current page number
    - `dids` object[], required: Array of available DID numbers
      - `id` integer, required: DID identifier
      - `country` string, required: Country name
      - `city` string, required: City name
      - `sms_enabled` boolean, required: Whether SMS is available for this number
      - `no_local_cli` boolean, required: Whether number does not support local caller ID
      - `channels` integer, required: Maximum simultaneous calls
      - `free_min` integer, required: Free minutes included per month
      - `cnam` boolean, required: Caller Name (CNAM) support
      - `commitment_months` integer, required: Minimum service term in months
      - `required_documents` object[], required: List of required documents for this number
        - `type` integer, required: Document type ID
        - `name` string, required: Document type name
      - `activation` number, float, required: One-time activation fee (USD)
      - `monthly` number, float, required: Monthly recurring fee (USD)
      - `per_minute` number, float, required: Per-minute inbound call rate (USD)
      - `origination_per_min` unknown, required
      - `state` string, required: State name (if applicable)
      - `country_short_name` string, required: ISO country code
      - `number` string, required: Phone number
      - `never_sold` integer, required: Whether number has never been sold before (1=yes, 0=no)
      - `call_recording_enabled` boolean, required

## Other responses

- `401`: returns unauthorized
- `403`: returns forbidden

---

[API](https://skmtc.dev/didlogic/apis/get-started.md) · [All operations](https://skmtc.dev/didlogic/apis/get-started/llms.txt) · [OpenAPI document](https://skmtc.dev/didlogic/apis/get-started/revisions/dc972d592b34?raw)
