Skip to main content
Channels

Update a channel

Update Channel binding, display name, enable state, or response options.

POST /api/v1/forward/channels/{channel_id} Uses merge-patch semantics. Omitted fields remain unchanged.

Headers

HeaderRequiredDescription
AuthorizationYesBearer <PAT or SAT>
Content-TypeYesapplication/json
Idempotency-KeyNoOptional idempotency key for unsafe requests.

Path parameters

ParameterTypeRequiredDescription
channel_idstringYesChannel ID.

Body parameters

ParameterTypeRequiredDescription
namestringNoChannel display name.
identity_idstringNoNew Forward Identity ID (fixed mode only).
template_idstringNoNew Forward Template ID (fixed mode only).
enabledbooleanNoManual enable or disable switch.
channel_config.response_optionsobjectNoReply visibility settings.

Example request

curl -s -X POST 'https://api.qoder.com/api/v1/forward/channels/channel_019eabc123' \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": false,
    "channel_config": {
      "response_options": {
        "include_tool_calls": true,
        "include_thinking": false
      }
    }
  }'

Example response

HTTP 200 OK
{
  "id": "channel_019eabc123",
  "type": "channel",
  "identity_id": "idn_019eabc123",
  "identity_resolution": {
    "mode": "fixed"
  },
  "template_id": "tmpl_support",
  "channel_type": "feishu",
  "name": "Support Feishu channel",
  "enabled": false,
  "binding_status": "bound",
  "channel_config": {
    "response_options": {
      "include_tool_calls": true,
      "include_thinking": false
    }
  },
  "created_at": "2026-06-18T10:00:00Z",
  "updated_at": "2026-06-18T10:30:00Z"
}

Response fields

Returns the updated Channel object.

Error codes

HTTPTypeTrigger
400invalid_request_errorRequest body is invalid.
401authentication_errorPAT or SAT is invalid or expired.
404not_found_errorChannel does not exist.
404not_found_errorNew Template does not exist.
404not_found_errorNew Identity does not exist.
409conflict_errorNew Identity is disabled.

Notes

  • id, type, and channel_type cannot be updated.
  • identity_resolution.mode cannot be changed after creation; to switch modes you must delete and recreate the Channel.
  • pairing mode does not allow updating identity_id or template_id; those are bound per message scope via the Pairing API.
  • binding_status is system-maintained.
  • enabled=true only opens the manual switch. It does not change binding_status.
  • In fixed mode, updating identity_id or template_id may stop reusing existing conversation bindings; new inbound messages use the new binding.