# Tools

The following endpoints allow you to manage tools.

## Update tool configuration

> Updates a tool configuration with a given scenario ID by passing new values in the request body. Any property that is not provided will be left unchanged. In the response, it returns all details of the updated tool underlaying scenario including properties that were not changed.

```json
{"openapi":"3.0.0","info":{"title":"Web API v2 - Public ","version":"1.0.0"},"tags":[{"name":"Scenarios / Tools","description":"The following endpoints allow you to manage tools."}],"servers":[{"url":"https://eu1.make.com/api/v2","description":"EU1 production zone"},{"url":"https://eu2.make.com/api/v2","description":"EU2 production zone"},{"url":"https://us1.make.com/api/v2","description":"US1 production zone"},{"url":"https://us2.make.com/api/v2","description":"US2 production zone"},{"url":"https://eu1.make.celonis.com/api/v2","description":"Celonis EU1 production zone"},{"url":"https://us1.make.celonis.com/api/v2","description":"Celonis US1 production zone"}],"security":[{"token":["scenarios:write"]}],"components":{"securitySchemes":{"token":{"type":"apiKey","name":"Authorization","in":"header","description":"Authorize the API call with your API token in the `Authorization` header with the value: `Token your-api-token`.\n\nIf you don't have an API token yet, please refer to the [\"Authentication\" section](/api-documentation/authentication) to learn how to create one.\n"}}},"paths":{"/scenarios/tools/{scenarioId}":{"patch":{"tags":["Scenarios / Tools"],"summary":"Update tool configuration","description":"Updates a tool configuration with a given scenario ID by passing new values in the request body. Any property that is not provided will be left unchanged. In the response, it returns all details of the updated tool underlaying scenario including properties that were not changed.","parameters":[{"description":"The ID of the scenario. You can get the `scenarioId` with the [List scenarios](/api-reference/scenarios/get--scenarios.md) API call.","name":"scenarioId","in":"path","schema":{"type":"integer"},"required":true},{"name":"cols[]","in":"query","schema":{"type":"array","items":{"type":"string","enum":["id","name","teamId","hookId","deviceId","deviceScope","description","folderId","isinvalid","islinked","isActive","islocked","isPaused","usedPackages","lastEdit","scheduling","iswaiting","dlqCount","createdByUser","updatedByUser","nextExec","scenarioVersion","moduleSequenceId"]}},"description":"Specifies columns that are returned in the response. Use the `cols[]` parameter for every column that you want to return in the response. For example `GET /endpoint?cols[]=key1&cols[]=key2` to get both `key1` and `key2` columns in the response.\n\n[Check the \"Filtering\" section for a full example.](/pagination-sorting-filtering/filtering.md)\n"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The name of the tool."},"description":{"type":"string","description":"A description of the tool."},"inputs":{"type":"array","items":{"type":"object"}},"module":{"type":"object","description":"The module of the tool. The module is a JSON object that contains the module ID, version, mapper, parameters, and metadata."}}}}}},"responses":{"200":{"description":"Scenario was updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"},"inputs":{"type":"array"},"teamId":{"type":"integer"},"moduleType":{"type":"string"},"module":{"type":"object","properties":{"module":{"type":"string"},"version":{"type":"integer"},"mapper":{"type":"object"},"parameters":{"type":"object"},"metadata":{"type":"object"}}}}}}}}}}}}}}}
```
