---
title: "Exreacher Callback"
method: POST
path: "/api/internal/outreach/exreacher-callback"
tags: ["OutreachInternal"]
---

# Exreacher Callback

`POST /api/internal/outreach/exreacher-callback`

Receive an async catch_all-revalidation result from exreacher and upgrade
EVERY matching lead — the result carries the validated email, and a repeated
catch_all has several agent_lead rows across projects, so all of them (in
actively-sending ``outreach`` segments) move to the new status. Network-gated
like the rest of this router; an optional shared secret
(`EXREACHER_CALLBACK_SECRET`) is checked when configured.

## Request body

- ExreacherCallbackBody — Result POSTed by exreacher when an async find finishes (see `exreacher.schemas.ExreacherFindCallback`).
  - `person` object
  - `exreacher_email_id` string, nullable
  - `meta` object

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/explee/apis/explee-api.md) · [All operations](https://skmtc.dev/explee/apis/explee-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/explee/explee-api/revisions/f169bc6e9447/schema)
