[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[],[],null,["# Send a Data Action\n\nVersion 4.0.25.14 (latest)\n\nPerform a data action. The data action object can be obtained from query results, and used to perform an arbitrary action.\n\nRequest\n-------\n\nPOST /data_actions \nDatatype \nDescription \nRequest \nHTTP Request \nbody \nHTTP Body \nExpand HTTP Body definition... \nbody \n[DataActionRequest](/looker/docs/reference/looker-api/latest/types/DataActionRequest) \nData Action Request\nExpand DataActionRequest definition... \naction \nobject \nThe JSON describing the data action. This JSON should be considered opaque and should be passed through unmodified from the query result it came from. \nform_values \nobject \nUser input for any form values the data action might use.\n\nResponse\n--------\n\n### 200: Data Action Response\n\nDatatype \nDescription \n(object) \n[DataActionResponse](/looker/docs/reference/looker-api/latest/types/DataActionResponse) \nwebhook_id \n*lock* \nstring \nID of the webhook event that sent this data action. In some error conditions, this may be null. \nsuccess \n*lock* \nboolean \nWhether the data action was successful. \nrefresh_query \n*lock* \nboolean \nWhen true, indicates that the client should refresh (rerun) the source query because the data may have been changed by the action. \nvalidation_errors \n*lock* \n[ValidationError](/looker/docs/reference/looker-api/latest/types/ValidationError) \nValidation errors returned by the data action server.\nExpand ValidationError definition... \nmessage \n*lock* \nstring \nError details \nerrors \n[ValidationErrorDetail](/looker/docs/reference/looker-api/latest/types/ValidationErrorDetail)\\[\\] \nExpand ValidationErrorDetail definition... \nfield \n*lock* \nstring \nField with error \ncode \n*lock* \nstring \nError code \nmessage \n*lock* \nstring \nError info message \ndocumentation_url \n*lock* \nstring \nDocumentation link \ndocumentation_url \n*lock* \nstring \nDocumentation link \nmessage \n*lock* \nstring \nOptional message returned by the data action server describing the state of the action that took place. This can be used to implement custom failure messages. If a failure is related to a particular form field, the server should send back a validation error instead. The Looker web UI does not currently display any message if the action indicates 'success', but may do so in the future.\n\n### 400: Bad Request\n\nDatatype \nDescription \n(object) \n[Error](/looker/docs/reference/looker-api/latest/types/Error) \nmessage \n*lock* \nstring \nError details \ndocumentation_url \n*lock* \nstring \nDocumentation link\n\n### 404: Not Found\n\nDatatype \nDescription \n(object) \n[Error](/looker/docs/reference/looker-api/latest/types/Error) \nmessage \n*lock* \nstring \nError details \ndocumentation_url \n*lock* \nstring \nDocumentation link\n\n### 429: Too Many Requests\n\nDatatype \nDescription \n(object) \n[Error](/looker/docs/reference/looker-api/latest/types/Error) \nmessage \n*lock* \nstring \nError details \ndocumentation_url \n*lock* \nstring \nDocumentation link"]]