---
title: "Run Scoring"
method: POST
path: "/data-quality/v1/score/actions/run"
tags: ["Score"]
---

# Run Scoring

`POST /data-quality/v1/score/actions/run`

## Request

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

Scores a batch of records against one or more saved models and returns the results inline.
Synchronous: the call blocks until every record is scored. Pass several `configIds` to apply
several models in one pass.

Unknown `configIds` are skipped, not rejected. A well-formed id that matches no existing
config is silently ignored and the run proceeds on the remaining models, so verify your ids
against List Score Configs rather than trusting a `200` to mean every model was applied.

Supply `configIds` (required, 1 to 10 score config ids) and `records` (required, 1 to 25
records).

Returns `200` with per-record scores inline. Returns `400` if `configIds` or `records` are
missing or empty, if either exceeds its limit, if a `configId` is malformed (not a valid
integer id), or if none of the supplied `configIds` match an existing config. Returns `5xx`
if the run fails before any record can be scored; failures affecting individual records are
reported per-record in the response.

This operation consumes credits for each record scored. Config operations are free — only a
run is billed.

## Request body

- ScoreRunRequestJsonApiModel: JSON API model for a score run request.
  - `data` ScoreRunRequest, required: Score run request resource.
    - `type` string, required: The type of the resource
    - `attributes` ScoreRunRequestAttributes, required: Sync score run request attributes.
      - `configIds` string[], required: Identifiers of the score configs to apply, in order. At least one required, up to 10.
      - `records` DataQualityRecord[], required: Input records to score, in order. At least one required, up to 25 per request.

## Response `200`

Success

- ScoreResultsJsonApiModel: JSON API model for inline sync score results.
  - `data` ScoreResults, required: Sync score results resource.
    - `id` string, required: The unique identifier for the resource
    - `type` string, required: The type of the resource
    - `attributes` ScoreResultsAttributes, required: Score results response attributes returned by the sync run endpoint.
      - `configIds` string[], required: Identifiers of the score configs applied by this run.
      - `summary` ScoreRunSummary, required: Aggregate counts describing the outcome of a score run.
        - `totalRecords` integer, required: Total number of records submitted in the run.
        - `successCount` integer, required: Number of records that were processed without error.
        - `scoredCount` integer, required: Number of records that received a computed score from at least one config.
        - `errorCount` integer, required: Number of records that errored during scoring.
      - `records` RecordScoreResult[], required: Per-record scoring outcomes, in the same order as the request's `records[]`.
        - `input` DataQualityRecord, required: A single input record, expressed as an open map of `field → value` pairs (for example `{ "industry": "Software", "country": "US" }`). The record shape is intentionally open: a config's rules reference the input fields they need *by name*. Fields a config does not reference are ignored, and a referenced field that is absent simply does not contribute — it is not an error.
        - `outputs` RecordScoreOutput[], required: Score outputs for each applied config, in `configIds` order.
          - `configId` string, required: Identifier of the score config that produced this output.
          - `status` 'SCORED' | 'UNSCORED' | 'ERROR', required: Outcome of applying one score config to one record.
          - `value` number, double: The computed score for this record under this config: a weighted sum of the matching rule scores across the config's elements. Scores typically fall in the `0`–`100` range but a config may exceed `100`; a higher score indicates a stronger match. Omitted when this config produced no score — no rules matched, the record could not be evaluated, or an error occurred (see `status`).

## 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)
