Piloterr Castorama API
The Castorama API from Piloterr — 2 operation(s) for castorama.
The Castorama API from Piloterr — 2 operation(s) for castorama.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/piloterr-com:piloterr-com-castorama-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Piloterr API Reference Castorama API
description: Complete API reference documentation.
version: 1.0.0
servers:
- url: https://api.piloterr.com
description: API Server
tags:
- name: Castorama
paths:
/v2/castorama/search:
get:
summary: Castorama Search
description: 'Search Castorama by keyword or search URL and page the DIY listings. Cards include title, price, and product link.
**Credit cost:** 1 credit per call'
operationId: get-castorama-search
security:
- ApiKeyAuth: []
parameters:
- name: query
in: query
required: true
description: 'Keyword, or a Castorama listing URL (`/search` or a `.cat` category).
**Examples:**
```
joint-silicone
```
```
https://www.castorama.fr/search?term=joint-silicone
```
```
https://www.castorama.fr/outillage/outillage-electroportatif/perceuse-visseuse-perceuse-a-percussion-et-tournevis-sans-fil/cat_id_3796.cat
```
A product URL (`_CAFR.prd`) returns 400. `page` starts at 1 and is sent as `?page=`.'
schema:
type: string
description: 'Keyword, or a Castorama listing URL (`/search` or a `.cat` category).
**Examples:**
```
joint-silicone
```
```
https://www.castorama.fr/search?term=joint-silicone
```
```
https://www.castorama.fr/outillage/outillage-electroportatif/perceuse-visseuse-perceuse-a-percussion-et-tournevis-sans-fil/cat_id_3796.cat
```
A product URL (`_CAFR.prd`) returns 400. `page` starts at 1 and is sent as `?page=`.'
- name: page
in: query
required: false
description: Page from 1. Sent as ?page= on the listing.
schema:
type: number
description: Page from 1. Sent as ?page= on the listing.
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/is_async'
- $ref: '#/components/parameters/soft_fail'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
type: object
properties:
ean:
type: string
url:
type: string
name:
type: string
image:
type: string
price:
type: number
rating:
type: number
currency:
type: string
position:
type: integer
was_price:
nullable: true
unit_price:
type: number
review_count:
type: integer
price_display:
type: string
was_price_display:
nullable: true
unit_price_display:
type: string
pagination:
type: object
properties:
next:
type: string
page:
type: integer
per_page:
type: integer
total_pages:
type: integer
total_results:
type: integer
examples:
joint-silicone, first product:
value:
results:
- ean: '5410091628840'
url: https://www.castorama.fr/mastic-bain-et-cuisine-rubson-blanc-280ml/5410091628840_CAFR.prd
name: Mastic bain et cuisine Rubson blanc 280ml
image: https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_30c_FR_CF
price: 10.9
rating: 4.5
currency: EUR
position: 1
was_price: null
unit_price: 38.93
review_count: 55
price_display: 10,90 €
was_price_display: null
unit_price_display: 38,93 € / L
pagination:
next: https://www.castorama.fr/search?term=joint-silicone&page=2
page: 1
per_page: 48
total_pages: 189
total_results: 9050
'400':
description: Bad Request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Bad Request
'401':
description: Unauthorized — the API key is missing, invalid, inactive, or expired, or a rate limit was exceeded (`Rate limit exceeded…` message).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidKey:
value:
error: Invalid API Key
planRateLimit:
value:
error: 'Rate limit exceeded: You''ve exceeded the per second rate limit on your subscription'
keyQuota:
value:
error: 'Rate limit exceeded for the API key: quota monthly'
'402':
description: Payment Required — your subscription or credit balance is insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Payment required
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Castorama
post:
summary: Castorama Search
description: 'Search Castorama by keyword or search URL and page the DIY listings. Cards include title, price, and product link.
**Credit cost:** 1 credit per call'
operationId: post-castorama-search
security:
- ApiKeyAuth: []
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/is_async'
- $ref: '#/components/parameters/soft_fail'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
query:
type: string
description: 'Keyword, or a Castorama listing URL (`/search` or a `.cat` category).
**Examples:**
```
joint-silicone
```
```
https://www.castorama.fr/search?term=joint-silicone
```
```
https://www.castorama.fr/outillage/outillage-electroportatif/perceuse-visseuse-perceuse-a-percussion-et-tournevis-sans-fil/cat_id_3796.cat
```
A product URL (`_CAFR.prd`) returns 400. `page` starts at 1 and is sent as `?page=`.'
page:
type: number
description: Page from 1. Sent as ?page= on the listing.
required:
- query
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
type: object
properties:
ean:
type: string
url:
type: string
name:
type: string
image:
type: string
price:
type: number
rating:
type: number
currency:
type: string
position:
type: integer
was_price:
nullable: true
unit_price:
type: number
review_count:
type: integer
price_display:
type: string
was_price_display:
nullable: true
unit_price_display:
type: string
pagination:
type: object
properties:
next:
type: string
page:
type: integer
per_page:
type: integer
total_pages:
type: integer
total_results:
type: integer
examples:
joint-silicone, first product:
value:
results:
- ean: '5410091628840'
url: https://www.castorama.fr/mastic-bain-et-cuisine-rubson-blanc-280ml/5410091628840_CAFR.prd
name: Mastic bain et cuisine Rubson blanc 280ml
image: https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_30c_FR_CF
price: 10.9
rating: 4.5
currency: EUR
position: 1
was_price: null
unit_price: 38.93
review_count: 55
price_display: 10,90 €
was_price_display: null
unit_price_display: 38,93 € / L
pagination:
next: https://www.castorama.fr/search?term=joint-silicone&page=2
page: 1
per_page: 48
total_pages: 189
total_results: 9050
'400':
description: Bad Request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Bad Request
'401':
description: Unauthorized — the API key is missing, invalid, inactive, or expired, or a rate limit was exceeded (`Rate limit exceeded…` message).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidKey:
value:
error: Invalid API Key
planRateLimit:
value:
error: 'Rate limit exceeded: You''ve exceeded the per second rate limit on your subscription'
keyQuota:
value:
error: 'Rate limit exceeded for the API key: quota monthly'
'402':
description: Payment Required — your subscription or credit balance is insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Payment required
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Castorama
/v2/castorama/product:
get:
summary: Castorama Product
description: 'Read one Castorama product from its URL. You get price, brand, and specifications.
**Credit cost:** 1 credit per call'
operationId: get-castorama-product
security:
- ApiKeyAuth: []
parameters:
- name: query
in: query
required: true
description: 'Product URL ending in `_CAFR.prd`.
**Examples:**
```
https://www.castorama.fr/mastic-bain-et-cuisine-rubson-blanc-280ml/5410091628840_CAFR.prd
```
A keyword, a `/search` URL, or a `.cat` category URL returns 400.'
schema:
type: string
description: 'Product URL ending in `_CAFR.prd`.
**Examples:**
```
https://www.castorama.fr/mastic-bain-et-cuisine-rubson-blanc-280ml/5410091628840_CAFR.prd
```
A keyword, a `/search` URL, or a `.cat` category URL returns 400.'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/is_async'
- $ref: '#/components/parameters/soft_fail'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
ean:
type: string
url:
type: string
name:
type: string
brand:
type: string
price:
type: number
images:
type: array
items:
type: string
rating:
type: number
currency:
type: string
in_stock:
type: boolean
was_price:
nullable: true
description:
type: string
review_count:
type: integer
price_display:
type: string
specifications:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
was_price_display:
nullable: true
examples:
Mastic bain et cuisine Rubson blanc 280ml:
value:
ean: '5410091628840'
url: https://www.castorama.fr/mastic-bain-et-cuisine-rubson-blanc-280ml/5410091628840_CAFR.prd
name: Mastic bain et cuisine Rubson blanc 280ml
brand: Rubson
price: 10.9
images:
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_30c_FR_CF
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_30t_FR_CF
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_10i_fr_cf
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_11i_fr_cf
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_12i_fr_cf
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_13i_fr_cf
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_14i_fr_cf
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_01t_FR_CF
rating: 4.5
currency: EUR
in_stock: true
was_price: null
description: Le mastic sanitaire Rubson blanc de 280 ml garantit une étanchéité parfaite et durable pour vos baignoires, éviers et douches. Conçu spécialement pour faire face à l'humidité constante de la salle de bains et de la cuisine, cet élastomère silicone de haute qualité résiste efficacement aux moisissures grâce à ses agents antifongiques puissants. Sa formule avancée adhère sans faille sur des surfaces variées comme l'émail, la faïence ou le verre, tout en conservant sa blancheur éclatante sans jaunir dans le temps. Facile à appliquer et résistant aux détergents ménagers, ce produit est le choix idéal des bricoleurs pour un résultat professionnel et soigné chez Castorama.
review_count: 55
price_display: 10,90 €
specifications:
- name: Type d'article
value: Mastic cuisine et salle de bains
- name: Marque
value: Rubson
- name: Type de pack
value: À l'unité
- name: Type de conteneur
value: Cartouche
- name: Couleur
value: Blanc
- name: Contenance
value: 280ml
- name: Résistant à l'eau
value: Résistant à l'eau
- name: Temps de traitement (en h)
value: 24h
- name: Peut être peint
value: Ne peut pas être peint
- name: Mode d’emploi
value: Avant d'appliquer un mastic de cuisine ou un mastic de salle de bain, le support doit être propre, sec et dégraissé. Éliminer l'ancien joint à l'aide d'un cutter et de Rubson Enlève Joints (joints silicones). Ouvrir l'extrémité de la cartouche avec le Cutter & Lisseur Rubson. Visser la canule et la couper avec le Cutter & Lisseur Rubson en fonction de la largeur du joint souhaité. Placer la cartouche dans le Super Pistolet Mastic Pliable Rubson. Délimiter la largeur du joint de cuisine ou du joint de baignoire avec un ruban adhésif. Appliquer un cordon régulier de mastic en poussant la cartouche vers l'avant. Lisser avec le Cutter et Lisseur de Joint humidifié ou avec une spatule mouillée. Retirer le ruban adhésif. Revisser le bouchon sur la canule afin de prolonger la conservation du mastic
- name: Norme
value: EN 15651-3
- name: Poids du produit
value: 274g
- name: Résiste à la moisissure
value: Résistant à la moisissure
- name: Lieu
value: Intérieur
- name: Informations de sécurité
value: Dangereux - respecter les précautions d'emploi. Conserver hors de la portée et de la vue des enfants
- name: Type d'utilisation approprié
value: Vasque, baignoire, élément sanitaire et douche
- name: Usage
value: Mastic d'étanchéité sanitaire
- name: Référence produit
value: '5410091628840'
was_price_display: null
'400':
description: Bad Request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Bad Request
'401':
description: Unauthorized — the API key is missing, invalid, inactive, or expired, or a rate limit was exceeded (`Rate limit exceeded…` message).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidKey:
value:
error: Invalid API Key
planRateLimit:
value:
error: 'Rate limit exceeded: You''ve exceeded the per second rate limit on your subscription'
keyQuota:
value:
error: 'Rate limit exceeded for the API key: quota monthly'
'402':
description: Payment Required — your subscription or credit balance is insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Payment required
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Castorama
post:
summary: Castorama Product
description: 'Read one Castorama product from its URL. You get price, brand, and specifications.
**Credit cost:** 1 credit per call'
operationId: post-castorama-product
security:
- ApiKeyAuth: []
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/is_async'
- $ref: '#/components/parameters/soft_fail'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
query:
type: string
description: 'Product URL ending in `_CAFR.prd`.
**Examples:**
```
https://www.castorama.fr/mastic-bain-et-cuisine-rubson-blanc-280ml/5410091628840_CAFR.prd
```
A keyword, a `/search` URL, or a `.cat` category URL returns 400.'
required:
- query
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
ean:
type: string
url:
type: string
name:
type: string
brand:
type: string
price:
type: number
images:
type: array
items:
type: string
rating:
type: number
currency:
type: string
in_stock:
type: boolean
was_price:
nullable: true
description:
type: string
review_count:
type: integer
price_display:
type: string
specifications:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
was_price_display:
nullable: true
examples:
Mastic bain et cuisine Rubson blanc 280ml:
value:
ean: '5410091628840'
url: https://www.castorama.fr/mastic-bain-et-cuisine-rubson-blanc-280ml/5410091628840_CAFR.prd
name: Mastic bain et cuisine Rubson blanc 280ml
brand: Rubson
price: 10.9
images:
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_30c_FR_CF
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_30t_FR_CF
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_10i_fr_cf
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_11i_fr_cf
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_12i_fr_cf
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_13i_fr_cf
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_14i_fr_cf
- https://media.castorama.fr/is/image/Castorama/mastic-bain-et-cuisine-rubson-blanc-280ml~5410091628840_01t_FR_CF
rating: 4.5
currency: EUR
in_stock: true
was_price: null
description: Le mastic sanitaire Rubson blanc de 280 ml garantit une étanchéité parfaite et durable pour vos baignoires, éviers et douches. Conçu spécialement pour faire face à l'humidité constante de la salle de bains et de la cuisine, cet élastomère silicone de haute qualité résiste efficacement aux moisissures grâce à ses agents antifongiques puissants. Sa formule avancée adhère sans faille sur des surfaces variées comme l'émail, la faïence ou le verre, tout en conservant sa blancheur éclatante sans jaunir dans le temps. Facile à appliquer et résistant aux détergents ménagers, ce produit est le choix idéal des bricoleurs pour un résultat professionnel et soigné chez Castorama.
review_count: 55
price_display: 10,90 €
specifications:
- name: Type d'article
value: Mastic cuisine et salle de bains
- name: Marque
value: Rubson
- name: Type de pack
value: À l'unité
- name: Type de conteneur
value: Cartouche
- name: Couleur
value: Blanc
- name: Contenance
value: 280ml
- name: Résistant à l'eau
value: Résistant à l'eau
- name: Temps de traitement (en h)
value: 24h
- name: Peut être peint
value: Ne peut pas être peint
- name: Mode d’emploi
value: Avant d'appliquer un mastic de cuisine ou un mastic de salle de bain, le support doit être propre, sec et dégraissé. Éliminer l'ancien joint à l'aide d'un cutter et de Rubson Enlève Joints (joints silicones). Ouvrir l'extrémité de la cartouche avec le Cutter & Lisseur Rubson. Visser la canule et la couper avec le Cutter & Lisseur Rubson en fonction de la largeur du joint souhaité. Placer la cartouche dans le Super Pistolet Mastic Pliable Rubson. Délimiter la largeur du joint de cuisine ou du joint de baignoire avec un ruban adhésif. Appliquer un cordon régulier de mastic en poussant la cartouche vers l'avant. Lisser avec le Cutter et Lisseur de Joint humidifié ou avec une spatule mouillée. Retirer le ruban adhésif. Revisser le bouchon sur la canule afin de prolonger la conservation du mastic
- name: Norme
value: EN 15651-3
- name: Poids du produit
value: 274g
- name: Résiste à la moisissure
value: Résistant à la moisissure
- name: Lieu
value: Intérieur
- name: Informations de sécurité
value: Dangereux - respecter les précautions d'emploi. Conserver hors de la portée et de la vue des enfants
- name: Type d'utilisation approprié
value: Vasque, baignoire, élément sanitaire et douche
- name: Usage
value: Mastic d'étanchéité sanitaire
- name: Référence produit
value: '5410091628840'
was_price_display: null
'400':
description: Bad Request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Bad Request
'401':
description: Unauthorized — the API key is missing, invalid, inactive, or expired, or a rate limit was exceeded (`Rate limit exceeded…` message).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidKey:
value:
error: Invalid API Key
planRateLimit:
value:
error: 'Rate limit exceeded: You''ve exceeded the per second rate limit on your subscription'
keyQuota:
value:
error: 'Rate limit exceeded for the API key: quota monthly'
'402':
description: Payment Required — your subscription or credit balance is insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Payment required
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Castorama
components:
parameters:
fields:
name: fields
in: query
required: false
description: Comma-separated list of response fields to return, with dot notation for nested fields (e.g. `name,location.city`).
schema:
type: string
is_async:
name: is_async
in: query
required: false
description: 'Run the request as a background job: the API answers `202` with a `job_id` to poll on `GET /v1/jobs/{id}`.'
schema:
type: boolean
default: false
soft_fail:
name: soft_fail
in: query
required: false
description: Return HTTP 200 even when the request fails; the error is in the `error` field of the body.
schema:
type: boolean
default: false
schemas:
ErrorResponse:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: Your API key. Include it in the x-api-key header for every request.