import requests
url = "https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}"
payload = { "batch": [{ "imageLink": "https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png" }] }
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.post("https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"batch\": [\n {\n \"imageLink\": \"https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png\"\n }\n ]\n}")
.asString();const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
batch: [{imageLink: 'https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png'}]
})
};
fetch('https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"batch\": [\n {\n \"imageLink\": \"https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}"
payload := strings.NewReader("{\n \"batch\": [\n {\n \"imageLink\": \"https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'batch' => [
[
'imageLink' => 'https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}curl --request POST \
--url https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"batch": [
{
"imageLink": "https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png"
}
]
}
'{
"predictions": [
{
"tokensUsed": {
"promptTokens": 1614,
"completionTokens": 61,
"totalTokens": 1675
},
"imageMetadata": {
"keywords": [
"cartoon",
"pleased",
"toadstool"
],
"subcategories": [
"happy",
"mushroom art"
],
"synonyms": [
"animation",
"cheerful",
"delighted",
"drawing",
"fungus",
"sporocarp"
],
"locale": "en-US"
},
"response": "```yaml\nkeywords:\n - toadstool\n - pleased\n - cartoon\nsubcategories:\n - mushroom art\n - happy\nsynonyms:\n - fungus\n - sporocarp\n - delighted\n - cheerful\n - drawing\n - animation\n```"
}
]
}Image metadata enrichment use case
In the image metadata enrichment use case, the LLM ingests a text containing either a base64-encoded image or a public HTTP/HTTPS or Google Cloud Storage (gs://) image link and routes the image to a multimodal model. A JSON response is returned that contains an imageMetadata dictionary with a list of keywords, subcategories, and keyword synonyms. The metadata can be generated based on the image, the image title, and the categories.
import requests
url = "https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}"
payload = { "batch": [{ "imageLink": "https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png" }] }
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.post("https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"batch\": [\n {\n \"imageLink\": \"https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png\"\n }\n ]\n}")
.asString();const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
batch: [{imageLink: 'https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png'}]
})
};
fetch('https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"batch\": [\n {\n \"imageLink\": \"https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}"
payload := strings.NewReader("{\n \"batch\": [\n {\n \"imageLink\": \"https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'batch' => [
[
'imageLink' => 'https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}curl --request POST \
--url https://application_id.applications.lucidworks.com/ai/prediction/image-metadata-enrichment/{MODEL_ID} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"batch": [
{
"imageLink": "https://i.postimg.cc/T3Gggmrx/blushing-happymushroom.png"
}
]
}
'{
"predictions": [
{
"tokensUsed": {
"promptTokens": 1614,
"completionTokens": 61,
"totalTokens": 1675
},
"imageMetadata": {
"keywords": [
"cartoon",
"pleased",
"toadstool"
],
"subcategories": [
"happy",
"mushroom art"
],
"synonyms": [
"animation",
"cheerful",
"delighted",
"drawing",
"fungus",
"sporocarp"
],
"locale": "en-US"
},
"response": "```yaml\nkeywords:\n - toadstool\n - pleased\n - cartoon\nsubcategories:\n - mushroom art\n - happy\nsynonyms:\n - fungus\n - sporocarp\n - delighted\n - cheerful\n - drawing\n - animation\n```"
}
]
}Headers
Bearer token used for authentication. Format: Authorization: Bearer ACCESS_TOKEN.
Path Parameters
Unique identifier for the model. Must be a multimodal model capable of processing images, such as gemini-2.5-flash-lite.
Body
An array of request items. Each item must contain exactly one of text, image, or imageLink.
Show child attributes
Show child attributes
Optional object to control metadata generation. The image must be provided in the batch item as useCaseConfig only tunes the output.
Show child attributes
Show child attributes
Provides fields and values that specify ranges for tokens. Fields used for specific use cases and models are specified. The default values are used if other values are not specified.
Show child attributes
Show child attributes
Response
OK
Show child attributes
Show child attributes
Was this page helpful?