Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added

- **eBay** — new `sold_date` / `sold_date_at` fields on `SearchResult` cards (search, seller items, category, completed). `sold_date` is the sale date text as rendered by eBay (e.g. `"2 Jul 2026"`, localized on non-English markets, always set on completed/sold cards); `sold_date_at` is a best-effort ISO date (e.g. `"2026-07-02"`, `null` when the market's format isn't English). (SCR-122)
- **eBay** — new `is_ended` field on `Item` (`true` when the listing has closed — sold or ended — any buying format). `end_time_utc` / `end_time_at` broaden from auction-only to the listing end: auction close or sold time for ended listings of any format; still `null` for active fixed-price listings. (SCR-122)

## [0.20.0] - 2026-07-13

Expand Down
6 changes: 4 additions & 2 deletions src/ebay/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -195,9 +195,11 @@ export interface Item {
time_left: string | null;
/** Auctions: the current high bid (mirrors `price`); null for non-auctions */
current_bid: EbayPrice | null;
/** Absolute auction end time, Unix timestamp (float seconds); null for non-auctions */
/** Listing has closed (sold / ended), any buying format */
is_ended: boolean;
/** Listing end: auction close / sold time, Unix timestamp (float seconds); null for active fixed-price listings */
end_time_utc: number | null;
/** Absolute auction end time, ISO-8601 Z string; null for non-auctions */
/** Listing end: auction close / sold time, ISO-8601 Z string; null for active fixed-price listings */
end_time_at: string | null;
/** BIN price: fixed-price listings (== price) or auction-with-Buy-It-Now; null for pure auctions */
buy_it_now_price: EbayPrice | null;
Expand Down
2 changes: 2 additions & 0 deletions tests/ebay.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ const ITEM_FIXTURE: EbayItemDetailResponse = {
bids: null,
time_left: null,
current_bid: null,
is_ended: false,
end_time_utc: null,
end_time_at: null,
buy_it_now_price: PRICE,
Expand Down Expand Up @@ -431,6 +432,7 @@ describe("EbayClient.items", () => {
expect(result.item.seller?.username).toBe("musicmagpie");
expect(result.item.returns?.accepted).toBe(true);
expect(result.item.current_bid).toBeNull();
expect(result.item.is_ended).toBe(false);
expect(result.item.end_time_utc).toBeNull();
expect(result.item.end_time_at).toBeNull();
expect(result.item.buy_it_now_price?.raw).toBe("$29.99");
Expand Down
Loading