# Generate Signed URL

> Learn how you can make a POST request to generate a signed URL

- **URL**: https://orshot.com/docs/api-reference/generate-signed-url

---

You can dynamically generate a signed URL from a template and render content publicly without leaking your API key```markdown tab="Endpoint"
https://api.orshot.com/v1/signed-url/create
```## POST Request

<Tabs items=>
<Tab value="Request">```js
await fetch(`https://api.orshot.com/v1/signed-url/create`, {
  method: "POST",
  headers: {
    Authorization: `Bearer <ORSHOT_API_KEY>`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    templateId,
    expiresAt,
    renderType,
    modifications,
  }),
});
```</Tab>
<Tab value="Response">```js
{
  data: "https://api.orshot.com/v1/generate/images?expiresAt=never&fullCapture=false&height=1000&id=20&templateId=website-screenshot...."
}
```</Tab>
</Tabs>

You can learn more about params:

- `expiresAt`: UNIX timestamp value e.g(`1744550160505`) of when you want the signed URL to expire, set to `null` if you do not want the signed URL to expire
- [`templateId`](https://orshot.com/docs/definitions/template-id)
- [`modifications`](https://orshot.com/docs/definitions/modifications)
- [`renderType`](https://orshot.com/docs/definitions/render-type)

## SDKs

If you prefer, you can use our SDKs which give you abstracted functions to quickly generate signed URLs

[View Available SDKs](https://orshot.com/docs/sdks)