Piloterr Aldi API
The Aldi API from Piloterr — 2 operation(s) for aldi.
The Aldi API from Piloterr — 2 operation(s) for aldi.
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-aldi-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 Aldi API
description: Complete API reference documentation.
version: 1.0.0
servers:
- url: https://api.piloterr.com
description: API Server
tags:
- name: Aldi
paths:
/v2/aldi/search:
get:
summary: Aldi Search
description: 'Aldi Search API: list products from an Aldi category page URL or path across FR, DE, NL and Canarias shops. Returns prices, thumbnails and pagination.
**Credit cost:** 1 credit per call'
operationId: get-aldi-search
security:
- ApiKeyAuth: []
parameters:
- name: query
in: query
required: true
description: 'Aldi category page URL or site path.
**Examples:**
```
produits/viande-poisson/poisson-crustace.html
```
```
https://www.aldi.fr/produits/viande-poisson/poisson-crustace.html
```
Use **Aldi Product** on any result `url` for full PDP data.'
schema:
type: string
description: 'Aldi category page URL or site path.
**Examples:**
```
produits/viande-poisson/poisson-crustace.html
```
```
https://www.aldi.fr/produits/viande-poisson/poisson-crustace.html
```
Use **Aldi Product** on any result `url` for full PDP data.'
- name: region
in: query
required: false
description: 'Target country when `query` is a path only (default: `fr`).
**Examples:** `de`, `nl`, `es-can`
Ignored when `query` is a full Aldi URL.'
schema:
type: string
description: 'Target country when `query` is a path only (default: `fr`).
**Examples:** `de`, `nl`, `es-can`
Ignored when `query` is a full Aldi URL.'
- name: page
in: query
required: false
description: '1-based page number override (default: read from URL or `1`).'
schema:
type: number
minimum: 1
maximum: 500
description: '1-based page number override (default: read from URL or `1`).'
- name: return_page_source
in: query
required: false
description: 'When `true`, return the raw HTML page source as `{"result": "..."}` instead of structured JSON. Defaults to `false`.'
schema:
type: boolean
description: 'When `true`, return the raw HTML page source as `{"result": "..."}` instead of structured JSON. Defaults to `false`.'
- $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:
url:
type: string
brand:
type: string
price:
type: number
title:
type: string
images:
type: array
items:
type: string
category:
type: string
currency:
type: string
image_url:
type: string
product_id:
type: string
sales_unit:
type: string
product_slug:
type: string
short_description:
type: string
pagination:
type: object
properties:
next:
nullable: true
page:
type: integer
per_page:
type: integer
total_pages:
type: integer
total_results:
type: integer
examples:
Poisson & crustacés category on aldi.fr (page 1):
value:
results:
- url: https://www.aldi.fr/fiches-produits/dos-de-cabillaud-9855.html
brand: GOLDEN SEAFOOD®
price: 9.99
title: Dos de cabillaud
images:
- https://s7g10.scene7.com/is/image/aldinord/9855.main.01.freezer.gp2024
- https://s7g10.scene7.com/is/image/aldinord/Label_peche_durable_msc
category: Viandes et poissons > Poissons et crustacés
currency: EUR
image_url: https://s7g10.scene7.com/is/image/aldinord/9855.main.01.freezer.gp2024
product_id: '9855'
sales_unit: 540G
product_slug: dos-de-cabillaud-9855
short_description: Régalez-vous avec notre délicieux dos de cabillaud…
pagination:
next: null
page: 1
per_page: 46
total_pages: 1
total_results: 46
'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:
- Aldi
post:
summary: Aldi Search
description: 'Aldi Search API: list products from an Aldi category page URL or path across FR, DE, NL and Canarias shops. Returns prices, thumbnails and pagination.
**Credit cost:** 1 credit per call'
operationId: post-aldi-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: 'Aldi category page URL or site path.
**Examples:**
```
produits/viande-poisson/poisson-crustace.html
```
```
https://www.aldi.fr/produits/viande-poisson/poisson-crustace.html
```
Use **Aldi Product** on any result `url` for full PDP data.'
region:
type: string
description: 'Target country when `query` is a path only (default: `fr`).
**Examples:** `de`, `nl`, `es-can`
Ignored when `query` is a full Aldi URL.'
page:
type: number
minimum: 1
maximum: 500
description: '1-based page number override (default: read from URL or `1`).'
return_page_source:
type: boolean
description: 'When `true`, return the raw HTML page source as `{"result": "..."}` instead of structured JSON. Defaults to `false`.'
required:
- query
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
type: object
properties:
url:
type: string
brand:
type: string
price:
type: number
title:
type: string
images:
type: array
items:
type: string
category:
type: string
currency:
type: string
image_url:
type: string
product_id:
type: string
sales_unit:
type: string
product_slug:
type: string
short_description:
type: string
pagination:
type: object
properties:
next:
nullable: true
page:
type: integer
per_page:
type: integer
total_pages:
type: integer
total_results:
type: integer
examples:
Poisson & crustacés category on aldi.fr (page 1):
value:
results:
- url: https://www.aldi.fr/fiches-produits/dos-de-cabillaud-9855.html
brand: GOLDEN SEAFOOD®
price: 9.99
title: Dos de cabillaud
images:
- https://s7g10.scene7.com/is/image/aldinord/9855.main.01.freezer.gp2024
- https://s7g10.scene7.com/is/image/aldinord/Label_peche_durable_msc
category: Viandes et poissons > Poissons et crustacés
currency: EUR
image_url: https://s7g10.scene7.com/is/image/aldinord/9855.main.01.freezer.gp2024
product_id: '9855'
sales_unit: 540G
product_slug: dos-de-cabillaud-9855
short_description: Régalez-vous avec notre délicieux dos de cabillaud…
pagination:
next: null
page: 1
per_page: 46
total_pages: 1
total_results: 46
'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:
- Aldi
/v2/aldi/product:
get:
summary: Aldi Product
description: 'Aldi Product API: fetch full product page data from an Aldi URL or path slug. Returns pricing, images, description, category and cooling flags.
**Credit cost:** 1 credit per call'
operationId: get-aldi-product
security:
- ApiKeyAuth: []
parameters:
- name: query
in: query
required: true
description: 'Aldi product page URL or site path slug.
**Examples:**
```
fiches-produits/filets-danchois-marines-6806.html
```
```
https://www.aldi.fr/fiches-produits/filets-danchois-marines-6806.html
```
Numeric product id alone is not supported: use URL or slug path.'
schema:
type: string
description: 'Aldi product page URL or site path slug.
**Examples:**
```
fiches-produits/filets-danchois-marines-6806.html
```
```
https://www.aldi.fr/fiches-produits/filets-danchois-marines-6806.html
```
Numeric product id alone is not supported: use URL or slug path.'
- name: region
in: query
required: false
description: 'Target country when `query` is a path only (default: `fr`). Ignored for full product URLs.'
schema:
type: string
description: 'Target country when `query` is a path only (default: `fr`). Ignored for full product URLs.'
- name: return_page_source
in: query
required: false
description: 'When `true`, return the raw HTML page source as `{"result": "..."}` instead of structured JSON. Defaults to `false`.'
schema:
type: boolean
description: 'When `true`, return the raw HTML page source as `{"result": "..."}` instead of structured JSON. Defaults to `false`.'
- $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:
url:
type: string
brand:
type: string
price:
type: number
title:
type: string
images:
type: array
items:
type: string
category:
type: string
currency:
type: string
image_url:
type: string
is_cooling:
type: boolean
product_id:
type: string
sales_unit:
type: string
description:
type: string
product_slug:
type: string
short_description:
type: string
examples:
Filets d'anchois marinés (6806) on aldi.fr:
value:
url: https://www.aldi.fr/fiches-produits/filets-danchois-marines-6806.html
brand: GOLDEN SEAFOOD®
price: 1.99
title: FILETS D'ANCHOIS MARINÉS
images:
- https://s7g10.scene7.com/is/image/aldinord/6806.main.1.fr_fr.All.anchois
- https://s7g10.scene7.com/is/image/aldinord/6806_FILETS_ANCHOIS_MARINES_AIL
category: 73-poisson
currency: EUR
image_url: https://s7g10.scene7.com/is/image/aldinord/6806.main.1.fr_fr.All.anchois
is_cooling: true
product_id: '6806'
sales_unit: 100 g
description: Pêche durable selon le référentiel MSC.
product_slug: filets-danchois-marines-6806
short_description: 'Au choix : Nature, ail et persil ou à la provençale.'
'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:
- Aldi
post:
summary: Aldi Product
description: 'Aldi Product API: fetch full product page data from an Aldi URL or path slug. Returns pricing, images, description, category and cooling flags.
**Credit cost:** 1 credit per call'
operationId: post-aldi-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: 'Aldi product page URL or site path slug.
**Examples:**
```
fiches-produits/filets-danchois-marines-6806.html
```
```
https://www.aldi.fr/fiches-produits/filets-danchois-marines-6806.html
```
Numeric product id alone is not supported: use URL or slug path.'
region:
type: string
description: 'Target country when `query` is a path only (default: `fr`). Ignored for full product URLs.'
return_page_source:
type: boolean
description: 'When `true`, return the raw HTML page source as `{"result": "..."}` instead of structured JSON. Defaults to `false`.'
required:
- query
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
url:
type: string
brand:
type: string
price:
type: number
title:
type: string
images:
type: array
items:
type: string
category:
type: string
currency:
type: string
image_url:
type: string
is_cooling:
type: boolean
product_id:
type: string
sales_unit:
type: string
description:
type: string
product_slug:
type: string
short_description:
type: string
examples:
Filets d'anchois marinés (6806) on aldi.fr:
value:
url: https://www.aldi.fr/fiches-produits/filets-danchois-marines-6806.html
brand: GOLDEN SEAFOOD®
price: 1.99
title: FILETS D'ANCHOIS MARINÉS
images:
- https://s7g10.scene7.com/is/image/aldinord/6806.main.1.fr_fr.All.anchois
- https://s7g10.scene7.com/is/image/aldinord/6806_FILETS_ANCHOIS_MARINES_AIL
category: 73-poisson
currency: EUR
image_url: https://s7g10.scene7.com/is/image/aldinord/6806.main.1.fr_fr.All.anchois
is_cooling: true
product_id: '6806'
sales_unit: 100 g
description: Pêche durable selon le référentiel MSC.
product_slug: filets-danchois-marines-6806
short_description: 'Au choix : Nature, ail et persil ou à la provençale.'
'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:
- Aldi
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.