post
https://partner.gupshup.io/partner/app//bizai/agent-ui-skills
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
Request parameters
| Parameter | Type | Required | In | Description |
|---|---|---|---|---|
Authorization | string | Yes | Header | Partner app token, sent raw. Bearer <token> is also accepted. |
Content-Type | string | Yes | Header | application/json |
appId | string (uuid) | Yes | Path | Partner Portal app id. Stands in for Meta's entity_id. |
title | string | Yes | Body | Lowercase letters, digits and hyphens; no leading or trailing hyphen. Pattern ^[a-z0-9]+(-[a-z0-9]+)*$. |
component_type | string | Yes | Body | One of: carousel_quick_reply, carousel_url, cta_url, flow, image, interactive_list, interactive_reply_buttons, location, location_request. |
status | string | Yes | Body | One of: enabled, disabled. |
instruction | string | Yes | Body | When and how the agent should use the component. |
flow_id | integer | No | Body | Required when component_type is flow, rejected otherwise. The flow must be published before the skill can be enabled. |
Example request
curl --location --request POST 'https://partner.gupshup.io/partner/app/<appId>/bizai/agent-ui-skills' \
--header 'Authorization: <PARTNER_APP_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"title": "quest-product-link",
"component_type": "cta_url",
"status": "enabled",
"instruction": "When user asks about Meta Quest, send CTA button"
}'Response parameters — 201
201| Parameter | Type | Description |
|---|---|---|
id | string | Resource id. Meta pfbid… id. |
title | string | Name of the skill. |
component_type | string | One of: carousel_quick_reply, carousel_url, cta_url, flow, image, interactive_list, interactive_reply_buttons, location, location_request. |
status | string | One of: enabled, disabled. |
instruction | string | When and how the agent should use the component. |
flow_id | integer | WhatsApp Flow id. Only for component_type flow. |
created_at | integer | Creation time, Unix seconds. |
updated_at | integer | Last update time, Unix seconds. |
Example response — 201 Created
201 Created{
"id": "pfbid0UiSkillExampleId",
"title": "quest-product-link",
"component_type": "cta_url",
"status": "enabled",
"instruction": "When user asks about Meta Quest, send CTA button",
"created_at": 1789630852,
"updated_at": 1789630852
}Error responses
400 Bad Request — The app is not live, or WASS does not consider it live.
{
"message": "App is not live.",
"status": "error"
}400 Bad Request — The app has no phone number attached. Checked before the live check.
{
"message": "Phone id not found for the given App",
"status": "error"
}401 Unauthorized — Authorization is missing or invalid, belongs to another app, or appId is unknown or not a UUID.
{
"status": "error",
"message": "Unauthorised access to the resource. Please review request parameters and headers and retry"
}405 Method Not Allowed — Any method other than GET, POST, PUT or DELETE, e.g. PATCH.
{
"status": "error",
"message": "Request method 'PATCH' is not supported"
}429 Too Many Requests — More than 30 /bizai/** requests in 60 seconds for this app. The 31st is rejected.
{
"status": "error",
"message": "Too Many Requests"
} 429Per-app rate limit exceeded. Retry after the 60-second window.
