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

# List Contacts

> List contacts in the workspace. Contacts power Feedspace's email automation and are commonly synced from external platforms (Zapier, Pabbly, Make, n8n). Requires the workspace's plan/role to include email automation.

Contacts power Feedspace's email automation. They are commonly synced from external platforms (Zapier, Pabbly, Make, n8n) using your API key.

<Note>
  Contact endpoints require the workspace's plan and role to include email automation. If the account does not have it, these endpoints return `403`.
</Note>


## OpenAPI

````yaml GET /contacts
openapi: 3.1.0
info:
  title: Feedspace API
  description: Feedspace API v3 - Feedback and testimonial management platform
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.feedspace.io/v3
security: []
paths:
  /contacts:
    get:
      tags:
        - Contacts
      description: >-
        List contacts in the workspace. Contacts power Feedspace's email
        automation and are commonly synced from external platforms (Zapier,
        Pabbly, Make, n8n). Requires the workspace's plan/role to include email
        automation.
      parameters:
        - name: source
          in: query
          description: >-
            Filter by how the contact first entered the workspace. One of:
            `csv`, `public_api`, `review_submission`, `manual`, `social_import`,
            `stripe`.
          required: false
          schema:
            type: string
            enum:
              - csv
              - public_api
              - review_submission
              - manual
              - social_import
              - stripe
        - name: tag_ids[]
          in: query
          description: >-
            Filter to contacts carrying any of these tag IDs. Each value must be
            a numeric tag `id` from `GET /contact-tags` in this workspace.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: unsubscribed
          in: query
          description: Subscription state to include.
          required: false
          schema:
            type: string
            enum:
              - subscribed
              - unsubscribed
              - all
            default: all
        - name: q
          in: query
          description: Free-text search across name and email (max 255 characters).
          required: false
          schema:
            type: string
            maxLength: 255
        - name: sort_by
          in: query
          description: Sort field.
          required: false
          schema:
            type: string
            enum:
              - created_at
              - email
              - name
            default: created_at
        - name: sort_dir
          in: query
          description: Sort direction.
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
        - name: page
          in: query
          description: Page number (default 1).
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: per_page
          in: query
          description: Items per page (1-100, default 50).
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
      responses:
        '200':
          description: Contacts fetched successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contact'
                  meta:
                    type: object
                    description: >-
                      Pagination metadata: current_page, last_page, per_page,
                      total, from, to, and has_activated_automation.
              examples:
                success:
                  value:
                    data:
                      - id: 8801
                        email: jordan@example.com
                        name: Jordan Lee
                        phone: null
                        primary_source: public_api
                        country: null
                        state: null
                        city: null
                        zipcode: null
                        company: Acme
                        date_added: '2026-05-01'
                        date_added_label: May 1, 2026
                        is_unsubscribed: false
                        unsubscribe_reason: null
                        unsubscribed_at: null
                        enriched_at: null
                        tag_ids:
                          - 3
                          - 7
                        has_reviewed: false
                        created_at: '2026-05-01T10:00:00.000000Z'
                        updated_at: '2026-05-01T10:00:00.000000Z'
                    meta:
                      current_page: 1
                      last_page: 1
                      per_page: 50
                      total: 1
                      from: 1
                      to: 1
                      has_activated_automation: true
      security:
        - basicAuth: []
components:
  schemas:
    Contact:
      type: object
      properties:
        id:
          type: integer
        email:
          type: string
        name:
          type:
            - string
            - 'null'
        phone:
          type:
            - string
            - 'null'
        primary_source:
          type: string
          description: >-
            How the contact first entered the workspace: csv, public_api,
            review_submission, manual, social_import, or stripe. Locked to the
            first source.
        country:
          type:
            - string
            - 'null'
        state:
          type:
            - string
            - 'null'
        city:
          type:
            - string
            - 'null'
        zipcode:
          type:
            - string
            - 'null'
        company:
          type:
            - string
            - 'null'
        date_added:
          type:
            - string
            - 'null'
          description: YYYY-MM-DD.
        date_added_label:
          type:
            - string
            - 'null'
          description: Human-readable date, e.g. "May 1, 2026".
        is_unsubscribed:
          type: boolean
        unsubscribe_reason:
          type:
            - string
            - 'null'
        unsubscribed_at:
          type:
            - string
            - 'null'
        enriched_at:
          type:
            - string
            - 'null'
        tag_ids:
          type: array
          items:
            type: integer
        has_reviewed:
          type: boolean
          description: True if this contact has submitted or been imported as a review.
        created_at:
          type: string
        updated_at:
          type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        HTTP Basic Authentication using API Key and Secret Key. The credentials
        should be Base64 encoded in the format 'api_key:secret_key'. You can
        obtain your API Key and Secret Key from Feedspace → Automation → API
        (https://app.feedspace.io/automation/api).

````