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

# Modifier une boîte de réception

> Updates the fields sent and leaves the others unchanged. Use `notifications_muted` to mute or unmute the inbox. Sending `sources` replaces the whole list. For a teammate's inbox, send `user_id` in the body. Size limits (`name` over 80 characters, `emoji` over 16, more than 100 sources or 10 conditions per source) return `400` `INVALID_REQUEST_BODY` with `field_errors`. A menu path not listed by the line's `menu_options`, or a null source, condition or digit, returns `400` `INVALID_INBOX_SOURCE`. Menu conditions are only accepted on a line whose `menu_options` list is not empty, with paths from that list; on other lines use a whole-line source (empty `conditions`). With `user_id`, an inbox with no source in a workspace the caller manages returns `404`, and `sources` replaces only the lines in the caller's workspaces: the teammate's other-workspace lines are kept.

> [!NOTE]
>
> **Scope requis :** `INBOXES_WRITE`

## Comportement

Modifie seulement les champs envoyés et retourne la boîte. Envoyer `sources` remplace toute la liste. Envoyer `filters` remplace les filtres enregistrés, et `"filters": null` les efface. Les réglages À traiter et Les miennes de la boîte dans l'app sont conservés dans les deux cas. Envoyer `"emoji": ""` efface l'emoji. Un emoji absent ou `null` le conserve.

Pour couper les notifications d'une boîte, envoyez `{"notifications_muted": true}`. Pour les réactiver, envoyez `false`.

Envoyez `user_id` dans le corps JSON pour modifier la boîte d'un coéquipier. Seuls les admins et managers de l'espace de travail du coéquipier peuvent le faire. Une boîte sans source dans un espace de travail que l'appelant gère retourne une erreur `404`. Envoyer `sources` remplace seulement les lignes des espaces de l'appelant : les lignes du coéquipier dans d'autres espaces sont conservées.

## Erreurs

| Statut | Code | Quand |
| - | - | - |
| `400` | `INBOX_NAME_REQUIRED` | `name` est envoyé vide |
| `400` | `INVALID_INBOX_SOURCE` | Une source, une condition ou une touche est nulle ou invalide, un chemin de menu n'est pas dans les [options de menu](https://help.withallo.com/fr/v2/api-reference/inboxes/list-menu-options.md) de cette ligne, deux sources ont le même `allo_number`, ou une boîte de coéquipier n'aurait plus aucune ligne dans l'espace de travail de l'appelant |
| `400` | `INVALID_REQUEST_BODY` | `name` dépasse 80 caractères, `emoji` dépasse 16, plus de 100 sources, ou plus de 10 conditions dans une source. `field_errors` nomme chaque champ |
| `400` | `INVALID_INBOX_FILTERS` | `filters` contient une clé inconnue ou une valeur invalide |
| `403` | `FORBIDDEN` | `user_id` est renseigné et l'appelant n'est ni admin ni manager de l'espace de travail de ce coéquipier |
| `403` | `ALLO_NUMBER_FORBIDDEN` | Une ligne source n'est pas accessible au propriétaire de la boîte, ou, avec `user_id`, n'est pas dans un espace de travail que l'appelant gère |
| `404` | `INBOX_NOT_FOUND` | Aucune boîte avec cet ID n'appartient au propriétaire, ou, avec `user_id`, elle n'a aucune source dans un espace de travail que l'appelant gère |


## OpenAPI

````yaml PATCH /v2/api/inboxes/{inbox_id}
openapi: 3.0.3
info:
  title: Allo API
  description: >-
    Allo API provides programmatic access to your Allo account, allowing you to
    manage webhooks, retrieve calls and contacts, and send SMS messages.


    All requests to `/v1/api/**` endpoints automatically go through quota
    checking and scope validation.
  version: 1.0.0
  contact:
    name: Allo Support
servers:
  - url: https://api.withallo.com
    description: Production server
security: []
tags:
  - name: Summary Templates
    description: >-
      Manage call summary templates that control how AI-generated call summaries
      are structured for your team.
  - name: Webhooks
    description: >-
      Manage webhook endpoints to receive real-time notifications about events
      in your Allo account. Each endpoint subscribes to one or more event topics
      and is verified with a signing secret.
  - name: Calls
    description: >-
      Retrieve and search call records with filtering and pagination. Filter
      calls by your Allo phone number.
  - name: Contacts
    description: >-
      Search and retrieve contact information with sorting and pagination.
      Includes engagement level tracking.
  - name: SMS
    description: Send SMS messages to phone numbers using your Allo numbers.
  - name: Phone Numbers
    description: Retrieve information about your Allo phone numbers.
  - name: Analytics
    description: Pre-computed call metrics, team performance, and outbound dial funnel
  - name: CRM
    description: Manage people, companies, and deals in your CRM.
  - name: Notes
    description: >-
      Internal team notes on conversations and CRM people, with @mention
      support. Notes are never visible to the contact.
  - name: Threads
    description: >-
      Team discussion threads attached to a conversation item (call, SMS, or
      conversation note). One thread per item.
  - name: AI Receptionist
    description: >-
      Read and write the AI receptionist configuration of a phone line: business
      details, voice, prompt, capabilities, business hours, transfer rules,
      scheduling calendars and knowledge sources.
  - name: Inboxes
    description: >-
      Personal inboxes: saved views of one or more lines, optionally narrowed to
      phone-menu options, with their own filters and notification setting.
paths:
  /v2/api/inboxes/{inbox_id}:
    patch:
      tags:
        - Inboxes
      summary: Update inbox
      description: >-
        Updates the fields sent and leaves the others unchanged. Use
        `notifications_muted` to mute or unmute the inbox. Sending `sources`
        replaces the whole list. For a teammate's inbox, send `user_id` in the
        body. Size limits (`name` over 80 characters, `emoji` over 16, more than
        100 sources or 10 conditions per source) return `400`
        `INVALID_REQUEST_BODY` with `field_errors`. A menu path not listed by
        the line's `menu_options`, or a null source, condition or digit, returns
        `400` `INVALID_INBOX_SOURCE`. Menu conditions are only accepted on a
        line whose `menu_options` list is not empty, with paths from that list;
        on other lines use a whole-line source (empty `conditions`). With
        `user_id`, an inbox with no source in a workspace the caller manages
        returns `404`, and `sources` replaces only the lines in the caller's
        workspaces: the teammate's other-workspace lines are kept.
      operationId: updateInbox
      parameters:
        - name: inbox_id
          in: path
          required: true
          description: Inbox ID (`inb-*`).
          schema:
            type: string
            example: inb-abc123
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 80
                  example: Sales
                  description: Cannot be blank.
                emoji:
                  type: string
                  nullable: true
                  maxLength: 16
                  description: '`""` clears the emoji. Absent or `null` keeps it.'
                  example: 💼
                sources:
                  type: array
                  maxItems: 100
                  items:
                    $ref: '#/components/schemas/InboxSourceInput'
                  description: >-
                    Replaces the whole list. With `user_id`, only the lines in
                    the caller's workspaces are replaced.
                filters:
                  allOf:
                    - $ref: '#/components/schemas/InboxFilters'
                  nullable: true
                  description: >-
                    Replaces the saved filters. `null` clears them, absent keeps
                    them. The app's Needs action and Mine settings are kept
                    either way.
                notifications_muted:
                  type: boolean
                  example: false
                user_id:
                  type: string
                  description: >-
                    Update this teammate's inbox (`usr-*`). The caller must be
                    an admin or manager of that teammate's workspace.
                  example: usr-abc123
            example:
              notifications_muted: true
      responses:
        '200':
          description: Inbox updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Inbox'
              example:
                data:
                  id: inb-abc123
                  name: Sales
                  emoji: 💼
                  sources:
                    - allo_number: '+33612345678'
                      conditions:
                        - type: MENU_BRANCH
                          branches:
                            - - node_id: node-1
                                digit: '1'
                              - node_id: node-3
                                digit: '2'
                          include_no_choice: false
                  filters:
                    types:
                      - INBOUND_CALL
                    user_ids: []
                    contact_ids: []
                    contact_list_ids: []
                  notifications_muted: true
        '400':
          $ref: '#/components/responses/ApiValidationError'
        '401':
          $ref: '#/components/responses/ApiUnauthorized'
        '403':
          $ref: '#/components/responses/ApiForbidden'
        '404':
          $ref: '#/components/responses/ApiNotFound'
        '429':
          $ref: '#/components/responses/ApiRateLimited'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    InboxSourceInput:
      type: object
      properties:
        allo_number:
          type: string
          description: Allo line (E.164). Each line appears once in `sources`.
          example: '+33612345678'
        conditions:
          type: array
          maxItems: 10
          items:
            $ref: '#/components/schemas/InboxCondition'
          description: Empty or absent means every conversation on the line.
      required:
        - allo_number
    InboxFilters:
      type: object
      description: >-
        Saved filters, with the same meaning as the conversation list filters in
        the app. "Unread only" is not saved on an inbox: use the `unread` query
        parameter of List conversations.
      properties:
        types:
          type: array
          items:
            type: string
            enum:
              - INBOUND_CALL
              - OUTBOUND_CALL
              - TRANSFERRED
              - INBOUND_TEXT_MESSAGE
              - OUTBOUND_TEXT_MESSAGE
              - VOICEMAIL
              - AI_ASSISTANT
          example:
            - INBOUND_CALL
        user_ids:
          type: array
          items:
            type: string
          description: Teammates (`usr-*`), up to 50.
          example: []
          maxItems: 50
        contact_ids:
          type: array
          items:
            type: string
          example: []
          maxItems: 50
          description: Contacts, up to 50.
        contact_list_ids:
          type: array
          items:
            type: string
          example: []
          maxItems: 10
          description: Contact lists, up to 10.
    Inbox:
      type: object
      properties:
        id:
          type: string
          example: inb-abc123
        name:
          type: string
          example: Sales
        emoji:
          type: string
          nullable: true
          example: 💼
        sources:
          type: array
          items:
            $ref: '#/components/schemas/InboxSource'
        filters:
          $ref: '#/components/schemas/InboxFiltersResponse'
        notifications_muted:
          type: boolean
          example: false
      required:
        - id
        - name
        - emoji
        - sources
        - filters
        - notifications_muted
    InboxCondition:
      description: >-
        Narrows a source to calls that went through part of the line's phone
        menu. A source holds at most 10 conditions, and an inbox at most 60 menu
        steps in all.
      oneOf:
        - $ref: '#/components/schemas/InboxMenuOptionCondition'
        - $ref: '#/components/schemas/InboxMenuBranchCondition'
      discriminator:
        propertyName: type
        mapping:
          MENU_OPTION: '#/components/schemas/InboxMenuOptionCondition'
          MENU_BRANCH: '#/components/schemas/InboxMenuBranchCondition'
    InboxSource:
      type: object
      properties:
        allo_number:
          type: string
          description: Allo line (E.164).
          example: '+33612345678'
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/InboxCondition'
          description: Empty means every conversation on the line.
          maxItems: 10
      required:
        - allo_number
        - conditions
    InboxFiltersResponse:
      allOf:
        - $ref: '#/components/schemas/InboxFilters'
      required:
        - types
        - user_ids
        - contact_ids
        - contact_list_ids
      description: The saved filters, always returned with every key.
    ApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
            code:
              type: string
            message:
              type: string
            retryable:
              type: boolean
            request_id:
              type: string
            retry_after_seconds:
              type: integer
              nullable: true
    InboxMenuOptionCondition:
      type: object
      description: Matches keys of one phone menu.
      properties:
        type:
          type: string
          enum:
            - MENU_OPTION
        node_id:
          type: string
          description: The menu node.
          example: node-3
        digits:
          type: array
          items:
            type: string
            pattern: ^[0-9]$
          description: >-
            Keys that match, distinct. May be `[]` only when `include_no_choice`
            is `true`, to match calls that reached the menu without pressing a
            key.
          example:
            - '1'
        include_no_choice:
          type: boolean
          description: Also match calls that reached the menu without pressing a key.
          example: false
      required:
        - type
        - node_id
        - digits
        - include_no_choice
    InboxMenuBranchCondition:
      type: object
      description: >-
        Matches any of several paths through the line's phone menus. To combine
        several options of one line, put all their paths in `branches`.
      properties:
        type:
          type: string
          enum:
            - MENU_BRANCH
        branches:
          type: array
          minItems: 1
          maxItems: 20
          description: >-
            Each branch lists the menu choices from the first menu down to the
            option picked.
          items:
            type: array
            minItems: 1
            maxItems: 6
            items:
              $ref: '#/components/schemas/InboxMenuBranchStep'
        include_no_choice:
          type: boolean
          description: Also match calls that reached the menu without pressing a key.
          example: false
      required:
        - type
        - branches
        - include_no_choice
    InboxMenuBranchStep:
      type: object
      properties:
        node_id:
          type: string
          description: ID of the phone-menu node in the line's published call flow.
          example: node-3
        digit:
          type: string
          pattern: ^[0-9*#]$
          description: Key pressed at that menu.
          example: '2'
      required:
        - node_id
        - digit
  responses:
    ApiValidationError:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiUnauthorized:
      description: Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiForbidden:
      description: API key lacks the required scope or access to the resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiNotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ApiRateLimited:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.