# Recurring scan schedules

Source: https://neondeerdata.com/docs/api/duplicate-detection/schedules/

Create named duplicate-scan schedules with individual record selections and review their occurrences.

The APIs on this page require alpha access for your organization. App availability and API access are separate. [Check access and permissions](https://neondeerdata.com/docs/api/permissions/).

## List scan schedules

```http
GET /v1/deduplication/schedules

```

Lists scan schedules, one page at a time.

Requires `dedupe:schedules:read`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `list_dedupe_scan_schedules`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name          | Send in | Required | Type or allowed values                       | Notes                                            |
| ------------- | ------- | -------- | -------------------------------------------- | ------------------------------------------------ |
| `limit`       | query   | No       | integer                                      |                                                  |
| `cursor`      | query   | No       | string                                       |                                                  |
| `object_type` | query   | No       | `"companies"`, `"people"`                    |                                                  |
| `status`      | query   | No       | array of `"active"`, `"paused"`, `"deleted"` | Repeat this query parameter for multiple values. |
| `ownership`   | query   | No       | `"api"`, `"portal"`                          |                                                  |
| `sort`        | query   | No       | `"created_at"`, `"-created_at"`              |                                                  |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field                                                 | Type                                                                                                                                           | Required in object | Notes                                                                                                                                                                                     |
| -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `data`                                                         | array of object                                                                                                                                | Yes                |                                                                                                                                                                                           |
| `data[].object`                                                | `"deduplication_schedule"`                                                                                                                     | Yes                |                                                                                                                                                                                           |
| `data[].id`                                                    | string                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `data[].version`                                               | string                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `data[].ownership`                                             | `"api"`, `"portal"`                                                                                                                            | Yes                |                                                                                                                                                                                           |
| `data[].name`                                                  | string                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `data[].provider_workspace_id`                                 | string                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `data[].object_type`                                           | `"companies"`, `"people"`                                                                                                                      | Yes                |                                                                                                                                                                                           |
| `data[].action`                                                | object                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `data[].action.type`                                           | `"scan"`                                                                                                                                       | Yes                |                                                                                                                                                                                           |
| `data[].action.ai_assessment`                                  | object                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `data[].action.ai_assessment.mode`                             | `"none"`                                                                                                                                       | Yes                | When data\[\].action.ai_assessment.mode is `"none"`.                                                                                                                                      |
| `data[].action.ai_assessment.mode`                             | `"after_scan"`                                                                                                                                 | Yes                | When data\[\].action.ai_assessment.mode is `"after_scan"`.                                                                                                                                |
| `data[].action.ai_assessment.budget`                           | object                                                                                                                                         | Yes                | When data\[\].action.ai_assessment.mode is `"after_scan"`.                                                                                                                                |
| `data[].action.ai_assessment.budget.max_assessment_units`      | integer                                                                                                                                        | Yes                | When data\[\].action.ai_assessment.mode is `"after_scan"`.                                                                                                                                |
| `data[].action.ai_assessment.assessment_expires_after_seconds` | integer                                                                                                                                        | Yes                | When data\[\].action.ai_assessment.mode is `"after_scan"`.                                                                                                                                |
| `data[].selection`                                             | object                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `data[].selection.mode`                                        | `"all"`                                                                                                                                        | Yes                | When data\[\].selection.mode is `"all"`.                                                                                                                                                  |
| `data[].selection.mode`                                        | `"of"`, `"within"`                                                                                                                             | Yes                | When data\[\].selection.mode is `"of"`, `"within"`.                                                                                                                                       |
| `data[].selection.where`                                       | \_\_schema0                                                                                                                                    | Yes                | When data\[\].selection.mode is `"of"`, `"within"`.                                                                                                                                       |
| `data[].selection.where.type`                                  | `"and"`, `"or"`                                                                                                                                | Yes                | When data\[\].selection.mode is `"of"`, `"within"`.                                                                                                                                       |
| `data[].selection.where.conditions`                            | array of object or \_\_schema0                                                                                                                 | Yes                | When data\[\].selection.mode is `"of"`, `"within"`.                                                                                                                                       |
| `data[].selection.where.conditions[].type`                     | `"attribute"`                                                                                                                                  | Yes                | When data\[\].selection.mode is `"of"`, `"within"`. When data\[\].selection.where.conditions\[\].type is `"attribute"`.                                                                   |
| `data[].selection.where.conditions[].attribute`                | string                                                                                                                                         | Yes                | When data\[\].selection.mode is `"of"`, `"within"`. When data\[\].selection.where.conditions\[\].type is `"attribute"`. When data\[\].selection.where.conditions\[\].type is `"related"`. |
| `data[].selection.where.conditions[].operator`                 | `"is"`, `"is_not"`, `"contains"`, `"not_contains"`, `"lt"`, `"lte"`, `"gt"`, `"gte"`, `"any_of"`, `"none_of"`, `"empty"`, `"not_empty"`        | Yes                | When data\[\].selection.mode is `"of"`, `"within"`. When data\[\].selection.where.conditions\[\].type is `"attribute"`.                                                                   |
| `data[].selection.where.conditions[].value`                    | string or number or boolean or array of string                                                                                                 | No                 | When data\[\].selection.mode is `"of"`, `"within"`. When data\[\].selection.where.conditions\[\].type is `"attribute"`.                                                                   |
| `data[].selection.where.conditions[].type`                     | `"related"`                                                                                                                                    | Yes                | When data\[\].selection.mode is `"of"`, `"within"`. When data\[\].selection.where.conditions\[\].type is `"related"`.                                                                     |
| `data[].selection.where.conditions[].object`                   | string                                                                                                                                         | Yes                | When data\[\].selection.mode is `"of"`, `"within"`. When data\[\].selection.where.conditions\[\].type is `"related"`.                                                                     |
| `data[].selection.where.conditions[].where`                    | \_\_schema0                                                                                                                                    | Yes                | When data\[\].selection.mode is `"of"`, `"within"`. When data\[\].selection.where.conditions\[\].type is `"related"`.                                                                     |
| `data[].recurrence`                                            | object                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `data[].recurrence.cadence`                                    | `"daily"`                                                                                                                                      | Yes                | Alternative 1.                                                                                                                                                                            |
| `data[].recurrence.days_of_week`                               | array of integer                                                                                                                               | Yes                | Alternative 1\. Alternative 2.                                                                                                                                                            |
| `data[].recurrence.hour`                                       | integer                                                                                                                                        | Yes                |                                                                                                                                                                                           |
| `data[].recurrence.cadence`                                    | `"weekly"`                                                                                                                                     | Yes                | Alternative 2.                                                                                                                                                                            |
| `data[].recurrence.cadence`                                    | `"monthly"`                                                                                                                                    | Yes                | Alternative 3.                                                                                                                                                                            |
| `data[].recurrence.day_of_month`                               | integer                                                                                                                                        | Yes                | Alternative 3.                                                                                                                                                                            |
| `data[].timezone`                                              | string                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `data[].status`                                                | `"active"`, `"paused"`, `"deleted"`                                                                                                            | Yes                |                                                                                                                                                                                           |
| `data[].blocked_reason`                                        | `"timezone_changed"`, `"workspace_changed"`, `"authority_revoked"`, `"capacity"`, `"billing"`, `"not_entitled"`, `"selection_invalid"` or null | Yes                |                                                                                                                                                                                           |
| `data[].overlap_policy`                                        | `"skip"`                                                                                                                                       | Yes                |                                                                                                                                                                                           |
| `data[].misfire_policy`                                        | `"coalesce"`                                                                                                                                   | Yes                |                                                                                                                                                                                           |
| `data[].limits`                                                | object                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `data[].limits.max_records`                                    | integer or null                                                                                                                                | Yes                |                                                                                                                                                                                           |
| `data[].limits.max_paid_units`                                 | `0`                                                                                                                                            | Yes                |                                                                                                                                                                                           |
| `data[].next_occurrences`                                      | array of object                                                                                                                                | Yes                |                                                                                                                                                                                           |
| `data[].next_occurrences[].scheduled_for`                      | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                                           |
| `data[].next_occurrences[].local_time`                         | string                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `data[].client_reference`                                      | string or null                                                                                                                                 | Yes                |                                                                                                                                                                                           |
| `data[].created_at`                                            | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                                           |
| `data[].updated_at`                                            | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                                           |
| `pagination`                                                   | object                                                                                                                                         | Yes                |                                                                                                                                                                                           |
| `pagination.next_cursor`                                       | string or null                                                                                                                                 | Yes                |                                                                                                                                                                                           |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request, invalid_cursor.                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `412`       | One of: version_conflict.                                                                                                                         |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## Create scan schedule

```http
POST /v1/deduplication/schedules

```

Creates a schedule that scans an object for duplicates on a recurring basis. An object can have several schedules, each with its own name and selection; names are unique per object. Without a name, a schedule of every record is named after its object; a schedule with a selection needs a name. Send expected_timezone matching your organization's timezone. It starts paused unless you set status to active; to be active, the key also needs the dedupe:scan scope and access to the whole object, and an AI assessment needs its own scope and budget. Send selection to scan part of the object each time, as Start scan takes it. Its conditions are checked against your Attio attributes before every scan; if one no longer fits, the schedule pauses with blocked_reason selection_invalid and scans nothing until its conditions are changed or cleared. A schedule never merges records.

Requires `dedupe:schedules:write`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `create_dedupe_scan_schedule`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name                                                    | Send in                   | Required           | Type or allowed values                                                                                                                  | Notes                                                                                                                                                          |
| ------------------------------------------------------- | ------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`                                                  | JSON body                 | No                 | string                                                                                                                                  |                                                                                                                                                                |
| `provider_workspace_id`                                 | JSON body                 | Yes                | string                                                                                                                                  |                                                                                                                                                                |
| `object_type`                                           | JSON body                 | Yes                | `"companies"`, `"people"`                                                                                                               |                                                                                                                                                                |
| `action`                                                | JSON body                 | Yes                | object                                                                                                                                  |                                                                                                                                                                |
| `action.type`                                           | Within the JSON value     | Within this object | `"scan"`                                                                                                                                |                                                                                                                                                                |
| `action.ai_assessment`                                  | Within the JSON value     | Within this object | object                                                                                                                                  |                                                                                                                                                                |
| `action.ai_assessment.mode`                             | Within the JSON value     | Within this object | `"none"`                                                                                                                                | When action.ai_assessment.mode is `"none"`.                                                                                                                    |
| `action.ai_assessment.mode`                             | Within the JSON value     | Within this object | `"after_scan"`                                                                                                                          | When action.ai_assessment.mode is `"after_scan"`.                                                                                                              |
| `action.ai_assessment.budget`                           | Within the JSON value     | Within this object | object                                                                                                                                  | When action.ai_assessment.mode is `"after_scan"`.                                                                                                              |
| `action.ai_assessment.budget.max_assessment_units`      | Within the JSON value     | Within this object | integer                                                                                                                                 | When action.ai_assessment.mode is `"after_scan"`.                                                                                                              |
| `action.ai_assessment.assessment_expires_after_seconds` | Within the JSON value     | Within this object | integer                                                                                                                                 | When action.ai_assessment.mode is `"after_scan"`.                                                                                                              |
| `recurrence`                                            | JSON body                 | Yes                | object                                                                                                                                  |                                                                                                                                                                |
| `recurrence.cadence`                                    | Within the JSON value     | Within this object | `"daily"`                                                                                                                               | Alternative 1.                                                                                                                                                 |
| `recurrence.days_of_week`                               | Within the JSON value     | Within this object | array of integer                                                                                                                        | Alternative 1\. Alternative 2.                                                                                                                                 |
| `recurrence.hour`                                       | Within the JSON value     | Within this object | integer                                                                                                                                 |                                                                                                                                                                |
| `recurrence.cadence`                                    | Within the JSON value     | Within this object | `"weekly"`                                                                                                                              | Alternative 2.                                                                                                                                                 |
| `recurrence.cadence`                                    | Within the JSON value     | Within this object | `"monthly"`                                                                                                                             | Alternative 3.                                                                                                                                                 |
| `recurrence.day_of_month`                               | Within the JSON value     | Within this object | integer                                                                                                                                 | Alternative 3.                                                                                                                                                 |
| `expected_timezone`                                     | JSON body                 | Yes                | string                                                                                                                                  |                                                                                                                                                                |
| `status`                                                | JSON body                 | No                 | `"active"`, `"paused"`                                                                                                                  | Default: "paused".                                                                                                                                             |
| `overlap_policy`                                        | JSON body                 | No                 | `"skip"`                                                                                                                                | Default: "skip".                                                                                                                                               |
| `misfire_policy`                                        | JSON body                 | No                 | `"coalesce"`                                                                                                                            | Default: "coalesce".                                                                                                                                           |
| `limits`                                                | JSON body                 | No                 | object                                                                                                                                  |                                                                                                                                                                |
| `limits.max_records`                                    | Within the JSON value     | No                 | integer                                                                                                                                 |                                                                                                                                                                |
| `limits.max_paid_units`                                 | Within the JSON value     | No                 | `0`                                                                                                                                     |                                                                                                                                                                |
| `client_reference`                                      | JSON body                 | No                 | string                                                                                                                                  |                                                                                                                                                                |
| `selection`                                             | JSON body                 | No                 | object                                                                                                                                  |                                                                                                                                                                |
| `selection.mode`                                        | Within the JSON value     | Within this object | `"all"`                                                                                                                                 | When selection.mode is `"all"`.                                                                                                                                |
| `selection.mode`                                        | Within the JSON value     | Within this object | `"of"`, `"within"`                                                                                                                      | When selection.mode is `"of"`, `"within"`.                                                                                                                     |
| `selection.where`                                       | Within the JSON value     | Within this object | DedupeScanConditionGroup                                                                                                                | When selection.mode is `"of"`, `"within"`.                                                                                                                     |
| `selection.where.type`                                  | Within the JSON value     | Within this object | `"and"`, `"or"`                                                                                                                         | When selection.mode is `"of"`, `"within"`.                                                                                                                     |
| `selection.where.conditions`                            | Within the JSON value     | Within this object | array of object or DedupeScanConditionGroup                                                                                             | When selection.mode is `"of"`, `"within"`.                                                                                                                     |
| `selection.where.conditions[].type`                     | Within the JSON value     | Within this object | `"attribute"`                                                                                                                           | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"attribute"`.                                                          |
| `selection.where.conditions[].attribute`                | Within the JSON value     | Within this object | string                                                                                                                                  | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"attribute"`. When selection.where.conditions\[\].type is `"related"`. |
| `selection.where.conditions[].operator`                 | Within the JSON value     | Within this object | `"is"`, `"is_not"`, `"contains"`, `"not_contains"`, `"lt"`, `"lte"`, `"gt"`, `"gte"`, `"any_of"`, `"none_of"`, `"empty"`, `"not_empty"` | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"attribute"`.                                                          |
| `selection.where.conditions[].value`                    | Within the JSON value     | No                 | string or number or boolean or array of string                                                                                          | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"attribute"`.                                                          |
| `selection.where.conditions[].type`                     | Within the JSON value     | Within this object | `"related"`                                                                                                                             | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"related"`.                                                            |
| `selection.where.conditions[].object`                   | Within the JSON value     | Within this object | string                                                                                                                                  | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"related"`.                                                            |
| `selection.where.conditions[].where`                    | Within the JSON value     | Within this object | DedupeScanConditionGroup                                                                                                                | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"related"`.                                                            |
| `request_key`                                           | Header: `Idempotency-Key` | Yes                | string                                                                                                                                  |                                                                                                                                                                |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `201`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field                                               | Type                                                                                                                                           | Required in object | Notes                                                                                                                                                                         |
| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `data`                                                       | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.object`                                                | `"deduplication_schedule"`                                                                                                                     | Yes                |                                                                                                                                                                               |
| `data.id`                                                    | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.version`                                               | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.ownership`                                             | `"api"`, `"portal"`                                                                                                                            | Yes                |                                                                                                                                                                               |
| `data.name`                                                  | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.provider_workspace_id`                                 | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.object_type`                                           | `"companies"`, `"people"`                                                                                                                      | Yes                |                                                                                                                                                                               |
| `data.action`                                                | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.action.type`                                           | `"scan"`                                                                                                                                       | Yes                |                                                                                                                                                                               |
| `data.action.ai_assessment`                                  | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.action.ai_assessment.mode`                             | `"none"`                                                                                                                                       | Yes                | When data.action.ai_assessment.mode is `"none"`.                                                                                                                              |
| `data.action.ai_assessment.mode`                             | `"after_scan"`                                                                                                                                 | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.action.ai_assessment.budget`                           | object                                                                                                                                         | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.action.ai_assessment.budget.max_assessment_units`      | integer                                                                                                                                        | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.action.ai_assessment.assessment_expires_after_seconds` | integer                                                                                                                                        | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.selection`                                             | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.selection.mode`                                        | `"all"`                                                                                                                                        | Yes                | When data.selection.mode is `"all"`.                                                                                                                                          |
| `data.selection.mode`                                        | `"of"`, `"within"`                                                                                                                             | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where`                                       | \_\_schema0                                                                                                                                    | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where.type`                                  | `"and"`, `"or"`                                                                                                                                | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where.conditions`                            | array of object or \_\_schema0                                                                                                                 | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where.conditions[].type`                     | `"attribute"`                                                                                                                                  | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`.                                                               |
| `data.selection.where.conditions[].attribute`                | string                                                                                                                                         | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`. When data.selection.where.conditions\[\].type is `"related"`. |
| `data.selection.where.conditions[].operator`                 | `"is"`, `"is_not"`, `"contains"`, `"not_contains"`, `"lt"`, `"lte"`, `"gt"`, `"gte"`, `"any_of"`, `"none_of"`, `"empty"`, `"not_empty"`        | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`.                                                               |
| `data.selection.where.conditions[].value`                    | string or number or boolean or array of string                                                                                                 | No                 | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`.                                                               |
| `data.selection.where.conditions[].type`                     | `"related"`                                                                                                                                    | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"related"`.                                                                 |
| `data.selection.where.conditions[].object`                   | string                                                                                                                                         | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"related"`.                                                                 |
| `data.selection.where.conditions[].where`                    | \_\_schema0                                                                                                                                    | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"related"`.                                                                 |
| `data.recurrence`                                            | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.recurrence.cadence`                                    | `"daily"`                                                                                                                                      | Yes                | Alternative 1.                                                                                                                                                                |
| `data.recurrence.days_of_week`                               | array of integer                                                                                                                               | Yes                | Alternative 1\. Alternative 2.                                                                                                                                                |
| `data.recurrence.hour`                                       | integer                                                                                                                                        | Yes                |                                                                                                                                                                               |
| `data.recurrence.cadence`                                    | `"weekly"`                                                                                                                                     | Yes                | Alternative 2.                                                                                                                                                                |
| `data.recurrence.cadence`                                    | `"monthly"`                                                                                                                                    | Yes                | Alternative 3.                                                                                                                                                                |
| `data.recurrence.day_of_month`                               | integer                                                                                                                                        | Yes                | Alternative 3.                                                                                                                                                                |
| `data.timezone`                                              | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.status`                                                | `"active"`, `"paused"`, `"deleted"`                                                                                                            | Yes                |                                                                                                                                                                               |
| `data.blocked_reason`                                        | `"timezone_changed"`, `"workspace_changed"`, `"authority_revoked"`, `"capacity"`, `"billing"`, `"not_entitled"`, `"selection_invalid"` or null | Yes                |                                                                                                                                                                               |
| `data.overlap_policy`                                        | `"skip"`                                                                                                                                       | Yes                |                                                                                                                                                                               |
| `data.misfire_policy`                                        | `"coalesce"`                                                                                                                                   | Yes                |                                                                                                                                                                               |
| `data.limits`                                                | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.limits.max_records`                                    | integer or null                                                                                                                                | Yes                |                                                                                                                                                                               |
| `data.limits.max_paid_units`                                 | `0`                                                                                                                                            | Yes                |                                                                                                                                                                               |
| `data.next_occurrences`                                      | array of object                                                                                                                                | Yes                |                                                                                                                                                                               |
| `data.next_occurrences[].scheduled_for`                      | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                               |
| `data.next_occurrences[].local_time`                         | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.client_reference`                                      | string or null                                                                                                                                 | Yes                |                                                                                                                                                                               |
| `data.created_at`                                            | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                               |
| `data.updated_at`                                            | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                               |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request.                                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `412`       | One of: version_conflict.                                                                                                                         |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## Get scan schedule

```http
GET /v1/deduplication/schedules/{schedule_id}

```

Gets one scan schedule, with the version to send when you change or delete it.

Requires `dedupe:schedules:read`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `get_dedupe_scan_schedule`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name          | Send in | Required | Type or allowed values | Notes |
| ------------- | ------- | -------- | ---------------------- | ----- |
| `schedule_id` | path    | Yes      | string                 |       |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field                                               | Type                                                                                                                                           | Required in object | Notes                                                                                                                                                                         |
| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `data`                                                       | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.object`                                                | `"deduplication_schedule"`                                                                                                                     | Yes                |                                                                                                                                                                               |
| `data.id`                                                    | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.version`                                               | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.ownership`                                             | `"api"`, `"portal"`                                                                                                                            | Yes                |                                                                                                                                                                               |
| `data.name`                                                  | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.provider_workspace_id`                                 | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.object_type`                                           | `"companies"`, `"people"`                                                                                                                      | Yes                |                                                                                                                                                                               |
| `data.action`                                                | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.action.type`                                           | `"scan"`                                                                                                                                       | Yes                |                                                                                                                                                                               |
| `data.action.ai_assessment`                                  | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.action.ai_assessment.mode`                             | `"none"`                                                                                                                                       | Yes                | When data.action.ai_assessment.mode is `"none"`.                                                                                                                              |
| `data.action.ai_assessment.mode`                             | `"after_scan"`                                                                                                                                 | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.action.ai_assessment.budget`                           | object                                                                                                                                         | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.action.ai_assessment.budget.max_assessment_units`      | integer                                                                                                                                        | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.action.ai_assessment.assessment_expires_after_seconds` | integer                                                                                                                                        | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.selection`                                             | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.selection.mode`                                        | `"all"`                                                                                                                                        | Yes                | When data.selection.mode is `"all"`.                                                                                                                                          |
| `data.selection.mode`                                        | `"of"`, `"within"`                                                                                                                             | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where`                                       | \_\_schema0                                                                                                                                    | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where.type`                                  | `"and"`, `"or"`                                                                                                                                | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where.conditions`                            | array of object or \_\_schema0                                                                                                                 | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where.conditions[].type`                     | `"attribute"`                                                                                                                                  | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`.                                                               |
| `data.selection.where.conditions[].attribute`                | string                                                                                                                                         | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`. When data.selection.where.conditions\[\].type is `"related"`. |
| `data.selection.where.conditions[].operator`                 | `"is"`, `"is_not"`, `"contains"`, `"not_contains"`, `"lt"`, `"lte"`, `"gt"`, `"gte"`, `"any_of"`, `"none_of"`, `"empty"`, `"not_empty"`        | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`.                                                               |
| `data.selection.where.conditions[].value`                    | string or number or boolean or array of string                                                                                                 | No                 | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`.                                                               |
| `data.selection.where.conditions[].type`                     | `"related"`                                                                                                                                    | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"related"`.                                                                 |
| `data.selection.where.conditions[].object`                   | string                                                                                                                                         | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"related"`.                                                                 |
| `data.selection.where.conditions[].where`                    | \_\_schema0                                                                                                                                    | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"related"`.                                                                 |
| `data.recurrence`                                            | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.recurrence.cadence`                                    | `"daily"`                                                                                                                                      | Yes                | Alternative 1.                                                                                                                                                                |
| `data.recurrence.days_of_week`                               | array of integer                                                                                                                               | Yes                | Alternative 1\. Alternative 2.                                                                                                                                                |
| `data.recurrence.hour`                                       | integer                                                                                                                                        | Yes                |                                                                                                                                                                               |
| `data.recurrence.cadence`                                    | `"weekly"`                                                                                                                                     | Yes                | Alternative 2.                                                                                                                                                                |
| `data.recurrence.cadence`                                    | `"monthly"`                                                                                                                                    | Yes                | Alternative 3.                                                                                                                                                                |
| `data.recurrence.day_of_month`                               | integer                                                                                                                                        | Yes                | Alternative 3.                                                                                                                                                                |
| `data.timezone`                                              | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.status`                                                | `"active"`, `"paused"`, `"deleted"`                                                                                                            | Yes                |                                                                                                                                                                               |
| `data.blocked_reason`                                        | `"timezone_changed"`, `"workspace_changed"`, `"authority_revoked"`, `"capacity"`, `"billing"`, `"not_entitled"`, `"selection_invalid"` or null | Yes                |                                                                                                                                                                               |
| `data.overlap_policy`                                        | `"skip"`                                                                                                                                       | Yes                |                                                                                                                                                                               |
| `data.misfire_policy`                                        | `"coalesce"`                                                                                                                                   | Yes                |                                                                                                                                                                               |
| `data.limits`                                                | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.limits.max_records`                                    | integer or null                                                                                                                                | Yes                |                                                                                                                                                                               |
| `data.limits.max_paid_units`                                 | `0`                                                                                                                                            | Yes                |                                                                                                                                                                               |
| `data.next_occurrences`                                      | array of object                                                                                                                                | Yes                |                                                                                                                                                                               |
| `data.next_occurrences[].scheduled_for`                      | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                               |
| `data.next_occurrences[].local_time`                         | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.client_reference`                                      | string or null                                                                                                                                 | Yes                |                                                                                                                                                                               |
| `data.created_at`                                            | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                               |
| `data.updated_at`                                            | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                               |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter.                                                                                  |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `412`       | One of: version_conflict.                                                                                                                         |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## Update scan schedule

```http
PATCH /v1/deduplication/schedules/{schedule_id}

```

Changes, renames, pauses or resumes a scan schedule this key created. Send its version as expected_version and expected_timezone matching your organization's timezone. Scans missed while paused are skipped, not run on resume. A selection you send replaces the conditions whole, mode all clears them, and leaving it out keeps them. A schedule a person set up in Neon Deer can't be changed by an API key; through an AI app a person connected, and while that person may manage Duplicate Detection settings, its recurrence and whether it is paused can be changed, nothing else. What this replaces is not kept, so it can't be undone.

Requires `dedupe:schedules:write`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `update_dedupe_scan_schedule`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name                                             | Send in                   | Required           | Type or allowed values                                                                                                                  | Notes                                                                                                                                                          |
| ------------------------------------------------ | ------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `schedule_id`                                    | path                      | Yes                | string                                                                                                                                  |                                                                                                                                                                |
| `expected_version`                               | JSON body                 | Yes                | string                                                                                                                                  |                                                                                                                                                                |
| `expected_timezone`                              | JSON body                 | Yes                | string                                                                                                                                  |                                                                                                                                                                |
| `name`                                           | JSON body                 | No                 | string                                                                                                                                  |                                                                                                                                                                |
| `recurrence`                                     | JSON body                 | No                 | object                                                                                                                                  |                                                                                                                                                                |
| `recurrence.cadence`                             | Within the JSON value     | Within this object | `"daily"`                                                                                                                               | Alternative 1.                                                                                                                                                 |
| `recurrence.days_of_week`                        | Within the JSON value     | Within this object | array of integer                                                                                                                        | Alternative 1\. Alternative 2.                                                                                                                                 |
| `recurrence.hour`                                | Within the JSON value     | Within this object | integer                                                                                                                                 |                                                                                                                                                                |
| `recurrence.cadence`                             | Within the JSON value     | Within this object | `"weekly"`                                                                                                                              | Alternative 2.                                                                                                                                                 |
| `recurrence.cadence`                             | Within the JSON value     | Within this object | `"monthly"`                                                                                                                             | Alternative 3.                                                                                                                                                 |
| `recurrence.day_of_month`                        | Within the JSON value     | Within this object | integer                                                                                                                                 | Alternative 3.                                                                                                                                                 |
| `status`                                         | JSON body                 | No                 | `"active"`, `"paused"`                                                                                                                  |                                                                                                                                                                |
| `limits`                                         | JSON body                 | No                 | object                                                                                                                                  |                                                                                                                                                                |
| `limits.max_records`                             | Within the JSON value     | No                 | integer                                                                                                                                 |                                                                                                                                                                |
| `limits.max_paid_units`                          | Within the JSON value     | No                 | `0`                                                                                                                                     |                                                                                                                                                                |
| `ai_assessment`                                  | JSON body                 | No                 | object                                                                                                                                  |                                                                                                                                                                |
| `ai_assessment.mode`                             | Within the JSON value     | Within this object | `"none"`                                                                                                                                | When ai_assessment.mode is `"none"`.                                                                                                                           |
| `ai_assessment.mode`                             | Within the JSON value     | Within this object | `"after_scan"`                                                                                                                          | When ai_assessment.mode is `"after_scan"`.                                                                                                                     |
| `ai_assessment.budget`                           | Within the JSON value     | Within this object | object                                                                                                                                  | When ai_assessment.mode is `"after_scan"`.                                                                                                                     |
| `ai_assessment.budget.max_assessment_units`      | Within the JSON value     | Within this object | integer                                                                                                                                 | When ai_assessment.mode is `"after_scan"`.                                                                                                                     |
| `ai_assessment.assessment_expires_after_seconds` | Within the JSON value     | Within this object | integer                                                                                                                                 | When ai_assessment.mode is `"after_scan"`.                                                                                                                     |
| `client_reference`                               | JSON body                 | No                 | string or null                                                                                                                          |                                                                                                                                                                |
| `selection`                                      | JSON body                 | No                 | object                                                                                                                                  |                                                                                                                                                                |
| `selection.mode`                                 | Within the JSON value     | Within this object | `"all"`                                                                                                                                 | When selection.mode is `"all"`.                                                                                                                                |
| `selection.mode`                                 | Within the JSON value     | Within this object | `"of"`, `"within"`                                                                                                                      | When selection.mode is `"of"`, `"within"`.                                                                                                                     |
| `selection.where`                                | Within the JSON value     | Within this object | DedupeScanConditionGroup                                                                                                                | When selection.mode is `"of"`, `"within"`.                                                                                                                     |
| `selection.where.type`                           | Within the JSON value     | Within this object | `"and"`, `"or"`                                                                                                                         | When selection.mode is `"of"`, `"within"`.                                                                                                                     |
| `selection.where.conditions`                     | Within the JSON value     | Within this object | array of object or DedupeScanConditionGroup                                                                                             | When selection.mode is `"of"`, `"within"`.                                                                                                                     |
| `selection.where.conditions[].type`              | Within the JSON value     | Within this object | `"attribute"`                                                                                                                           | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"attribute"`.                                                          |
| `selection.where.conditions[].attribute`         | Within the JSON value     | Within this object | string                                                                                                                                  | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"attribute"`. When selection.where.conditions\[\].type is `"related"`. |
| `selection.where.conditions[].operator`          | Within the JSON value     | Within this object | `"is"`, `"is_not"`, `"contains"`, `"not_contains"`, `"lt"`, `"lte"`, `"gt"`, `"gte"`, `"any_of"`, `"none_of"`, `"empty"`, `"not_empty"` | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"attribute"`.                                                          |
| `selection.where.conditions[].value`             | Within the JSON value     | No                 | string or number or boolean or array of string                                                                                          | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"attribute"`.                                                          |
| `selection.where.conditions[].type`              | Within the JSON value     | Within this object | `"related"`                                                                                                                             | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"related"`.                                                            |
| `selection.where.conditions[].object`            | Within the JSON value     | Within this object | string                                                                                                                                  | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"related"`.                                                            |
| `selection.where.conditions[].where`             | Within the JSON value     | Within this object | DedupeScanConditionGroup                                                                                                                | When selection.mode is `"of"`, `"within"`. When selection.where.conditions\[\].type is `"related"`.                                                            |
| `request_key`                                    | Header: `Idempotency-Key` | Yes                | string                                                                                                                                  |                                                                                                                                                                |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field                                               | Type                                                                                                                                           | Required in object | Notes                                                                                                                                                                         |
| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `data`                                                       | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.object`                                                | `"deduplication_schedule"`                                                                                                                     | Yes                |                                                                                                                                                                               |
| `data.id`                                                    | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.version`                                               | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.ownership`                                             | `"api"`, `"portal"`                                                                                                                            | Yes                |                                                                                                                                                                               |
| `data.name`                                                  | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.provider_workspace_id`                                 | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.object_type`                                           | `"companies"`, `"people"`                                                                                                                      | Yes                |                                                                                                                                                                               |
| `data.action`                                                | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.action.type`                                           | `"scan"`                                                                                                                                       | Yes                |                                                                                                                                                                               |
| `data.action.ai_assessment`                                  | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.action.ai_assessment.mode`                             | `"none"`                                                                                                                                       | Yes                | When data.action.ai_assessment.mode is `"none"`.                                                                                                                              |
| `data.action.ai_assessment.mode`                             | `"after_scan"`                                                                                                                                 | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.action.ai_assessment.budget`                           | object                                                                                                                                         | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.action.ai_assessment.budget.max_assessment_units`      | integer                                                                                                                                        | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.action.ai_assessment.assessment_expires_after_seconds` | integer                                                                                                                                        | Yes                | When data.action.ai_assessment.mode is `"after_scan"`.                                                                                                                        |
| `data.selection`                                             | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.selection.mode`                                        | `"all"`                                                                                                                                        | Yes                | When data.selection.mode is `"all"`.                                                                                                                                          |
| `data.selection.mode`                                        | `"of"`, `"within"`                                                                                                                             | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where`                                       | \_\_schema0                                                                                                                                    | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where.type`                                  | `"and"`, `"or"`                                                                                                                                | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where.conditions`                            | array of object or \_\_schema0                                                                                                                 | Yes                | When data.selection.mode is `"of"`, `"within"`.                                                                                                                               |
| `data.selection.where.conditions[].type`                     | `"attribute"`                                                                                                                                  | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`.                                                               |
| `data.selection.where.conditions[].attribute`                | string                                                                                                                                         | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`. When data.selection.where.conditions\[\].type is `"related"`. |
| `data.selection.where.conditions[].operator`                 | `"is"`, `"is_not"`, `"contains"`, `"not_contains"`, `"lt"`, `"lte"`, `"gt"`, `"gte"`, `"any_of"`, `"none_of"`, `"empty"`, `"not_empty"`        | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`.                                                               |
| `data.selection.where.conditions[].value`                    | string or number or boolean or array of string                                                                                                 | No                 | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"attribute"`.                                                               |
| `data.selection.where.conditions[].type`                     | `"related"`                                                                                                                                    | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"related"`.                                                                 |
| `data.selection.where.conditions[].object`                   | string                                                                                                                                         | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"related"`.                                                                 |
| `data.selection.where.conditions[].where`                    | \_\_schema0                                                                                                                                    | Yes                | When data.selection.mode is `"of"`, `"within"`. When data.selection.where.conditions\[\].type is `"related"`.                                                                 |
| `data.recurrence`                                            | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.recurrence.cadence`                                    | `"daily"`                                                                                                                                      | Yes                | Alternative 1.                                                                                                                                                                |
| `data.recurrence.days_of_week`                               | array of integer                                                                                                                               | Yes                | Alternative 1\. Alternative 2.                                                                                                                                                |
| `data.recurrence.hour`                                       | integer                                                                                                                                        | Yes                |                                                                                                                                                                               |
| `data.recurrence.cadence`                                    | `"weekly"`                                                                                                                                     | Yes                | Alternative 2.                                                                                                                                                                |
| `data.recurrence.cadence`                                    | `"monthly"`                                                                                                                                    | Yes                | Alternative 3.                                                                                                                                                                |
| `data.recurrence.day_of_month`                               | integer                                                                                                                                        | Yes                | Alternative 3.                                                                                                                                                                |
| `data.timezone`                                              | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.status`                                                | `"active"`, `"paused"`, `"deleted"`                                                                                                            | Yes                |                                                                                                                                                                               |
| `data.blocked_reason`                                        | `"timezone_changed"`, `"workspace_changed"`, `"authority_revoked"`, `"capacity"`, `"billing"`, `"not_entitled"`, `"selection_invalid"` or null | Yes                |                                                                                                                                                                               |
| `data.overlap_policy`                                        | `"skip"`                                                                                                                                       | Yes                |                                                                                                                                                                               |
| `data.misfire_policy`                                        | `"coalesce"`                                                                                                                                   | Yes                |                                                                                                                                                                               |
| `data.limits`                                                | object                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.limits.max_records`                                    | integer or null                                                                                                                                | Yes                |                                                                                                                                                                               |
| `data.limits.max_paid_units`                                 | `0`                                                                                                                                            | Yes                |                                                                                                                                                                               |
| `data.next_occurrences`                                      | array of object                                                                                                                                | Yes                |                                                                                                                                                                               |
| `data.next_occurrences[].scheduled_for`                      | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                               |
| `data.next_occurrences[].local_time`                         | string                                                                                                                                         | Yes                |                                                                                                                                                                               |
| `data.client_reference`                                      | string or null                                                                                                                                 | Yes                |                                                                                                                                                                               |
| `data.created_at`                                            | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                               |
| `data.updated_at`                                            | string (date-time)                                                                                                                             | Yes                |                                                                                                                                                                               |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request.                                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `412`       | One of: version_conflict.                                                                                                                         |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## Delete scan schedule

```http
DELETE /v1/deduplication/schedules/{schedule_id}

```

Deletes a scan schedule, so no more scans start from it. Scans it already started keep running; stop them with Cancel scan. This can't be undone.

Requires `dedupe:schedules:write`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `delete_dedupe_scan_schedule`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name               | Send in | Required | Type or allowed values | Notes |
| ------------------ | ------- | -------- | ---------------------- | ----- |
| `schedule_id`      | path    | Yes      | string                 |       |
| `expected_version` | query   | Yes      | string                 |       |

### Response

| HTTP status | Result                                      |
| ----------- | ------------------------------------------- |
| `204`       | The resource was removed. No response body. |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request, invalid_cursor.                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `412`       | One of: version_conflict.                                                                                                                         |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

## List scan occurrences

```http
GET /v1/deduplication/schedules/{schedule_id}/occurrences

```

Lists each time a scan schedule was due and what happened, including skipped times, one page at a time.

Requires `dedupe:schedules:read`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `list_dedupe_scan_occurrences`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

### Parameters

| Name                   | Send in | Required | Type or allowed values                                                                              | Notes                                            |
| ---------------------- | ------- | -------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| `schedule_id`          | path    | Yes      | string                                                                                              |                                                  |
| `limit`                | query   | No       | integer                                                                                             |                                                  |
| `cursor`               | query   | No       | string                                                                                              |                                                  |
| `status`               | query   | No       | array of `"queued"`, `"running"`, `"completed"`, `"partial"`, `"failed"`, `"canceled"`, `"skipped"` | Repeat this query parameter for multiple values. |
| `scheduled_for_from`   | query   | No       | string (date-time)                                                                                  |                                                  |
| `scheduled_for_before` | query   | No       | string (date-time)                                                                                  |                                                  |
| `sort`                 | query   | No       | `"-scheduled_for"`, `"scheduled_for"`                                                               |                                                  |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field           | Type                                                                                                                      | Required in object | Notes |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------- | ------------------ | ----- |
| `data`                   | array of object                                                                                                           | Yes                |       |
| `data[].object`          | `"deduplication_schedule_occurrence"`                                                                                     | Yes                |       |
| `data[].id`              | string                                                                                                                    | Yes                |       |
| `data[].schedule_id`     | string                                                                                                                    | Yes                |       |
| `data[].scheduled_for`   | string (date-time)                                                                                                        | Yes                |       |
| `data[].resolved_at`     | string (date-time)                                                                                                        | Yes                |       |
| `data[].timezone`        | string                                                                                                                    | Yes                |       |
| `data[].status`          | `"queued"`, `"running"`, `"completed"`, `"partial"`, `"failed"`, `"canceled"`, `"skipped"`                                | Yes                |       |
| `data[].reason`          | `"overlap"`, `"coalesced"`, `"authority_revoked"`, `"consent_required"`, `"capacity"`, `"dependency_unavailable"` or null | Yes                |       |
| `data[].coalesced_count` | integer                                                                                                                   | Yes                |       |
| `data[].first_missed_at` | string (date-time) or null                                                                                                | Yes                |       |
| `data[].run_id`          | string or null                                                                                                            | Yes                |       |
| `data[].admitted_at`     | string (date-time) or null                                                                                                | Yes                |       |
| `data[].started_at`      | string (date-time) or null                                                                                                | Yes                |       |
| `data[].ended_at`        | string (date-time) or null                                                                                                | Yes                |       |
| `pagination`             | object                                                                                                                    | Yes                |       |
| `pagination.next_cursor` | string or null                                                                                                            | Yes                |       |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request, invalid_cursor.                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `412`       | One of: version_conflict.                                                                                                                         |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `423`       | One of: organization_reopening.                                                                                                                   |
| `428`       | One of: customer_agreement_required.                                                                                                              |
| `429`       | One of: rate_limited.                                                                                                                             |
| `503`       | One of: service_unavailable.                                                                                                                      |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

The [public OpenAPI document](https://neondeerdata.com/docs/api/meta/openapi/) lists generally available API families. Alpha operations may not appear in that document; their request and response fields are listed on this page. Use the [API Playground](https://neondeerdata.com/docs/api/testing/) to inspect a real response with your connection's access.
