[Public Transformations] List deleted transformations.

This endpoint will list all deleted (trashed) transformations, paginated.

GET
https://api.staging.wetransform.com/transformations/trash

Request Payload

TransformationPublicTransformationFilterRequest
Property / Description Constraints
template_handles
array

An array of template Handles to filter from.

Not Blank
Is Granted
attribute
TEMPLATE_ACCESS
entity class
template
identifier
handle
Unique
page
integer

Page number to request.

Sample value: 1
Range
min
1
per_page
integer

Number of entries per page.

Sample value: 25
Range
min
1
max
200
Example Copy
{
    "template_handles": [],
    "page": 1,
    "per_page": 25
}

Responses

200 OK
ResponseSuccess PaginationQueryBuilder TransformationPublic
Property / Description
success
boolean

Always true on successful responses.

Sample value: true
payload
object

Payload of the requested resource.

payload.total_pages
integer

Total number of available pages.

Sample value: 5
payload.current_page
integer

Current page requested.

Sample value: 5
payload.total_items
integer

Total number of items.

Sample value: 103
payload.items_per_page
integer

Number of items per page.

Sample value: 25
payload.entries
array

An array of the requested resources.

payload.entries[].source_id
string

The source identifier.

Sample value: "2567127d-9cbd-41aa-a56c-559f1c5f41df"
payload.entries[].source_name *
string

The source name.

Sample value: "my-employees.csv"
payload.entries[].source_file_url *
string

The source file URL, if it still exists

payload.entries[].imported_at
datetime

The date and time the source was imported.

payload.entries[].template_name
string

The template name.

Sample value: "Employee Leaves (RE)"
payload.entries[].template_picture_url *
string

The template picture URL.

Sample value: "https:\/\/api.staging.wetransform.com\/icon.png"
payload.entries[].transformation_id
string

The transformation identifier.

Sample value: "b7f44405-5357-48e5-ad56-cdfa8a8bf16f"
payload.entries[].has_schedule
boolean

Whether the transformation has an enabled schedule.

Sample value: true
payload.entries[].column_names
array

The columns' names.

payload.entries[].custom_field_names
array

The custom fields' names.

payload.entries[].deleted_at *
datetime

The date and time the transformation was deleted, if applicable.

payload.entries[].download_url *
string

The download URL of the transformed file.

Sample value: "https:\/\/api.staging.wetransform.com\/file\/m04x4fughg6i1sirwm2taepvug5r0er3.csv"
payload.entries[].template_handle
string

The template handle.

Sample value: "furniture"
product *
object

A product needed.

Not null if user requires to buy a specific product (permission or limitation) in order to access a feature.

product.requirement *
string

Whether the user requested a features s/he doesn't have access to, or the user needs greater limits. Possible values: permission, limitation

Sample value: "permission"
product.permission *
object

The required permission.

You will need to know which permission is needed in order to fill up search filters in the shop.

product.permission.description *
string

A human-understandable name for the permission.

product.permission.name
string

A technical permission name (ex: ORGANISATION_UPDATE_SETTINGS).

Possible values depend on the context, check the domain's metadata endpoint.

Sample value: "X_SOURCE_FORMAT_XML"
product.limitation_type *
string

The limitation that needs to be increased (ex: number of columns).

product.limitation_needed_value *
integer

The needed resource quantity (if receiver uses 9 columns in a template, this value is 9).

product.limitation_current_value *
integer

The current value of the limitation (if receiver is allowed to use 10 columns, this value is 10).

product.limitation_object *
object

The limitation type in a readable format, for example, "lines per file".

product.is_cta *
boolean

Whether a Call To Action should be displayed.

It may not be displayed if:

  • the limitation is on the membership role
  • the limitation is on the customer role
  • the user is a sender
debug
array

Debug information.

Contains logs about business logic explaining state of the response payload.

Provided in development & admin modes only.

Properties suffixed with * are nullable.

Example Copy
{
    "success": true,
    "payload": {
        "total_pages": 5,
        "current_page": 5,
        "total_items": 103,
        "items_per_page": 25,
        "entries": [
            {
                "source_id": "2567127d-9cbd-41aa-a56c-559f1c5f41df",
                "source_name": "my-employees.csv",
                "source_file_url": null,
                "imported_at": "2026-04-05T14:44:58+00:00",
                "template_name": "Employee Leaves (RE)",
                "template_picture_url": "https:\/\/api.staging.wetransform.com\/icon.png",
                "transformation_id": "b7f44405-5357-48e5-ad56-cdfa8a8bf16f",
                "has_schedule": true,
                "column_names": [
                    "column1",
                    "column2"
                ],
                "custom_field_names": [
                    "custom1",
                    "custom2"
                ],
                "deleted_at": null,
                "download_url": "https:\/\/api.staging.wetransform.com\/file\/m04x4fughg6i1sirwm2taepvug5r0er3.csv",
                "template_handle": "furniture"
            },
            {
                "source_id": "58c83294-9fb3-4cc2-b31f-bca17a1f7f7a",
                "source_name": "my-employees.csv",
                "source_file_url": null,
                "imported_at": "2026-04-05T14:44:58+00:00",
                "template_name": "Employee Leaves (RE)",
                "template_picture_url": "https:\/\/api.staging.wetransform.com\/icon.png",
                "transformation_id": "b66488e6-0c3c-441f-9e24-fd27caaf2b5b",
                "has_schedule": true,
                "column_names": [
                    "column1",
                    "column2"
                ],
                "custom_field_names": [
                    "custom1",
                    "custom2"
                ],
                "deleted_at": null,
                "download_url": "https:\/\/api.staging.wetransform.com\/file\/ze9su3faeopob05o81ugqtbqli7nx7ps.csv",
                "template_handle": "furniture"
            },
            {
                "source_id": "c257b55d-5f45-48bb-a609-e6f56f876531",
                "source_name": "my-employees.csv",
                "source_file_url": null,
                "imported_at": "2026-04-05T14:44:58+00:00",
                "template_name": "Employee Leaves (RE)",
                "template_picture_url": "https:\/\/api.staging.wetransform.com\/icon.png",
                "transformation_id": "c2934c93-c75d-43cf-8f0d-4d3b7be8db73",
                "has_schedule": true,
                "column_names": [
                    "column1",
                    "column2"
                ],
                "custom_field_names": [
                    "custom1",
                    "custom2"
                ],
                "deleted_at": null,
                "download_url": "https:\/\/api.staging.wetransform.com\/file\/08cq2rwhat6tuz0bwdowpyy5flmeehm1.csv",
                "template_handle": "furniture"
            }
        ]
    },
    "product": {
        "requirement": "permission",
        "permission": {
            "name": "X_SOURCE_FORMAT_XML",
            "description": "Can import XML files"
        },
        "limitation_type": null,
        "limitation_needed_value": null,
        "limitation_current_value": null,
        "limitation_object": null,
        "is_cta": false
    },
    "debug": []
}
Bad request.

The client sent an unexpected request.

It happens if the client sent an invalid JSON payload, or if the JSON payload cannot be mapped to the expected request object.

Property / Description
success
boolean

Always false on error responses.

Sample value: false
payload
object

Context about the error, if any.

product *
object

A product needed.

Not null if user requires to buy a specific product (permission or limitation) in order to access a feature.

product.requirement *
string

Whether the user requested a features s/he doesn't have access to, or the user needs greater limits. Possible values: permission, limitation

Sample value: "permission"
product.permission *
object

The required permission.

You will need to know which permission is needed in order to fill up search filters in the shop.

product.permission.description *
string

A human-understandable name for the permission.

product.permission.name
string

A technical permission name (ex: ORGANISATION_UPDATE_SETTINGS).

Possible values depend on the context, check the domain's metadata endpoint.

Sample value: "X_SOURCE_FORMAT_XML"
product.limitation_type *
string

The limitation that needs to be increased (ex: number of columns).

product.limitation_needed_value *
integer

The needed resource quantity (if receiver uses 9 columns in a template, this value is 9).

product.limitation_current_value *
integer

The current value of the limitation (if receiver is allowed to use 10 columns, this value is 10).

product.limitation_object *
object

The limitation type in a readable format, for example, "lines per file".

product.is_cta *
boolean

Whether a Call To Action should be displayed.

It may not be displayed if:

  • the limitation is on the membership role
  • the limitation is on the customer role
  • the user is a sender
debug
array

Debug information.

Contains logs about business logic explaining state of the response payload.

Provided in development & admin modes only.

Properties suffixed with * are nullable.

Example Copy
{
    "success": false,
    "payload": [],
    "product": {
        "requirement": "permission",
        "permission": {
            "name": "X_SOURCE_FORMAT_XML",
            "description": "Can import XML files"
        },
        "limitation_type": null,
        "limitation_needed_value": null,
        "limitation_current_value": null,
        "limitation_object": null,
        "is_cta": false
    },
    "debug": []
}
Authentication required.

User must be authenticated to access the resource.

This response is received when the authorization header does not contain a valid authentication token.

It mostly happens because the current access_token has expired, and it needs to be renewed using a refresh_token.

Property / Description
success
boolean

Always false on error responses.

Sample value: false
payload
object

Context about the error, if any.

product *
object

A product needed.

Not null if user requires to buy a specific product (permission or limitation) in order to access a feature.

product.requirement *
string

Whether the user requested a features s/he doesn't have access to, or the user needs greater limits. Possible values: permission, limitation

Sample value: "permission"
product.permission *
object

The required permission.

You will need to know which permission is needed in order to fill up search filters in the shop.

product.permission.description *
string

A human-understandable name for the permission.

product.permission.name
string

A technical permission name (ex: ORGANISATION_UPDATE_SETTINGS).

Possible values depend on the context, check the domain's metadata endpoint.

Sample value: "X_SOURCE_FORMAT_XML"
product.limitation_type *
string

The limitation that needs to be increased (ex: number of columns).

product.limitation_needed_value *
integer

The needed resource quantity (if receiver uses 9 columns in a template, this value is 9).

product.limitation_current_value *
integer

The current value of the limitation (if receiver is allowed to use 10 columns, this value is 10).

product.limitation_object *
object

The limitation type in a readable format, for example, "lines per file".

product.is_cta *
boolean

Whether a Call To Action should be displayed.

It may not be displayed if:

  • the limitation is on the membership role
  • the limitation is on the customer role
  • the user is a sender
debug
array

Debug information.

Contains logs about business logic explaining state of the response payload.

Provided in development & admin modes only.

Properties suffixed with * are nullable.

Example Copy
{
    "success": false,
    "payload": [],
    "product": {
        "requirement": "permission",
        "permission": {
            "name": "X_SOURCE_FORMAT_XML",
            "description": "Can import XML files"
        },
        "limitation_type": null,
        "limitation_needed_value": null,
        "limitation_current_value": null,
        "limitation_object": null,
        "is_cta": false
    },
    "debug": []
}
Access denied.

User is well authenticated, but not authorized to access the resource.

It can happen if user is trying to use a feature that s/he didn't pay for, access someone else's resource, etc.

These issues are normally fixed by the frontend, which should render features and resources user has access to.

Property / Description
success
boolean

Always false on error responses.

Sample value: false
payload
object

Context about the error, if any.

product *
object

A product needed.

Not null if user requires to buy a specific product (permission or limitation) in order to access a feature.

product.requirement *
string

Whether the user requested a features s/he doesn't have access to, or the user needs greater limits. Possible values: permission, limitation

Sample value: "permission"
product.permission *
object

The required permission.

You will need to know which permission is needed in order to fill up search filters in the shop.

product.permission.description *
string

A human-understandable name for the permission.

product.permission.name
string

A technical permission name (ex: ORGANISATION_UPDATE_SETTINGS).

Possible values depend on the context, check the domain's metadata endpoint.

Sample value: "X_SOURCE_FORMAT_XML"
product.limitation_type *
string

The limitation that needs to be increased (ex: number of columns).

product.limitation_needed_value *
integer

The needed resource quantity (if receiver uses 9 columns in a template, this value is 9).

product.limitation_current_value *
integer

The current value of the limitation (if receiver is allowed to use 10 columns, this value is 10).

product.limitation_object *
object

The limitation type in a readable format, for example, "lines per file".

product.is_cta *
boolean

Whether a Call To Action should be displayed.

It may not be displayed if:

  • the limitation is on the membership role
  • the limitation is on the customer role
  • the user is a sender
debug
array

Debug information.

Contains logs about business logic explaining state of the response payload.

Provided in development & admin modes only.

Properties suffixed with * are nullable.

Example Copy
{
    "success": false,
    "payload": [],
    "product": {
        "requirement": "permission",
        "permission": {
            "name": "X_SOURCE_FORMAT_XML",
            "description": "Can import XML files"
        },
        "limitation_type": null,
        "limitation_needed_value": null,
        "limitation_current_value": null,
        "limitation_object": null,
        "is_cta": false
    },
    "debug": []
}
Payload contains invalid values.

A violation happens when a property value does not respect the expected constraints.

If a user is making a mistake in a form and frontend is not able to detect it (because of the constraint being tied to some business logic for example), the API will return the invalid properties with the right error messages.

Note: examples are hardcoded in english (no access to the translator in a DTO).

Property / Description
success
boolean

Always false on error responses.

Sample value: false
payload
object

Context about the error, if any.

payload.error
object
payload.error.code
string

A translation key for the given message.

Sample value: "exception.violation"
payload.error.message
string

The translated version of the message.

Click on "Example" to get its translated value.

payload.violations
array
payload.violations[].property_path
string

Property having an invalid value.

Sample value: "title"
payload.violations[].invalid_value *

The invalid value.

Sample value: ""
payload.violations[].message
string

An error message describing the violation.

Sample value: "This value should not be blank"
product *
object

A product needed.

Not null if user requires to buy a specific product (permission or limitation) in order to access a feature.

product.requirement *
string

Whether the user requested a features s/he doesn't have access to, or the user needs greater limits. Possible values: permission, limitation

Sample value: "permission"
product.permission *
object

The required permission.

You will need to know which permission is needed in order to fill up search filters in the shop.

product.permission.description *
string

A human-understandable name for the permission.

product.permission.name
string

A technical permission name (ex: ORGANISATION_UPDATE_SETTINGS).

Possible values depend on the context, check the domain's metadata endpoint.

Sample value: "X_SOURCE_FORMAT_XML"
product.limitation_type *
string

The limitation that needs to be increased (ex: number of columns).

product.limitation_needed_value *
integer

The needed resource quantity (if receiver uses 9 columns in a template, this value is 9).

product.limitation_current_value *
integer

The current value of the limitation (if receiver is allowed to use 10 columns, this value is 10).

product.limitation_object *
object

The limitation type in a readable format, for example, "lines per file".

product.is_cta *
boolean

Whether a Call To Action should be displayed.

It may not be displayed if:

  • the limitation is on the membership role
  • the limitation is on the customer role
  • the user is a sender
debug
array

Debug information.

Contains logs about business logic explaining state of the response payload.

Provided in development & admin modes only.

Properties suffixed with * are nullable.

Example Copy
{
    "success": false,
    "payload": {
        "error": {
            "code": "exception.violation",
            "message": "The provided payload contains property violations."
        },
        "violations": [
            {
                "property_path": "title",
                "invalid_value": "",
                "message": "This value should not be blank"
            },
            {
                "property_path": "price",
                "invalid_value": -5,
                "message": "The amount should be greater than 1"
            }
        ]
    },
    "product": {
        "requirement": "permission",
        "permission": {
            "name": "X_SOURCE_FORMAT_XML",
            "description": "Can import XML files"
        },
        "limitation_type": null,
        "limitation_needed_value": null,
        "limitation_current_value": null,
        "limitation_object": null,
        "is_cta": false
    },
    "debug": []
}

Interactive Console

Please login in order to access the console.

© 2026