Lists the template's columns, ordered by position, paginated. Validation constraints are not included.

Send the optional X-Customer header (external ID, email or UUID of one of your customers) to read the columns as that customer: a restricted template the customer is not granted returns 404, and so does an unknown customer.

GET https://api.wetransform.com/template/{templateHandle}/columns
URL Parameters
Parameter Description
{templateHandle}

The template handle, e.g. employees, unique within your organisation.

Request Payload
Request
PaginationPaginedRequest
page integer

Page number to request, starting at 1. Defaults to 1.

Sample: 1
min 1
per_page integer

Number of entries per page, from 1 to 200. Defaults to 25.

Sample: 25
between 1 and 200
{
    "page": 1,
    "per_page": 25
}
Copy
Responses
Response 200
ResponseSuccess PaginationQueryBuilder ColumnPublicColumnResponse

A template column. conditions uses the same text format as in requests.

success boolean

Always true on successful responses.

Sample: true
payload object

Payload of the requested resource.

payload.total_pages integer

Total number of available pages.

Sample: 5
payload.current_page integer

Current page requested.

Sample: 5
payload.total_items integer

Total number of items.

Sample: 103
payload.items_per_page integer

Number of items per page.

Sample: 25
payload.entries array

An array of the requested resources.

payload.entries[].column_id string nullable

The column UUID, used as {columnId} in the column endpoints and as column_id when creating a constraint.

Sample: "8b539616-a951-4da3-82f7-ccfbc5491b96"
payload.entries[].template_handle string nullable

Handle of the template the column belongs to.

Sample: "employees"
payload.entries[].position integer nullable

1-based position of the column in the delivered file.

Sample: 3
payload.entries[].technical_name string nullable

Column header in the delivered file, unique within the template.

Sample: "age"
payload.entries[].pretty_name string nullable

Label shown to your customers in the interface.

Sample: "Age"
payload.entries[].description string nullable

Explains what the column should contain. Shown to your customers and used by AI column matching.

Sample: "Employee age"
payload.entries[].type object nullable

Data type of the column (type.type), with its options object when the type has one.

payload.entries[].type.type string

The data type. The field holding this object says which values it accepts.

Possible values: BOOLEAN, TEXT, NUMBER, DATE, CHOICE, VALUE, COLUMN, URL, EMAIL, IMAGE, JSON, DATE_FORMAT, LIST_OF_VALUES

Sample: "NUMBER"
payload.entries[].type.boolean_data_type object nullable

Options for the BOOLEAN type. Send it only when type is BOOLEAN.

payload.entries[].type.text_data_type object nullable

Options for the TEXT type. Send it only when type is TEXT.

payload.entries[].type.number_data_type object nullable

Options for the NUMBER type. Send it only when type is NUMBER.

payload.entries[].type.number_data_type.decimals integer nullable

The number of decimals at which number should be rounded.

Sample: 0
payload.entries[].type.number_data_type.separator_decimals string nullable

The decimals separator (a comma, a dot...)

Sample: ""
payload.entries[].type.number_data_type.separator_thousands string nullable

The thousand separator (a space, a comma...)

Sample: ""
payload.entries[].type.number_data_type.trailing_zeros boolean nullable

Whether trailing zeros should be added to match the specified number of decimals.

Sample: false
payload.entries[].type.date_data_type object nullable

Options for the DATE type. Send it only when type is DATE.

payload.entries[].type.choice_data_type object nullable

Options for the CHOICE type. Send it only when type is CHOICE.

payload.entries[].type.value_data_type object nullable

Options for the VALUE type. Send it only when type is VALUE.

payload.entries[].type.column_data_type object nullable

Options for the COLUMN type. Send it only when type is COLUMN.

payload.entries[].type.url_data_type object nullable

Options for the URL type. Send it only when type is URL.

payload.entries[].type.email_data_type object nullable

Options for the EMAIL type. Send it only when type is EMAIL.

payload.entries[].type.image_data_type object nullable

Options for the IMAGE type. Send it only when type is IMAGE.

payload.entries[].type.json_data_type object nullable

Options for the JSON type. Send it only when type is JSON.

payload.entries[].type.date_format_data_type object nullable

Options for the DATE_FORMAT type. Send it only when type is DATE_FORMAT.

payload.entries[].type.list_of_values_data_type object nullable

Options for the LIST_OF_VALUES type. Send it only when type is LIST_OF_VALUES.

payload.entries[].uniqueness boolean nullable

Whether each value must appear only once in the column.

Sample: false
payload.entries[].importance string nullable

Whether a value is mandatory: required on every row, conditional only on the rows matching conditions, optional never. recommended and conditionally_recommended (on the rows matching conditions) flag a value as worth filling: an empty one is never a violation.

Sample: "conditional"
payload.entries[].matchable_with_ai boolean nullable

Whether AI may map a source column to this column when a transformation is created.

Sample: true
payload.entries[].hidden boolean nullable

Whether the column is hidden from your customers in the interface.

Sample: false
payload.entries[].user_metadata array nullable

Free key/value pairs for your own use.

payload.entries[].user_metadata[].name string

Metadata key (max 32 characters).

Sample: "internal_code"
payload.entries[].user_metadata[].value string nullable

Free text stored under that key (max 4096 characters), e.g. a category or your own reference. The template and customer listings can filter on it.

Sample: "TMPLT_COLUMN_001"
payload.entries[].conditions string nullable

Rows on which a conditional column is required (or a conditionally_recommended one recommended), in the same format as the request. null when none.

Sample: "AND\/#(contract)\/EQUALS\/trainee"
product object nullable

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 nullable

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

Sample: "permission"
product.permission object nullable

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 nullable

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: "X_SOURCE_FORMAT_XML"
product.limitation_type string nullable

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

product.limitation_needed_value integer nullable

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

product.limitation_current_value integer nullable

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

product.limitation_object object nullable

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

product.ai_feature string nullable

The AI feature that could not run, when an AI feature is what hit the limitation (null for any other product). Possible values: rule_transformation, rule_template, rule_function, rule_constraint, column_constraints, normalizer, chat_db, doc_assistant, api_doc_assistant, autocorrect, autocorrect_fill, invoice_reader, column_match, value_match, power_populate_with_ai, power_extract_from_pdf, power_extract_from_spreadsheet, agent, column_enrichment, column_constraints_batch, agent_compression, agent_workflow_scaffold, agent_phase_fill, push_json_column_match, value_match_embedding, normalizer_debugger, power_extract_from_text, template_format_custom, power_describe_image, power_background_erase, hosted_image_view, value_match_context

product.message object nullable

What stopped, on what, and what it would take — translated and ready to display, with one wording per AI feature: "Matching the values of column «Couleur» with AI needs 12 AI credits, and 10 are left." Null whenever ai_feature is, and on the rare AI exposure that has no subject to name (the template collection's json_column_match_product covers no single template). Fall back to the generic call-to-action then.

product.is_cta boolean nullable

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.
{
    "success": true,
    "payload": {
        "total_pages": 5,
        "current_page": 5,
        "total_items": 103,
        "items_per_page": 25,
        "entries": [
            {
                "column_id": "8b539616-a951-4da3-82f7-ccfbc5491b96",
                "template_handle": "employees",
                "position": 3,
                "technical_name": "age",
                "pretty_name": "Age",
                "description": "Employee age",
                "type": {
                    "type": "NUMBER",
                    "boolean_data_type": null,
                    "text_data_type": null,
                    "number_data_type": {
                        "decimals": 0,
                        "separator_decimals": "",
                        "separator_thousands": "",
                        "trailing_zeros": false
                    },
                    "date_data_type": null,
                    "choice_data_type": null,
                    "value_data_type": null,
                    "column_data_type": null,
                    "url_data_type": null,
                    "email_data_type": null,
                    "image_data_type": null,
                    "json_data_type": null,
                    "date_format_data_type": null,
                    "list_of_values_data_type": null
                },
                "uniqueness": false,
                "importance": "conditional",
                "matchable_with_ai": true,
                "hidden": false,
                "user_metadata": [
                    {
                        "name": "internal_code",
                        "value": "TMPLT_COLUMN_001"
                    }
                ],
                "conditions": "AND\/#(contract)\/EQUALS\/trainee"
            },
            {
                "column_id": "23bc5a69-1062-45c8-9208-9792be091eba",
                "template_handle": "employees",
                "position": 3,
                "technical_name": "age",
                "pretty_name": "Age",
                "description": "Employee age",
                "type": {
                    "type": "NUMBER",
                    "boolean_data_type": null,
                    "text_data_type": null,
                    "number_data_type": {
                        "decimals": 0,
                        "separator_decimals": "",
                        "separator_thousands": "",
                        "trailing_zeros": false
                    },
                    "date_data_type": null,
                    "choice_data_type": null,
                    "value_data_type": null,
                    "column_data_type": null,
                    "url_data_type": null,
                    "email_data_type": null,
                    "image_data_type": null,
                    "json_data_type": null,
                    "date_format_data_type": null,
                    "list_of_values_data_type": null
                },
                "uniqueness": false,
                "importance": "conditional",
                "matchable_with_ai": true,
                "hidden": false,
                "user_metadata": [
                    {
                        "name": "internal_code",
                        "value": "TMPLT_COLUMN_001"
                    }
                ],
                "conditions": "AND\/#(contract)\/EQUALS\/trainee"
            },
            {
                "column_id": "7e5252e8-1b6c-453a-950c-9289c241f90e",
                "template_handle": "employees",
                "position": 3,
                "technical_name": "age",
                "pretty_name": "Age",
                "description": "Employee age",
                "type": {
                    "type": "NUMBER",
                    "boolean_data_type": null,
                    "text_data_type": null,
                    "number_data_type": {
                        "decimals": 0,
                        "separator_decimals": "",
                        "separator_thousands": "",
                        "trailing_zeros": false
                    },
                    "date_data_type": null,
                    "choice_data_type": null,
                    "value_data_type": null,
                    "column_data_type": null,
                    "url_data_type": null,
                    "email_data_type": null,
                    "image_data_type": null,
                    "json_data_type": null,
                    "date_format_data_type": null,
                    "list_of_values_data_type": null
                },
                "uniqueness": false,
                "importance": "conditional",
                "matchable_with_ai": true,
                "hidden": false,
                "user_metadata": [
                    {
                        "name": "internal_code",
                        "value": "TMPLT_COLUMN_001"
                    }
                ],
                "conditions": "AND\/#(contract)\/EQUALS\/trainee"
            }
        ]
    },
    "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,
        "ai_feature": null,
        "message": null
    },
    "debug": []
}
Copy
Response 404 Unknown template handle, unknown `X-Customer`, or a template that customer cannot use.
ResponseError HttpNotFound
success boolean

Always false on error responses.

Sample: false
payload object

Context about the error, if any.

product object nullable

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 nullable

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

Sample: "permission"
product.permission object nullable

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 nullable

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: "X_SOURCE_FORMAT_XML"
product.limitation_type string nullable

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

product.limitation_needed_value integer nullable

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

product.limitation_current_value integer nullable

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

product.limitation_object object nullable

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

product.ai_feature string nullable

The AI feature that could not run, when an AI feature is what hit the limitation (null for any other product). Possible values: rule_transformation, rule_template, rule_function, rule_constraint, column_constraints, normalizer, chat_db, doc_assistant, api_doc_assistant, autocorrect, autocorrect_fill, invoice_reader, column_match, value_match, power_populate_with_ai, power_extract_from_pdf, power_extract_from_spreadsheet, agent, column_enrichment, column_constraints_batch, agent_compression, agent_workflow_scaffold, agent_phase_fill, push_json_column_match, value_match_embedding, normalizer_debugger, power_extract_from_text, template_format_custom, power_describe_image, power_background_erase, hosted_image_view, value_match_context

product.message object nullable

What stopped, on what, and what it would take — translated and ready to display, with one wording per AI feature: "Matching the values of column «Couleur» with AI needs 12 AI credits, and 10 are left." Null whenever ai_feature is, and on the rare AI exposure that has no subject to name (the template collection's json_column_match_product covers no single template). Fall back to the generic call-to-action then.

product.is_cta boolean nullable

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.
{
    "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,
        "ai_feature": null,
        "message": null
    },
    "debug": []
}
Copy
Response 400 Bad request.
ResponseError HttpBadRequest

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.

success boolean

Always false on error responses.

Sample: false
payload object

Context about the error, if any.

product object nullable

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 nullable

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

Sample: "permission"
product.permission object nullable

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 nullable

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: "X_SOURCE_FORMAT_XML"
product.limitation_type string nullable

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

product.limitation_needed_value integer nullable

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

product.limitation_current_value integer nullable

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

product.limitation_object object nullable

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

product.ai_feature string nullable

The AI feature that could not run, when an AI feature is what hit the limitation (null for any other product). Possible values: rule_transformation, rule_template, rule_function, rule_constraint, column_constraints, normalizer, chat_db, doc_assistant, api_doc_assistant, autocorrect, autocorrect_fill, invoice_reader, column_match, value_match, power_populate_with_ai, power_extract_from_pdf, power_extract_from_spreadsheet, agent, column_enrichment, column_constraints_batch, agent_compression, agent_workflow_scaffold, agent_phase_fill, push_json_column_match, value_match_embedding, normalizer_debugger, power_extract_from_text, template_format_custom, power_describe_image, power_background_erase, hosted_image_view, value_match_context

product.message object nullable

What stopped, on what, and what it would take — translated and ready to display, with one wording per AI feature: "Matching the values of column «Couleur» with AI needs 12 AI credits, and 10 are left." Null whenever ai_feature is, and on the rare AI exposure that has no subject to name (the template collection's json_column_match_product covers no single template). Fall back to the generic call-to-action then.

product.is_cta boolean nullable

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.
{
    "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,
        "ai_feature": null,
        "message": null
    },
    "debug": []
}
Copy
Response 401 Authentication required.
ResponseError HttpUnauthorized

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.

success boolean

Always false on error responses.

Sample: false
payload object

Context about the error, if any.

product object nullable

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 nullable

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

Sample: "permission"
product.permission object nullable

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 nullable

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: "X_SOURCE_FORMAT_XML"
product.limitation_type string nullable

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

product.limitation_needed_value integer nullable

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

product.limitation_current_value integer nullable

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

product.limitation_object object nullable

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

product.ai_feature string nullable

The AI feature that could not run, when an AI feature is what hit the limitation (null for any other product). Possible values: rule_transformation, rule_template, rule_function, rule_constraint, column_constraints, normalizer, chat_db, doc_assistant, api_doc_assistant, autocorrect, autocorrect_fill, invoice_reader, column_match, value_match, power_populate_with_ai, power_extract_from_pdf, power_extract_from_spreadsheet, agent, column_enrichment, column_constraints_batch, agent_compression, agent_workflow_scaffold, agent_phase_fill, push_json_column_match, value_match_embedding, normalizer_debugger, power_extract_from_text, template_format_custom, power_describe_image, power_background_erase, hosted_image_view, value_match_context

product.message object nullable

What stopped, on what, and what it would take — translated and ready to display, with one wording per AI feature: "Matching the values of column «Couleur» with AI needs 12 AI credits, and 10 are left." Null whenever ai_feature is, and on the rare AI exposure that has no subject to name (the template collection's json_column_match_product covers no single template). Fall back to the generic call-to-action then.

product.is_cta boolean nullable

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.
{
    "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,
        "ai_feature": null,
        "message": null
    },
    "debug": []
}
Copy
Response 403 Access denied.
ResponseError HttpForbidden

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.

success boolean

Always false on error responses.

Sample: false
payload object

Context about the error, if any.

product object nullable

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 nullable

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

Sample: "permission"
product.permission object nullable

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 nullable

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: "X_SOURCE_FORMAT_XML"
product.limitation_type string nullable

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

product.limitation_needed_value integer nullable

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

product.limitation_current_value integer nullable

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

product.limitation_object object nullable

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

product.ai_feature string nullable

The AI feature that could not run, when an AI feature is what hit the limitation (null for any other product). Possible values: rule_transformation, rule_template, rule_function, rule_constraint, column_constraints, normalizer, chat_db, doc_assistant, api_doc_assistant, autocorrect, autocorrect_fill, invoice_reader, column_match, value_match, power_populate_with_ai, power_extract_from_pdf, power_extract_from_spreadsheet, agent, column_enrichment, column_constraints_batch, agent_compression, agent_workflow_scaffold, agent_phase_fill, push_json_column_match, value_match_embedding, normalizer_debugger, power_extract_from_text, template_format_custom, power_describe_image, power_background_erase, hosted_image_view, value_match_context

product.message object nullable

What stopped, on what, and what it would take — translated and ready to display, with one wording per AI feature: "Matching the values of column «Couleur» with AI needs 12 AI credits, and 10 are left." Null whenever ai_feature is, and on the rare AI exposure that has no subject to name (the template collection's json_column_match_product covers no single template). Fall back to the generic call-to-action then.

product.is_cta boolean nullable

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.
{
    "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,
        "ai_feature": null,
        "message": null
    },
    "debug": []
}
Copy
Response 409 Payload contains invalid values.
ResponseError Violations Violation

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).

success boolean

Always false on error responses.

Sample: false
payload object

Context about the error, if any.

payload.error object

Generic message saying the request contains invalid values, translated in the request locale. The details are in violations.

payload.error.code string

A translation key for the given message.

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

The translated version of the message.

Click on "Example" to get its translated value.

payload.violations array

One entry per invalid value: the property path (e.g. format.csv.delimiter) and the reason. Several entries can target the same property.

payload.violations[].property_path string

Property having an invalid value.

Sample: "title"
payload.violations[].invalid_value nullable

The invalid value.

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

An error message describing the violation.

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

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 nullable

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

Sample: "permission"
product.permission object nullable

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 nullable

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: "X_SOURCE_FORMAT_XML"
product.limitation_type string nullable

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

product.limitation_needed_value integer nullable

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

product.limitation_current_value integer nullable

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

product.limitation_object object nullable

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

product.ai_feature string nullable

The AI feature that could not run, when an AI feature is what hit the limitation (null for any other product). Possible values: rule_transformation, rule_template, rule_function, rule_constraint, column_constraints, normalizer, chat_db, doc_assistant, api_doc_assistant, autocorrect, autocorrect_fill, invoice_reader, column_match, value_match, power_populate_with_ai, power_extract_from_pdf, power_extract_from_spreadsheet, agent, column_enrichment, column_constraints_batch, agent_compression, agent_workflow_scaffold, agent_phase_fill, push_json_column_match, value_match_embedding, normalizer_debugger, power_extract_from_text, template_format_custom, power_describe_image, power_background_erase, hosted_image_view, value_match_context

product.message object nullable

What stopped, on what, and what it would take — translated and ready to display, with one wording per AI feature: "Matching the values of column «Couleur» with AI needs 12 AI credits, and 10 are left." Null whenever ai_feature is, and on the rare AI exposure that has no subject to name (the template collection's json_column_match_product covers no single template). Fall back to the generic call-to-action then.

product.is_cta boolean nullable

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.
{
    "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,
        "ai_feature": null,
        "message": null
    },
    "debug": []
}
Copy
Back to API Reference

Interactive Console

Please login in order to access the console.

© 2026