diff --git a/frontend/src/app/buy/[slug]/page.tsx b/frontend/src/app/buy/[slug]/page.tsx
index fb9e03e..43426b1 100644
--- a/frontend/src/app/buy/[slug]/page.tsx
+++ b/frontend/src/app/buy/[slug]/page.tsx
@@ -73,7 +73,7 @@ export default function BuyDomainPage() {
setLoading(true)
setError(null)
try {
- const data = await api.request
(`/listings/${slug}`)
+ const data = await api.getListing(slug)
setListing(data)
} catch (err: any) {
setError(err.message || 'Listing not found')
diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts
index 1e44b50..e16196c 100644
--- a/frontend/src/lib/api.ts
+++ b/frontend/src/lib/api.ts
@@ -432,6 +432,36 @@ class ApiClient {
}>(`/tld-prices/overview?${params.toString()}`)
}
+ // Listings (Marketplace)
+ async getListings(params?: {
+ search?: string
+ tld?: string
+ min_price?: number
+ max_price?: number
+ sort_by?: string
+ limit?: number
+ offset?: number
+ }) {
+ const query = new URLSearchParams()
+ if (params) {
+ Object.entries(params).forEach(([key, value]) => {
+ if (value !== undefined && value !== null) {
+ query.append(key, String(value))
+ }
+ })
+ }
+ return this.request<{
+ listings: any[]
+ total: number
+ limit: number
+ offset: number
+ }>(`/listings?${query.toString()}`)
+ }
+
+ async getListing(slug: string) {
+ return this.request(`/listings/${slug}`)
+ }
+
async getTldHistory(tld: string, days = 90) {
return this.request<{
tld: string