> ## Documentation Index
> Fetch the complete documentation index at: https://doc.convo.co.in/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /project/{project_id}/contact — Fetch Contact

> Retrieve a Convo contact by their mobile number (FetchContact action) or by their contact ID. Returns the full contact profile and attributes.

You can fetch a contact in two ways: by their **mobile number** using a query parameter action, or directly by their **Convo contact ID** as a path parameter. Both methods return the same full contact object.

## Authentication

Include your project API password in every request header:

```text theme={null}
X-API-WA-Project-API-Pwd: YOUR_API_PASSWORD
```

***

## Method 1 — Fetch by Mobile Number

Use this method when you know the contact's phone number but not their Convo contact ID.

### Endpoint

```text theme={null}
GET https://connect.api-wa.co/project-apis/v1/project/{project_id}/contact?action=FetchContact&mobile_number=917089379345
```

### Path Parameters

<ParamField path="project_id" type="string" required>
  Your Convo project ID.
</ParamField>

### Query Parameters

<ParamField query="action" type="string" required>
  Must be set to `FetchContact` to look up a contact by phone number.
</ParamField>

<ParamField query="mobile_number" type="string" required>
  The contact's phone number including country code. Do **not** include a leading `+` sign. Example: `917089379345`.
</ParamField>

### Example Request

```bash theme={null}
curl -X GET \
  "https://connect.api-wa.co/project-apis/v1/project/YOUR_PROJECT_ID/contact?action=FetchContact&mobile_number=917089379345" \
  -H "X-API-WA-Project-API-Pwd: YOUR_API_PASSWORD"
```

***

## Method 2 — Fetch by Contact ID

Use this method when you already have the Convo contact ID (returned by [Create Contact](/api-reference/contacts/create-contact) or a previous fetch).

### Endpoint

```text theme={null}
GET https://connect.api-wa.co/project-apis/v1/project/{project_id}/contact/{contact_id}
```

### Path Parameters

<ParamField path="project_id" type="string" required>
  Your Convo project ID.
</ParamField>

<ParamField path="contact_id" type="string" required>
  The Convo contact ID (e.g., `64f3a1e0c8e4d500123abc00`).
</ParamField>

### Example Request

```bash theme={null}
curl -X GET \
  "https://connect.api-wa.co/project-apis/v1/project/YOUR_PROJECT_ID/contact/64f3a1e0c8e4d500123abc00" \
  -H "X-API-WA-Project-API-Pwd: YOUR_API_PASSWORD"
```

***

## Response

Both methods return the same contact object on success.

**200 OK**

```json theme={null}
{
  "id": "64f3a1e0c8e4d500123abc00",
  "project_id": "YOUR_PROJECT_ID",
  "phone_number": "917089379345",
  "name": "Priya Sharma",
  "country_code": "91",
  "on_whatsapp": true,
  "is_closed": false,
  "is_intervened": false,
  "is_requesting": false,
  "last_active": 1710050000000,
  "tags": ["vip", "newsletter"],
  "attributes": {
    "plan": "premium",
    "city": "Mumbai",
    "signup_date": "2024-01-15"
  },
  "first_message": {
    "id": "msg_001",
    "added_at": 1710000500000
  },
  "created_at": 1710000000000
}
```

<ResponseField name="id" type="string">
  The Convo-assigned unique ID for this contact.
</ResponseField>

<ResponseField name="project_id" type="string">
  The Convo project this contact belongs to.
</ResponseField>

<ResponseField name="phone_number" type="string">
  The contact's WhatsApp phone number (with country code, no `+`).
</ResponseField>

<ResponseField name="name" type="string">
  The contact's display name.
</ResponseField>

<ResponseField name="country_code" type="string">
  The numeric country dialing code (e.g., `"91"` for India).
</ResponseField>

<ResponseField name="on_whatsapp" type="boolean">
  `true` if the phone number is registered and active on WhatsApp.
</ResponseField>

<ResponseField name="is_closed" type="boolean">
  `true` if the conversation with this contact is marked as closed in the Convo inbox.
</ResponseField>

<ResponseField name="is_intervened" type="boolean">
  `true` if a human agent is currently handling this contact's conversation.
</ResponseField>

<ResponseField name="is_requesting" type="boolean">
  `true` if the contact has an active pending request awaiting a human agent response.
</ResponseField>

<ResponseField name="last_active" type="number">
  Unix timestamp in milliseconds of the contact's most recent activity.
</ResponseField>

<ResponseField name="tags" type="array">
  List of tag strings applied to this contact from the Convo dashboard or API.
</ResponseField>

<ResponseField name="attributes" type="object">
  Key-value map of custom attributes stored for this contact. You can set and update these via [Update Contact](/api-reference/contacts/update-contact).
</ResponseField>

<ResponseField name="first_message" type="object">
  Object containing `id` and `added_at` for the contact's first inbound message. `null` if no messages have been received.
</ResponseField>

<ResponseField name="created_at" type="number">
  Unix timestamp in milliseconds when this contact was first created.
</ResponseField>

## Error Responses

| HTTP Status | Meaning                                                                                 |
| ----------- | --------------------------------------------------------------------------------------- |
| `401`       | Unauthorized — invalid or missing `X-API-WA-Project-API-Pwd` header.                    |
| `404`       | Not found — no contact matches the provided phone number or contact ID in this project. |
