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

# Update CPM Values

> Update the CPM (Cost Per Mille) values used for EMV (Earned Media Value) calculations. You can update one or more platform CPM values in a single request. Only provide the platforms you want to update.



## OpenAPI

````yaml /api/openapi.json put /analytics/cpm
openapi: 3.1.0
info:
  title: Ordinal API
  version: 1.0.0
  description: API to create and manage Ordinal workspaces, posts, profiles, and analytics
servers:
  - url: https://app.tryordinal.com/api/v1
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: Analytics
    description: Social media analytics data
  - name: Approvals
    description: Post approval workflows
  - name: Comments
    description: >-
      Post comments for team collaboration. Supports @mentions using the format
      @[Display Name](userId).
  - name: Engagements
    description: Auto-engagements for posts (likes, comments, reposts)
  - name: Invites
    description: Workspace invitations for adding new users
  - name: Labels
    description: Labels for organizing posts
  - name: Instagram
    description: Instagram utilities for location search and tagging
  - name: LinkedIn
    description: LinkedIn utilities for profile lookups, tagging, and mentions
  - name: Posts
    description: Create and manage posts
  - name: Profiles
    description: List connected social profiles
  - name: Slack Boosts
    description: >-
      List connected Slack channels (webhooks), then create and manage slack
      boosts so teams get notified in Slack when posts publish. Requires Slack
      connected with marketing boost channels.
  - name: Subscribers
    description: Post subscribers for notifications
  - name: File Uploads
    description: >-
      Upload files from URLs for use in posts. Supports images (JPEG, PNG, GIF,
      WebP) up to 10 MB and videos (MP4, MOV) up to 350 MB.
  - name: Ideas
    description: >-
      Create and manage content ideas. Ideas are draft posts without scheduled
      dates that can be converted to calendar posts.
  - name: Inline Comments
    description: >-
      Text-anchored comments on specific post content. Read-only API for
      retrieving inline comments across channels.
  - name: Users
    description: Workspace users
  - name: Webhooks
    description: >-
      Create, list, get, update, and delete webhooks to receive real-time event
      notifications
  - name: Workspaces
    description: Workspace information
paths:
  /analytics/cpm:
    put:
      tags:
        - Analytics
      summary: Update CPM Values
      description: >-
        Update the CPM (Cost Per Mille) values used for EMV (Earned Media Value)
        calculations. You can update one or more platform CPM values in a single
        request. Only provide the platforms you want to update.
      operationId: analytics-cpm-update
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CpmUpdateInput'
            examples:
              updateSingle:
                summary: Update single platform
                value:
                  linkedIn: 35
              updateMultiple:
                summary: Update multiple platforms
                value:
                  linkedIn: 35
                  x: 12
                  instagram: 15
              updateAll:
                summary: Update all platforms
                value:
                  linkedIn: 35
                  x: 12
                  instagram: 15
                  facebook: 12
                  threads: 8
      responses:
        '200':
          description: Updated CPM values for all platforms
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CpmValues'
              example:
                linkedIn: 35
                x: 12
                instagram: 15
                facebook: 10
                threads: 10
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  schemas:
    CpmUpdateInput:
      type: object
      description: >-
        Input for updating CPM values. All fields are optional - only provide
        the platforms you want to update.
      properties:
        linkedIn:
          type: number
          minimum: 0
          description: LinkedIn CPM value
        x:
          type: number
          minimum: 0
          description: X (Twitter) CPM value
        instagram:
          type: number
          minimum: 0
          description: Instagram CPM value
        facebook:
          type: number
          minimum: 0
          description: Facebook CPM value
        threads:
          type: number
          minimum: 0
          description: Threads CPM value
    CpmValues:
      type: object
      description: CPM (Cost Per Mille) values for EMV calculations across all platforms
      required:
        - linkedIn
        - x
        - instagram
        - facebook
        - threads
      properties:
        linkedIn:
          type: number
          description: 'LinkedIn CPM value (default: 30)'
        x:
          type: number
          description: 'X (Twitter) CPM value (default: 10)'
        instagram:
          type: number
          description: 'Instagram CPM value (default: 10)'
        facebook:
          type: number
          description: 'Facebook CPM value (default: 10)'
        threads:
          type: number
          description: 'Threads CPM value (default: 10)'
    ValidationError:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        data:
          type: object
          properties:
            errors:
              type: object
              additionalProperties:
                type: array
                items:
                  type: string
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
  responses:
    BadRequest:
      description: Bad Request - Invalid input parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
          example:
            code: BAD_REQUEST
            message: Bad Request
            data:
              errors:
                publishAt:
                  - Invalid date format
                status:
                  - Invalid enum value
    Unauthorized:
      description: Unauthorized - Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: UNAUTHORIZED
            message: Invalid or unauthorized API key
    Forbidden:
      description: Forbidden - Insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: FORBIDDEN
            message: Engagement profiles cannot be used for analytics
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key authentication. Generate an API key from your workspace
        settings.

````