# Run a script **POST /_scripts/painless/_execute** **All methods and paths for this operation:**
GET /_scripts/painless/_execute
POST /_scripts/painless/_execute
Runs a script and returns a result. Use this API to build and test scripts, such as when defining a script for a runtime field. This API requires very few dependencies and is especially useful if you don't have permissions to write documents on a cluster. The API uses several _contexts_, which control how scripts are run, what variables are available at runtime, and what the return type is. Each context requires a script, but additional parameters depend on the context you're using for that script. ## Servers - http://api.example.com: http://api.example.com () ## Authentication methods - Api key auth - Basic auth - Bearer auth ## Parameters ### Body: application/json (object) - **context** (string) The context that the script should run in. NOTE: Result ordering in the field contexts is not guaranteed. Supported values include: - `painless_test`: The default context if no other context is specified. - `filter`: Treats scripts as if they were run inside a script query. - `score`: Treats scripts as if they were run inside a `script_score` function in a `function_score` query. - `boolean_field`: The context for boolean fields. The script returns a `true` or `false` response. - `date_field`: The context for date fields. `emit` takes a long value and the script returns a sorted list of dates. - `double_field`: The context for double numeric fields. The script returns a sorted list of double values. - `geo_point_field`: The context for geo-point fields. `emit` takes two double parameters, the latitude and longitude values, and the script returns an object in GeoJSON format containing the coordinates for the geo point. - `ip_field`: The context for `ip` fields. The script returns a sorted list of IP addresses. - `keyword_field`: The context for keyword fields. The script returns a sorted list of string values. - `long_field`: The context for long numeric fields. The script returns a sorted list of long values. - `composite_field`: The context for composite runtime fields. The script returns a map of values. - **context_setup** (object) Additional parameters for the `context`. NOTE: This parameter is required for all contexts except `painless_test`, which is the default if no value is provided for `context`. - **script** (object) The Painless script to run. ## Responses ### 200 #### Body: application/json (object) - **result** (object) [Powered by Bump.sh](https://bump.sh)