---
canonical_url: "https://docs.composio.dev/toolkits/markup_ai"
markdown_url: "https://docs.composio.dev/toolkits/markup_ai.md"
product: "platform"
version: null
last_updated: null
---

# Markup AI

Markup AI provides content agents, brand terminology, personas, brand voice profiles, and style configuration for evaluating and improving content.

- **Category:** artificial intelligence
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 10
- **Triggers:** 0
- **Slug:** `MARKUP_AI`
- **Version:** 00000000_00

## Tools

### Get Agent

**Slug:** `MARKUP_AI_GET_AGENT`

Get one agent's metadata and complete runtime input and output JSON Schemas before executing it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `agent_id` | string | Yes | Stable agent ID returned by LIST_AGENTS. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Analysis Profile

**Slug:** `MARKUP_AI_GET_ANALYSIS_PROFILE`

Get one persona, brand voice profile, style target, or style guide by ID, including detailed configuration needed to understand its effect on analysis. Style details can contain a large hierarchy of goals, groups, and guidelines.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `profile_id` | string | Yes | Profile ID returned by LIST_ANALYSIS_PROFILES for the same profile_type. |
| `profile_type` | string ("persona" | "brand_voice" | "style_target" | "style_guide") | Yes | Kind of profile identified by profile_id. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Workflow

**Slug:** `MARKUP_AI_GET_WORKFLOW`

Get the current status and result of an asynchronous agent workflow by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workflow_id` | string | Yes | Workflow ID returned by RUN_AGENT or LIST_WORKFLOWS. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Agent Categories

**Slug:** `MARKUP_AI_LIST_AGENT_CATEGORIES`

Return all agent categories available to the connected organization for discovery and agent-list filtering.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Agents

**Slug:** `MARKUP_AI_LIST_AGENTS`

Discover Markup AI agents available to the connected organization, optionally filtered by category. Returns compact summaries for choosing an agent; use GET_AGENT for its full runtime schemas.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `category` | string | No | Category name substring used to filter available agents case-insensitively; discover names with LIST_AGENT_CATEGORIES. |
| `page_size` | integer | No | Maximum agents to return in this page (1-100). |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Analysis Profiles

**Slug:** `MARKUP_AI_LIST_ANALYSIS_PROFILES`

List selectable persona, brand voice, style guide, style target, or content profile resources used to configure agent runs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `profile_type` | string ("persona" | "brand_voice" | "style_target" | "style_guide" | "content_profile") | Yes | Kind of analysis configuration to list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Terminology Resources

**Slug:** `MARKUP_AI_LIST_TERMINOLOGY_RESOURCES`

List terminology term sets or domains with filters and cursor-controlled pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `search` | string | No | Name or text filter. Sent as search_term for term sets and search for domains. |
| `page_size` | integer | No | Maximum resources to return in this page. |
| `domain_ids` | array | No | For term_set only, return term sets linked to any of these domains. |
| `has_context` | boolean | No | For term_set only, filter by whether a term set has non-empty conditional context. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |
| `resource_type` | string ("term_set" | "domain") | Yes | Terminology resource to list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Workflows

**Slug:** `MARKUP_AI_LIST_WORKFLOWS`

List one cursor-controlled page of agent execution workflows, optionally filtering that page by status, stable agent name, or creation time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum workflows to return in this page. |
| `status` | string ("running" | "completed" | "failed" | "cancelled" | "timed_out" | "terminated") | No | Workflow status to return. |
| `agent_name` | string | No | Only return workflows whose agent_id field equals this stable agent name, such as 'sentence_clarity'. Repeat agent_name with next_cursor to keep filtering later pages; status, created_after, and limit are carried by the cursor automatically. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call; omit for the first page. |
| `created_after` | string | No | Only return workflows created after this ISO 8601 timestamp. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Run Agent

**Slug:** `MARKUP_AI_RUN_AGENT`

Run one selected Markup AI agent against document text, synchronously or asynchronously. Discover the agent and inspect its schema first; execution may consume organization quota. The persona agent requires persona_id at runtime even when its advertised input schema marks only text as required.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | Source URL associated with the document. |
| `goal` | string | No | Document goal supplied to agents that support goal-based recommendations. |
| `text` | string | Yes | Non-empty document text to analyze (maximum 100,000 characters). |
| `wait` | boolean | No | If true, wait for completion; if false, return a workflow ID immediately for GET_WORKFLOW. |
| `agent_id` | string | Yes | Agent ID returned by LIST_AGENTS. |
| `domain_ids` | array | No | Terminology domain IDs to apply. |
| `persona_id` | string | No | Persona profile ID required when running the persona agent. Discover available IDs with LIST_ANALYSIS_PROFILES using profile_type='persona'. |
| `webhook_url` | string | No | Webhook URL for asynchronous result delivery. |
| `document_ref` | string | No | Caller-provided document identifier for tracking scans. |
| `document_name` | string | No | Document name or title. |
| `style_guide_id` | string | No | Style guide ID to apply; use this canonical field rather than the provider's deprecated target_id alias. |
| `voice_profile_id` | string | No | Brand voice profile ID used by the brand_voice agent. |
| `content_profile_id` | string | No | Content profile ID for style checking. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Terminology

**Slug:** `MARKUP_AI_SEARCH_TERMINOLOGY`

Find organization terminology rules relevant to supplied text, optionally limited to selected domains.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | Yes | Text to scan for relevant preferred or prohibited terminology. |
| `domain_ids` | array | No | Optional terminology domain IDs used to limit matches. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
