Back to Brand Kit Extractor API

API documentation

Brand Kit Extractor API

Analyze one public webpage and its directly linked styles to detect brand names, logos, colors, fonts, imagery, social profiles, and CSS brand variables without AI.

Current planFree100 requests per month

Quota

Free usage

Used0
Remaining100
Limit100
Resets at 2026-08-31 23:59:59.

Authentication

Bearer token

Authorization: Bearer {serviceTokenHere}

For compatibility with simple image tags and legacy clients, ?token=... and the X-API-Token header are also accepted.

POST

Extract Brand Kit

https://ai.mihajlo.mk/api/brand-kit-extractor/v1/extract-brand-kit

Analyze one public webpage and its directly referenced brand resources.

ParameterTypeRequiredDescription
urlstringYesPublic HTTP or HTTPS webpage URL to analyze.
max_css_filesintegerNoMaximum number of directly linked stylesheets to download and inspect.
include_css_variablesbooleanNoInclude brand-related CSS custom properties in the response.

cURL example

curl --request POST \
  --header "Authorization: Bearer {serviceTokenHere}" \
  "https://ai.mihajlo.mk/api/brand-kit-extractor/v1/extract-brand-kit"

Example response

{
    "url": "https://example.com/",
    "final_url": "https://www.example.com/",
    "brand": {
        "name": "Example",
        "logo": {
            "url": "https://www.example.com/assets/logo.svg",
            "confidence": 96
        },
        "alternative_logos": [
            "https://www.example.com/assets/logo-white.svg"
        ],
        "favicon": "https://www.example.com/favicon.ico",
        "apple_touch_icon": "https://www.example.com/apple-touch-icon.png"
    },
    "colors": {
        "primary": "#0D9488",
        "secondary": "#0F172A",
        "accent": "#F59E0B",
        "background": "#FFFFFF",
        "palette": [
            "#0D9488",
            "#0F172A",
            "#F59E0B",
            "#FFFFFF"
        ]
    },
    "fonts": [
        {
            "family": "Inter",
            "source": "Google Fonts",
            "urls": []
        }
    ],
    "images": {
        "og_image": "https://www.example.com/og-image.jpg",
        "hero_images": [
            "https://www.example.com/assets/hero.webp"
        ],
        "branding_images": []
    },
    "social": {
        "facebook": null,
        "instagram": "https://www.instagram.com/example/",
        "linkedin": "https://www.linkedin.com/company/example/",
        "youtube": null,
        "x": null,
        "tiktok": null,
        "pinterest": null
    },
    "theme": {
        "theme_color": "#0D9488",
        "css_variables": {
            "--brand-color": "#0D9488"
        }
    }
}

Live tester

Login to run live requests. All endpoint documentation remains public.

Login to test

Errors

Standard error envelope

{
  "ok": false,
  "error": "invalid_request",
  "message": "Human-readable explanation"
}

Common statuses: 401 invalid token, 422 invalid parameters, 429 quota used, and 502 upstream or capture failure.