---
title: "Receive Sns Notification"
method: POST
path: "/api/v1/sns/notification"
tags: ["External: Apple Health Import"]
---

# Receive Sns Notification

`POST /api/v1/sns/notification`

Handle all SNS messages (subscription confirmation + S3 upload notifications).

## Response `202`

Successful Response

- UploadDataResponse — Response schema for data upload/sync operations. Returned when health data is queued for asynchronous processing via Celery. The actual import happens in the background - this response indicates the task was queued successfully.
  - `status_code` integer, required — HTTP status code (typically 202 for async operations)
  - `response` string, required — Human-readable response message
  - `user_id` string, nullable — User ID associated with the import operation
  - `dropped_count` integer — Number of individual records dropped by per-record validation
  - `records_saved` integer — Time-series samples saved
  - `types` string[] — Canonical SeriesType identifiers written by this batch (e.g. 'heart_rate'), sorted. Empty when the batch saved no time-series samples.
  - `workouts_saved` integer — Workouts saved
  - `sleep_saved` integer — Sleep records saved

---

[API](https://skmtc.net/openwearables/apis/open-wearables-api.md) · [All operations](https://skmtc.net/openwearables/apis/open-wearables-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openwearables/open-wearables-api/revisions/8c15cc93d210/schema)
