> ## 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.

# SudoMock API

> Render product mockups from PSD files and photos over HTTP.

<div className="sr-only">
  For all documentation in an index, see
  [llms.txt](https://sudomock.com/docs/llms.txt). To view the full text of the
  documentation, see
  [llms-full.txt](https://sudomock.com/docs/llms-full.txt).
</div>

Upload a mockup once, then render it with any artwork, any colour, any text, as
many times as you need. One POST returns a finished image.

To get started with SudoMock, you'll need:

1. [An API key](/docs/authentication)
2. A Photoshop file or a product photo, [uploaded once as a mockup](/docs/quickstart)

Then you are ready to render [either kind of mockup](/docs/guides/introduction):

* **PSD mockups:** a layered file, addressed by smart object and text layer
* **Photo mockups:** a product photo with its print area marked once

## Quickstart

Copy a working handler for the framework you already run.

<CardGroup cols={3}>
  <Card title="Render with Node.js" icon="terminal" href="/docs/render-with-nodejs" />

  <Card title="Render with Next.js" icon="server" href="/docs/render-with-nextjs" />

  <Card title="Render with Express" icon="server" href="/docs/render-with-express" />

  <Card title="Render at the edge" icon="cloud" href="/docs/render-with-cloudflare-workers" />

  <Card title="Render with Python" icon="terminal" href="/docs/render-with-python" />

  <Card title="Render with Django" icon="server" href="/docs/render-with-django" />

  <Card title="Render with FastAPI" icon="server" href="/docs/render-with-fastapi" />

  <Card title="Render with Flask" icon="server" href="/docs/render-with-flask" />

  <Card title="Render with PHP" icon="terminal" href="/docs/render-with-php" />

  <Card title="Render with Laravel" icon="server" href="/docs/render-with-laravel" />

  <Card title="Render with Go" icon="terminal" href="/docs/render-with-go" />

  <Card title="Render with Rails" icon="server" href="/docs/render-with-rails" />
</CardGroup>

## Explore

The endpoints those handlers call, and the callback for long jobs.

<CardGroup cols={2}>
  <Card title="Render a PSD mockup" icon="layers" href="/docs/api-reference/psd-mockups/render-a-psd-mockup">
    Artwork into a smart object, image back.
  </Card>

  <Card title="Render a photo mockup" icon="camera" href="/docs/api-reference/photo-mockups/render-a-photo-mockup">
    A print area on any product photo.
  </Card>

  <Card title="Render a video mockup" icon="film" href="/docs/api-reference/video-mockups/render-a-video-mockup">
    The same template, rendered as motion.
  </Card>

  <Card title="Get called back" icon="bell" href="/docs/webhooks/overview">
    Large jobs return a signed callback.
  </Card>
</CardGroup>


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