Generate Atlas Cloud images and videos through its asynchronous media API with schema-first model selection and credential-safe polling.
Use Atlas Cloud's asynchronous media API to generate images or videos. This source-only skill describes model discovery, schema validation, task submission, bounded polling, and safe output retrieval; it does not bundle an SDK, executable, or hosted runtime.
ATLASCLOUD_API_KEY to be present in the environment. Never ask the
user to paste it into chat, source files, command history, or logs.| Operation | Method and endpoint |
| --- | --- |
| List models | GET https://api.atlascloud.ai/api/v1/models |
| Generate image | POST https://api.atlascloud.ai/api/v1/model/generateImage |
| Generate video | POST https://api.atlascloud.ai/api/v1/model/generateVideo |
| Poll task | GET https://api.atlascloud.ai/api/v1/model/prediction/{id} |
Generation and polling requests use these headers:
Authorization: Bearer $ATLASCLOUD_API_KEY
Content-Type: application/json
The model catalog is public. Each catalog entry includes a schema URL; fetch
that schema and validate parameters against it before sending a paid request.
Do not guess parameters from another model, because names such as size,
ratio, aspect_ratio, image, and image_url are model-specific.
Fetch the catalog, filter by type (Image or Video), and match the user's
requested capability. Read the selected entry's schema, verify that all
required fields are present, and show the model and billable action to the user
before submission.
Example discovery request:
curl --fail --silent --show-error \
"https://api.atlascloud.ai/api/v1/models" \
--output /tmp/atlas-models.json
jq -r '.data[] | select(.type == "Image") | [.model, .displayName, .schema] | @tsv' \
/tmp/atlas-models.json
Build the JSON body in a file so that quoting is deterministic and request details can be reviewed without exposing the API key.
Image example using a catalog-confirmed model:
jq -n \
--arg model "qwen-image-3.0/text-to-image" \
--arg prompt "A paper-cut city map in blue and white, clean editorial style" \
'{model: $model, prompt: $prompt, size: "1024*1024", n: 1}' \
> /tmp/atlas-image-request.json
curl --fail --silent --show-error \
--request POST \
"https://api.atlascloud.ai/api/v1/model/generateImage" \
--header "Authorization: Bearer $ATLASCLOUD_API_KEY" \
--header "Content-Type: application/json" \
--data @/tmp/atlas-image-request.json \
--output /tmp/atlas-submit.json
Video example using a catalog-confirmed model:
jq -n \
--arg model "bytedance/seedance-2.0-fast/text-to-video" \
--arg prompt "A small paper boat crossing a calm pond, locked camera" \
'{
model: $model,
prompt: $prompt,
duration: 4,
resolution: "480p",
ratio: "16:9",
generate_audio: false,
watermark: false
}' > /tmp/atlas-video-request.json
curl --fail --silent --show-error \
--request POST \
"https://api.atlascloud.ai/api/v1/model/generateVideo" \
--header "Authorization: Bearer $ATLASCLOUD_API_KEY" \
--header "Content-Type: application/json" \
--data @/tmp/atlas-video-request.json \
--output /tmp/atlas-submit.json
Check that .data.id is a non-empty string before polling. Treat a non-2xx
response or a missing ID as submission failure; do not retry a billable request
automatically because the original task may still have been accepted.
Poll every three seconds. Accept completed or succeeded as success, stop on
failed or timeout, and stop after ten minutes. Preserve the prediction ID
for diagnostics, but never log request headers or the API key.
prediction_id=$(jq -er '.data.id | select(type == "string" and length > 0)' \
/tmp/atlas-submit.json)
for attempt in $(seq 1 200); do
sleep 3
curl --fail --silent --show-error \
"https://api.atlascloud.ai/api/v1/model/prediction/$prediction_id" \
--header "Authorization: Bearer $ATLASCLOUD_API_KEY" \
--output /tmp/atlas-prediction.json
status=$(jq -r '.data.status // "unknown"' /tmp/atlas-prediction.json)
case "$status" in
completed|succeeded) break ;;
failed|timeout)
jq -r '.data.error // "Atlas Cloud generation failed"' \
/tmp/atlas-prediction.json >&2
exit 1
;;
esac
done
test "$status" = "completed" || test "$status" = "succeeded"
Read the first HTTPS URL from .data.outputs. Atlas output URLs are temporary,
so download promptly. Do not send Authorization or any other Atlas request
headers to the output host. Reject non-HTTPS URLs and inspect the downloaded
file's content type and size before treating it as a valid deliverable.
output_url=$(jq -er '.data.outputs[0] | select(startswith("https://"))' \
/tmp/atlas-prediction.json)
curl --fail --silent --show-error --location \
"$output_url" \
--output ./atlas-output.bin
test -s ./atlas-output.bin
file ./atlas-output.bin
Rename the file only after its detected type is known. Report the local path, model ID, dimensions or duration, and whether the output passed basic playback or decode validation.
401 or 403: stop and ask the user to verify access. Do not print or rotate
the key automatically.400 or 422: fetch the model's current schema and correct the payload. Do
not blindly resubmit.429: stop and report rate limiting; respect any Retry-After value.5xx or network timeout: first poll a known prediction ID. Do not create a
second paid task unless the user approves the possible duplicate charge.failed or timeout: report the sanitized service error and prediction ID;
do not claim an output was generated.schema and rebuild
the request from that schema.@video-router - Decide whether a request should use generated video before
submitting a billable task.@image-studio - Plan and review image-production work around generated
assets.Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/atlas-cloud-media · pinned to the source commit
# Run from your project root
git clone https://github.com/sickn33/agentic-awesome-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 5cf4dfeb13ea966daa1e117897689cd7991e3f44
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/plugins/agentic-awesome-skills-claude/skills/atlas-cloud-media" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/sickn33/agentic-awesome-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 5cf4dfeb13ea966daa1e117897689cd7991e3f44
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/plugins/agentic-awesome-skills-claude/skills/atlas-cloud-media" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/atlas-cloud-media
Scanner static-checks@0.1.0 · commit 5cf4dfeb13ea. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
References credentials, tokens or secret files that a skill should not need.
Evidence: [redacted]· fingerprint ccae6d912a41bfef
Fetches remote content at runtime, which can change after review.
Evidence: curl· fingerprint 427e4b79b1f0fc90