> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frontic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Context

Update the region and locale stored against a `contextKey`. Subsequent requests that use the same token reflect the change — useful for region/language switching without minting a new token.

Scope is **not** changed via this endpoint. A scope transition (for example, an authenticated visitor moving from `public` to `b2b` after login) is handled server-side by issuing a new `contextKey` in the new scope.

## Path Parameters

<ParamField path="project-token" type="string" required>
  Your project's Fetch token, embedded in the subdomain.
</ParamField>

## Headers

<ParamField header="fs-context" type="string" required>
  The `contextKey` to update. 36–50 characters.
</ParamField>

<ParamField header="fs-secret" type="string">
  Required when the project has fetch API keys configured.
</ParamField>

## Request Body

<ParamField body="region" type="string" required>
  The new region key (e.g. `eu`). Must be a region available within the token's scope — see [List Contexts](/reference/fetch-api/list-contexts).
</ParamField>

<ParamField body="locale" type="string" required>
  The new locale key (e.g. `de-DE`). Must be one of the new region's supported locales.
</ParamField>

## Response

<ResponseField name="region" type="string" required>
  The updated region key.
</ResponseField>

<ResponseField name="locale" type="string" required>
  The updated locale key.
</ResponseField>

<ResponseField name="scope" type="string" required>
  The unchanged scope key (returned for reference).
</ResponseField>

### Status codes

| Code  | When                                                                                                                                                                             |
| ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `200` | Context updated                                                                                                                                                                  |
| `400` | `INVALID_TOKEN`, `INVALID_POST_BODY`, or `INVALID_PARAMETERS` — token is malformed, body isn't valid JSON, or `region`/`locale` aren't a valid combination for the token's scope |
| `401` | `fs-secret` missing or wrong (only when the project has fetch keys configured)                                                                                                   |
| `404` | `TOKEN_NOT_FOUND` — token doesn't exist in this project                                                                                                                          |

<RequestExample>
  ```bash curl theme={"theme":"css-variables"}
  curl -X PATCH 'https://fetch-<project-token>.frontic.com/context' \
    -H 'fs-context: <context-key>' \
    -H 'Content-Type: application/json' \
    -d '{
      "region": "eu",
      "locale": "de-DE"
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={"theme":"css-variables"}
  {
    "region": "eu",
    "locale": "de-DE",
    "scope": "public"
  }
  ```
</ResponseExample>
