---
title: "Backfill Netsapiens Cdr Mirror Endpoint"
method: POST
path: "/developer/transfer-metrics/backfill-cdr-mirror"
tags: ["Developer", "Developer - Transfer Metrics"]
---

# Backfill Netsapiens Cdr Mirror Endpoint

`POST /developer/transfer-metrics/backfill-cdr-mirror`

## 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/backfill-cdr-mirror`
- Auth: none declared

Sweep the customer's whole retained cdr2 history into the mirror table
(read-only vs the PBX). Run this before re-capturing snapshots: the PBX drops
CDRs after ~65 days, and the mirror is what lets us re-derive timings later.

## Request body

- NetSapiensCdrBackfillRequest
  - `customer_id` string, uuid, required
  - `days` integer: How far back to sweep; the PBX only retains ~65 days
  - `window_hours` number: Read window size; smaller windows avoid the row cap on busy hours
  - `sleep_seconds` number: Pause between reads — ns-api throttles account-wide

## Response `200`

Successful Response

- NetSapiensCdrBackfillResponse
  - `mirrored_rows` integer, required: CDR rows already mirrored for this customer
  - `enqueued` boolean, required: Whether the mirror backfill task was dispatched

## 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/backfill-cdr-mirror/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)
