API Documentation

Authentication (Login)

To access the API, you need to authenticate using your login credentials. The credentials you use to log in are the same as your driver credentials.

To use the API, authenticate by sending your credentials to the login endpoint to receive a Bearer token.
API Base URL: https://api.estillon.nl

Endpoint

POST /api/login

Request JSON Example

{
    "email": "user@example.com",
    "password": "your_password"
}

Example cURL Request

curl -X POST https://api.estillon.nl/api/login \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "your_password"}'

Successful Response Example

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJh...",
    "token_type": "Bearer",
    "expires_at": "2026-06-19T10:15:30.000000Z"
}

Use the access_token as a Bearer token in your Authorization header for subsequent API calls:

Authorization: Bearer <your_access_token>

Products

Endpoint

GET /api/v1/products

Supported Filters

You can filter products using the following query parameters and operators:

Parameter Allowed Operators
skueq
productStateeq
productTypeeq
priceeq, gt, lt, lte, gte
sincedFromMagentoeq
sincedFromBceq
blockedeq
bcShowOnWebsiteeq
createdAtgte, lte
updatedAtgte, lte
vatPostingGroupeq
Filter operators explained:
  • eq: equals
  • lt: less than
  • gt: greater than
  • lte: less than or equal to
  • gte: greater than or equal to
  • ne: not equal to

Example Request

curl -X GET "https://api.estillon.nl/api/v1/products?sku[eq]=ABC123&priceIncludingTax[gt]=50" \
-H "Authorization: Bearer <your_access_token>"

Example Response

{
    "data": [
        {
            "id": 101,
            "magento_id": "MAG-SKU-123",
            "business_central_id": "BC-PROD-456",
            "product_state": "active",
            "attribute_set_id": 2,
            "ribbon_id": 5,
            "product_type": "configurable_product",
            "sku": "DUMMY-SKU-001",
            "stock": 150,
            "price": "29.990000",
            "steel_request_is_enabled": 0,
            "position": 10,
            "synced_from_magento": "2025-01-15T10:00:00.000000Z",
            "synced_from_bc": "2025-01-16T11:30:00.000000Z",
            "blocked": 0,
            "bc_show_on_website": 1,
            "substitution_product": "SUB-SKU-002",
            "vat_posting_group": "HIGH",
            "created_at": "2025-01-10T08:00:00.000000Z",
            "updated_at": "2025-06-30T14:15:00.000000Z",
            "wordpress_page": "product-page-dummy-001",
            "localization": {
                "id": 201,
                "product_id": 101,
                "language_id": 1,
                "name": "Dummy Product Name NL",
                "description_short": "Korte beschrijving van het dummy product voor testdoeleinden.",
                "description": "Dit is een langere, gedetailleerde beschrijving van het
                        dummy product, ideaal voor het testen van API-integraties en documentatie.",
                "openai_name": "AI Generated Product Name",
                "openai_description_short": "Korte AI-gegenereerde beschrijving voor dit
                        dummy product.",
                "openai_description": "Uitgebreide AI-gegenereerde beschrijving van het
                        dummy product, perfect voor het vullen van contentplaatsen.",
                "grouped_products": "[{\"sku\":\"DUMMY-001-RED\",\"qty\":1},
                        {\"sku\":\"DUMMY-001-BLUE\",\"qty\":1}]",
                "created_at": "2025-01-10T08:00:00.000000Z",
                "updated_at": "2025-06-30T14:15:00.000000Z"
            },
            "categories": [
                {
                    "id": 10,
                    "language_id": 1,
                    "category_id": 5,
                    "wordpress_page_id": 1001,
                    "name": "Dummy Categorie 1",
                    "slug": "dummy-categorie-1",
                    "full_slug": "hoofd-categorie/dummy-categorie-1",
                    "image": "https://example.com/images/categories/dummy_cat1.svg",
                    "position": 1,
                    "created_at": "2025-01-01T09:00:00.000000Z",
                    "updated_at": "2025-06-01T10:00:00.000000Z",
                    "pivot": {
                        "product_id": 101,
                        "category_id": 10
                    },
                    "images": []
                },
                {
                    "id": 11,
                    "language_id": 2,
                    "category_id": 6,
                    "wordpress_page_id": 1002,
                    "name": "Dummy Category 2 EN",
                    "slug": "dummy-category-2-en",
                    "full_slug": "main-category/dummy-category-2-en",
                    "image": "https://example.com/images/categories/dummy_cat2.svg",
                    "position": 2,
                    "created_at": "2025-01-02T11:00:00.000000Z",
                    "updated_at": "2025-06-02T12:00:00.000000Z",
                    "pivot": {
                        "product_id": 101,
                        "category_id": 11
                    },
                    "images": []
                }
            ],
            "product_attribute_set_item_values": [
                {
                    "id": 301,
                    "product_id": 101,
                    "attribute_set_item_id": 100,
                    "value": "{\"1\":\"Waarde NL\",\"2\":\"Value EN\",\"3\":\"Wert DE\"}",
                    "created_at": "2025-01-10T08:00:00.000000Z",
                    "updated_at": "2025-06-30T14:15:00.000000Z"
                },
                {
                    "id": 302,
                    "product_id": 101,
                    "attribute_set_item_id": 101,
                    "value": "{\"1\":\"Eenheid NL\",\"2\":\"Unit EN\"}",
                    "created_at": "2025-01-10T08:00:00.000000Z",
                    "updated_at": "2025-06-30T14:15:00.000000Z"
                }
            ],
            "images": [
                {
                    "id": 401,
                    "product_id": 101,
                    "small": "dummy_small_123abc.webp",
                    "medium": "dummy_medium_123abc.webp",
                    "large": "dummy_large_123abc.webp",
                    "orientation_type": "portrait",
                    "position": 1,
                    "created_at": "2025-01-10T08:00:00.000000Z",
                    "updated_at": "2025-06-30T14:15:00.000000Z",
                    "small_url": "https://example.com/images/products/101/dummy_small.webp",
                    "medium_url": "https://example.com/images/products/101/dummy_medium.webp",
                    "large_url": "https://example.com/images/products/101/dummy_large.webp"
                }
            ],
            "icons": [
                {
                    "id": 501,
                    "product_id": 101,
                    "small": "icon_small_xyz.webp",
                    "medium": "icon_medium_xyz.webp",
                    "large": "icon_large_xyz.webp",
                    "orientation_type": "square",
                    "position": 1,
                    "created_at": "2025-01-10T08:00:00.000000Z",
                    "updated_at": "2025-06-30T14:15:00.000000Z",
                    "small_url": "https://example.com/images/icons/101/icon_small.webp",
                    "medium_url": "https://example.com/images/icons/101/icon_medium.webp",
                    "large_url": "https://example.com/images/icons/101/icon_large.webp"
                }
            ],
            "sheets": [
                {
                    "id": 601,
                    "product_id": 101,
                    "name": "Datasheet Dummy Product",
                    "file_url": "https://example.com/docs/datasheet_dummy.pdf",
                    "position": 1,
                    "created_at": "2025-01-10T08:00:00.000000Z",
                    "updated_at": "2025-06-30T14:15:00.000000Z"
                }
            ],
            "videos": [
                {
                    "id": 701,
                    "product_id": 101,
                    "youtube_id": "DUMMY_YT_ID",
                    "position": 1,
                    "created_at": "2025-01-10T08:00:00.000000Z",
                    "updated_at": "2025-06-30T14:15:00.000000Z"
                }
            ],
            "related_products": [
                {
                    "id": 102,
                    "sku": "RELATED-SKU-002",
                    "name": "Gerelateerd Product A"
                },
                {
                    "id": 103,
                    "sku": "RELATED-SKU-003",
                    "name": "Gerelateerd Product B"
                }
            ]
        }
    ]
}