> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pubrio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Погашение людей (People Redeem)

> Тратьте кредиты, чтобы разблокировать верифицированный рабочий email, личный email и номер телефона для человека, которого вы уже идентифицировали — паттерны одиночного, массового и асинхронно-массового погашения.

API Redeem People превращает `people_search_id` (или URL LinkedIn) в полный набор верифицированных контактов — рабочий email, личный email, телефон — для этого человека. Вы тратите кредиты только тогда, когда контактные данные действительно возвращены.

```bash theme={null}
curl -X POST https://api.pubrio.com/redeem/people \
  -H "pubrio-api-key: $PUBRIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "people_search_id": "e37ccf38-ea8f-422e-9874-cb23b15e8fe4",
    "people_contact_types": ["email-work", "phone"]
  }'
```

## Когда использовать Redeem

Используйте Redeem, когда **вы уже знаете, кто этот человек**, и вам нужны его контактные данные:

* Вы выполнили [People Search](/ru/api-reference/endpoint/people/search) и хотите разблокировать контакты для найденных совпадений
* У вас есть URL профиля LinkedIn, и вы хотите обратиться к этому человеку
* У вас есть `people_search_id` из предыдущего ответа Pubrio

Если вместо этого у вас есть **email или телефон, и вы хотите найти соответствующего человека**, используйте [People Contact Lookup](/ru/developer-guides/people-contact-lookup) — это обратное направление, 1 кредит за совпадение.

## Три варианта

| Эндпоинт                          | Когда использовать        | Поведение                                                 |
| --------------------------------- | ------------------------- | --------------------------------------------------------- |
| `POST /redeem/people`             | По одному человеку за раз | Синхронно. Возвращает контакты в ответе.                  |
| `POST /redeem/people/batch`       | 2–N человек за один вызов | Асинхронно. Немедленно возвращает `redeem_query_id`.      |
| `POST /redeem/people/batch/query` | Опрос результатов пакета  | Возвращает полный набор результатов по завершении пакета. |

Пакетный поток — правильный паттерн для любого рабочего процесса, управляемого списком — загрузки CSV, включение в последовательность, синхронизация с CRM — потому что он распараллеливает работу по разрешению контактов на стороне сервера.

## Быстрый старт — одиночное погашение

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://api.pubrio.com/redeem/people \
    -H "pubrio-api-key: $PUBRIO_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "people_search_id": "e37ccf38-ea8f-422e-9874-cb23b15e8fe4",
      "people_contact_types": ["email-work", "phone"]
    }'
  ```

  ```js JavaScript theme={null}
  const res = await fetch("https://api.pubrio.com/redeem/people", {
    method: "POST",
    headers: {
      "pubrio-api-key": process.env.PUBRIO_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      people_search_id: "e37ccf38-ea8f-422e-9874-cb23b15e8fe4",
      people_contact_types: ["email-work", "phone"],
    }),
  });
  const { data } = await res.json();
  ```

  ```python Python theme={null}
  import os, requests

  res = requests.post(
      "https://api.pubrio.com/redeem/people",
      headers={"pubrio-api-key": os.environ["PUBRIO_API_KEY"]},
      json={
          "people_search_id": "e37ccf38-ea8f-422e-9874-cb23b15e8fe4",
          "people_contact_types": ["email-work", "phone"],
      },
  )
  data = res.json()["data"]
  ```
</CodeGroup>

**Ответ:**

```json theme={null}
{
  "data": {
    "profile": {
      "credit": 450376,
      "topup_credit": 235237,
      "total_credit_cost": 15
    },
    "peoples": [
      {
        "people_search_id": "e37ccf38-ea8f-422e-9874-cb23b15e8fe4",
        "emails": [
          { "value": "king.lai@pubrio.com", "type": "email-work", "status": "Verified" }
        ],
        "phones": [
          { "value": "+15551234567", "type": "phone", "status": null }
        ]
      }
    ]
  }
}
```

`profile` отражает ваш баланс после списания и кредиты, которые стоил этот вызов, чтобы вы могли обновить счётчик в приложении без отдельного обращения к `/profile/usage`.

## Идентификаторы

Вы можете определить человека для погашения двумя способами:

| Идентификатор      | Описание                                                                                                                                                                                                    |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `people_search_id` | UUID, возвращаемый любым эндпоинтом поиска/просмотра Pubrio. Самый дешёвый и надёжный вариант — без шага разрешения.                                                                                        |
| `linkedin_url`     | URL профиля LinkedIn (например, `https://www.linkedin.com/in/jane-doe-123`). Pubrio сначала разрешает его в `people_search_id`; если профиль новый, это может включать одноразовый шаг внешнего обогащения. |

`people_contact_types` — это контракт на то, что вы хотите получить обратно. Смешивайте любые из `email-work`, `email-personal`, `phone` — с вас взимается плата за каждый возвращённый тип, а не за каждый запрошенный. Запрос `["email-work", "phone"]` и получение обратно только `email-work` оплачивает только email.

## Массовое погашение (асинхронный паттерн)

Для более чем одного человека используйте пакетный поток. Он выполняет каждое погашение параллельно на стороне сервера и избегает затрат на обмен запрос-ответ для каждого вызова.

**Шаг 1 — отправка:**

```bash theme={null}
curl -X POST https://api.pubrio.com/redeem/people/batch \
  -H "pubrio-api-key: $PUBRIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "peoples": [
      "540574d1-ff74-475b-aea2-f8ae643b806d",
      "e37ccf38-ea8f-422e-9874-cb23b15e8fe4"
    ],
    "people_contact_types": ["email-work", "phone"]
  }'
```

```json theme={null}
{
  "data": {
    "redeem_query_id": "a046c1da-b3d4-4ca1-aca6-1dd8c8055701",
    "is_completed": false,
    "estimated_time": 6,
    "estimated_time_type": "second"
  }
}
```

**Шаг 2 — опрос:**

```bash theme={null}
curl -X POST https://api.pubrio.com/redeem/people/batch/query \
  -H "pubrio-api-key: $PUBRIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "redeem_query_id": "a046c1da-b3d4-4ca1-aca6-1dd8c8055701" }'
```

Когда `is_completed` равно `true`, ответ содержит полный массив `peoples` с разрешёнными контактами и общей стоимостью пакета в кредитах.

<Tip>
  Опрашивайте с периодичностью, указанной в `estimated_time`. Опрос чаще, чем указанная оценка, лишь расходует лишние обращения — работа ещё не завершена.
</Tip>

## Стоимость в кредитах

Кредиты списываются **за каждый возвращённый контакт**, а не за запрос. Цены за запись:

| Тип контакта                    | Кредиты за запись |
| ------------------------------- | ----------------- |
| `email-work` / `email-personal` | 5                 |
| `phone`                         | 10                |

Если у человека нет рабочего email и вы запросили только `email-work`, с вас за эту запись не взимается ничего. Если вы запросили и email, и телефон, и Pubrio вернул оба, с вас взимается плата за оба. Полную [таблицу тарифов](/ru/get-started/pricing) с расценками по тарифным планам см. отдельно.

## Распространённые паттерны

<CardGroup cols={2}>
  <Card title="Конвейер поиск → погашение" icon="magnifying-glass">
    Выполните [People Search](/ru/api-reference/endpoint/people/search), позвольте пользователю выбрать строки в вашем UI, затем отправьте выбранные `people_search_id` через `/redeem/people/batch`. Оплачивайте только то, что используется.
  </Card>

  <Card title="Поток вставки URL LinkedIn" icon="linkedin">
    Принимайте список URL LinkedIn из экспорта CRM или расширения браузера. Отправляйте их через `/redeem/people` (по одному) или постройте небольшую пакетную обёртку.
  </Card>

  <Card title="Включение в последовательность" icon="envelope">
    Перед добавлением контактов в исходящую цепочку рассылки погашайте только `email-work` — это делает стоимость предсказуемой и подаёт доставляемые адреса вашему отправителю.
  </Card>

  <Card title="Обогащение CRM" icon="database">
    Сопоставьте существующие записи CRM с `people_search_id` (через [People Lookup](/ru/api-reference/endpoint/people/lookup)), затем погашайте пакетно по расписанию.
  </Card>
</CardGroup>

## FAQ

<AccordionGroup>
  <Accordion title="Будет ли с меня взята плата, если контакт не найден?">
    Нет. Кредиты списываются за каждую возвращённую запись. Если у человека нет доступного рабочего email, вы не платите за этот слот контакта — даже если вы его запросили.
  </Accordion>

  <Accordion title="Что если один и тот же человек дважды встречается в моём пакете?">
    Дубликаты дедуплицируются на стороне сервера. С вас взимается плата один раз.
  </Accordion>

  <Accordion title="Что происходит, если URL LinkedIn неизвестен Pubrio?">
    Pubrio выполняет одноразовое внешнее разрешение. Если профиль разрешается, применяется обычное ценообразование redeem. Если нет — кредиты не списываются.
  </Accordion>

  <Accordion title="Насколько свежи контактные данные?">
    Pubrio регулярно повторно верифицирует записи email и телефона. Каждый контакт сопровождается полем `status` (`Verified`, `null` и т.д.), чтобы вы могли фильтровать только верифицированные записи на своей стороне.
  </Accordion>

  <Accordion title="Могу ли я погасить только телефон, только email или только личный email?">
    Да — `people_contact_types` это массив. Передайте именно те типы, которые вам нужны; оплата взимается только за то, что возвращено.
  </Accordion>

  <Accordion title="Массово или по одному — когда выигрывает асинхронный паттерн?">
    Начиная примерно с 3 записей пакет выигрывает по задержке и по надёжности на запись. Пакетный эндпоинт выполняет внутреннее распараллеливание и параллелит любые шаги внешнего обогащения, поэтому пакет из 50 записей ближе к 5 секундам по настенному времени, чем 50 × время одного запроса-ответа.
  </Accordion>
</AccordionGroup>

## Связанное

<CardGroup cols={2}>
  <Card title="People Contact Lookup" icon="magnifying-glass-arrow-right" href="/ru/developer-guides/people-contact-lookup">
    Обратный поиск: найдите человека по email, телефону или имени + домену. 1 кредит за совпадение.
  </Card>

  <Card title="People Search" icon="users" href="/ru/api-reference/endpoint/people/search">
    Найдите людей, соответствующих профилю (должность, локация, размер компании, технологии и т.д.).
  </Card>

  <Card title="People Lookup" icon="user" href="/ru/api-reference/endpoint/people/lookup">
    Разрешите полный профиль одного человека из идентификатора — без разблокировки контактов.
  </Card>

  <Card title="Тарифы" icon="coins" href="/ru/get-started/pricing">
    Стоимость в кредитах по всем эндпоинтам, по уровню тарифа.
  </Card>
</CardGroup>
