Image Analysis API

AI Alt Text & Image Metadata API

Image in. SEO metadata out.

One API endpoint. You send an image – LucidSEO analyses it via AI and instantly returns alt text, meta description, caption and keywords. Ready for CMS, shop or DAM.

POST /api/photos/analyze
202 Accepted
{
  "alt_text": "Gotisches Kirchenportal mit konzentrischen Bögen in Girona, Spanien",
  "description": "Frontale Aufnahme eines gotischen Kirchenportals mit charakteristischen konzentrischen Spitzbögen und ornamentalen Säulen in Girona",
  "caption": "Gotisches Kirchenportal in Girona, Barri Vell",
  "keywords": [
    "Girona", "gotische Architektur", "Kirchenportal",
    "Altstadt", "Spanien"
  ],
  "photo_id": 42
}
4 Fields
Per analysis response
<2s
Avg. response time
8
Languages supported
REST API
JSON · Webhook · Async
How it works

Four steps from image to ready metadata.

01
Send image URL

You send the URL of your image – LucidSEO downloads and analyses it. Maximum file size: 5 MB.

02
AI analyses

Image content, context and mood are detected. Language freely selectable.

03
SEO optimised

All fields are aligned with search engine guidelines and character limits.

04
Webhook callback

Structured JSON response via webhook – directly into your CMS, shop or database.

Response Fields

What you get back.

Every analysis returns four SEO-relevant fields – character-limit compliant and ready to use.

All fields are aligned with common CMS standards.
Character limits: alt_text ≤ 120, description ≤ 155, caption ≤ 80, keywords max. 10 terms.

alt_text
string · max 120 chars
Precisely describes the image content for screen readers and search engines. Primary keyword naturally embedded.
description
string · max 155 chars
Click-optimised description text for search results. Contains a call to action and context.
caption
string · max 80 chars
Journalistically written image caption. Suitable for blog, gallery and social media.
keywords
array · max 10 terms
Relevant search terms, prioritised by search volume and image context.
Landscape Sunset Vineyards + more
Use Cases

Built for teams that ship at scale.

E-Commerce & Online Shops

Product images without alt text are invisible to search engines — and writing metadata manually for large catalogues simply doesn't scale. LucidSEO generates SEO-compliant alt text, meta descriptions, captions, and keyword arrays for every product photo automatically. Whether you manage 500 or 500,000 SKUs, each image receives individually analysed metadata in under two seconds. Feed the API directly from your product import pipeline, connect via webhook to your CMS, PIM, or shop system, and have finished metadata waiting before a product goes live. Character limits, keyword relevance, and accessibility compliance are handled automatically — consistently, at scale, without manual effort.

Photographers & Stock Agencies

Every photo uploaded to a stock platform needs accurate keywords, a compelling caption, and a searchable description. Writing them manually for hundreds of shots after a shoot is exhausting — and usually inconsistent. LucidSEO analyses each image individually and returns keywords ranked by relevance, a journalistic caption, and a description optimised for platform discoverability. Connect the API to your upload workflow or digital asset manager and receive structured metadata the moment a file lands. No batch-editing, no guessing which keywords buyers search for. The API understands image content — architecture, people, mood, location — and translates it into terms that stock buyers and search engines respond to.

DAM Systems & Creative Agencies

For agencies and teams managing large asset libraries, consistent metadata is non-negotiable. Missing or inconsistent alt text across a client's image library is both an SEO liability and an accessibility violation. LucidSEO integrates directly into any DAM or content pipeline via REST API and webhook, ensuring every asset is tagged the moment it enters the system. Set a context hint per client or project — "luxury residential photography" or "B2B SaaS screenshots" — and the AI calibrates keywords and descriptions to match. The result: a structured, searchable, SEO-ready asset library with no manual tagging overhead. Deliver metadata-rich assets to clients as a built-in part of your production workflow.

API Documentation

Integration in minutes.

POST https://lucidseo.net/api/photos/analyze Image analysis (async)
// cURL Example
curl -X POST https://lucidseo.net/api/photos/analyze \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/image.jpg", "webhook_url": "https://yourshop.com/api/seo/webhook", "context": "Product photography"}'
Parameter Type Description
url required string URL of the image to analyse. JPG, PNG, WebP. Max. 5 MB.
webhook_url string URL called with the result after analysis is complete.
context string Optional context hint for more precise keywords (e.g. "product photography e-commerce").
PHP / Laravel Example Laravel
$response = Http::withToken(config('lucidseo.api_key'))
    ->post('https://lucidseo.net/api/photos/analyze', [
        'url' => $imageUrl,
        'webhook_url' => 'https://yourshop.com/api/seo/webhook',
        'context' => 'Product photography',
    ]);
 
// Response: {"message": "Analysis started.", "photo_id": 42}
// Result is sent via webhook with X-LucidSeo-Signature header
Pricing

Simple pricing. No surprises.

Free
Free
  • 50 analyses/month
  • 1 Domain
  • No overage – paused at limit
Start for free
Starter
9
/month
  • 300 analyses/month
  • 1 Domain
  • +15% overage @ 0,04 €/analysis
Get started
Pro
29
/month
  • 1,500 analyses/month
  • 3 Domains
  • +15% overage @ 0,04 €/analysis
Get started
Agency
79
/month
  • 6,000 analyses/month
  • 10 Domains
  • +15% overage @ 0,04 €/analysis
Get started
FAQ

Everything you need to know.

Can't find your answer? Reach out via the contact page.

How do I generate alt text automatically?

Send a POST request to the /api/photos/analyze endpoint with the URL of your image and your API key. LucidSEO downloads the image, analyses it with AI, and returns alt text, a meta description, a caption, and keywords — either directly in the response or via a webhook callback URL you specify.

What languages are supported?

LucidSEO currently supports 8 languages: English, German, French, Spanish, Italian, Dutch, Portuguese, and Polish. The output language is specified per request, making it straightforward to localise metadata for international storefronts, stock platforms, or DAM systems.

Can I bulk-process images?

Yes. Each request analyses one image asynchronously. For bulk processing, send requests in parallel and collect results via webhook. There is no dedicated batch endpoint, but the async architecture is designed for high-volume pipelines and will not block your application.

How does the webhook callback work?

Pass a webhook_url parameter with your request. Once analysis is complete, LucidSEO sends a POST request to your URL with the structured JSON result. The callback includes an X-LucidSeo-Signature header so you can verify the payload originated from LucidSEO before processing it.

What image formats and file sizes are supported?

LucidSEO accepts JPG, PNG, and WebP images accessible via a public URL. The maximum file size is 5 MB. The image must be publicly reachable — authenticated or private URLs are not supported.

How accurate is the AI-generated metadata?

Accuracy depends on image quality and content clarity. For standard product photos, architectural shots, and editorial images, the AI consistently produces usable, SEO-aligned output. The optional context parameter — for example, "luxury e-commerce product photography" — significantly improves keyword precision and description tone for specialised use cases.

Do I need a credit card to get started?

No. Every API key includes a free test quota so you can integrate and evaluate LucidSEO without providing payment details. Once your test quota is used, you can upgrade to a paid plan that matches your volume.

What is the context parameter used for?

The context parameter is an optional free-text hint that tells the AI more about your use case — for example, "real estate photography" or "children's fashion e-commerce". It helps the model generate more relevant keywords and a more appropriate tone, making the output better suited to your specific content domain.