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

# List Contacts

> Allows you to search for contacts within the system. You can filter the search using query parameters, and the search will return contacts that match the provided criteria. The response limit is 100 contacts



## OpenAPI

````yaml GET /public/v2/contacts
openapi: 3.0.3
info:
  title: RevyOps API
  version: 1.0.0
servers: []
security: []
paths:
  /public/v2/contacts:
    get:
      tags:
        - public
      description: >-
        Allows you to search for contacts within the system. You can filter the
        search using query parameters, and the search will return contacts that
        match the provided criteria. The response limit is 100 contacts
      operationId: Search for contact (v2)
      parameters:
        - in: query
          name: domain
          schema:
            type: string
          description: >-
            Filter for contacts with companies matching to a domain (excludes
            contacts without companies)
        - in: query
          name: email
          schema:
            type: string
          description: Filter by email
        - in: query
          name: firstname
          schema:
            type: string
          description: Filter by first name
        - in: query
          name: lastname
          schema:
            type: string
          description: Filter by last name
        - in: query
          name: page
          schema:
            type: integer
          description: Page number (1-based)
        - in: query
          name: page_size
          schema:
            type: integer
          description: Number of contacts per page (max 100)
        - in: query
          name: structure
          schema:
            type: string
            enum:
              - FLAT
              - NESTED
            default: NESTED
          description: >-
            Format of custom fields in response. NESTED returns array of objects
            with id, field_name, field_value. FLAT returns object with field
            names as keys.
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedContactsResponse'
          description: Paginated list of contacts
        '401':
          description: >-
            Unauthorized. The contact does not belong to the authenticated
            client's API key.
        '403':
          description: Forbidden. Missing authentication credentials or invalid API key.
        '404':
          description: No contact with the specified ID exists.
        '500':
          description: Internal Server Error. An unexpected error occurred on the server.
components:
  schemas:
    PaginatedContactsResponse:
      type: object
      properties:
        count:
          type: integer
        total_pages:
          type: integer
        current_page:
          type: integer
        page_size:
          type: integer
        results:
          type: array
          items:
            $ref: '#/components/schemas/ContactV2'
      required:
        - count
        - current_page
        - page_size
        - results
        - total_pages
    ContactV2:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        updated_time:
          type: string
          format: date-time
          readOnly: true
        email:
          type: string
          nullable: true
        linkedin_url:
          type: string
          nullable: true
        first_name:
          type: string
        last_name:
          type: string
        company_id:
          type: integer
          nullable: true
        contact_custom_fields:
          type: string
          readOnly: true
        contact_custom_fields_input:
          type: array
          items:
            $ref: '#/components/schemas/ContactCustomFields'
          writeOnly: true
        origin:
          type: string
        first_campaign_email_sent:
          type: string
          format: date-time
          readOnly: true
        last_campaign_email_sent:
          type: string
          format: date-time
          readOnly: true
        last_reply_received:
          type: string
          format: date-time
          readOnly: true
        contact_status:
          type: string
        previous_status:
          type: string
          readOnly: true
          nullable: true
        status_changed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
        - contact_custom_fields
        - first_campaign_email_sent
        - id
        - last_campaign_email_sent
        - last_reply_received
        - previous_status
        - status_changed_at
        - updated_time
    ContactCustomFields:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        updated_time:
          type: string
          format: date-time
          readOnly: true
        field_name:
          type: string
        field_value:
          type: string
          maxLength: 2500
      required:
        - field_name
        - field_value
        - id
        - updated_time

````