> ## 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.

# Lister les champs personnalisés

> Returns the custom fields defined on your team's people, paginated. Includes the fields you created with the API and the ones synced from your CRM integrations. Built-in fields such as name or company are not listed.

<Note>
  **Scope requis :** `CRM_READ`
</Note>

Renvoie les champs personnalisés définis sur les personnes de votre équipe, du plus ancien au plus récent. La liste inclut les champs créés via l'API et ceux synchronisés depuis vos intégrations CRM. Les champs natifs comme `name` ou `company` n'y figurent pas.

Cet endpoint est paginé. Utilisez les paramètres de requête `page` et `size` pour contrôler les résultats (`size` jusqu'à 100). Voir [Pagination](/fr/v2/api-reference/guides/pagination).

## Champs de la réponse

| Champ | Type | Description |
| - | - | - |
| `key` | string | Clé unique du champ |
| `label` | string ou null | Nom affiché |
| `type` | string ou null | `TEXT`, `NUMBER`, `DATE`, `BOOLEAN` ou `DROPDOWN` |

```json theme={null}
{
  "data": [
    { "key": "budget", "label": "Budget", "type": "NUMBER" }
  ],
  "pagination": {
    "page": 1,
    "size": 20,
    "total_count": 1,
    "total_pages": 1,
    "has_more": false
  }
}
```

## Erreurs

| Statut | Code | Quand |
| - | - | - |
| `400` | `INVALID_PAGE_SIZE` | `page` est inférieur à 1 ou `size` n'est pas compris entre 1 et 100 |
| `403` | `API_KEY_INSUFFICIENT_SCOPE` | La clé n'a pas le scope `CRM_READ` |
| `404` | `TEAM_NOT_FOUND` | L'espace de travail n'utilise pas le nouveau modèle de contacts |


## OpenAPI

````yaml GET /v2/api/crm/attributes
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.
paths:
  /v2/api/crm/attributes:
    get:
      tags:
        - CRM
      summary: List custom contact fields
      description: >-
        Returns the custom fields defined on your team's people, paginated.
        Includes the fields you created with the API and the ones synced from
        your CRM integrations. Built-in fields such as name or company are not
        listed.
      operationId: listCrmAttributes
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/Size'
      responses:
        '200':
          description: List of custom contact fields
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/CrmAttribute'
                  - $ref: '#/components/schemas/PaginatedResponse'
              example:
                data:
                  - key: budget
                    label: Budget
                    type: NUMBER
                pagination:
                  page: 1
                  size: 20
                  total_count: 1
                  total_pages: 1
                  has_more: false
        '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:
  parameters:
    Page:
      name: page
      in: query
      description: Page number (1-indexed)
      schema:
        type: integer
        default: 1
        minimum: 1
    Size:
      name: size
      in: query
      description: Results per page
      schema:
        type: integer
        default: 20
        minimum: 1
        maximum: 100
  schemas:
    CrmAttribute:
      type: object
      description: A custom field on people
      properties:
        key:
          type: string
          description: Unique key of the field within your team
          example: budget
        label:
          type: string
          nullable: true
          description: Display name of the field
          example: Budget
        type:
          type: string
          nullable: true
          enum:
            - TEXT
            - NUMBER
            - DATE
            - BOOLEAN
            - DROPDOWN
          description: >-
            Value type. `DROPDOWN` fields are synced from integrations and
            cannot be created with the API.
          example: NUMBER
    PaginatedResponse:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
    Pagination:
      type: object
      properties:
        page:
          type: integer
        size:
          type: integer
        total_count:
          type: integer
        total_pages:
          type: integer
        has_more:
          type: boolean
    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
  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.