---
title: "List Contacts"
method: GET
path: "/v1/contacts"
tags: ["contacts"]
---

# List Contacts

`GET /v1/contacts`

List contacts attached to the authenticated organization.

Requires the `contacts:read` scope on the API key.

## Query parameters

- `page` integer — Page number.
- `size` integer — Number of items per page.
- `sort_by` 'first_seen_at' | 'last_seen_at' | 'email'
- `sort_order` 'asc' | 'desc'
- `email` string, nullable — Filter by email (case-insensitive exact match).
- `linkedin_url` string, nullable — Filter by LinkedIn profile URL. Matched against all known canonical variants (trailing slash, www. prefix, etc.).
- `contact_id` string, uuid, nullable — Filter by contact ID.
- `company_domain` string, nullable — Filter by the contact's linked account domain.
- `first_seen_after` string, date-time, nullable — Return contacts first seen strictly after this timestamp.
- `last_seen_after` string, date-time, nullable — Return contacts last seen strictly after this timestamp.

## Response `200`

Successful Response

- PublicPaginationEnvelopePublicContactOutput
  - `items` PublicContactOutput[], required — Records on this page.
    - `id` string, uuid, required — Unique identifier of the contact.
    - `email` string, nullable — Email.
    - `first_name` string, nullable — First name.
    - `last_name` string, nullable — Last name.
    - `job_title` string, nullable — Job title.
    - `linkedin_url` string, nullable — LinkedIn profile URL.
    - `phone_number` string, nullable — Phone number.
    - `city` string, nullable — City.
    - `state` string, nullable — State.
    - `country` string, nullable — Country.
    - `profile_picture_url` string, nullable — Profile picture URL.
    - `company_name` string, nullable — Employer name.
    - `company_domain` string, nullable — Employer's primary domain.
    - `account_id` string, uuid, nullable — Account this contact is linked to. Use it with the Accounts endpoints.
    - `owner_user_id` string, uuid, nullable — User who owns this contact, if any.
    - `owner` PublicUserSummary
      - `id` string, uuid, required — Unique identifier of the user.
      - `name` string, nullable — Display name.
      - `email` string, required — Email address.
    - `first_seen_at` string, date-time, required — When this contact was first associated with the organization.
    - `last_seen_at` string, date-time, required — When this contact was last touched in the organization.
  - `total_count` integer, required — Total number of records matching the query.
  - `total_pages` integer, required — Total number of pages.
  - `has_more` boolean, required — Whether more pages remain after the current one.

---

[API](https://skmtc.net/topo/apis/topo-public-api.md) · [All operations](https://skmtc.net/topo/apis/topo-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/topo/topo-public-api/versions/6e9ca9d5acac/schema)
