---
title: Generating Signatures
description: "#### Generate Signatures Using REST API You can use the **REST API** to generate signatures. This provides a simple interface suitable for generating a small number of signatures. If you need to generate a high volume of signatures—for example, thousands…"
url: "https://www.flumotion.com/docs/multiCDN/generating-signatures/"
updated: "2026-09-04"
category: Guides / Signed URLs
---

# Generating Signatures

#### Generate Signatures Using REST API

You can use the **REST API** to generate signatures. This provides a simple interface suitable for generating a small number of signatures.

If you need to generate a high volume of signatures—for example, thousands of signatures per second—we recommend using one of the **url-signer** libraries.

Refer to the REST API documentation [here](https://www.ioriver.io/docs/api/io-river-api).

#### Generate Signatures Using url-signer Libraries

**Flumotion Smart Multi CDN** provides **url-signer** libraries that can be used to generate signatures offline.

These libraries are optimized for generating high volumes of signatures and are available in multiple programming languages:

- **url-signer-python:**[GitHub Repository](https://github.com/ioriver/url-signer-python)
- **url-signer-nodejs:**[GitHub Repository](https://github.com/ioriver/url-signer-nodejs)

Refer to the README in the respective repositories for instructions on how to use the **url-signer** libraries.

#### Required Information for Generating a Signature

To generate a signature, the following information is required:

- **Private Key** and **Encryption Key** – The keys used when configuring the verification key.
- **Provider Key Information** – This information can be retrieved from the list of keys in the UI by clicking the `</>` icon.
- **Policy to Sign** – A JSON object containing the attributes described below.

#### Policy Attributes

- **`resources`** (required) – A string specifying the URL or URL pattern to which the policy applies.
- **`condition`** (required) – A dictionary containing the conditions for the policy.
  - **`end_time`** (required) – An integer specifying the UNIX timestamp at which the signature expires.
  - **`start_time`** (optional) – An integer specifying the UNIX timestamp at which the signature becomes valid.

##### Example Policy

```
{
    "resources": "https://test.example.com/streams/*",
    "condition": {
        "end_time": 1733356800
    }
}
```
