# Get Lead

> One lead.

Source: https://shopassist.coec.dk/docs/api/reference/engagement/get-lead · Updated 2026-11-03

`GET /v1/stores/{store_id}/leads/{lead_id}`

- Scope: `leads:read`
- Rate limit: 600 requests/min per API key (test keys: 60/min)

One lead.

## Parameters [#parameters]

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `store_id` | path | `string` | yes |  |
| `lead_id` | path | `string` | yes |  |

## Example request [#example-request]

```bash
curl -X GET "https://api.shopassist.coec.dk/v1/stores/sto_01j8000000e008000000000000/leads/lead_01j8000000e008000000000000" \
  -H "Authorization: Bearer $SHOPASSIST_API_KEY"
```

## Response 200 (Lead) [#response]

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `confirmed_at` | `string \| null` | yes | format date-time |
| `consents` | `ConsentRecordView[]` | yes |  |
| `consents[].confirmed_at` | `string \| null` | yes | format date-time |
| `consents[].consent_text` | `string` | yes |  |
| `consents[].consent_text_version` | `string` | yes |  |
| `consents[].created_at` | `string` | yes | format date-time |
| `consents[].id` | `string` | yes | pattern `^cns_[0-9a-hjkmnp-tv-z]{26}$` |
| `consents[].is_granted` | `boolean` | yes |  |
| `consents[].locale` | `string` | yes |  |
| `consents[].purpose` | `string (enum)` | yes | one of newsletter, marketing_email, back_in_stock, transcript_email, handoff_share, analytics, preferences |
| `consents[].source` | `string (enum)` | yes | one of widget_form, chat, cmp, double_opt_in, unsubscribe, dashboard, api |
| `consents[].withdrawn_at` | `string \| null` | yes | format date-time |
| `conversation_id` | `string \| null` | yes | pattern `^conv_[0-9a-hjkmnp-tv-z]{26}$` |
| `created_at` | `string` | yes | format date-time |
| `email` | `string` | yes |  |
| `id` | `string` | yes | pattern `^lead_[0-9a-hjkmnp-tv-z]{26}$` |
| `locale` | `string \| null` | yes |  |
| `name` | `string \| null` | yes |  |
| `newsletter_status` | `"none" \| "pending_confirmation" \| "confirmed" \| "unsubscribed"` | yes |  |
| `platform_sync_status` | `"not_required" \| "pending" \| "synced" \| "failed"` | yes |  |
| `purposes` | `("newsletter" \| "contact_request" \| "back_in_stock" \| "transcript")[]` | yes |  |
| `source` | `"lead_form" \| "chat_tool" \| "handoff" \| "back_in_stock"` | yes |  |
| `unsubscribed_at` | `string \| null` | yes | format date-time |

```json
{
  "confirmed_at": "2026-09-28T10:15:30.123Z",
  "consents": [
    {
      "confirmed_at": "2026-09-28T10:15:30.123Z",
      "consent_text": "string",
      "consent_text_version": "string",
      "created_at": "2026-09-28T10:15:30.123Z",
      "id": "cns_01j8000000e008000000000000",
      "is_granted": true,
      "locale": "da-DK",
      "purpose": "newsletter",
      "source": "widget_form",
      "withdrawn_at": "2026-09-28T10:15:30.123Z"
    }
  ],
  "conversation_id": "conv_01j8000000e008000000000000",
  "created_at": "2026-09-28T10:15:30.123Z",
  "email": "string",
  "id": "lead_01j8000000e008000000000000",
  "locale": "da-DK",
  "name": "string",
  "newsletter_status": "none",
  "platform_sync_status": "not_required",
  "purposes": [
    "newsletter"
  ],
  "source": "lead_form",
  "unsubscribed_at": "2026-09-28T10:15:30.123Z"
}
```

## Errors [#errors]

| Status | Meaning |
| --- | --- |
| 400 | Bad Request ([error codes](/docs/api/errors)) |
| 401 | Unauthorized ([error codes](/docs/api/errors)) |
| 403 | Forbidden ([error codes](/docs/api/errors)) |
| 404 | Not Found ([error codes](/docs/api/errors)) |
| 422 | Unprocessable Content ([error codes](/docs/api/errors)) |
| 429 | Too Many Requests ([error codes](/docs/api/errors)) |
