---
title: "Retrieve Failover OTP tracking"
method: GET
path: "/otp/failover/{tracking_id}"
tags: ["Failover OTP"]
---

# Retrieve Failover OTP tracking

`GET /otp/failover/{tracking_id}`

Resolve by **flow UUID** (`flowId` from create) or by **message token** (`trackingId` on a flow step).

## Path parameters

- `tracking_id` string, required

## Response `200`

Tracking payload

- FailoverTrackingResponse
  - `flowId` string, required
  - `status` 'InProgress' | 'Succeeded' | 'Failed', required
  - `statusCode` integer, nullable
  - `total_cost` number
  - `steps` FailoverResult[], required
    - `trackingId` string
    - `role` 'primary' | 'failover'
    - `flowId` string
    - `status` string
    - `channel` string
    - `phone_number` string
    - `label` string
    - `created_at` string
    - `sent_at` string
    - `delivered_at` string
    - `detailed_status` string
    - `error_message` string
    - `price` number

## Other responses

- `401` — Invalid or expired Bearer token
- `403` — Missing Bearer or not authorized for this flow
- `404` — Unknown tracking id

---

[API](https://skmtc.net/routee/apis/auth.md) · [All operations](https://skmtc.net/routee/apis/auth/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/routee/auth/revisions/5cef04e8f7d8/schema)
