Beauty and skincare catalog monitoring
The Body Shopエンドポイントを使えば、「Beauty and skincare catalog monitoring」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Turn The Body Shop's public Shopify storefront into structured retail data for cosmetics, skincare, and bath products — full product catalog and detail with every size and color variant, collection browsing, storefront pages, recommendations, and sitemap discovery, all pinned to The Body Shop's own storefront URL so no url parameter is needed. Credential-free.
Get The Body Shop products, collections, pages, and recommendations as structured JSON through a pinned endpoint family — no url parameter needed.
エンドポイントファミリー
6
ドキュメント化されたパラメータ
30
サンプル数
11
ライブカタログスナップショット
稼働エンドポイント
11
メソッド
GET
必須パラメータ
16
スキーマ参照
11
{
"platform": "The Body Shop",
"endpoint": "thebodyshop-store",
"method": "GET",
"path": "/thebodyshop/store",
"auth": "apiKey"
}ユースケース
Get The Body Shop products, collections, pages, and recommendations as structured JSON through a pinned endpoint family — no url parameter needed.
The Body Shopエンドポイントを使えば、「Beauty and skincare catalog monitoring」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
The Body Shopエンドポイントを使えば、「Collection and merchandising research」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
The Body Shopエンドポイントを使えば、「Storefront page and sitemap discovery」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
マネージド実行
以下の数値はすべて、稼働中のThe Body Shopエンドポイントカタログから取得しています(エンドポイント11件、ドキュメント化されたリクエストパラメータ30個、公開レスポンススキーマ11件)。DocsとPlaygroundが参照しているカタログと同じものです。
The Body Shopのエンドポイントは11件、7つのリクエストファミリーに分類されています(Products、Collections、Pagesほか4件)。
これらのThe Body Shopエンドポイントには30個のリクエストパラメータがドキュメント化されており、うち16個が必須です。統合コードを書く前に入力仕様をすべて確認できます。
11件のThe Body Shopエンドポイントのうち11件が実際のサンプルレスポンスを、11件がドキュメント化されたレスポンススキーマを備えています。最初のリクエストの前に実データの形に合わせて実装できます。
The Body Shopのエンドポイントは成功時のスキーマに加えてエラーレスポンス(400、404、429、503)もドキュメント化しています。ブロック、レート制限、レコード欠損は空データではなく型付きのエラーとして返ります。
The Body Shopのエンドポイントは11個のホスト型MCPツールとして提供されており、エージェントは同じパラメータと同じJSON契約のまま、追加の実装なしに同じルートを呼び出せます。
カバレッジマップ
/thebodyshop/products
/thebodyshop/collections
/thebodyshop/pages
/thebodyshop/search/suggest
/thebodyshop/sitemap/urls
/thebodyshop/sitemaps
エンドポイントカタログ
/thebodyshop/storeReturns storefront metadata for The Body Shop (https://www.thebodyshop.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.
レスポンスに関する注記
- Returns the resolved source URL used for JSON requests. - Includes `myshopify_domain`, store name, currency, country, and published product/collection counts when `/meta.json` exposes them. - Blocked pages, malformed JSON, missing Shopify roots, and unavailable fallback domains return upstream errors. - `transport_mode` is `ssr_embedded` for some storefronts; it is omitted entirely for stores served by the classic catalog. `transport_mode` allowed values: `ssr_embedded` (only ever present, never any other value; omitted for the classic transport).
MCPツール thebodyshop_store
/thebodyshop/productsReturns products from The Body Shop's (https://www.thebodyshop.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.
レスポンスに関する注記
- Valid empty result pages return `200` with an empty `products` array. - Product prices are normalized to decimal currency units. - Blocked pages, malformed JSON, and missing `products` roots return upstream errors. - When the response includes `transport_mode: "ssr_embedded"`, it also includes `total_items` and `total_pages`, plus additive per-product fields (`colour`, `canonical_colour`, `discount_percentage`, `rating`, `rating_count`, `collection_tags`, `labels`, per-variant `inventory_quantity`). `limit` is honored as an upper bound; the underlying page size is fixed by the storefront and cannot be requested larger in this mode. All of the above are omitted entirely for stores served by the classic catalog. - When the `ssr_embedded` fallback was used, the response may also include `facets` and `facets_stats`, mirroring the storefront's own filter sidebar for that listing. - This brand-pinned endpoint does not accept `sortBy` or facet-filter query parameters (out of scope -- use the generic `/shopify/products` endpoint with `url` set to this brand's storefront for sort/filter support). The response reuses the same shared DTO as the generic family, which carries `sort`/`filters` fields for that feature; they are always omitted here since this endpoint never populates them. `sort` allowed values (never actually returned by this endpoint, listed for schema completeness): `sortLTH`, `sortHTL`, `newest`. This brand-pinned endpoint also does not accept the generic family's `sort_by`/`min_price`/`max_price`/`product_type`/`in_stock_only`/`option_*` Storefront Filtering params (same out-of-scope reasoning -- use the generic `/shopify/products` endpoint with `url` set to this brand's storefront). The response DTO carries the matching `sort_by`/`min_price`/`max_price`/`product_type`/`in_stock_only`/`variant_options` fields for that feature; they are always omitted here since this endpoint never populates them. `sort_by` allowed values (never actually returned by this endpoint, listed for schema completeness): `manual`, `best-selling`, `title-ascending`, `title-descending`, `price-ascending`, `price-descending`, `created-ascending`, `created-descending`. `transport_mode` allowed values: `ssr_embedded`, `storefront_filtered` (only ever these two values; omitted for the classic transport).
MCPツール thebodyshop_products
/thebodyshop/products/{handle}Returns product detail for one The Body Shop (https://www.thebodyshop.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.
レスポンスに関する注記
- Product prices are returned in decimal currency units. - Missing product handles return `404` when Shopify returns not found. - Blocked pages, malformed JSON, and missing product fields return upstream errors. - When the response includes `transport_mode: "ssr_embedded"`, it also carries additive fields (`colour`, `canonical_colour`, `discount_percentage`, `rating`, `rating_count`, `collection_tags`, `labels`, per-variant `inventory_quantity`). `transport_mode` is omitted entirely for stores served by the classic transport. `transport_mode` allowed values: `ssr_embedded` (only ever present, never any other value; omitted for the classic transport).
MCPツール thebodyshop_product
/thebodyshop/products/{handle}/recommendationsReturns recommended products for one The Body Shop (https://www.thebodyshop.com) product handle. The storefront URL is fixed server-side.
レスポンスに関する注記
- Missing product handles return `404` when Shopify returns not found while resolving the seed product. - Valid empty recommendation arrays return `200` with an empty `products` array. - Blocked pages, malformed JSON, and missing Shopify roots return upstream errors. - When the response includes `transport_mode: "ssr_embedded"`, it carries the same additive product fields documented for the products endpoint. `transport_mode` allowed values: `ssr_embedded` (only ever present, never any other value; omitted for the classic transport).
MCPツール thebodyshop_product_recommendations
/thebodyshop/collectionsReturns collections from The Body Shop (https://www.thebodyshop.com). The storefront URL is fixed. Valid empty result pages return `200` with an empty collections array.
レスポンスに関する注記
- Valid empty result pages return `200` with an empty `collections` array. - Blocked pages, malformed JSON, and missing `collections` roots return upstream errors. - When the response includes `transport_mode: "ssr_embedded"`, `title` is a best-effort derivation from the handle -- **not** the storefront's real display name. `products_count` and other fields not available in this mode are omitted, never fabricated. - In fallback mode, `handle` is derived from the last path segment of the collection URL and is not guaranteed unique across nested sub-collections; use the item's own `url` to identify a specific one. `transport_mode` allowed values: `ssr_embedded` (only ever present, never any other value; omitted for the classic transport).
MCPツール thebodyshop_collections
/thebodyshop/collections/{handle}/productsReturns products from one The Body Shop (https://www.thebodyshop.com) collection. The storefront URL is fixed; `handle` is the collection's URL slug.
レスポンスに関する注記
- Valid empty result pages return `200` with an empty `products` array. - Missing collections return `404` when Shopify returns not found. - Blocked pages, malformed JSON, and missing `products` roots return upstream errors. - When the response includes `transport_mode: "ssr_embedded"`, it also includes `total_items`, `total_pages`, plus additive per-product fields (`colour`, `canonical_colour`, `discount_percentage`, `rating`, `rating_count`, `collection_tags`, `labels`, per-variant `inventory_quantity`) and may include `facets`/`facets_stats`. `limit` is honored as an upper bound only; page size is fixed by the storefront in this mode. - This brand-pinned endpoint does not accept `sortBy` or facet-filter query parameters (out of scope -- use the generic `/shopify/collections/{handle}/products` endpoint with `url` set to this brand's storefront for sort/filter support). The response reuses the same shared DTO as the generic family, which carries `sort`/`filters` fields for that feature; they are always omitted here since this endpoint never populates them. `sort` allowed values (never actually returned by this endpoint, listed for schema completeness): `sortLTH`, `sortHTL`, `newest`. This brand-pinned endpoint also does not accept the generic family's `sort_by`/`min_price`/`max_price`/`product_type`/`in_stock_only`/`option_*` Storefront Filtering params (same out-of-scope reasoning -- use the generic `/shopify/collections/{handle}/products` endpoint with `url` set to this brand's storefront). The response DTO carries the matching `sort_by`/`min_price`/`max_price`/`product_type`/`in_stock_only`/`variant_options` fields for that feature; they are always omitted here since this endpoint never populates them. `sort_by` allowed values (never actually returned by this endpoint, listed for schema completeness): `manual`, `best-selling`, `title-ascending`, `title-descending`, `price-ascending`, `price-descending`, `created-ascending`, `created-descending`. `transport_mode` allowed values: `ssr_embedded`, `storefront_filtered` (only ever these two values; omitted for the classic transport).
MCPツール thebodyshop_collection_products
/thebodyshop/search/suggestReturns products, collections, and query suggestions from The Body Shop's (https://www.thebodyshop.com) predictive search. The storefront URL is fixed server-side.
レスポンスに関する注記
- Products and collections use the same shapes as the product and collection endpoints. - Query suggestions include text and a storefront search URL when the storefront provides one. - Valid empty suggestion arrays return `200` with empty arrays. - Blocked pages, malformed JSON, and missing Shopify roots return upstream errors.
MCPツール thebodyshop_search_suggest
/thebodyshop/pagesLists The Body Shop static pages, 50 per request by default (`limit` up to 250), with `page` starting at 1. Each page has its handle, title, URL, plain-text content and timestamps. An empty result is a normal 200. When `transport_mode` is `ssr_embedded`, items carry only `handle`, `url` and `updated_at`.
レスポンスに関する注記
- Page content is cleaned text from Shopify `body_html`; raw HTML is not returned. - Valid empty page arrays return `200` with an empty `pages` array. - Blocked pages, malformed JSON, and missing Shopify roots return upstream errors. - When the response includes `transport_mode: "ssr_embedded"`, each item only carries `handle`, `url`, and `updated_at` -- no `title`, `id`, or `content`. Call the single-page endpoint per handle for full content. `transport_mode` allowed values: `ssr_embedded` (only ever present, never any other value; omitted for the classic transport).
MCPツール thebodyshop_pages
/thebodyshop/pages/{handle}Returns one The Body Shop static page by its `handle`: id, title, URL, plain-text `content` and the created, published and updated timestamps. Page text is cleaned, not raw HTML. An unknown handle returns 404. When the reduced form is served, `transport_mode` is `ssr_embedded` and `id` is omitted.
レスポンスに関する注記
- Page content is cleaned text from Shopify `body_html`; raw HTML is not returned. - Missing page handles return `404` when Shopify returns not found. - Blocked pages, malformed JSON, and missing Shopify roots return upstream errors. - When the response includes `transport_mode: "ssr_embedded"`, `content` is plain text rendered from the page's rich-text blocks, and `id` is omitted. `transport_mode` allowed values: `ssr_embedded` (only ever present, never any other value; omitted for the classic transport).
MCPツール thebodyshop_page
/thebodyshop/sitemapsReturns child sitemap URLs from The Body Shop's (https://www.thebodyshop.com) `/sitemap.xml` index with inferred sitemap types. The storefront URL is fixed server-side.
レスポンスに関する注記
- Sitemap `type` is inferred from the child sitemap URL. - Inferred sitemap types are `products`, `collections`, `pages`, `blogs`, `agentic_discovery`, and `other`. - Blocked pages, malformed XML, and missing sitemap entries return upstream errors.
MCPツール thebodyshop_sitemaps
/thebodyshop/sitemap/urlsReturns capped URL entries from The Body Shop's (https://www.thebodyshop.com) child sitemaps matching the requested type. The storefront URL is fixed server-side.
レスポンスに関する注記
- The service fetches matching child sitemaps from `/sitemap.xml` until `limit` URL entries is reached. - URL entries include `loc`, inferred `type`, `handle`, `lastmod`, `changefreq`, and optional `images`. - Blocked pages, malformed XML, and missing sitemap entries return upstream errors.
MCPツール thebodyshop_sitemap_urls
関連API
Marketplaces & Retail
Research new, used, and vintage instruments across Reverb listings, seller shops, and the Price Guide. Keep current asking prices separate from historical sales, and preserve model, finish, year, condition, and currency when comparing gear.
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
The Body Shopのスクレイピング方法
Crawlora's The Body Shop endpoints return skincare, body-care, and fragrance catalog data as normalized JSON, pinned server-side to www.thebodyshop.com. This is The Body Shop's UK store: /thebodyshop/store reports GBP pricing, a Littlehampton, England address, 392 published products, and 205 collections. Its collections are organized by ingredient range (Shea, Almond Milk, Aloe Vera, Black Musk) as much as by product type.
392 products fit in two pages of /thebodyshop/products at limit=250. Prices are in pounds and low (median £13, top £139). The largest types were Bath and Body gifts, Gifts, Shower Gels, Body Mists, and Body Butters.
Most products vary by a Size option, meaning pack size such as a 200ml versus a 50ml body butter, rather than by colour. Makeup uses Colour, and gifts usually have a single Title variant. Compare price per size variant, not per product.
/thebodyshop/collections exposes ingredient and scent ranges (Avocado Skincare Products, Banana Haircare, Black Musk Fragrance Range) alongside offers such as 3 for 2 on Body care & Haircare. Page any of them with /thebodyshop/collections/{handle}/products. 168 products carried a markdown on 2026-09-18.
/thebodyshop/pages includes a Glossary of ingredients, corporate governance and modern slavery statements, and the Grow Wild campaign pages. /thebodyshop/search/suggest for black returns Black Musk fragrances, the Jamaican Black Castor Oil range, and completions such as black musk night bloom.
エージェントスキル
Crawlora のエージェントスキルをインストールすると、スクレイパーを書かずに、ドキュメント化された API 経由で The Body Shop のデータを JSON として取得できます。The Body Shop に対応するスキル:
Researches independent Shopify-powered storefronts — products, collections, pages, sitemaps, search suggestions, and product recommendations — using…
npx skills add github.com/Crawlora-org/crawlora-skills --skill shopify-researchFAQ
GBP. The pinned storefront is The Body Shop's UK store, so every price is in pounds.
Yes, through collections. The store groups products into ingredient and scent ranges, so find the handle with /thebodyshop/collections and page it with /thebodyshop/collections/{handle}/products.
/thebodyshop/store reported 392 published products and 205 collections on 2026-09-18, and all of them fit in two pages of /thebodyshop/products.
/thebodyshop/* pins The Body Shop's own storefront URL (https://www.thebodyshop.com) server-side, so every call needs only your Crawlora API key — no url parameter. The same storefront is also reachable through /shopify/* by passing url=https://www.thebodyshop.com, which is the only way to reach this storefront's sort and filter options on /shopify/products and /shopify/collections/{handle}/products — those two parameters are not exposed on the brand-pinned routes.