---
title: "Complete Garmin Route Send Callback"
method: POST
path: "/route-send/garmin/callback"
tags: ["route-send"]
---

# Complete Garmin Route Send Callback

`POST /route-send/garmin/callback`

Complete the static callback handoff from looking-glass.

## Request body

- RouteSendCallbackRequest — Callback handoff from the static looking-glass Garmin page.
  - `state` string, required
  - `code` string, nullable
  - `error` string, nullable

## Response `200`

Successful Response

- RouteSendResponse — Browser-safe route-send state returned by public endpoints.
  - `status` 'authorization_required' | 'course_ready' | 'already_sent' | 'cancelled' | 'expired' | 'route_not_found' | 'route_not_ready' | 'missing_course_import' | 'provider_identity_collision' | 'alice_error' | 'rate_limited' | 'retry' | 'poll_needed' | 'session_not_found', required — Browser-safe route-send UX states.
  - `session_id` string, nullable
  - `authorization_url` string, nullable
  - `route_url` string, nullable
  - `gpx_url` string, nullable
  - `garmin_course_url` string, nullable
  - `garmin_course_id` string, nullable
  - `success_redirect_url` string, nullable
  - `response_surface` 'garmin_connect_course' | 'imperfect_owned' — Browser destination surface for the returned route-send state.
  - `returning_authorizer_token` string, nullable
  - `missing_source_fields` string[]
  - `historical_data_status` string, nullable
  - `historical_data_permissions` string[]
  - `retry_after_seconds` integer, nullable
  - `detail` string, nullable

## Other responses

- `422` — Validation Error

---

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