[Public Transformations] List deleted transformations.
This endpoint will list all deleted (trashed) transformations, paginated.
https://api.staging.wetransform.com/transformations/trash
Request Payload
| Property / Description | Constraints | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
template_handles
array
|
|||||||||||||
|
An array of template Handles to filter from. |
|
||||||||||||
|
page
integer
|
|||||||||||||
|
Page number to request.
Sample value:
1
|
|
||||||||||||
|
per_page
integer
|
|||||||||||||
|
Number of entries per page.
Sample value:
25
|
|
||||||||||||
{
"template_handles": [],
"page": 1,
"per_page": 25
}
Responses
| Property / Description |
|---|
|
success
boolean
|
|
Always
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:
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:
|
|
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.
{
"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": []
}
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
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:
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:
|
|
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.
{
"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": []
}
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
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:
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:
|
|
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.
{
"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": []
}
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
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.violations
array
|
|
|
|
payload.violations[].property_path
string
|
|
Property having an invalid value.
Sample value:
"title"
|
|
payload.violations[].invalid_value
*
|
|
The invalid value.
Sample value:
""
|
|
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:
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:
|
|
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.
{
"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": []
}