---
title: "Get single change event"
method: GET
path: "/v2/webhooks/subscriptions/{requestId}/changes/{changeId}"
tags: ["Webhooks"]
---

# Get single change event

`GET /v2/webhooks/subscriptions/{requestId}/changes/{changeId}`

Retrieve detailed information for a specific change event. Free API - does not count towards usage quota.

## Path parameters

- `requestId` string, required
- `changeId` string, required

## Response `200`

Change event retrieved successfully

- GetTrackingChangeResponse — Tracking change history detail response
  - `changeId` string, required
  - `requestId` string, required
  - `timestamp` string, required
  - `changedItemCount` number, required
  - `changedItems` TrackingChangeDetailItem[], required
    - `carrier` string, required
    - `trackingNumber` string, required
    - `previousStatus` string
    - `currentStatus` string, required
    - `trackingData` TrackingData, required — Tracking data (full delivery information) Contains complete delivery information for a specific tracking number. All fields are converted to WhereParcel standard format.
      - `deliveryStatus` 'pending' | 'in_transit' | 'out_for_delivery' | 'delivered' | 'failed' | 'returned' | 'cancelled' | 'unknown', required — Delivery status (standardized value) The standard delivery status defined by WhereParcel. The various status codes of all carriers are converted into one of these 8 values.
      - `estimatedDelivery` string — Estimated delivery date/time (optional, ISO 8601 format) The estimated delivery date/time provided by the carrier. When delivery is complete, this represents the actual delivery time. Note: The meaning of this field varies by status: - status is "delivered": Actual delivery completion time - status is other: Estimated delivery date/time (subject to change) Examples: - "2026-01-30T18:00:00+09:00" (Korea timezone) - "2026-01-30T14:00:00-05:00" (US Eastern timezone) Note: Some carriers may not provide estimated delivery dates.
      - `events` TrackingEvent[], required — Delivery event list Chronologically sorted delivery history. The most recent event is at the end of the array. Examples: - events[0]: First event (oldest record) - events[events.length - 1]: Last event (most recent record)
        - `timeUnknown` boolean — Whether the time portion of `timestamp` is an estimate rather than a value the carrier provided (optional). Some carriers give only a **date** for certain events and no scan time — USPS does this for events like "In Transit to Next Facility" and "Pre-Shipment". In that case `timestamp` is filled with noon on that date to stay valid ISO 8601, and this field is `true`. Absent or `false` means the carrier supplied the time itself. Without this flag a filled-in noon is indistinguishable from a real scan at noon, which is why several events on the same date can look like they share one timestamp.
        - `timestamp` string, required — Event timestamp (ISO 8601 format) Standardized time by WhereParcel. Converts various carrier time formats to ISO 8601 (e.g., "2026-01-30T14:30:00Z"). Examples: - Korean carrier: "2026-01-30 14:30" → "2026-01-30T14:30:00+09:00" (KST) - USPS: "January 30, 2026, 2:30 pm EST" → "2026-01-30T14:30:00-05:00" (EST) - DHL: "30.01.2026 14:30" → "2026-01-30T14:30:00Z"
        - `status` 'pending' | 'in_transit' | 'out_for_delivery' | 'delivered' | 'failed' | 'returned' | 'cancelled' | 'unknown', required — Delivery status (standardized value) The standard delivery status defined by WhereParcel. The various status codes of all carriers are converted into one of these 8 values.
        - `location` string — Location information (WhereParcel standardized, optional) The physical location where the event occurred. Standardizes different carrier location formats as much as possible. Examples: - Korea: "Gangnam-gu, Teheran-ro, Seoul", "Buk-gu Logistics Center, Busan" - USPS: "NEW YORK NY DISTRIBUTION CENTER" - FedEx: "MEMPHIS, TN" - DHL: "Frankfurt Gateway" Note: Some carriers may not provide location information.
        - `description` string, required — Event description (WhereParcel standardized) Detailed description of the event. Translated to the user's language when possible. Examples: - Korea: "Arrived at Namgwanak" - FedEx: "Delivered. Signed by JOHN DOE" - USPS: "Out for Delivery" - DHL: "Customs clearance completed"
        - `rawStatus` string — Carrier original status code (optional) Preserves the original status code/text as displayed by the carrier. Provided so customers can compare with the carrier's official website. Examples: - UPS: "M" (Manifest), "I" (In Transit), "D" (Delivered) - USPS: "Acceptance", "In Transit", "Delivered" - FedEx: "PU" (Picked up), "IT" (In transit), "DEL" (Delivered) - DHL: "Picked up", "Clearance event", "Delivered" Note: This field matches the "Status" column on the carrier's official website.
        - `rawDescription` string — Carrier original description (optional) Preserves the original event description as displayed by the carrier. Unlike description, provided as-is without language conversion or standardization. Examples: - UPS: "Your package was delivered. Signed by: JOHN" - USPS: "Out for Delivery, Expected Delivery by 8:00pm" - FedEx: "Delivered. Left at front door. Signature Service not requested." - DHL: "Clearance event - Import clearance completed" - China carrier: "【广州市】已到达 广州转运中心" (original Chinese preserved) Note: This field matches the "Details" column on the carrier's official website.
      - `from` object — Sender information (optional) Location information where the parcel was shipped from. Names may be masked for privacy protection. Examples: - name: "Hong*dong" (individual: masked), "Coupang" (business: original) - address: "Gangnam-gu, Seoul", "Tokyo, Japan" Note: Some carriers may not provide sender information.
        - `name` string
        - `address` string
      - `to` object — Recipient information (optional) Location information where the parcel will be delivered. Names and detailed addresses may be masked for privacy protection. Examples: - name: "Kim*su" (individual: masked), "ABC Company" (business: original) - address: "Seocho-gu, Seoul" (detailed address excluded) Note: Some carriers may not provide recipient information.
        - `name` string
        - `address` string
      - `signedBy` string — Signature information (optional) The name of the person who signed upon delivery completion. Primarily provided by North American/European carriers (FedEx, UPS, DHL, etc.). Examples: - "JOHN DOE" - "Front Desk" - "Receptionist" Note: - Most Korean/Asian carriers do not provide this. - Unattended deliveries (e.g., left at door) will be null.
      - `weight` object — Weight information (optional) The weight of the parcel. Primarily provided for international shipments. Examples: - { value: 2.5, unit: "kg" } - { value: 5.5, unit: "lb" } Note: Most domestic carriers do not provide weight information.
        - `value` number, required
        - `unit` 'g' | 'kg' | 'lb', required
      - `deliveryInstructions` string — Delivery instructions (optional) Customer-requested delivery instructions. Examples: - "Leave at security desk if absent" - "Leave at front door" - "Call before delivery" Note: Most carriers do not provide this.
      - `lastUpdated` string, required — Last updated date/time (ISO 8601 format) The time when WhereParcel retrieved data from the carrier. Used to determine the freshness of cached data. Example: - "2026-01-30T15:30:00Z" Note: This is not the carrier's last update time.

## Other responses

- `401` — Authentication failed
- `404` — requestId or changeId not found

---

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