---
title: "Update Source"
method: PATCH
path: "/api/v1/signals/sources/{source_id}"
tags: ["signals"]
---

# Update Source

`PATCH /api/v1/signals/sources/{source_id}`

## Path parameters

- `source_id` string, uuid, required

## Headers

- `authorization` string, nullable — Bearer <token>

## Request body

- SourceUpdate
  - `operational_mode` 'disabled' | 'shadow', nullable
  - `config` SignalSourceConfig
    - `capability_contracts` CapabilityContract[]
      - `id` string, required
      - `revision` integer, required
      - `approved_at` string, required
      - `valid_until` string, required
      - `renewed_at` string, nullable
      - `renewal_ref` string, nullable
      - `approval_ref` string, required
      - `kind` 'current_collection' | 'imported_event_history' | 'instrumented_events', required
      - `capability` string, required
      - `population` union, required
        - ExplicitPopulation
          - `kind` 'explicit', required
          - `user_ids` string[], required
        - ProfilePopulation
          - `kind` 'profile_collection', required
          - `connector_id` string, required
          - `stream` string, required
          - `scope` string, required
          - `approval_hash` string, required
        - InstallationPopulation
          - `kind` 'installations', required
      - `collection` CollectionSelector
        - `connector_id` string, required
        - `stream` string, required
        - `scope` string, required
        - `schema_version` string, required
        - `approval_hash` string, required
        - `empty_means_empty` boolean
        - `active_records` boolean
        - `active_field` string, nullable
        - `active_value` union
          - string
          - boolean
      - `identify_baseline` IdentifyBaseline
        - `active_field` string, required
        - `active_value` union, required
          - string
          - boolean
        - `observation_time` 'signal_occurred_at' | 'trait', required
        - `current_read_semantics` 'fresh_backend_record', required
        - `observed_at_field` string, nullable
        - `freshness_seconds` integer
        - `app_releases` string[], required
        - `sdk_versions` object, required
      - `account_birth` AccountBirth
        - `collection` CollectionReference, required
          - `connector_id` string, required
          - `stream` string, required
          - `scope` string, required
          - `schema_version` string, required
          - `approval_hash` string, required
        - `field` string, required
        - `value_type` 'datetime'
        - `review_ref` string, required
        - `identity_mapping_ref` string, required
        - `immutable_account_birth` true, required
        - `non_reused_canonical_id` true, required
        - `subjects_require_existing_account` true, required
        - `no_preaccount_or_anonymous_merge` true, required
        - `history_contract_id` string, nullable
      - `history_extent` ExhaustiveHistoryExtent
        - `kind` 'all_matching_history_before_cutoff', required
        - `dataset_ref` string, required
        - `export_spec_ref` string, required
        - `review_ref` string, required
        - `identity_mapping_ref` string, required
        - `timestamp_mapping_ref` string, required
        - `handoff_ref` string, required
        - `overlap_policy` 'shared_identity' | 'proven_disjoint', required
        - `no_lower_time_filter` true, required
        - `absent_member_means_zero` true, required
      - `fields` object
      - `events` string[]
      - `key_types` string[]
      - `property_types` object
      - `property_paths` PropertyPath[]
        - `key_path` string[], required
        - `value_type` 'string' | 'integer' | 'number' | 'boolean' | 'date' | 'datetime' | 'decimal_id', required
      - `property_domain` PropertyDomain[]
        - `path` string, nullable
        - `key_path` string[], nullable
        - `operator` 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'contains' | 'exists' | 'not_exists' | 'is_null' | 'is_not_null' | 'text_eq' | 'text_ne'
        - `value_type` 'string' | 'integer' | 'number' | 'boolean' | 'date' | 'datetime' | 'decimal_id', nullable
        - `value` union
          - string
          - integer
          - number
          - boolean
          - string
      - `app_releases` string[]
      - `sdk_versions` object
      - `services` string[]
      - `environment` string, nullable
      - `lifecycle_events` string[]
      - `freshness_seconds` integer
      - `settling_seconds` integer
      - `max_lifetime_days` integer
    - `capability_fleet` CapabilityFleet
      - `protocol` 1 | 2, required
      - `deployment_ref` string, required
      - `environment` string, required
      - `completed_at` string, required
      - `writers` string[], required
      - `old_writers_drained` true, required
    - `activation_optional_contract_ids` string[]
    - `email_field` string
    - `name_field` string
    - `operational_config` LocalOperationalConfig
      - `activity_filter` object, nullable
      - `habit_metrics` object, nullable
      - `cohort_retention` object, nullable
      - `calendar_timezone` string, nullable
    - `signup_field` string, nullable
    - `lifetime_spend_field` string, nullable
    - `lifecycle_events` object
    - `approved_traits` string[]
    - `device_timezone_context` boolean
    - `activity_events` string[], nullable
    - `recency_events` string[], nullable
    - `event_key_precedence` object
    - `max_future_skew_seconds` integer
    - `max_processing_attempts` integer
    - `retry_base_seconds` integer
    - `max_retry_seconds` integer
    - `shadow_readiness` SignalShadowReadinessPolicy
      - `max_sweep_duration_seconds` integer, required
      - `max_evidence_age_seconds` integer, required
      - `required_consumers` string[]
      - `habit` object
      - `lifetime` object
      - `outcome` object

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-24** `87d2a7c22d97` — 2 info
  - added the new optional request property `config/anyOf[subschema #1: SignalSourceConfig]/activation_optional_contract_ids`
  - added the new optional request property `config/anyOf[subschema #1: SignalSourceConfig]/shadow_readiness/anyOf[subschema #1: SignalShadowReadinessPolicy]/required_consumers`
- **2026-09-20** `299da1f7604a` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/minro/apis/minro-cs-platform/changes/api/v1/signals/sources/:source_id/patch.md)

---

[API](https://skmtc.dev/minro/apis/minro-cs-platform.md) · [All operations](https://skmtc.dev/minro/apis/minro-cs-platform/llms.txt) · [OpenAPI document](https://skmtc.dev/minro/apis/minro-cs-platform/revisions/e309d6571e7b?raw)
