SpideyDataAPI Reference
API navigation YouTube
YouTubeMonitors

Update a YouTube Channel Monitor

PATCH/v1/youtube/monitors/{monitor_id}

Updates monitor target, strategy, enabled state, or polling settings.

On this page

Request example

Replace placeholders with your values. Use your Team API key for authenticated requests.

API base https://kieapi.com
curl -X PATCH "https://kieapi.com/v1/youtube/monitors/{monitor_id}" \
  -H "Authorization: Bearer $SPIDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Authentication

BearerAuth

Parameters

monitor_id path ยท string required

Request body required

application/json

YoutubeMonitorPatchRequest

channel_id string | null
channel_url string | null (uri)
rss_url string | null (uri)
strategy YoutubeMonitorStrategy or null
enabled boolean | null
check_interval_seconds number | null
slow_check_interval_seconds number | null
max_items integer | null
quiet_first_check boolean | null
quiet_start boolean | null
track_reschedule boolean | null

Responses

200 Updated YouTube monitor.

application/json

YoutubeMonitorResponse

monitor YoutubeMonitor required
400 Request validation failed.

application/json

PublicErrorResponse

error PublicError required
401 Missing or invalid API key.

application/json

PublicErrorResponse

error PublicError required
403 Authenticated principal cannot access this resource.

application/json

PublicErrorResponse

error PublicError required
404 YouTube monitor was not found or is not visible to this workspace.

application/json

PublicErrorResponse

error PublicError required
429 Temporary rate limit.

application/json

PublicErrorResponse

error PublicError required
503 Required runtime service is unavailable.

application/json

PublicErrorResponse

error PublicError required

Schemas

Field definitions and complete validation rules for this API. Follow a type link to its definition.

YoutubeMonitorPatchRequest

object

channel_id string | null
channel_url string | null (uri)
rss_url string | null (uri)
strategy YoutubeMonitorStrategy or null
enabled boolean | null
check_interval_seconds number | null
slow_check_interval_seconds number | null
max_items integer | null
quiet_first_check boolean | null
quiet_start boolean | null
track_reschedule boolean | null
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "channel_id": {
      "type": [
        "string",
        "null"
      ],
      "minLength": 1,
      "maxLength": 255
    },
    "channel_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "rss_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "strategy": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/YoutubeMonitorStrategy"
        },
        {
          "type": "null"
        }
      ]
    },
    "enabled": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "check_interval_seconds": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 60,
      "maximum": 86400
    },
    "slow_check_interval_seconds": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 300,
      "maximum": 604800
    },
    "max_items": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "maximum": 10000
    },
    "quiet_first_check": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "quiet_start": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "track_reschedule": {
      "type": [
        "boolean",
        "null"
      ]
    }
  }
}

YoutubeMonitorStrategy

string

Complete schema
{
  "type": "string",
  "enum": [
    "rss",
    "yt_dlp_polling",
    "auto"
  ]
}

YoutubeMonitorResponse

object

monitor YoutubeMonitor required
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "monitor"
  ],
  "properties": {
    "monitor": {
      "$ref": "#/components/schemas/YoutubeMonitor"
    }
  }
}

YoutubeMonitor

object

id string required
platform string required

Allowed: "youtube"

status string required

Allowed: "active", "paused"

strategy YoutubeMonitorStrategy required
target YoutubeMonitorTarget required
settings YoutubeMonitorSettings required
checks array of YoutubeMonitorCheckState required
created_at string | null (date-time)
updated_at string | null (date-time)
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "platform",
    "status",
    "strategy",
    "target",
    "settings",
    "checks"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "platform": {
      "type": "string",
      "enum": [
        "youtube"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "paused"
      ]
    },
    "strategy": {
      "$ref": "#/components/schemas/YoutubeMonitorStrategy"
    },
    "target": {
      "$ref": "#/components/schemas/YoutubeMonitorTarget"
    },
    "settings": {
      "$ref": "#/components/schemas/YoutubeMonitorSettings"
    },
    "checks": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/YoutubeMonitorCheckState"
      }
    },
    "created_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "updated_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    }
  }
}

YoutubeMonitorTarget

object

channel_id string | null
channel_url string | null
rss_url string | null
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "channel_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "channel_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "rss_url": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}

YoutubeMonitorSettings

object

check_interval_seconds number required
slow_check_interval_seconds number required
max_items integer required
quiet_first_check boolean required
quiet_start boolean required
track_reschedule boolean required
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "check_interval_seconds",
    "slow_check_interval_seconds",
    "max_items",
    "quiet_first_check",
    "quiet_start",
    "track_reschedule"
  ],
  "properties": {
    "check_interval_seconds": {
      "type": "number"
    },
    "slow_check_interval_seconds": {
      "type": "number"
    },
    "max_items": {
      "type": "integer"
    },
    "quiet_first_check": {
      "type": "boolean"
    },
    "quiet_start": {
      "type": "boolean"
    },
    "track_reschedule": {
      "type": "boolean"
    }
  }
}

YoutubeMonitorCheckState

object

status string required

Allowed: "never_run", "completed", "failed", "not_modified"

next_check_at string | null (date-time)
last_checked_at string | null (date-time)
last_error_code string | null
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "strategy",
    "status"
  ],
  "properties": {
    "strategy": {
      "$ref": "#/components/schemas/YoutubeMonitorBackendStrategy"
    },
    "status": {
      "type": "string",
      "enum": [
        "never_run",
        "completed",
        "failed",
        "not_modified"
      ]
    },
    "next_check_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "last_checked_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "last_error_code": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}

YoutubeMonitorBackendStrategy

string

Complete schema
{
  "type": "string",
  "enum": [
    "rss",
    "yt_dlp_polling"
  ]
}

PublicErrorResponse

object

error PublicError required
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "$ref": "#/components/schemas/PublicError"
    }
  }
}

PublicError

object

code string required

Allowed: "seoapi_price_pending", "seoapi_unavailable", "seoapi_busy", "seoapi_not_found", "seoapi_rate_limited", "seoapi_budget_exceeded", "seoapi_idempotency_conflict", "seoapi_insufficient_credits", "seoapi_admission_failed", "seoapi_execution_interrupted", "seoapi_delivery_unknown", "seoapi_response_invalid", "seoapi_model_unsupported", "seoapi_model_options_invalid", "seoapi_provider_rejected", "seo_price_pending", "seo_provider_blocked", "seo_local_rate_limited", "seo_fallback_unavailable", "seo_fallback_budget_exceeded", "seo_pagination_expired", "seo_delivery_uncertain", "seo_auth_required", "seo_initialization_required", "seo_permission_denied", "seo_verification_required", "seo_rate_limited", "seo_upstream_unavailable", "seo_transport_failed", "seo_invalid_response", "seo_rpc_error", "seo_period_unavailable", "seo_account_unavailable", "seo_session_busy", "seo_configuration_required", "validation_error", "invalid_request", "unsupported_feature", "authentication_required", "permission_denied", "not_found", "run_not_found", "crawl_not_found", "artifact_not_found", "session_not_found", "profile_not_found", "profile_in_use", "profile_not_ready", "profile_not_cloneable", "profile_limit_reached", "profile_proxy_conflict", "proxy_not_found", "proxy_unavailable", "invalid_session_options", "invalid_query_options", "invalid_cursor", "idempotency_key_required", "browser_session_limit_reached", "browser_capacity_exhausted", "browser_start_timeout", "browser_runtime_unavailable", "session_not_active", "controller_already_connected", "browser_relay_unavailable", "precondition_required", "precondition_failed", "timeout", "run_not_ready", "artifact_expired", "quota_exceeded", "insufficient_credits", "billing_reconciliation_required", "rate_limited", "fetch_failed", "render_failed", "maps_rate_limited", "maps_challenge", "maps_schema_changed", "maps_invalid_response", "maps_transport_failed", "maps_page_budget_exhausted", "google_trends_rate_limited", "google_trends_challenge", "google_trends_explore_failed", "google_trends_widget_missing", "google_trends_related_failed", "google_trends_invalid_response", "google_trends_transport_failed", "google_trends_collection_failed", "google_ads_account_context_missing", "google_ads_batch_failed", "google_ads_browser_context_missing", "google_ads_browser_unavailable", "google_ads_collection_failed", "google_ads_page_failed", "google_ads_protocol_drift", "google_ads_rate_limited", "google_ads_timeout", "twitter_provider_unavailable", "twitter_provider_rejected", "twitter_submission_unknown", "wechat_transport_failed", "wechat_rate_limited", "wechat_invalid_response", "wechat_redirect_rejected", "wechat_verification_required", "wechat_parse_failed", "blackhatworld_search_failed", "blackhatworld_no_results", "reddit_read_failed", "idempotency_conflict", "idempotency_in_progress", "service_unavailable", "internal_error"

message string required
type string required

Allowed: "auth", "validation", "quota", "rate_limit", "not_found", "execution", "conflict", "internal"

retryable boolean required
request_id string | null
details object
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "code",
    "message",
    "type",
    "retryable"
  ],
  "properties": {
    "code": {
      "type": "string",
      "enum": [
        "seoapi_price_pending",
        "seoapi_unavailable",
        "seoapi_busy",
        "seoapi_not_found",
        "seoapi_rate_limited",
        "seoapi_budget_exceeded",
        "seoapi_idempotency_conflict",
        "seoapi_insufficient_credits",
        "seoapi_admission_failed",
        "seoapi_execution_interrupted",
        "seoapi_delivery_unknown",
        "seoapi_response_invalid",
        "seoapi_model_unsupported",
        "seoapi_model_options_invalid",
        "seoapi_provider_rejected",
        "seo_price_pending",
        "seo_provider_blocked",
        "seo_local_rate_limited",
        "seo_fallback_unavailable",
        "seo_fallback_budget_exceeded",
        "seo_pagination_expired",
        "seo_delivery_uncertain",
        "seo_auth_required",
        "seo_initialization_required",
        "seo_permission_denied",
        "seo_verification_required",
        "seo_rate_limited",
        "seo_upstream_unavailable",
        "seo_transport_failed",
        "seo_invalid_response",
        "seo_rpc_error",
        "seo_period_unavailable",
        "seo_account_unavailable",
        "seo_session_busy",
        "seo_configuration_required",
        "validation_error",
        "invalid_request",
        "unsupported_feature",
        "authentication_required",
        "permission_denied",
        "not_found",
        "run_not_found",
        "crawl_not_found",
        "artifact_not_found",
        "session_not_found",
        "profile_not_found",
        "profile_in_use",
        "profile_not_ready",
        "profile_not_cloneable",
        "profile_limit_reached",
        "profile_proxy_conflict",
        "proxy_not_found",
        "proxy_unavailable",
        "invalid_session_options",
        "invalid_query_options",
        "invalid_cursor",
        "idempotency_key_required",
        "browser_session_limit_reached",
        "browser_capacity_exhausted",
        "browser_start_timeout",
        "browser_runtime_unavailable",
        "session_not_active",
        "controller_already_connected",
        "browser_relay_unavailable",
        "precondition_required",
        "precondition_failed",
        "timeout",
        "run_not_ready",
        "artifact_expired",
        "quota_exceeded",
        "insufficient_credits",
        "billing_reconciliation_required",
        "rate_limited",
        "fetch_failed",
        "render_failed",
        "maps_rate_limited",
        "maps_challenge",
        "maps_schema_changed",
        "maps_invalid_response",
        "maps_transport_failed",
        "maps_page_budget_exhausted",
        "google_trends_rate_limited",
        "google_trends_challenge",
        "google_trends_explore_failed",
        "google_trends_widget_missing",
        "google_trends_related_failed",
        "google_trends_invalid_response",
        "google_trends_transport_failed",
        "google_trends_collection_failed",
        "google_ads_account_context_missing",
        "google_ads_batch_failed",
        "google_ads_browser_context_missing",
        "google_ads_browser_unavailable",
        "google_ads_collection_failed",
        "google_ads_page_failed",
        "google_ads_protocol_drift",
        "google_ads_rate_limited",
        "google_ads_timeout",
        "twitter_provider_unavailable",
        "twitter_provider_rejected",
        "twitter_submission_unknown",
        "wechat_transport_failed",
        "wechat_rate_limited",
        "wechat_invalid_response",
        "wechat_redirect_rejected",
        "wechat_verification_required",
        "wechat_parse_failed",
        "blackhatworld_search_failed",
        "blackhatworld_no_results",
        "reddit_read_failed",
        "idempotency_conflict",
        "idempotency_in_progress",
        "service_unavailable",
        "internal_error"
      ]
    },
    "message": {
      "type": "string"
    },
    "type": {
      "type": "string",
      "enum": [
        "auth",
        "validation",
        "quota",
        "rate_limit",
        "not_found",
        "execution",
        "conflict",
        "internal"
      ]
    },
    "retryable": {
      "type": "boolean"
    },
    "request_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "details": {
      "type": "object",
      "additionalProperties": true
    }
  }
}