---
title: "Create Score Config"
method: POST
path: "/data-quality/v1/score/configs"
tags: ["Score"]
---

# Create Score Config

`POST /data-quality/v1/score/configs`

## Request

- Base URL: `https://api.zoominfo.com/gtm`
- URL: `https://api.zoominfo.com/gtm/data-quality/v1/score/configs`
- Auth: OAuth 2
  - Authorization code: `https://login.zoominfo.com`
  - Token URL: `https://okta-login.zoominfo.com/oauth2/default/v1/token` scopes: `api:data-quality:manage`

Creates a new score configuration.

A saved config is required before you can score anything: Run Scoring takes `configIds` and
has no inline path, so create the model here first and reference the returned `id` on every
run.

A model is an ordered list of `elements`. Each element names the `field` it looks at, the
`weight` it contributes, and the `rules` whose `criteria` decide whether it applies.

Server-assigned fields — `id`, `status`, `modelType`, `fieldsUsedInRules`, and timestamps —
are ignored on input and returned in the response. `fieldsUsedInRules` is derived from the
rules you supply; it is not something you set.

Returns `201` with the created score config. Returns `400` if the payload is malformed — for
example an element missing its `field`, an out-of-range `weight`, or a rule with no criteria.

This endpoint does not consume credits.

## Request body

- ScoreConfigJsonApiModelCreate: JSON API model for a single score config.
  - `data` ScoreConfigCreate, required: A score configuration resource (identity, model type, and scoring elements).
    - `type` string, required: The type of the resource
    - `attributes` ScoreConfigAttributes, required: Attributes of a score configuration.
      - `name` string, required: Display name for the score config.
      - `status` 'ACTIVE' | 'ARCHIVED', required: Lifecycle status of a score configuration.
      - `modelType` 'ATTRIBUTE', required: Type of scoring model.
      - `elements` ScoreElement[], required: Ordered scoring elements that define how records are scored.
        - `field` string, required: Name of the input field this element scores.
        - `weight` number, double, required: Relative weight of this element in the weighted sum. Between `0` and `100`.
        - `rules` ScoreRule[], required: Ordered rules evaluated for this element.
          - `name` string, required: Display name for the rule.
          - `score` number, double, required: Score contributed by this rule when its criteria match.
          - `criteria` ScoreCriterion[], required: Ordered criteria evaluated for this rule. At least one is required.
            - `operator` 'TEXT_EQUALS' | 'TEXT_NOT_EQUALS' | 'TEXT_CONTAINS' | 'TEXT_NOT_CONTAINS' | 'TEXT_STARTS' | 'TEXT_NOT_STARTS' | 'TEXT_ENDS' | 'TEXT_NOT_ENDS' | 'NUM_EQUALS' | 'NUM_MORE' | 'NUM_LESS' | 'NUM_BETWEEN' | 'BOOL_TRUE' | 'BOOL_FALSE' | 'IS_NULL' | 'IS_NOT_NULL' | 'DATE_EXACT' | 'DATE_AFTER' | 'DATE_BEFORE' | 'PICKLIST_EQUALS' | 'PICKLIST_NOT_EQUALS' | 'MULTIPICKLIST_EQUALS' | 'MULTIPICKLIST_NOT_EQUALS' | 'MULTIPICKLIST_HAS' | 'MULTIPICKLIST_HAS_NONE' | 'MULTIPICKLIST_HAS_ALL' | 'DIVIDER', required: Comparison operator for a score rule criterion.
            - `values` string[]: Operand values for the operator. Omitted for nullary operators (boolean and null checks) and for `DIVIDER`; a single entry for most text, number, and date operators; exactly two for `NUM_BETWEEN`.
      - `fieldsUsedInRules` string[], required: Distinct input field names referenced by this config's elements, sorted alphabetically. Read-only; derived from `elements[].field`.

## Response `201`

Created

- ScoreConfigJsonApiModel: JSON API model for a single score config.
  - `data` ScoreConfig, required: A score configuration resource (identity, model type, and scoring elements).
    - `id` string, required: The unique identifier for the resource
    - `type` string, required: The type of the resource
    - `attributes` ScoreConfigAttributes, required: Attributes of a score configuration.
      - `name` string, required: Display name for the score config.
      - `status` 'ACTIVE' | 'ARCHIVED', required: Lifecycle status of a score configuration.
      - `modelType` 'ATTRIBUTE', required: Type of scoring model.
      - `elements` ScoreElement[], required: Ordered scoring elements that define how records are scored.
        - `field` string, required: Name of the input field this element scores.
        - `weight` number, double, required: Relative weight of this element in the weighted sum. Between `0` and `100`.
        - `rules` ScoreRule[], required: Ordered rules evaluated for this element.
          - `name` string, required: Display name for the rule.
          - `score` number, double, required: Score contributed by this rule when its criteria match.
          - `criteria` ScoreCriterion[], required: Ordered criteria evaluated for this rule. At least one is required.
            - `operator` 'TEXT_EQUALS' | 'TEXT_NOT_EQUALS' | 'TEXT_CONTAINS' | 'TEXT_NOT_CONTAINS' | 'TEXT_STARTS' | 'TEXT_NOT_STARTS' | 'TEXT_ENDS' | 'TEXT_NOT_ENDS' | 'NUM_EQUALS' | 'NUM_MORE' | 'NUM_LESS' | 'NUM_BETWEEN' | 'BOOL_TRUE' | 'BOOL_FALSE' | 'IS_NULL' | 'IS_NOT_NULL' | 'DATE_EXACT' | 'DATE_AFTER' | 'DATE_BEFORE' | 'PICKLIST_EQUALS' | 'PICKLIST_NOT_EQUALS' | 'MULTIPICKLIST_EQUALS' | 'MULTIPICKLIST_NOT_EQUALS' | 'MULTIPICKLIST_HAS' | 'MULTIPICKLIST_HAS_NONE' | 'MULTIPICKLIST_HAS_ALL' | 'DIVIDER', required: Comparison operator for a score rule criterion.
            - `values` string[]: Operand values for the operator. Omitted for nullary operators (boolean and null checks) and for `DIVIDER`; a single entry for most text, number, and date operators; exactly two for `NUM_BETWEEN`.
      - `fieldsUsedInRules` string[], required: Distinct input field names referenced by this config's elements, sorted alphabetically. Read-only; derived from `elements[].field`.
    - `meta` ScoreConfigMeta: Non-standard metadata for a score config.
      - `createdAt` string, date-time, required: ISO 8601 timestamp at which this score config was created.
      - `updatedAt` string, date-time, required: ISO 8601 timestamp at which this score config was last updated.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too Many Requests

---

[API](https://skmtc.dev/zoominfo/apis/data-quality-api-v1.md) - [All operations](https://skmtc.dev/zoominfo/apis/data-quality-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/zoominfo/apis/data-quality-api-v1/revisions/7229ed1f3b09?raw)
