Image Analysis 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
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