---
title: "Recapture Transfer Flows V2 Endpoint"
method: POST
path: "/developer/transfer-metrics/recapture-v2"
tags: ["Developer", "Developer - Transfer Metrics"]
---

# Recapture Transfer Flows V2 Endpoint

`POST /developer/transfer-metrics/recapture-v2`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/developer/transfer-metrics/recapture-v2`
- Auth: none declared

One-time re-capture (read-only vs the PBX) of pre-v2 flow snapshots, which
flattened the caller-side rollup and the agent-side SIP leg into one set of
fields — so their talk times are queue-entry→release, not real talk time, and
they carry no per-agent ring time. Only replaces a snapshot when the re-read
anchors and returns at least as many real hops; snapshots still waiting on a
finalize retry are skipped.

Sources its CDR rows from the netsapiens_cdr mirror rather than the PBX, so a
full re-capture costs two ns-api requests instead of three per call — run the
mirror backfill first for any window you want covered.

## Request body

- TransferFlowBackfillRequest
  - `customer_id` string, uuid, required
  - `days_back` integer
  - `limit` integer
  - `dry_run` boolean

## Response `200`

Successful Response

- TransferFlowBackfillResponse
  - `candidates` integer, required: Transferred calls in range missing a transfer_flow snapshot
  - `enqueued` boolean, required: Whether the backfill task was dispatched (false for dry runs)

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-07** `b883e03846c6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/developer/transfer-metrics/recapture-v2/post.md)

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
