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

# Create Scorecard

> Creates a new scorecard template in the caller's organization. Requires an org-scoped API key (admin-equivalent). The new scorecard has no items on creation — use POST /scorecards/{id}/items to add scoring criteria.



## OpenAPI

````yaml post /scorecards
openapi: 3.0.1
info:
  title: Attention Service V2
  description: Attention Service API V2
  termsOfService: https://www.attention.com/terms-of-use
  contact:
    name: Attention Team
    url: https://docs.attention.com/welcome
    email: support@attention.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.8.0
servers:
  - url: https://api.attention.tech/v2
security:
  - APIKeyHeader: []
paths:
  /scorecards:
    post:
      tags:
        - Scorecard
      summary: Create Scorecard
      description: >-
        Creates a new scorecard template in the caller's organization. Requires
        an org-scoped API key (admin-equivalent). The new scorecard has no items
        on creation — use POST /scorecards/{id}/items to add scoring criteria.
      operationId: createScorecard
      requestBody:
        description: >-
          Scorecard creation payload. Title is required; teamId / allTeams /
          interactionType / enabled are optional.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScorecardRequest'
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/CreateScorecardRequest'
        required: true
      responses:
        '201':
          description: Scorecard successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScorecardResponse'
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ScorecardResponse'
        '400':
          description: >-
            Invalid request body (missing title, title too long, conflicting
            teamId+allTeams, etc.)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                id: invalid_parameter
                status: '400'
                code: '400'
                title: Invalid Parameter
                detail: title must be between 1 and 128 characters
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication failed - valid API key required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                id: unauthorized
                status: '401'
                code: '401'
                title: Unauthorized
                detail: Authentication failed - valid API key required
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Caller's API key does not have permission to create scorecards in
            this organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                id: forbidden
                status: '403'
                code: '403'
                title: Forbidden
                detail: This endpoint requires an organization-scoped API key
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: >-
            Request body failed schema-level validation (missing required field,
            string shorter than minLength, value outside declared range, etc.).
            Emitted by the swagger validation layer before handler code runs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: 604
                message: title in body should be at least 1 chars long
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error occurred while creating the scorecard
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CreateScorecardRequest:
      required:
        - title
      type: object
      properties:
        title:
          type: string
          description: Human-readable title of the scorecard (1-128 characters, trimmed).
        teamUUID:
          type: string
          description: >-
            UUID of the team to assign the scorecard to. Mutually exclusive with
            allTeams=true. Omit both for an unassigned scorecard.
        allTeams:
          type: boolean
          description: >-
            Assign the scorecard to every team in the organization. Mutually
            exclusive with teamId.
          default: false
        enabled:
          type: boolean
          description: Whether the scorecard is active after creation.
          default: true
        interactionType:
          $ref: '#/components/schemas/ScorecardInteractionType'
        detailedInstructions:
          type: string
          description: Optional free-form guidance (0-2000 characters).
        scorecardPrompt:
          type: string
          description: Optional prompt override for expert mode (0-8000 characters).
        expertMode:
          type: boolean
          description: >-
            Whether the scorecard uses custom prompts instead of the default
            template.
          default: false
        criteria:
          $ref: '#/components/schemas/ScorecardCriteria'
      description: Payload for creating a scorecard template.
      example:
        title: Sales Discovery Scorecard
        allTeams: true
        enabled: true
        interactionType: conversation
        detailedInstructions: Evaluate discovery quality.
        expertMode: false
    ScorecardResponse:
      required:
        - data
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Scorecard'
      description: Single-resource envelope wrapping a Scorecard.
      example:
        data:
          id: sc-uuid-123
          title: Sales Discovery Scorecard
          organizationId: org-uuid-456
          allTeams: true
          enabled: true
          interactionType: conversation
          expertMode: false
          isDefaultTemplate: false
          createdAt: '2026-04-16T10:15:00Z'
    Error:
      type: object
      properties:
        id:
          type: string
          description: A unique identifier for the error.
        status:
          type: string
          description: >-
            The HTTP status code applicable to this problem, expressed as a
            string value.
        code:
          type: string
          description: An application-specific error code, expressed as a string value.
        title:
          type: string
          description: A short, human-readable summary of the problem.
        detail:
          type: string
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
        source:
          type: object
          properties:
            pointer:
              type: string
            parameter:
              type: string
        meta:
          type: object
          properties: {}
      example:
        id: not_found_error
        status: '404'
        code: '404'
        title: Not Found Error
        detail: The requested resource was not found
        source:
          pointer: /data/attributes/id
    ScorecardInteractionType:
      type: string
      description: Type of interaction the scorecard evaluates.
      example: conversation
      enum:
        - conversation
        - chat
        - email
    ScorecardCriteria:
      type: object
      properties:
        operator:
          $ref: '#/components/schemas/ScorecardCriteriaOperator'
        conditions:
          type: array
          description: List of field/value conditions evaluated with the operator.
          items:
            $ref: '#/components/schemas/ScorecardCriteriaCondition'
      description: >-
        Label-based criteria that gate when a scorecard is applied to an
        interaction.
      example:
        operator: AND
        conditions:
          - field: label-uuid-123
            value: option-uuid-456
    Scorecard:
      required:
        - allTeams
        - createdAt
        - enabled
        - expertMode
        - interactionType
        - isDefaultTemplate
        - organizationUUID
        - title
        - uuid
      type: object
      properties:
        uuid:
          type: string
          description: Scorecard UUID.
        title:
          type: string
          description: Human-readable title of the scorecard (1-128 characters).
        organizationUUID:
          type: string
          description: UUID of the organization that owns the scorecard.
        teamUUID:
          type: string
          description: >-
            UUID of the specific team assigned to this scorecard, if any.
            Mutually exclusive with allTeams=true.
        allTeams:
          type: boolean
          description: Whether the scorecard is assigned to every team in the organization.
        enabled:
          type: boolean
          description: Whether the scorecard is active and runs against new interactions.
        interactionType:
          $ref: '#/components/schemas/ScorecardInteractionType'
        detailedInstructions:
          type: string
          description: Optional free-form guidance appended to the evaluator prompt.
        scorecardPrompt:
          type: string
          description: Optional prompt override used in expert mode.
        expertMode:
          type: boolean
          description: >-
            Whether this scorecard uses custom prompts (expert mode) instead of
            the default template.
        isDefaultTemplate:
          type: boolean
          description: >-
            Whether this scorecard was seeded as one of the default organization
            templates.
        criteria:
          $ref: '#/components/schemas/ScorecardCriteria'
        createdAt:
          type: string
          description: Timestamp when the scorecard was created.
          format: date-time
      description: A scorecard template used to evaluate a conversation, chat, or email.
      example:
        id: sc-uuid-123
        title: Sales Discovery Scorecard
        organizationId: org-uuid-456
        teamId: team-uuid-789
        allTeams: false
        enabled: true
        interactionType: conversation
        detailedInstructions: Focus on discovery quality and next-step commitments.
        scorecardPrompt: ''
        expertMode: false
        isDefaultTemplate: false
        criteria:
          operator: AND
          conditions: []
        createdAt: '2026-04-16T10:15:00Z'
    ScorecardCriteriaOperator:
      type: string
      description: Boolean operator joining criteria conditions.
      example: AND
      enum:
        - AND
        - OR
    ScorecardCriteriaCondition:
      type: object
      properties:
        field:
          type: string
          description: >-
            Field path being matched (for example, a label UUID or label option
            UUID).
        value:
          type: string
          description: Expected value for the field to satisfy the condition.
      description: A single criteria condition pairing a field path with an expected value.
      example:
        field: label-uuid-123
        value: option-uuid-456
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      name: Authorization
      in: header

````