---
title: "Create UI skill"
method: POST
path: "/partner/app/{appId}/bizai/agent-ui-skills"
tags: ["Configure — UI Skills"]
---

# Create UI skill

`POST /partner/app/{appId}/bizai/agent-ui-skills`

## Request

- Base URL: `https://partner.gupshup.io`
- URL: `https://partner.gupshup.io/partner/app/{appId}/bizai/agent-ui-skills`
- Auth: API key in header `Authorization`

## Request body

- UiSkillRequest
  - `title` string, required: Lowercase letters, digits and hyphens; no leading or trailing hyphen.
  - `component_type` 'carousel_quick_reply' | 'carousel_url' | 'cta_url' | 'flow' | 'image' | 'interactive_list' | 'interactive_reply_buttons' | 'location' | 'location_request', required
  - `status` 'enabled' | 'disabled', required
  - `instruction` string, required
  - `flow_id` integer: Required when `component_type` is `flow`, rejected otherwise. The flow must be published before the skill can be enabled.

## Response `201`

UI skill created.

- UiSkill
  - `id` string: Meta resource id.
  - `title` string
  - `component_type` 'carousel_quick_reply' | 'carousel_url' | 'cta_url' | 'flow' | 'image' | 'interactive_list' | 'interactive_reply_buttons' | 'location' | 'location_request'
  - `status` 'enabled' | 'disabled'
  - `instruction` string
  - `flow_id` integer
  - `created_at` integer
  - `updated_at` integer

## Other responses

- `400`: Missing field or unknown enum value.
- `401`: Missing, invalid, or foreign-app token. Raised by Partner Portal before any forwarding.
- `429`: Per-app rate limit exceeded. Retry after the 60-second window.

---

[API](https://skmtc.dev/gupshup/apis/partner-portal-meta-business-agent-bizai-api.md) - [All operations](https://skmtc.dev/gupshup/apis/partner-portal-meta-business-agent-bizai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gupshup/apis/partner-portal-meta-business-agent-bizai-api/revisions/4c52185f2153?raw)
