# Update multiple sub-compositions in one call

To update multiple sub-compositions in one API call, you'll need two things:

* The[ app token](/rest-api/how-to-guides/get-a-control-apps-api-token.md) for the particular instance of the control app you're using
* The[ sub-composition IDs and payload structures](/rest-api/how-to-guides/get-a-compositions-sub-composition-ids-and-names-and-their-payload-structures.md) of the overlays you want to update

With that data on hand

1. Prepare a `PATCH` request to `https://app.singular.live/apiv2/controlapps/:appToken/control`, which is the endpoint to [update a control app](/rest-api/api-reference/send-data-to-a-control-app/update-a-control-apps-content.md).&#x20;
2. Replace `:appToken` with the actual app token for your app instance.
3. Add a request body with the actual sub-composition IDs and payload structures, and include the updates you'd like to make. The request body should look like this, but with sub-composition IDs and payload data filled in.

{% tabs %}
{% tab title="Sub-composition name" %}

```json
[
    {
        "subCompositionName": "your-subcomposition-name-1",
        "payload": {
           "controlnode-field": "control node content"
         },
    },
    {
        "subCompositionName": "your-subcomposition-name-2",
        "payload": {
           "controlnode-field": "control node content"
         },
        "state": "<toState>"
    }
]
```

{% endtab %}

{% tab title="Sub-composition ID" %}

```json
[
    {
        "subCompositionId": "your-subcomposition-id-1",
        "payload": {
           "controlnode-field": "control node content"
         },
    },
    {
        "subCompositionId": "your-subcomposition-id-2",
        "payload": {
           "controlnode-field": "control node content"
         },
        "state": "<toState>"
    }
]
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
You can also send the final sub-composition in the list to its In or Out state with this request.
{% endhint %}

After sending the request, you should get a `200 OK` response with a payload of `{ "success": true }`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.singular.live/rest-api/how-to-guides/update-multiple-sub-compositions-in-one-call.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
