> For the complete documentation index, see [llms.txt](https://rest-api.symphony.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rest-api.symphony.com/main/signals/update-signal.md).

# Update Signal

## POST /v1/signals/{id}/update

> Update a signal.

```json
{"openapi":"3.0.1","info":{"title":"Agent API","version":"25.8.1"},"servers":[{"url":"youragentURL.symphony.com/agent"}],"paths":{"/v1/signals/{id}/update":{"post":{"tags":["Signals"],"summary":"Update a signal.","parameters":[{"name":"sessionToken","in":"header","description":"Session authentication token.","required":true,"schema":{"type":"string"}},{"name":"keyManagerToken","in":"header","description":"Key Manager authentication token.","schema":{"type":"string"}},{"name":"id","in":"path","description":"The id of the signal.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Signal definition.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseSignal"}}},"required":true},"responses":{"200":{"description":"Signal updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Signal"}}}},"400":{"description":"Client error, see response body for further details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2Error"}}}},"401":{"description":"Unauthorized: Session tokens invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2Error"}}}},"403":{"description":"Forbidden: Caller lacks necessary entitlement.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2Error"}}}},"451":{"description":"Compliance Issues found in signal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2Error"}}}},"500":{"description":"Server error, see response body for further details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2Error"}}}}}}}},"components":{"schemas":{"BaseSignal":{"type":"object","properties":{"name":{"type":"string","description":"Signal name"},"query":{"type":"string","description":"The query used to define this signal. The query is defined as \"field:value\" pairs combined by the operators\n\"AND\" or \"OR\". Supported fields are (case-insensitive): \"author\", \"hashtag\" and \"cashtag\".\nMUST contain at least one \"hashtag\" or \"cashtag\" definition.\n"},"visibleOnProfile":{"type":"boolean","description":"Whether the signal is visible on its creator's profile"},"companyWide":{"type":"boolean","description":"Whether the signal is a push signal"}}},"Signal":{"allOf":[{"$ref":"#/components/schemas/BaseSignal"},{"type":"object","properties":{"id":{"type":"string","description":"Signal ID"},"timestamp":{"type":"integer","description":"Timestamp when the signal was created, in milliseconds since Jan 1 1970","format":"int64"}}}]},"V2Error":{"required":["code","message"],"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"object"}}}}}}
```

### Request Example

```bash
curl -X POST \
  https://acme.symphony.com/agent/v1/signals/5a8da7edb9d82100011d508f/update \
  -H 'content-type: application/json' \
  -H 'sessiontoken: SESSION_TOKEN' \
  -H 'keymanagertoken: KEYMANAGER_TOKEN' \
  -d '{
    "name": "hashtag only",
    "query": "HASHTAG:hash",
    "visibleOnProfile": false,
    "companyWide": false
   }'
```

> #### 🚧 Known Limitations
>
> * To update a company-wide signal, the requesting user needs to have the `canCreatePushedSignals` entitlement.
> * To update a normal signal, the requesting user needs to be the owner of the signal.
> * To send numeric cashtags as signals, add a `*` before the number, for example, `$*122450`.
