---
title: "Generate dynamic asset transformation"
url: "https://developers.bynder.com/apis/dynamic-asset-transformations-api-1/versions/3eaa3fe1-3c1f-455a-b1ee-e6f314e2e6b2/paths/transform-id---name/get"
---

> Full API specification: https://developers.bynder.com/apis/dynamic-asset-transformations-api-1/versions/3eaa3fe1-3c1f-455a-b1ee-e6f314e2e6b2.md

# Generate dynamic asset transformation

`GET` `/transform/{id}/{name}`

Generate a derivative on the fly with a transformation (such as cropping, scaling, filling) applied to it. More information about this feature can be found in our [Knowledge Base item](https://support.bynder.com/hc/en-us/articles/360018559260-Dynamic-Asset-Transformations-DAT-). Image operations can be passed as `io` parameters in the form of `transform:{operation},{param1}:{value1},{param2}:{value2},...`. It's possible to specify several operations: `?io={operation1}&io={operation2}&...`. The operations will be applied in the same order they are passed in the url. These are the possible image operations and their parameters: <table> <thead> <tr><th>Operation</th><th>Parameter</th><th>Possible values</th></tr> </thead> <tbody> <tr><td><code>background</code></td><td>color</td><td>color name (yellow, black, etc.) or hexadecimal (rgb, rrggbb)</td></tr> <tr><td><code>crop</code></td><td>width</td><td>integer</td></tr> <tr><td></td><td>height</td><td>integer</td></tr> <tr><td></td><td>x</td><td>integer</td></tr> <tr><td></td><td>y</td><td>integer</td></tr> <tr><td></td><td>gravity</td><td>topleft / top / topright / left / center / right / bottomleft / bottom / bottomright</td></tr> <tr><td></td><td>shape</td><td>circle / square</td></tr> <tr><td></td><td>blur</td><td>integer</td></tr> <tr><td></td><td>background</td><td>color name (yellow, black, etc.) or hexadecimal (rgb, rrggbb)</td></tr> <tr><td><code>extend</code></td><td>width</td><td>integer</td></tr> <tr><td></td><td>height</td><td>integer</td></tr> <tr><td></td><td>background</td><td>color name (yellow, black, etc.) or hexadecimal (rgb, rrggbb)</td></tr> <tr><td><code>fill</code></td><td>width</td><td></td></tr> <tr><td></td><td>height</td><td></td></tr> <tr><td></td><td>gravity</td><td></td></tr> <tr><td></td><td>aspectratio</td><td>(integer) x (integer)</td></tr> <tr><td><code>fit</code></td><td>width</td><td>integer</td></tr> <tr><td></td><td>height</td><td>integer</td></tr> <tr><td><code>flip</code></td><td>(no parameters)</td><td></td></tr> <tr><td><code>mirror</code></td><td>(no parameters)</td><td></td></tr> <tr><td><code>rotate</code></td><td>angle</td><td>integer between 0 and 360</td></tr> <tr><td></td><td>background</td><td>color name (yellow, black, etc.) or hexadecimal (rgb, rrggbb)</td></tr> <tr><td><code>scale</code></td><td>width</td><td>integer</td></tr> <tr><td></td><td>height</td><td>integer</td></tr> </tbody> </table>

## Path parameters

- `id` (string, required)
- `name` (string, required)

## Query parameters

- `io` (array, optional) - The operation(s) performed on the image before it's served to the client.
- `focuspoint` (string, optional) - Focus point as a x,y coordinate (with values between 0 - 1).
- `format` (string, optional) - Format of the served image. This can either be `jpg` or `png` and it will overwrite the default `webP`.
- `quality` (integer, optional) - Image quality, ranging from 1 - 100 (has no effect when `format` is set to 'png').

## Responses

- `200` - Image
- `400` - Image Operation not supported
- `404` - Not Found

## OpenAPI definition

```yaml
openapi: 3.1.0
info:
  title: Dynamic Asset Transformations
  version: 1.0.0
servers:
  - url: https://{your-bynder-domain}/
paths:
  /transform/{id}/{name}:
    get:
      description: |-
        Generate a derivative on the fly with a transformation (such as cropping, scaling, filling) applied to it.   More information about this feature can be found in our [Knowledge Base item](https://support.bynder.com/hc/en-us/articles/360018559260-Dynamic-Asset-Transformations-DAT-).
        Image operations can be passed as `io` parameters in the form of `transform:{operation},{param1}:{value1},{param2}:{value2},...`.   It's possible to specify several operations: `?io={operation1}&io={operation2}&...`. The operations will be applied in the same order they are passed in the url.
        These are the possible image operations and their parameters:

        <table>
        <thead>
        <tr><th>Operation</th><th>Parameter</th><th>Possible values</th></tr>
        </thead>
        <tbody>
        <tr><td><code>background</code></td><td>color</td><td>color name (yellow, black, etc.) or hexadecimal (rgb, rrggbb)</td></tr>
        <tr><td><code>crop</code></td><td>width</td><td>integer</td></tr>
        <tr><td></td><td>height</td><td>integer</td></tr>
        <tr><td></td><td>x</td><td>integer</td></tr>
        <tr><td></td><td>y</td><td>integer</td></tr>
        <tr><td></td><td>gravity</td><td>topleft / top / topright / left / center / right / bottomleft / bottom / bottomright</td></tr>
        <tr><td></td><td>shape</td><td>circle / square</td></tr>
        <tr><td></td><td>blur</td><td>integer</td></tr>
        <tr><td></td><td>background</td><td>color name (yellow, black, etc.) or hexadecimal (rgb, rrggbb)</td></tr>
        <tr><td><code>extend</code></td><td>width</td><td>integer</td></tr>
        <tr><td></td><td>height</td><td>integer</td></tr>
        <tr><td></td><td>background</td><td>color name (yellow, black, etc.) or hexadecimal (rgb, rrggbb)</td></tr>
        <tr><td><code>fill</code></td><td>width</td><td></td></tr>
        <tr><td></td><td>height</td><td></td></tr>
        <tr><td></td><td>gravity</td><td></td></tr>
        <tr><td></td><td>aspectratio</td><td>(integer) x (integer)</td></tr>
        <tr><td><code>fit</code></td><td>width</td><td>integer</td></tr>
        <tr><td></td><td>height</td><td>integer</td></tr>
        <tr><td><code>flip</code></td><td>(no parameters)</td><td></td></tr>
        <tr><td><code>mirror</code></td><td>(no parameters)</td><td></td></tr>
        <tr><td><code>rotate</code></td><td>angle</td><td>integer between 0 and 360</td></tr>
        <tr><td></td><td>background</td><td>color name (yellow, black, etc.) or hexadecimal (rgb, rrggbb)</td></tr>
        <tr><td><code>scale</code></td><td>width</td><td>integer</td></tr>
        <tr><td></td><td>height</td><td>integer</td></tr>
        </tbody>
        </table>
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
        - in: path
          name: name
          required: true
          schema:
            type: string
        - description: The operation(s) performed on the image before it's served to the
            client.
          in: query
          name: io
          required: false
          schema:
            items:
              type: string
            type: array
        - description: Focus point as a x,y coordinate (with values between 0 - 1).
          in: query
          name: focuspoint
          required: false
          schema:
            type: string
        - description: Format of the served image. This can either be `jpg` or `png` and
            it will overwrite the default `webP`.
          in: query
          name: format
          required: false
          schema:
            type: string
        - description: Image quality, ranging from 1 - 100 (has no effect when `format` is
            set to 'png').
          in: query
          name: quality
          required: false
          schema:
            maximum: 100
            minimum: 1
            type: integer
      responses:
        "200":
          content:
            image/jpeg:
              schema:
                format: binary
                type: string
            image/png:
              schema:
                format: binary
                type: string
          description: Image
        "400":
          description: Image Operation not supported
        "404":
          description: Not Found
      summary: Generate dynamic asset transformation
security:
  - OAuth2: []
  - permanentToken: []
components:
  securitySchemes:
    OAuth2:
      flows:
        authorizationCode:
          authorizationUrl: https://{your-auth-url}
          scopes: {}
          tokenUrl: https://{your-bynder-domain}/v6/authentication/oauth2/token
        clientCredentials:
          scopes: {}
          tokenUrl: https://{your-bynder-domain}/v6/authentication/oauth2/token
      type: oauth2
    permanentToken:
      in: header
      name: Authorization
      type: apiKey
```
