> ## Documentation Index
> Fetch the complete documentation index at: https://sudomock.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The base URL is https://api.sudomock.com.
> Authenticate every request with the x-api-key header. Keys begin with sm_.
> A render returns the finished image at data.print_files[0].export_path. A request sent with is_async true returns a job_id to poll at GET /api/v1/jobs/{job_id}.
> Prefer the official SDKs over hand-written HTTP calls: npm install sudomock for Node, pip install sudomock for Python.

# How to produce a seasonal set with an agent

> Render a whole holiday set from one agent session.

A seasonal set is the same few products carrying a new run of artwork: a holiday
range across your shirts, mugs and posters, finished before the season opens.
An agent connected to SudoMock can build one inside a single session, because
every step it needs is a tool it can call.

## Connect the account once

[Connect an agent](/docs/connect-an-agent) adds the SudoMock MCP server to Claude
Code, Codex or any client that speaks remote MCP. The same account and the same
credits sit behind it, so a render started this way is billed exactly as an API
render is.

Open the session with `get_account`. It reports the organization the key belongs
to, the plan, the credits left and the prepaid balance, which is what tells you
whether the set you are about to queue fits inside what you hold. An account
paying as it goes reports zero credits and pays from its balance, so read the
funding summary rather than the credit number alone.

## Bring the artwork in as a URL

Every render tool takes artwork as `artwork_url`, a public image URL. When the
design already sits in your own storage, or an image tool in the same session
handed the agent a link, that link goes straight into the render with no upload
step in between.

When the file is on the machine the agent is running on, `upload_local_file`
with `kind` set to `artwork` returns a URL any render tool accepts, and it costs
no credits. `remove_background` does the same job for a design that has to come
off its background first: the cutout comes back as a URL you can render with for
the next seven days.

## Pick the templates the set runs on

`list_psd_mockups` returns your Photoshop templates with their ids and names and
filters by name, so a season kept under one naming convention is one call rather
than a list you read through. `list_photo_mockups` returns the mockups built
from product photographs.

Then read the one template a render is about to name. `get_psd_mockup` gives the
smart object ids a PSD render places artwork on, and `get_photo_mockup` gives
the print area and surface ids a photo mockup render targets.

## Queue the set rather than waiting on it

There is no batch tool. One call produces one output, so a run of artwork across
a run of templates is one call per combination, which is the kind of loop an
agent is good at.

Send `is_async` as `true` on each one. The call answers immediately with a job
id instead of a finished render. A queued PSD render does not hold one of your
plan's parallel render slots while it sits in the queue, and that is what makes
a large set practical: submit the whole thing first, then collect it.

Follow the work with `wait_for_job` where the agent should block until an image
lands, and `get_job` where it should check and carry on. `list_jobs` finds the
run when the ids were not kept, newest first, filtered by kind or by template.

## When the season should run without you

A set that comes back every year, or a drop that should start the moment a
design folder changes, belongs in a workflow rather than a session. The verified
[n8n node](/docs/integrations/n8n) covers the same render calls on a schedule or a
trigger, and a [webhook endpoint](/docs/webhooks/overview) delivers each finished job
to your server the moment it lands, signed.

Both ceilings that a large run can meet, and the headers that report them, are
on [Rate limits and concurrency limits](/docs/api-reference/usage-limits).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.