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

# Update analysis metadata

> Add context such as description, goal, audience, or brand guidelines to an existing analysis.

Update metadata for an existing image or URL analysis. Use this to add context — a description, goal, target audience, or brand guidelines — that is stored with the analysis and used by generated [summaries](/api-reference/get-summary) and [recommendations](/api-reference/get-recommendations).

This endpoint updates metadata only. It does not rerun the analysis or change the maps and scores returned by [Get an analysis](/api-reference/get-analysis).

<Note>
  The `analysis-id` path parameter is the analysis id returned as `_internal_exposed_id` from [Get an analysis](/api-reference/get-analysis) — **not** the top-level `id` returned when you create an analysis.
</Note>

<ParamField path="analysis-id" type="string" required>
  The analysis id (`_internal_exposed_id` from Get an analysis).
</ParamField>

<ParamField body="description" type="string">
  What the creative, page, or screen is.
</ParamField>

<ParamField body="goal" type="string">
  The user or business outcome the design should support.
</ParamField>

<ParamField body="target_audience" type="string">
  The audience the design is intended for.
</ParamField>

<ParamField body="brand_guidelines" type="string">
  Brand, messaging, or design constraints to consider.
</ParamField>

Supported fields are merged into the existing metadata. Unsupported fields are ignored and returned in `ignored_keys`. The body must be a JSON object up to 64 KB, with individual string values up to 10,000 characters; deeply nested objects are rejected.

<ResponseField name="success" type="boolean">
  Whether the update succeeded.
</ResponseField>

<ResponseField name="meta" type="object">
  The metadata fields accepted by the API.
</ResponseField>

<ResponseField name="ignored_keys" type="array">
  Any unsupported fields that were ignored.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl \
    -X PUT \
    -H "Authorization: Bearer $apikey" \
    -H "Content-Type: application/json" \
    -d '{
          "description": "Homepage hero",
          "goal": "Increase sign-ups"
        }' \
    https://api.eyequant.com/v2/update-meta/screenshot/$analysisId
  ```

  ```javascript JavaScript theme={null}
  const baseUrl = 'https://api.eyequant.com/v2';

  await fetch(`${baseUrl}/update-meta/screenshot/${analysisId}`, {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json',
      Authorization: `Bearer ${apiKey}`,
    },
    body: JSON.stringify({
      description: 'Homepage hero',
      goal: 'Increase sign-ups',
    }),
  });
  ```
</RequestExample>

<ResponseExample>
  ```json updated theme={null}
  {
    "success": true,
    "meta": {
      "description": "Homepage hero",
      "goal": "Increase sign-ups"
    }
  }
  ```

  ```json ignored keys theme={null}
  {
    "success": true,
    "meta": {
      "description": "Homepage hero"
    },
    "ignored_keys": ["unsupported_field"]
  }
  ```

  ```json 404 theme={null}
  {
    "error": "Resource not found",
    "resource_type": "screenshot",
    "resource_id": "0b9c2e7a1f4d4a9e8c2b6d5f3a1e7c90"
  }
  ```
</ResponseExample>
