List contacts

Lists the contacts in your CRM, a page at a time. Archived contacts are left out.

Search by name or email to find someone before you add them, and filter by company_id to list everyone you know at one company.

Filtering

  • filter[name] — searches contact names, matching anywhere in the name and ignoring case.
  • filter[email] — searches email addresses the same way.
  • filter[company_id] — one or more company ids. Returns the contacts linked to those companies.
Query Parameters
  • page[number]
    Type: integer
    min:  
    1

    Page to return, starting at 1.

  • page[size]
    Type: integer
    min:  
    1
    max:  
    100

    Records per page. Defaults to 25; anything above 100 is reduced to 100.

  • filter[name]
    Type: string

    Searches contact names, matching anywhere in the name and ignoring case.

  • filter[email]
    Type: string

    Searches email addresses, matching anywhere in the address and ignoring case.

  • filter[company_id]
    Type: string

    One or more company ids, comma-separated or repeated. Returns the contacts linked to those companies.

Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/public-api/v1/contacts
curl https://app.hellobonsai.com/public-api/v1/contacts \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "data": [
    {
      "id": 7,
      "name": "Alex Johnson",
      "email": "alex@example.com",
      "job_title": "CTO",
      "phone_number": "+1-415-555-0100",
      "archived_at": "2026-04-14T09:12:04.000Z",
      "created_at": "2026-04-14T09:12:04.000Z",
      "company_ids": [
        42
      ],
      "default_company_id": 42,
      "url": "https://app.hellobonsai.com/contacts/7"
    }
  ],
  "meta": {
    "request_id": "b1f0d2c4-7a9e-4c3b-8d5f-1e2a3b4c5d6e",
    "pagination": {
      "page": 1,
      "page_size": 25,
      "has_more": true
    }
  }
}