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

# Update metrics

> Update metrics by ID.



## OpenAPI

````yaml https://admin.trophy.so/v1/openapi patch /metrics
openapi: 3.1.0
info:
  title: Trophy
  version: 1.19.0
servers:
  - x-fern-server-name: Admin API
    url: https://admin.trophy.so/v1
    description: Admin API
security: []
paths:
  /metrics:
    servers:
      - url: https://admin.trophy.so/v1
        description: Admin API
    parameters:
      - $ref: '#/components/parameters/TenantId'
    patch:
      tags:
        - Admin
      summary: Update metrics
      description: Update metrics by ID.
      operationId: admin_metrics_update
      requestBody:
        description: >-
          Array of metrics to update. Each item must include an ID and may
          include any subset of mutable metric fields except `key`.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMetricsRequest'
            examples:
              Update metric fields:
                value:
                  - id: 550e8400-e29b-41d4-a716-446655440000
                    name: Invites Completed
                    units: invites
                  - id: 550e8400-e29b-41d4-a716-446655440001
                    unitType: number
                    units: dollars
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateMetricsResponse'
              examples:
                Success with no issues:
                  value:
                    updated:
                      - id: 550e8400-e29b-41d4-a716-446655440000
                        name: Invites Completed
                        key: invites-sent
                        unitType: number
                        units: invites
                    issues: []
                Mixed success and errors:
                  value:
                    updated:
                      - id: 550e8400-e29b-41d4-a716-446655440001
                        name: Revenue
                        key: revenue
                        unitType: number
                        units: dollars
                    issues:
                      - id: 550e8400-e29b-41d4-a716-446655440999
                        severity: error
                        message: Metric not found by ID
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminErrorBody'
        '422':
          description: Unprocessible Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminErrorBody'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: javascript
          source: |
            import { TrophyApiClient } from '@trophyso/node';

            const trophy = new TrophyApiClient({
              apiKey: 'YOUR_API_KEY'
            });

            const response = await trophy.admin.metrics.update([
              {
                id: '550e8400-e29b-41d4-a716-446655440000',
                name: 'Invites Completed',
                units: 'invites'
              },
              {
                id: '550e8400-e29b-41d4-a716-446655440001',
                unitType: 'number',
                units: 'dollars'
              }
            ]);
        - lang: python
          source: |
            from trophy import TrophyApi

            client = TrophyApi(api_key='YOUR_API_KEY')

            response = client.admin.metrics.update([
              {
                "id": "550e8400-e29b-41d4-a716-446655440000",
                "name": "Invites Completed",
                "units": "invites"
              },
              {
                "id": "550e8400-e29b-41d4-a716-446655440001",
                "unitType": "number",
                "units": "dollars"
              }
            ])
        - lang: go
          source: >
            import (
              "context"

              api "github.com/trophyso/trophy-go"
              trophyclient "github.com/trophyso/trophy-go/client"
              "github.com/trophyso/trophy-go/option"
            )


            client := trophyclient.NewClient(
              option.WithApiKey("YOUR_API_KEY"),
            )


            response, err := client.Admin.Metrics.Update(context.TODO(),
            api.UpdateMetricsRequest{})
components:
  parameters:
    TenantId:
      name: Tenant-ID
      in: header
      description: >-
        The tenant identifier for multi-tenant organisations. Required when the
        organisation has multi-tenancy enabled. Pass your own internal customer
        ID for the tenant. Ignored for single-tenant organisations.
      required: false
      schema:
        type: string
      example: customer_12345
  schemas:
    UpdateMetricsRequest:
      title: UpdateMetricsRequest
      type: array
      description: Request body for updating metrics.
      items:
        $ref: '#/components/schemas/UpdateMetricRequestItem'
      minItems: 1
      maxItems: 100
    UpdateMetricsResponse:
      title: UpdateMetricsResponse
      type: object
      description: >-
        Response containing updated metrics and any per-item issues identified
        by metric ID.
      properties:
        updated:
          type: array
          items:
            $ref: '#/components/schemas/CreatedMetric'
          description: Array of successfully updated metrics.
        issues:
          type: array
          items:
            $ref: '#/components/schemas/AdminIssue'
          description: Array of issues encountered during metric update.
      required:
        - updated
        - issues
    AdminErrorBody:
      title: AdminErrorBody
      type: object
      properties:
        error:
          type: string
      required:
        - error
    UpdateMetricRequestItem:
      title: UpdateMetricRequestItem
      type: object
      description: >-
        A metric update object. `id` is required; `name`, `unitType`, and
        `units` are optional. `key` cannot be changed through this endpoint.
      properties:
        id:
          type: string
          format: uuid
          description: The UUID of the metric to update.
          example: 550e8400-e29b-41d4-a716-446655440000
        name:
          type: string
          description: The updated metric name.
          example: Invites Completed
        unitType:
          type: string
          enum:
            - number
            - currency
          description: The updated metric unit type.
          example: currency
        units:
          type: string
          description: >-
            The updated units value. For `unitType: currency`, this must be a
            supported `MetricCurrency` code such as `USD`.
          example: USD
      required:
        - id
    CreatedMetric:
      title: CreatedMetric
      type: object
      description: A successfully created metric returned from the create endpoint.
      properties:
        id:
          type: string
          format: uuid
          description: The UUID of the created metric.
        name:
          type: string
          description: The metric name.
        key:
          type: string
          description: The metric key.
        unitType:
          type: string
          enum:
            - number
            - currency
          description: The metric unit type.
        units:
          type: string
          description: The stored units value for the metric.
      required:
        - id
        - name
        - key
        - unitType
        - units
    AdminIssue:
      title: AdminIssue
      type: object
      description: An issue encountered while processing an item in an admin API request.
      properties:
        id:
          type: string
          description: The ID of the resource the issue relates to, when applicable.
          example: 550e8400-e29b-41d4-a716-446655440000
        userId:
          type: string
          description: The ID of the user the issue relates to, when applicable.
          example: user-123
        boostId:
          type: string
          description: The ID of the points boost the issue relates to, when applicable.
          example: 550e8400-e29b-41d4-a716-446655440000
        index:
          type: integer
          description: >-
            The zero-based index of the item the issue relates to, when no
            resource ID exists yet.
          example: 0
        severity:
          type: string
          enum:
            - error
            - warning
          description: The severity level of the issue.
          example: warning
        message:
          type: string
          description: A human-readable description of the issue.
          example: Would exceed maximum freeze limit
      required:
        - severity
        - message
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````