> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wavix.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bulk update phone numbers

> Applies the same changes to every listed phone number. Only the provided fields are changed. Destination and SMS callback changes are applied asynchronously and may not be reflected in the response immediately.



## OpenAPI

````yaml https://wavix.github.io/wavix-openapi/wavix-api.yaml patch /v1/numbers
openapi: 3.1.0
info:
  title: Wavix APIs
  description: >-
    Wavix provides robust APIs that let you integrate voice and text messaging
    features directly into your app. Send text, place calls, and access detailed
    reports  programmatically.
  termsOfService: https://wavix.com/terms-and-conditions
  license:
    name: MIT
    identifier: MIT
  contact:
    name: Wavix
    url: https://wavix.com
    email: support@wavix.com
  version: '1.0'
servers:
  - url: https://api.wavix.com
    description: https://api.wavix.com
    variables: {}
security:
  - bearerAuth: []
tags:
  - name: SIP trunks
    description: SIP trunks
  - name: Buy
    description: Numbers
  - name: Cart
    description: Numbers
  - name: My numbers
    description: Numbers
  - name: Billing
    description: Billing, transactions, and invoices
  - name: Profile
    description: Account profile and customer information
  - name: CDRs
    description: Call detail records and call history
  - name: Speech Analytics
    description: Call transcription and speech analytics
  - name: SMS and MMS
    description: Messaging
  - name: Number Validator
    description: Phone number validation
  - name: Link shortener
    description: Short link and click metrics
  - name: 2FA
    description: Two-factor authentication
  - name: 10DLC
    description: 10DLC Campaigns and Brands
  - name: API Keys
    description: API key management
  - name: Call webhooks
    description: Webhook configuration for call events
  - name: Call control
    description: Programmable Voice
  - name: Call streaming
    description: Real-time call audio streaming over WebSocket
  - name: Call recording
    description: Call recording
  - name: Sub-accounts
    description: Sub-account management
  - name: Voice campaigns
    description: Outbound voice campaigns
  - name: Wavix Embeddable
    description: WebRTC embeddable widget
paths:
  /v1/numbers:
    patch:
      tags:
        - My numbers
      summary: Bulk update phone numbers
      description: >-
        Applies the same changes to every listed phone number. Only the provided
        fields are changed. Destination and SMS callback changes are applied
        asynchronously and may not be reflected in the response immediately.
      operationId: numbers_bulk_update
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NumberBulkUpdateRequest'
        required: true
      responses:
        '200':
          description: Returns the updated phone numbers.
          headers: {}
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Number'
                    description: The updated phone numbers.
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '403':
          $ref: '#/components/responses/ForbiddenErrorResponse'
        '404':
          $ref: '#/components/responses/NotFoundErrorResponse'
      deprecated: false
      security:
        - bearerAuth:
            - numbers:write
components:
  schemas:
    NumberBulkUpdateRequest:
      title: NumberBulkUpdateRequest
      type: object
      required:
        - ids
      additionalProperties: false
      description: >-
        A single patch applied to every listed phone number. All mutable fields
        are optional.
      properties:
        ids:
          type: array
          items:
            type: integer
          description: |-
            Numbers (by ID) to apply the patch to. The same patch is
            applied to every listed number.
          example:
            - 123
            - 456
        sms_enabled:
          type: boolean
          description: Indicates whether SMS is enabled for the phone numbers.
          example: true
        destinations:
          type: array
          items:
            $ref: '#/components/schemas/NumberDestination'
          description: Inbound call routing destinations for the phone numbers.
        sms_relay_url:
          type: string
          format: uri
          description: Callback URL for inbound messages.
          example: https://your-site.com/sms
        call_recording_enabled:
          type: boolean
          description: Indicates whether call recording is enabled.
          example: true
        transcription_enabled:
          type: boolean
          description: Indicates whether call transcription is enabled.
          example: true
        transcription_threshold:
          type: integer
          description: Minimum call duration in seconds before transcription runs.
          example: 30
        call_status_url:
          type: string
          format: uri
          description: Callback URL for call status updates.
          example: https://your-site.com/calls
    Number:
      title: Number
      required:
        - id
        - number
        - activation_fee
        - monthly_fee
        - per_min
        - city
        - country
        - country_short_name
        - destination
        - channels
        - require_docs
        - documents
        - label
        - status
        - seconds
        - added
        - paid_until
        - sms_enabled
        - sms_relay_url
        - cnam
        - call_recording_enabled
        - transcription_enabled
        - transcription_threshold
        - domestic_cli
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          format: int32
          description: Phone number ID.
          example: 123
        number:
          type: string
          description: Phone number.
          example: '12565378257'
        activation_fee:
          type: string
          description: One-time activation fee in USD.
          example: '0.99'
        monthly_fee:
          type: string
          description: Monthly fee in USD.
          example: '0.99'
        per_min:
          type: string
          description: Price per inbound minute in USD.
          example: '0.01'
        city:
          type: string
          description: City or rate center where the phone number originates.
          example: DETROIT, MI
        state:
          type:
            - string
            - 'null'
          description: >-
            State where the phone number originates. For non-US numbers, this
            field may be null.
        country:
          type: string
          description: Country where the phone number originates.
          example: United States
        country_short_name:
          type: string
          description: Two-letter ISO country code.
          example: US
        destination:
          type: array
          items:
            $ref: '#/components/schemas/InboundCallDestination'
          description: Inbound call destinations set for the phone number.
        channels:
          type: integer
          format: int32
          description: Maximum number of concurrent inbound calls.
          example: 24
        require_docs:
          type: array
          items:
            type: string
          description: Documents required to activate the phone number.
          example:
            - '1'
        documents:
          type: array
          items:
            $ref: '#/components/schemas/NumberDocument'
          description: Uploaded documents for the phone number.
        domestic_cli:
          type: boolean
          description: >-
            Indicates whether the number can be used as the Caller ID for local
            calls.
        free_min:
          type: integer
          description: Number of free inbound minutes.
        unlimited:
          type: boolean
          description: Indicates whether usage is unlimited.
        label:
          type:
            - string
            - 'null'
          description: Label assigned to the phone number.
        status:
          type: string
          description: >-
            Phone number status. `active` means the number can receive and place
            calls; `inactive` means it cannot.
        seconds:
          type: string
          description: Total inbound call duration in seconds for current month.
        added:
          type: string
          format: date-time
          description: Date and time the phone number was purchased in ISO 8601 format.
          example: '2023-04-10T06:42:59.000Z'
        paid_until:
          type: string
          format: date
          description: Date until which the number is paid.
          example: '2023-12-07'
        sms_enabled:
          type: boolean
          description: Indicates whether SMS is enabled.
          example: false
        sms_relay_url:
          type:
            - string
            - 'null'
          description: Callback URL for inbound SMS and MMS messages.
          example: https://your-website.com/webhook
        cnam:
          type:
            - boolean
            - 'null'
          description: Indicates whether CNAM is enabled.
          example: true
        call_recording_enabled:
          type: boolean
          description: Indicates whether call recording is enabled.
          example: true
        transcription_enabled:
          type: boolean
          description: Indicates whether transcription is enabled.
          example: true
        transcription_threshold:
          type: integer
          format: int32
          description: Minimum call duration in seconds to trigger transcription.
          example: 6
        call_status_url:
          type:
            - string
            - 'null'
          description: Callback URL for call status updates.
          example: https://example.com
    NumberDestination:
      title: NumberDestination
      required:
        - destination
        - priority
        - transport
      type: object
      additionalProperties: false
      properties:
        destination:
          type: string
          description: SIP URI, PSTN number, or SIP trunk login for inbound call routing.
          example: '[did]@sipuri.com'
        priority:
          type: integer
          format: int32
          description: Destination priority (lower is higher priority).
          example: 1
        transport:
          $ref: '#/components/schemas/InboundCallTransport'
        trunk_id:
          type:
            - integer
            - 'null'
          format: int32
          description: SIP trunk ID when `transport` is 5, otherwise null.
          example: 23123
      description: Inbound call destination
      example:
        destination: '32882'
        priority: 1
        transport: 5
        trunk_id: 3107
    InboundCallDestination:
      title: InboundCallDestination
      required:
        - id
        - destination
        - priority
        - transport
        - trunk_id
        - trunk_label
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: Unique identifier of the inbound call destination
          format: int32
          example: 1
        destination:
          type: string
          description: >-
            The destination for inbound call routing. Can be either a SIP URI, a
            PSTN phone number or system-generated login of a SIP trunk on the
            platform.
          example: '[did]@sipuri.com'
        priority:
          type: integer
          description: >-
            For phone numbers with several destinations, sets the order in which
            the platform routes inbound calls. The lower the value, the higher
            the priority.
          format: int32
          example: 1
        transport:
          $ref: '#/components/schemas/InboundCallTransport'
        trunk_id:
          type:
            - integer
            - 'null'
          description: >-
            Unique identified of a SIP trunk on the platform. In cases when
            `transport:5`, otherwise, `null`
          format: int32
          example: 23123
        srtp:
          type: boolean
          description: >-
            Indicates whether SRTP media encryption is enabled for this
            destination.
          example: false
        trunk_label:
          type:
            - string
            - 'null'
          description: >-
            A user-defined name of a SIP trunk on the platform. In cases when
            `transport:5`, otherwise, `null`
          example: My trunk
      description: Inbound call destination
    NumberDocument:
      title: NumberDocument
      required:
        - id
        - allow_replace
        - did_number
        - doc_content_type
        - doc_file_name
        - doc_type_id
        - status
        - url
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: Unique identifier of the uploaded document
          format: int32
          example: 1
        allow_replace:
          type: boolean
          description: >-
            Indicates whether the document can be replaced. Only documents with
            `rejected` status can be replaced.
          example: false
        did_number:
          type: string
          description: The phone number the document was uploaded for
          example: '12565378257'
        doc_content_type:
          type: string
          description: The uploaded content type identified by the platform
          example: image/png
        doc_file_name:
          type: string
          description: The uploaded document name
          example: Copy of ID.png
        doc_type_id:
          $ref: '#/components/schemas/DocumentTypeID'
        status:
          type: string
          description: >-
            Status of the uploaded document. Can be either `approved`,
            `pending`, or `rejected`
        url:
          type: string
          description: A link to the uploaded document
          example: https://api.wavix.com/v1/numbers/24882/papers/1"
      description: A document uploaded for a phone number
      example:
        id: 423
        allow_replace: false
        did_number: '12565378257'
        doc_content_type: image/png
        doc_file_name: Copy of ID.png
        doc_type_id: 1
        status: approved
        url: https://api.wavix.com/v1/numbers/24882/papers/1
    ValidationErrorResponse:
      title: ValidationErrorResponse
      type: object
      properties:
        success:
          type: boolean
          description: >-
            Indicates whether the request was successful. Always `false` for
            this error.
          example: false
        message:
          type: string
          description: >-
            Human-readable description naming the missing or invalid request
            parameter.
          example: Missing or invalid parameter <param_name>
    ForbiddenErrorResponse:
      title: ForbiddenErrorResponse
      type: object
      properties:
        success:
          type: boolean
          description: >-
            Indicates whether the request was successful. Always `false` for
            this error.
          example: false
        message:
          type: string
          description: Human-readable description of why access is forbidden.
          example: The service is not provisioned for your account.
    NotFoundErrorResponse:
      title: NotFoundErrorResponse
      type: object
      properties:
        success:
          type: boolean
          description: >-
            Indicates whether the request was successful. Always `false` for
            this error.
          example: false
        message:
          type: string
          description: >-
            Human-readable description stating that no resource matches the
            given ID.
          example: Record not found
    InboundCallTransport:
      title: InboundCallTransport
      enum:
        - 1
        - 4
        - 5
      type: integer
      description: >-
        Transport used to route the inbound call to its destination. One of `1`
        (SIP URI), `4` (PSTN phone number), or `5` (SIP trunk on the platform).
    DocumentTypeID:
      title: DocumentTypeID
      enum:
        - 1
        - 2
        - 3
      type: integer
      description: >-
        Specifies the type of document required to activate the phone number.

        Possible values are: `1` - Proof of identity, `2` - Proof of address,
        `3` - Proof of business registration.
  responses:
    BadRequestErrorResponse:
      description: Request failed. Missing or invalid parameter <param_name>
      headers: {}
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorResponse'
    ForbiddenErrorResponse:
      description: Request failed. The feature is disabled for your account.
      headers: {}
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenErrorResponse'
    NotFoundErrorResponse:
      description: Request failed. An object with the specified ID is not found.
      headers: {}
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NotFoundErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Wavix API key. Pass as `Authorization: Bearer <api_key>`. Keys support
        per-resource scopes (none / read / write). See [Restricted keys and
        scopes](https://docs.wavix.com/api-reference/authentication#restricted-keys-and-scopes).

````