Images are inputs. You can ask Noul, Choice, or Score questions about the same image.
Send one inline PNG, JPEG, or WebP data URL in images. External image URLs are not accepted. Keep the whole request under 16 MiB; the playground limits uploaded files to 4 MB.
The delivery photo example checks for visible crushing or tearing. It then chooses a support step. It does not claim that the product inside is damaged.
The receipt upload example checks whether the merchant, date, and total are readable. It routes the document for review — it does not approve a payment.
python
import base64
import json
import os
import urllib.request
from pathlib import Path
image = base64.b64encode(Path("photo.jpg").read_bytes()).decode()
body = {
"model": "blink-1.0-experimental",
"state": {"task": "Check visible packaging only. Do not infer the condition of hidden contents."},
"images": ["data:image/jpeg;base64," + image],
"questions": {
"condition": {
"type": "choice",
"instructions": "What condition is visible?",
"criteria": {"damaged": "Crushing or tearing is visible", "intact": "Visible packaging appears intact", "unclear": "The image is not enough to assess"}
}
}
}
request = urllib.request.Request(
os.environ["BLNKD_URL"] + "/v1/systemone",
data=json.dumps(body).encode(),
headers={"User-Agent": "blnkd-python/1.0", "Content-Type": "application/json", "Authorization": "Bearer " + os.environ["BLNKD_API_KEY"]},
)
with urllib.request.urlopen(request, timeout=280) as response:
print(response.read().decode())