# SudoMock > SudoMock is the mockup rendering API for developers, with official Node and Python SDKs. The documentation covers the REST API, PSD, photo and video mockups, text and fonts, webhooks, no-code integrations, the MCP server, and a two-request quickstart. > ## 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](https://sudomock.com/docs/index.md): Render product mockups from PSD files and photos over HTTP. - [Quickstart](https://sudomock.com/docs/quickstart.md): From a Photoshop file to a rendered mockup in two requests. - [Authentication](https://sudomock.com/docs/authentication.md): How SudoMock identifies your requests. - [Render product mockups with Node.js](https://sudomock.com/docs/render-with-nodejs.md): Upload a PSD and render mockups from a Node.js service. - [Render product mockups with Next.js](https://sudomock.com/docs/render-with-nextjs.md): Render a PSD mockup from a Next.js route handler. - [Render mockups from an Express app](https://sudomock.com/docs/render-with-express.md): Upload a PSD and render it from one Express route. - [Render mockups in Cloudflare Workers](https://sudomock.com/docs/render-with-cloudflare-workers.md): Call the render API from a Worker with a stored API key. - [Render product mockups with Python](https://sudomock.com/docs/render-with-python.md): Upload a PSD and render artwork from a Python script. - [Render product mockups with Django](https://sudomock.com/docs/render-with-django.md): Call the mockup API from a Django view with the Python SDK. - [Render mockups from a FastAPI app](https://sudomock.com/docs/render-with-fastapi.md): Call the render API from an async FastAPI route. - [Render product mockups with Flask](https://sudomock.com/docs/render-with-flask.md): Upload a PSD once, then render it from a Flask route. - [Render mockups from a PHP backend](https://sudomock.com/docs/render-with-php.md): Call the SudoMock API from PHP with the curl extension. - [Render product mockups with Laravel](https://sudomock.com/docs/render-with-laravel.md): Render a PSD mockup from Laravel with the Http client. - [Render mockups from a Go service](https://sudomock.com/docs/render-with-go.md): Upload a PSD and render it with net/http and encoding/json. - [Render mockups with Ruby on Rails](https://sudomock.com/docs/render-with-rails.md): Upload a PSD and render artwork from a Rails controller. - [What you can do in the dashboard](https://sudomock.com/docs/dashboard/introduction.md): The seven areas of the SudoMock dashboard. - [Create a mockup in the browser](https://sudomock.com/docs/dashboard/create.md): Build a mockup without writing a request. - [The library of mockups you saved](https://sudomock.com/docs/dashboard/mockups.md): Find, rename and delete your saved mockups. - [Upload fonts for your text layers](https://sudomock.com/docs/dashboard/fonts.md): Add your own typefaces to the catalogue. - [Watch deliveries from the panel](https://sudomock.com/docs/dashboard/webhooks.md): Endpoints, deliveries and the event feed. - [Serve mockups from your own domain](https://sudomock.com/docs/dashboard/custom-domains.md): Put rendered images on a domain you own. - [Set up the editor your buyers see](https://sudomock.com/docs/dashboard/studio.md): Branding and controls for the embedded editor. - [Create and revoke your API keys](https://sudomock.com/docs/dashboard/api-keys.md): Issue keys, watch usage, bind a domain. - [Invite your team and set their access](https://sudomock.com/docs/dashboard/members.md): Invite by email, pick a role, keep one balance. - [SDKs](https://sudomock.com/docs/sdks.md): Official client libraries for Node and Python. - [Connect an agent](https://sudomock.com/docs/connect-an-agent.md): Give an MCP client access to your SudoMock account. - [Guides for the tools you already run](https://sudomock.com/docs/guides/introduction.md): Integration walkthroughs, answers, migration notes. - [Render a PSD without Photoshop](https://sudomock.com/docs/psd-mockups/render-a-psd-without-photoshop.md): Turn Photoshop templates into finished images over HTTP. - [Preparing a PSD](https://sudomock.com/docs/psd-mockups/preparing-a-psd.md): Author a Photoshop template that renders as designed. - [Upload a PSD](https://sudomock.com/docs/psd-mockups/upload-a-psd.md): Register a template once and read back every slot in it. - [Smart objects](https://sudomock.com/docs/psd-mockups/smart-objects.md): How a PSD design area is described and addressed. - [PSD compatibility](https://sudomock.com/docs/psd-mockups/psd-compatibility.md): Which Photoshop features render, and what to send instead. - [Artwork placement](https://sudomock.com/docs/psd-mockups/artwork-placement.md): Place, size, rotate and recolour artwork in a design area. - [Smart filters](https://sudomock.com/docs/concepts/smart-filters.md): Photoshop smart filters render with Adobe-level fidelity. - [Photo mockups](https://sudomock.com/docs/photo-mockups/overview.md): How a product photo becomes a mockup you render onto. - [Print areas and surfaces](https://sudomock.com/docs/photo-mockups/print-areas.md): Where artwork can land on a photo mockup, and how to move it. - [Render artwork onto a photo mockup](https://sudomock.com/docs/photo-mockups/render-artwork.md): Place a design on a mockup target and get a finished image. - [Text layers](https://sudomock.com/docs/text/text-layers.md): Swap PSD wording, font, size and colour per render. - [Fitting and colour](https://sudomock.com/docs/text/fitting-and-color.md): Keep new text in its box and recolour it per render. - [Fonts](https://sudomock.com/docs/text/fonts.md): Browse the catalogue and upload your own typefaces. - [How to edit PSD text by API](https://sudomock.com/docs/text/how-to-edit-psd-text-by-api.md): Change the wording inside a Photoshop file over HTTP. - [Sell customizable products under your own brand](https://sudomock.com/docs/integrations/white-label-product-customizer.md): Put your name on the editor and the images. - [Render mockups with n8n and SudoMock](https://sudomock.com/docs/integrations/n8n.md): Render PSD and photo mockups inside an n8n workflow. - [Render mockups with Make and SudoMock](https://sudomock.com/docs/integrations/make.md): Render PSD and photo mockups inside a Make scenario. - [Add a product customizer to your Shopify store](https://sudomock.com/docs/integrations/shopify.md): Let shoppers personalise your products before they buy. - [Customize products with WooCommerce and SudoMock](https://sudomock.com/docs/integrations/woocommerce.md): Let shoppers personalise products in WooCommerce. - [Render mockups with Zapier and SudoMock](https://sudomock.com/docs/integrations/zapier.md): Call the SudoMock render API from Webhooks by Zapier. - [Render mockups with Airtable and SudoMock](https://sudomock.com/docs/integrations/airtable.md): Render mockups from Airtable records with a script automation. - [Render mockups with Google Sheets and SudoMock](https://sudomock.com/docs/integrations/google-sheets.md): Render a mockup for every row of a sheet with Apps Script. - [Render mockups with Adalo and SudoMock](https://sudomock.com/docs/integrations/adalo.md): Call the SudoMock render API from an Adalo Custom Action. - [Fit and blend modes](https://sudomock.com/docs/concepts/fit-and-blend-modes.md): How artwork meets an area, and how blend modes render. - [What PSD features are supported](https://sudomock.com/docs/faq/what-psd-features-are-supported.md): Check a Photoshop file against what renders today. - [Webhooks](https://sudomock.com/docs/webhooks/overview.md): Get a signed HTTPS request the moment a job finishes. - [Verifying signatures](https://sudomock.com/docs/webhooks/verifying-signatures.md): Check the HMAC before you act on a webhook delivery. - [Is SudoMock a Photoshop API replacement](https://sudomock.com/docs/knowledge-base/is-sudomock-a-photoshop-api-replacement.md): What SudoMock takes over when Photoshop is in a loop. - [Which mockup type to use, a PSD template or a product photo](https://sudomock.com/docs/knowledge-base/psd-template-or-product-photo.md): Let the files you already own pick the mockup type. - [Why do my layer effects not render](https://sudomock.com/docs/knowledge-base/why-do-my-layer-effects-not-render.md): Why a drop shadow is missing while the mask renders. - [Why did my hidden layer not render](https://sudomock.com/docs/faq/why-did-my-hidden-layer-not-render.md): Hidden layers in the PSD, and hiding a layer per render. - [Why is my render showing old artwork](https://sudomock.com/docs/faq/why-is-my-render-showing-old-artwork.md): Why a changed design still renders the previous image. - [Why did my stroke colour change after rendering](https://sudomock.com/docs/knowledge-base/why-did-my-stroke-colour-change-after-rendering.md): Where a Stroke effect takes its rendered colour from. - [What is the PSD file size limit](https://sudomock.com/docs/knowledge-base/what-is-the-psd-file-size-limit.md): The ceiling on each route, and what to do above it. - [What to do when the sign-in email does not arrive](https://sudomock.com/docs/knowledge-base/what-to-do-when-the-sign-in-email-does-not-arrive.md): Resend the code, or sign in without the email. - [How to call the API server to server](https://sudomock.com/docs/knowledge-base/how-to-call-the-api-server-to-server.md): Where the key belongs and how a call behaves. - [Where the mockup id appears on a Shopify order](https://sudomock.com/docs/knowledge-base/where-the-mockup-id-appears-on-a-shopify-order.md): What the customizer writes on a Shopify line item. - [How to build a buyer facing live preview](https://sudomock.com/docs/knowledge-base/how-to-build-a-buyer-facing-live-preview.md): Show a shopper their own artwork before they buy. - [How to produce a seasonal set with an agent](https://sudomock.com/docs/knowledge-base/how-to-produce-a-seasonal-set-with-an-agent.md): Render a whole holiday set from one agent session. - [How to rename a saved template](https://sudomock.com/docs/knowledge-base/how-to-rename-a-saved-template.md): Change a template name without changing its UUID. - [How pay as you go works](https://sudomock.com/docs/knowledge-base/how-pay-as-you-go-works.md): Fund a balance so renders continue past your credits. - [In what order credits are spent](https://sudomock.com/docs/knowledge-base/in-what-order-credits-are-spent.md): Plan credits first, then extra credits, then balance. - [How to get an invoice](https://sudomock.com/docs/knowledge-base/how-to-get-an-invoice.md): Where invoices live and how to put a company on them. - [How to cancel a subscription](https://sudomock.com/docs/knowledge-base/how-to-cancel-a-subscription.md): What happens to credits and templates when a plan ends. - [How to delete your account](https://sudomock.com/docs/knowledge-base/how-to-delete-your-account.md): Request deletion, and what it removes and keeps. - [Legacy paths](https://sudomock.com/docs/changes/legacy-paths.md): What the older SudoMock paths map to, and what still works. - [Introduction](https://sudomock.com/docs/api-reference/introduction.md): Base URL, authentication, async renders and versioning. - [Pagination](https://sudomock.com/docs/api-reference/pagination.md): Walk long lists with offsets, cursors and page numbers. - [Rate limits and concurrency limits](https://sudomock.com/docs/api-reference/usage-limits.md): The request rate, the parallel ceiling, the headers. - [Error codes and how to retry them](https://sudomock.com/docs/errors.md): Status codes, error_code values and safe retries. - [Create a mockup from a PSD](https://sudomock.com/docs/api-reference/psd-mockups/create-a-mockup-from-a-psd.md): Ingests a PSD file from URL, extracts layers and smart objects, generates thumbnails. - [Retrieve a list of PSD mockups](https://sudomock.com/docs/api-reference/psd-mockups/retrieve-a-list-of-psd-mockups.md): List your mockups, with pagination, filtering and sorting. - [Retrieve a single PSD mockup](https://sudomock.com/docs/api-reference/psd-mockups/retrieve-a-single-psd-mockup.md): Read one mockup. The body matches what the upload endpoint returns. - [Retrieve the layers of a PSD mockup](https://sudomock.com/docs/api-reference/psd-mockups/retrieve-the-layers-of-a-psd-mockup.md): Read every layer of a mockup, nested the way Photoshop's Layers panel shows them and listed front-most first. A smart object whose contents hold layers you can fill lists those layers as its children. Send a layer's uuid in hidden_layers on POST /api/v1/renders to leave that layer out of a render. - [Update an existing PSD mockup](https://sudomock.com/docs/api-reference/psd-mockups/update-an-existing-psd-mockup.md): Rename a mockup, or set the colours it answers to by name. - [Remove an existing PSD mockup](https://sudomock.com/docs/api-reference/psd-mockups/remove-an-existing-psd-mockup.md): Delete a mockup and the files that belong to it. This cannot be undone. - [Render a PSD mockup](https://sudomock.com/docs/api-reference/psd-mockups/render-a-psd-mockup.md): Renders a mockup by compositing layers with user-provided images. - [Create a mockup from a product photo](https://sudomock.com/docs/api-reference/photo-mockups/create-a-mockup-from-a-product-photo.md): Turns one product photo into a reusable mockup. By default the request returns the ready mockup; set is_async=true to receive a job URL. Costs 25 credits. - [Retrieve a list of photo mockups](https://sudomock.com/docs/api-reference/photo-mockups/retrieve-a-list-of-photo-mockups.md): Returns a paginated list of the user's photo mockups with print area summaries. Each mockup includes its status, thumbnail, dimensions, and print area names/bboxes. Ordered by creation date (newest first). - [Retrieve a single photo mockup](https://sudomock.com/docs/api-reference/photo-mockups/retrieve-a-single-photo-mockup.md): Returns mockup metadata and print-area summaries. Use the mockup_id with POST /api/v1/photo-mockups/{mockup_id}/render to render artwork. - [Update an existing photo mockup](https://sudomock.com/docs/api-reference/photo-mockups/update-an-existing-photo-mockup.md): Rename a mockup and/or set the colours it answers to by name. A render may then send a name where it would send a hex code. - [Replace the print areas of a photo mockup](https://sudomock.com/docs/api-reference/photo-mockups/replace-the-print-areas-of-a-photo-mockup.md): Replaces a ready photo mockup's printable areas. Each area must be a convex four-point shape within the source image. - [Render a photo mockup](https://sudomock.com/docs/api-reference/photo-mockups/render-a-photo-mockup.md): Renders artwork onto a previously created photo mockup identified by the path mockup_id. Artwork can target a saved print area or a whole product surface, and a product offers both. The mockup must be in 'ready' status. Costs 5 credits. Returns CDN URL(s) of the rendered image. - [Remove an existing photo mockup](https://sudomock.com/docs/api-reference/photo-mockups/remove-an-existing-photo-mockup.md): Permanently deletes the mockup and its print areas. This action cannot be undone. - [Create a new font](https://sudomock.com/docs/api-reference/fonts/create-a-new-font.md): Upload a custom TTF or OTF font (Pro plan and above). Send either a multipart 'file' or a JSON body with a public 'url'. The font is validated and security-checked before it is stored. - [Retrieve a list of fonts](https://sudomock.com/docs/api-reference/fonts/retrieve-a-list-of-fonts.md): List available fonts for text layers: the shared system catalog plus your own uploaded fonts. Supports search, category filtering, and pagination. - [Retrieve a single font](https://sudomock.com/docs/api-reference/fonts/retrieve-a-single-font.md): Fetch a single font by id: a system font, or one of your own uploads. - [Remove an existing font](https://sudomock.com/docs/api-reference/fonts/remove-an-existing-font.md): Delete one of your own uploaded fonts. System fonts cannot be deleted. - [Render a video mockup](https://sudomock.com/docs/api-reference/video-mockups/render-a-video-mockup.md): Animates a mockup: produces a still render from the given smart objects, then animates it. Returns 202 with a job_id to poll (GET /api/v1/jobs/{job_id}). - [Remove the background from an image](https://sudomock.com/docs/api-reference/background-removal/remove-the-background-from-an-image.md): Isolates the subject of an image onto a transparent background and returns a clean PNG cutout URL, ready to use as render artwork. Costs 25 credits per image; credits are refunded automatically if processing fails. - [Create a new Studio session](https://sudomock.com/docs/api-reference/studio/create-a-new-studio-session.md): Generates an opaque session token for the Studio iframe on WooCommerce, custom storefronts, and Shopify storefronts that call through the App Proxy. No unauthenticated access. API key never leaves the server. - [Retrieve the Studio config](https://sudomock.com/docs/api-reference/studio/retrieve-the-studio-config.md): Returns the API key's complete effective Studio configuration. - [Update the Studio config](https://sudomock.com/docs/api-reference/studio/update-the-studio-config.md): Updates the Studio appearance and controls for this API key. - [Consume a Studio action](https://sudomock.com/docs/api-reference/studio/consume-a-studio-action.md): Server-only exactly-once confirmation of a Studio action against its bound successful render. - [Create a new webhook endpoint](https://sudomock.com/docs/api-reference/webhook-endpoints/create-a-new-webhook-endpoint.md): Create an endpoint. The signing secret is returned in FULL here, once. - [Retrieve a list of webhook endpoints](https://sudomock.com/docs/api-reference/webhook-endpoints/retrieve-a-list-of-webhook-endpoints.md): List every webhook endpoint on the account, with its URL, event types, and enabled state. - [Retrieve a single webhook endpoint](https://sudomock.com/docs/api-reference/webhook-endpoints/retrieve-a-single-webhook-endpoint.md): Fetch one endpoint by id. The signing secret comes back masked. - [Update an existing webhook endpoint](https://sudomock.com/docs/api-reference/webhook-endpoints/update-an-existing-webhook-endpoint.md): Change the URL, description, event types, event naming, or enabled state. Send only the fields you are changing. - [Remove an existing webhook endpoint](https://sudomock.com/docs/api-reference/webhook-endpoints/remove-an-existing-webhook-endpoint.md): Delete an endpoint and its delivery history. This cannot be undone. - [Rotate the signing secret](https://sudomock.com/docs/api-reference/webhook-endpoints/rotate-the-signing-secret.md): Generate a new secret, returned in FULL once. - [Send a test event](https://sudomock.com/docs/api-reference/webhook-endpoints/send-a-test-event.md): Send a signed webhook.test event to the endpoint. - [Retrieve the delivery overview](https://sudomock.com/docs/api-reference/webhook-deliveries/retrieve-the-delivery-overview.md): Window-scoped delivery rollup spanning every endpoint the caller owns: global total/failed COUNTs, a per-day sparkline, and a per-endpoint breakdown (total/failed/last_activity). The path is 'overview', not an endpoint id. - [Retrieve a list of events](https://sudomock.com/docs/api-reference/webhook-deliveries/retrieve-a-list-of-events.md): Reverse-chron delivery log spanning every endpoint the caller owns. The response groups rows by (job_id, event_type) into events. - [Retrieve a list of deliveries](https://sudomock.com/docs/api-reference/webhook-deliveries/retrieve-a-list-of-deliveries.md): Delivery history for one endpoint, cursor-paginated. Filter by status or event type. - [Retrieve a single delivery](https://sudomock.com/docs/api-reference/webhook-deliveries/retrieve-a-single-delivery.md): Full single delivery row including the captured request body + headers (every attempt) and, for failed/dead attempts, the response body + headers. The list endpoints never carry these large fields. - [Replay a single delivery](https://sudomock.com/docs/api-reference/webhook-deliveries/replay-a-single-delivery.md): Re-send a single delivery. Replays are idempotent, so re-sending is always safe. - [Replay all failed deliveries](https://sudomock.com/docs/api-reference/webhook-deliveries/replay-all-failed-deliveries.md): Re-send every failed delivery on one endpoint in a single call. The request is accepted and the deliveries follow. - [Retrieve a list of jobs](https://sudomock.com/docs/api-reference/jobs/retrieve-a-list-of-jobs.md): List the caller's async jobs (render, video, upload, or photo mockup creation), newest first and paginated by cursor. Optionally filter by kind and/or mockup_uuid (e.g. one mockup's videos). Each item has the SAME shape as GET /api/v1/jobs/{job_id} plus list display fields (duration_seconds/audio/mo… - [Retrieve a single job](https://sudomock.com/docs/api-reference/jobs/retrieve-a-single-job.md): Poll an async render, video, upload, or photo mockup creation job. Returns its current status and result when available. - [Retrieve the current account](https://sudomock.com/docs/api-reference/account/retrieve-the-current-account.md): Returns account details, subscription info, usage statistics, and API key metadata for the authenticated user. - [Retrieve a list of plans](https://sudomock.com/docs/api-reference/account/retrieve-a-list-of-plans.md): Returns all available subscription plans with pricing and API limits ## OpenAPI Specs - [openapi](/docs/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.