---
title: "Evaluate campaign provider capabilities"
method: GET
path: "/api/campaigns/{id}/provider-capabilities"
tags: ["Campaigns"]
---

# Evaluate campaign provider capabilities

`GET /api/campaigns/{id}/provider-capabilities`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/campaigns/{id}/provider-capabilities`
- Auth: one of:
  - API key in cookie `luca.session_token`
  - API key in header `x-api-key`
  - HTTP bearer

Checks this campaign's steps against what the target channel can actually do. Run it before publishing, since publish runs the same check and will block you.

**API key scopes:** `campaigns:read`.

## Path parameters

- `id` string, uuid, required

## Headers

- `Luca-API-Version` '1'

## Response `200`

ok

- CampaignProviderCapabilitiesResponse
  - `ok` boolean, required
  - `mode` 'publish' | 'simulation' | 'runtime', required
  - `blockers` object[], required
    - `code` 'provider_capability_state_missing' | 'provider_target_channel_unknown' | 'provider_channel_disconnected' | 'provider_channel_operation_unsupported' | 'provider_account_health_red' | 'provider_account_health_yellow' | 'provider_readiness_stale' | 'provider_readiness_unknown' | 'provider_instagram_public_reply_strict_safety_missing' | 'provider_instagram_private_reply_requires_comment_context' | 'provider_instagram_rate_limit_backoff' | 'provider_whatsapp_freeform_window_closed' | 'provider_whatsapp_template_missing' | 'provider_whatsapp_consent_missing' | 'provider_whatsapp_phone_missing' | 'provider_whatsapp_interactive_unsupported' | 'provider_whatsapp_template_quality_warning' | 'provider_booking_connection_missing' | 'provider_booking_degraded' | 'provider_crm_connection_missing' | 'provider_crm_scope_missing' | 'provider_crm_conflict_requires_review' | 'provider_webhook_subscription_missing' | 'provider_webhook_delivery_failed', required
    - `severity` 'blocker' | 'warning', required
    - `message` string, required
    - `nodeId` string
    - `channel` 'telegram' | 'instagram' | 'messenger' | 'whatsapp'
    - `action` string
  - `warnings` object[], required
    - `code` 'provider_capability_state_missing' | 'provider_target_channel_unknown' | 'provider_channel_disconnected' | 'provider_channel_operation_unsupported' | 'provider_account_health_red' | 'provider_account_health_yellow' | 'provider_readiness_stale' | 'provider_readiness_unknown' | 'provider_instagram_public_reply_strict_safety_missing' | 'provider_instagram_private_reply_requires_comment_context' | 'provider_instagram_rate_limit_backoff' | 'provider_whatsapp_freeform_window_closed' | 'provider_whatsapp_template_missing' | 'provider_whatsapp_consent_missing' | 'provider_whatsapp_phone_missing' | 'provider_whatsapp_interactive_unsupported' | 'provider_whatsapp_template_quality_warning' | 'provider_booking_connection_missing' | 'provider_booking_degraded' | 'provider_crm_connection_missing' | 'provider_crm_scope_missing' | 'provider_crm_conflict_requires_review' | 'provider_webhook_subscription_missing' | 'provider_webhook_delivery_failed', required
    - `severity` 'blocker' | 'warning', required
    - `message` string, required
    - `nodeId` string
    - `channel` 'telegram' | 'instagram' | 'messenger' | 'whatsapp'
    - `action` string
  - `campaignId` string, uuid, required

## Other responses

- `400`: bad request
- `401`: unauthorized
- `404`: not found
- `409`: conflict
- `429`: rate limited
- `500`: internal error
- `503`: service unavailable

---

[API](https://skmtc.dev/setluca/apis/luca-api.md) · [All operations](https://skmtc.dev/setluca/apis/luca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/setluca/apis/luca-api/revisions/90a200e4100b?raw)
