CI smoke test for Ideogram 4.5 on Sume: one low-quality image

A bash and jq check that submits one 1K low-quality Ideogram 4.5 image, passes on 200 or 202, and explains 401, 402 and 429. List price is $0.03.

4 min readSume
All posts

A smoke test should prove the key, the route and the model id all still work, at the lowest cost. Ideogram 4.5 (ideogram/ideogram-v4.5) at quality: "low", resolution: "1K" and n: 1 is the cheapest setting; the Sume image docs list it at $0.03 per image. At that price 200 runs a month is about $6.00 at list.

Treat both 200 and 202 as a pass. The route waits up to 30 seconds and answers 200 with data[].url, or 202 with a job envelope when it is slower.

The script

#!/usr/bin/env bash
set -euo pipefail
: "${SUME_API_KEY:?set SUME_API_KEY}"
status=$(curl -sS -o smoke.json -w '%{http_code}' https://api.sume.com/v1/images \
  -H "x-api-key: $SUME_API_KEY" -H 'content-type: application/json' \
  -H "idempotency-key: ci-smoke-${CI_SMOKE_TAG:-local}" \
  -d '{"model":"ideogram/ideogram-v4.5","prompt":"a plain white mug on a grey table","quality":"low","resolution":"1K","n":1}')
case "$status" in
  200) jq -e '.data[0].url' smoke.json ;;
  202) jq -e '.data.job.id' smoke.json ;;
  *)   echo "smoke failed: HTTP $status"; jq -r '.error.code // empty' smoke.json; exit 1 ;;
esac

Reading a failure

Status handling from the Sume docs, read 2026-10-06
StatusLikely causeFix
401Key missing, malformed or revokedRotate the CI secret
402insufficient_creditsTop up the wallet
429Rate limit or queue_fullRerun later; same key replays
400Unsupported field such as seed or streamRemove it

Keep the test honest

  • Set CI_SMOKE_TAG per pipeline so reruns replay the same job instead of billing twice.
  • Do not download or diff the image; a URL or job id is enough to prove the path.
  • Store the key in your CI secret store, never in the repository.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume