OTTO
German online marketplace — fashion, furniture, electronics and more.
Domain: otto.de
Also known as: OTTO, otto.de, Otto Group
Call it directly
bowmark.providers.otto.getProduct(url: string): Promise<ottoProduct>
bowmark.providers.otto.search(query: ottoSearchQuery): Promise<ottoSearchResult[]>Functions
| Function | What it does |
|---|---|
getProduct | Reads one OTTO product page — price (current + UVP/discount when on sale), availability, delivery-time estimate, images, brand, rating and size/color variant options. |
search | Searches OTTO's catalog for a free-text keyword the way the site's own search bar does, across its whole marketplace (OTTO's own catalog and third-party sellers) and returns matching rows:… |
Types
interface ottoProduct {
productId: string;
variationId: string | null;
sku: string;
gtin13: string | null;
name: string;
description: string;
brand: string;
url: string;
price: number;
originalPrice: number | null;
discountPercent: number | null;
currency: string;
availability: string | null;
soldOut: boolean;
delivery: { text: string; minDays: number | null; maxDays: number | null } | null;
rating: { value: number; count: number } | null;
images: string[];
sizes: { label: string; selected: boolean; available: boolean }[];
colors: { label: string; selected: boolean; available: boolean; image: string | null }[];
}
interface ottoSearchPrice {
currentAmount: number;
currentDisplay: string;
suggestedRetailAmount: number | null;
suggestedRetailDisplay: string | null;
comparativeAmount: number | null;
comparativeDisplay: string | null;
onSale: boolean;
isStartingPrice: boolean;
}
interface ottoSearchResult {
productId: string;
variationId: string;
articleNumber: string;
url: string;
name: string;
brand: string;
price: ottoSearchPrice;
availability: { state: string; detail: string };
thumbnail: string | null;
rating: { value: number; count: number } | null;
matchType: string;
totalCount: number;
}
interface ottoSearchQuery {
query: string;
limit?: number;
}