---
title: "Get a contact by its ID"
method: GET
path: "/contacts/{id}"
tags: ["contacts"]
---

# Get a contact by its ID

`GET /contacts/{id}`

Returns a single contact by ID.

**Rate limit:** 60 requests per minute

## Path parameters

- `id` string, required

## Query parameters

- `cursor` string
- `limit` integer, required

## Response `200`

- GetContactResponseBody
  - `data` Contact
    - `account` MiniAccount
      - `external_ids` ExternalID[] — External IDs associated with the account.
        - `external_id` string — The external ID. Must be unique per object type (ex. account).
        - `label` string — The label of the external ID. Must be unique per object.
      - `id` string — The ID of the account.
    - `avatar_url` string — Avatar URL of the contact.
    - `custom_fields` object — Custom field values associated with the issue.
    - `email` string — The primary email of the contact, if it exists.
    - `emails` string[] — The list of all emails of the contact.
    - `external_ids` ExternalID[] — External IDs associated with the contact.
      - `external_id` string — The external ID. Must be unique per object type (ex. account).
      - `label` string — The label of the external ID. Must be unique per object.
    - `id` string — The ID of the contact.
    - `integration_user_ids` IntegrationUserID[] — Integration user IDs linking this contact to external systems.
      - `id` string — The user ID in the external system.
      - `source` string — The integration source (e.g., "slack", "intercom", "hubspot").
    - `name` string — The name of the contact.
    - `phone_numbers` string[] — The list of all phone numbers of the contact.
    - `portal_role` 'no_access' | 'member' | 'admin' — Portal role slug assigned to the contact. For backwards compatibility.
    - `portal_role_id` string — The ID of the custom portal role assigned to the contact.
    - `primary_phone_number` string — The primary phone number of the contact, if it exists.
  - `request_id` string — The request ID for tracking.

## Other responses

- `400` — The request was invalid or could not be completed.
- `404`
- `500` — An unexpected internal error occurred.

---

[API](https://skmtc.net/usepylon/apis/pylon-api.md) · [All operations](https://skmtc.net/usepylon/apis/pylon-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/usepylon/pylon-api/versions/484a11d5ddb2/schema)
