---
title: "Create a skill"
method: POST
path: "/v1/accounts/{accountId}/business-agent/skills"
tags: ["Business Agent"]
---

# Create a skill

`POST /v1/accounts/{accountId}/business-agent/skills`

Behavioral instructions in the brand voice. Reads back `pending_review` until Meta content review passes it. Not idempotent.

## Path parameters

- `accountId` string, required

## Request body

- BusinessAgentSkillInput
  - `title` string — Lowercase letters, digits and hyphens, e.g. greeting-skill.
  - `description` string — When the agent should apply the skill.
  - `skill` string, required — The instructions themselves. Avoid two skills that both claim priority for the same situation.

## Response `201`

Skill created

- BusinessAgentSkill
  - `title` string — Lowercase letters, digits and hyphens, e.g. greeting-skill.
  - `description` string — When the agent should apply the skill.
  - `skill` string, required — The instructions themselves. Avoid two skills that both claim priority for the same situation.
  - `id` string, required
  - `channel` string
  - `created_at` integer — Unix seconds.
  - `status` 'active' | 'pending_review' | 'blocked' — pending_review right after a write; blocked means Meta content review rejected it and the agent never applies it.

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — Inbox add-on required, the WhatsApp token lacks the Business Agent permissions (code reconnect_required), or the merchant has not accepted the Meta Business Agent terms in WhatsApp Manager (code business_agent_terms_not_accepted).
- `404` — Account not found, or no agent exists on the number yet or the referenced item does not exist (code business_agent_not_found).

## Changes

- **2026-09-16** `3e6ddf2a99ea` — 3 info
  - added the optional property `details/budgetScope` to the response with the `400` status
  - added the optional property `details/budgetScope` to the response with the `403` status
  - added the optional property `details/budgetScope` to the response with the `404` status
- **2026-09-15** `0dba7d004d75` — 6 info
  - added the optional property `details/quotaExhausted` to the response with the `400` status
  - added the optional property `details/quotaExhausted` to the response with the `403` status
  - added the optional property `details/quotaExhausted` to the response with the `404` status
  - added the optional property `details/quotaScope` to the response with the `400` status
  - …2 more
- **2026-09-09** `41eff0cffb2d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/accounts/:accountId/business-agent/skills/post.md)

---

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