# Signed URLs in Python

> Generate a signed URL with the Python SDK. The URL renders a template image when someone opens it.

Canonical: https://bannerify.co/docs/sdk/python/apis/signed-url

`generate_image_signed_url` builds a link that renders an image when someone opens it. It makes no network request: the SDK signs the URL on your machine with your API key.

## Request

<ParamField body="template_id" type="str" required>
  The template id, for example `tpl_xxx`.
</ParamField>

<ParamField body="modifications" type="list[dict]">
  The values to put into the template's layers. They travel in the URL, so keep them short. [Modifications](https://bannerify.co/docs/essentials/modifications) lists the fields each layer accepts.
</ParamField>

<ParamField body="format" type="str" default="png">
  The image format: `png`, `jpeg`, or `webp`. The method raises `ValueError` for any other value.
</ParamField>

<ParamField body="nocache" type="bool" default="False">
  Skip the cache. Every request renders a new image and counts toward your quota.
</ParamField>

```python
url = client.generate_image_signed_url(
    "tpl_xxx",
    modifications=[{"name": "headline", "text": "Hello, Ada"}],
    format="jpeg",
)
```

## Response

The method returns a string:

```text
https://api.bannerify.co/v1/templates/signedurl?apiKeyHashed=2f5a...&format=jpeg&modifications=%5B...%5D&templateId=tpl_xxx&sign=ce2d...
```

`apiKeyHashed` tells Bannerify which key signed the URL. `sign` is an HMAC-SHA256 of the other parameters, keyed with your API key. Nobody can change the template or the modifications in a signed URL without breaking the signature, so you can put the URL in a page, an email, or a meta tag.

```python
html = f'<img src="{url}" alt="Welcome banner">'
```

Bannerify caches the rendered image for up to 7 days. [Signed URLs](https://bannerify.co/docs/essentials/signed-urls) explains caching, quota, and limits.

## Related

- [Previous: Render videos in Python](https://bannerify.co/docs/sdk/python/apis/render-video)
- [Documentation index](https://bannerify.co/docs/llms.txt)
