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

# List Contacts

> Retrieve all contacts in your workspace

## Authorization

<ParamField header="Authorization" type="string" required>
  Bearer token. Format: `Bearer qwoty_your_token`
</ParamField>

## Query Parameters

<ParamField query="customer_id" type="string">
  Filter contacts by customer UUID
</ParamField>

## Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://qwoty.app/api/contacts?customer_id=550e8400-e29b-41d4-a716-446655440000" \
    -H "Authorization: Bearer qwoty_your_token"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://qwoty.app/api/contacts?customer_id=550e8400-e29b-41d4-a716-446655440000',
    { headers: { Authorization: 'Bearer qwoty_your_token' } },
  )
  const data = await response.json()
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://qwoty.app/api/contacts',
      params={'customer_id': '550e8400-e29b-41d4-a716-446655440000'},
      headers={'Authorization': 'Bearer qwoty_your_token'},
  )
  data = response.json()
  ```
</CodeGroup>

## Response

<ResponseField name="success" type="boolean">
  `true` if the request succeeded
</ResponseField>

<ResponseField name="data" type="array">
  Array of contact objects

  <Expandable title="Contact Object">
    <ResponseField name="id" type="string">UUID</ResponseField>
    <ResponseField name="workspace_id" type="string">Workspace UUID</ResponseField>
    <ResponseField name="customer_id" type="string">Parent customer UUID</ResponseField>
    <ResponseField name="first_name" type="string">First name</ResponseField>
    <ResponseField name="last_name" type="string">Last name</ResponseField>
    <ResponseField name="email" type="string">Email address</ResponseField>
    <ResponseField name="phone" type="string | null">Phone number</ResponseField>
    <ResponseField name="role" type="array">Assigned roles</ResponseField>
    <ResponseField name="id_crm" type="string | null">External CRM ID</ResponseField>
    <ResponseField name="id_erp" type="string | null">External ERP ID</ResponseField>
    <ResponseField name="id_accounting" type="string | null">External accounting ID</ResponseField>
    <ResponseField name="address_ids" type="string[]">Array of address UUIDs linked to this contact. Use `GET /api/addresses/{id}` to fetch each address.</ResponseField>
    <ResponseField name="created_at" type="string">ISO 8601 timestamp</ResponseField>
    <ResponseField name="updated_at" type="string">ISO 8601 timestamp</ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Success Response theme={null}
  {
    "success": true,
    "data": [
      {
        "id": "660e8400-e29b-41d4-a716-446655440001",
        "workspace_id": "706eb564-6c4a-4e18-841c-bdd79be6bca7",
        "customer_id": "550e8400-e29b-41d4-a716-446655440000",
        "first_name": "Jean",
        "last_name": "Dupont",
        "email": "jean.dupont@acme.com",
        "phone": "+33 6 12 34 56 78",
        "role": ["buyer", "signer"],
        "id_crm": null,
        "id_erp": null,
        "id_accounting": null,
        "address_ids": ["c3d4e5f6-a7b8-9012-cdef-123456789012"],
        "created_at": "2026-01-15T10:30:00Z",
        "updated_at": "2026-01-15T10:30:00Z"
      }
    ]
  }
  ```
</ResponseExample>
