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

# Ordinal

Ordinal is a collaborative social media planning platform for creating, reviewing, scheduling, and analyzing content across connected channels.

- **Category:** social media marketing
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 13
- **Triggers:** 0
- **Slug:** `ORDINAL`
- **Version:** 00000000_00

## Tools

### Add Idea To Calendar

**Slug:** `ORDINAL_ADD_IDEA_TO_CALENDAR`

Convert an existing Ordinal idea into a regular calendar post on a chosen date. This does not schedule or externally publish the returned post.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `idea_id` | string | Yes | Idea UUID to convert into a calendar post. |
| `publish_date` | string | Yes | Calendar date in the workspace timezone (YYYY-MM-DD). |

#### 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 |

### Create Idea

**Slug:** `ORDINAL_CREATE_IDEA`

Create reusable Ordinal content for one or more supported social channels without adding it to the publishing calendar or publishing it externally.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `x` | object | No | X content configuration for the idea. |
| `notes` | string | No | Internal notes that are not published. |
| `title` | string | Yes | Idea title. |
| `tik_tok` | object | No | TikTok content configuration for the idea. |
| `label_ids` | array | No | Label IDs returned by LIST_LABELS to attach. |
| `linked_in` | object | No | LinkedIn content configuration for the idea. |
| `campaign_id` | string | No | Optional Ordinal campaign ID. |
| `you_tube_shorts` | object | No | YouTube Shorts content configuration for the idea. |

#### 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 |

### Create Post

**Slug:** `ORDINAL_CREATE_POST`

Create an Ordinal calendar post with content for one or more social channels. This only creates the post: it does not schedule or publish anything; call SCHEDULE_POST separately to schedule external publication.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `x` | object | No | X content and scheduling profile configuration. |
| `notes` | string | No | Internal notes that are not published. |
| `title` | string | Yes | Internal title for the calendar post. |
| `status` | string ("Tentative" | "ToDo" | "InProgress" | "ForReview" | "Blocked" | "Finalized" | "Scheduled" | "Posted") | Yes | Initial Ordinal workflow status; it does not publish the post. |
| `tik_tok` | object | No | TikTok content and scheduling profile configuration. |
| `instagram` | string | No | Instagram Feed, Reel, or Story configuration. |
| `label_ids` | array | No | Label IDs returned by LIST_LABELS to attach to the post. |
| `linked_in` | object | No | LinkedIn content and scheduling profile configuration. |
| `publish_at` | string | Yes | Intended publish time as an ISO 8601 datetime. This does not schedule publication. |
| `campaign_id` | string | No | Optional Ordinal campaign ID. |
| `you_tube_shorts` | object | No | YouTube Shorts content and scheduling profile configuration. |

#### 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 Post

**Slug:** `ORDINAL_GET_POST`

Return one Ordinal post by ID with its full channel content, attached assets, labels, profiles, status, and publish timing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | Ordinal post UUID, usually from LIST_POSTS or CREATE_POST. |

#### 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 Profile Analytics

**Slug:** `ORDINAL_GET_PROFILE_ANALYTICS`

Return follower history or post performance for one connected LinkedIn or X scheduling profile over a date range. Requires a matching profile ID from LIST_PROFILES with profile_type='scheduling'; analytics are unavailable until that social profile is connected.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `metric` | string ("followers" | "posts") | Yes | Analytics dataset: follower-count history or per-post performance. |
| `end_date` | string | No | Last analytics date (YYYY-MM-DD); defaults upstream to today. |
| `platform` | string ("linkedin" | "x") | Yes | Social platform of the connected scheduling profile. |
| `profile_id` | string | Yes | Connected scheduling profile UUID from LIST_PROFILES for the selected platform. Analytics are unavailable until that profile is connected. |
| `start_date` | string | No | First analytics date (YYYY-MM-DD); defaults upstream to 30 days ago. |

#### 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 Workspace

**Slug:** `ORDINAL_GET_WORKSPACE`

Return the workspace bound to the connected Ordinal API key, including its ID, name, slug, timezone, and creation time.

#### 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 Ideas

**Slug:** `ORDINAL_LIST_IDEAS`

List non-archived content ideas with filters and one cursor-controlled page of results.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum ideas to return in this page (1-100). |
| `channel` | string ("LinkedIn" | "Twitter" | "TikTok" | "YouTubeShorts") | No | Return only ideas containing this social channel. |
| `idea_ids` | array | No | Return only ideas with these Ordinal idea UUIDs. |
| `label_ids` | array | No | Return ideas having any of these label UUIDs. |
| `sort_order` | string ("asc" | "desc") | No | Order ideas by creation time ascending or descending. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call. |
| `x_profile_id` | string | No | Filter by an X scheduling profile UUID. |
| `created_at_max` | string | No | Include ideas created at or before this ISO 8601 time. |
| `created_at_min` | string | No | Include ideas created at or after this ISO 8601 time. |
| `tik_tok_profile_id` | string | No | Filter by a TikTok scheduling profile UUID. |
| `you_tube_profile_id` | string | No | Filter by a YouTube Shorts scheduling profile UUID. |
| `linked_in_profile_id` | string | No | Filter by a LinkedIn scheduling profile UUID. |

#### 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 Labels

**Slug:** `ORDINAL_LIST_LABELS`

Return workspace labels and their IDs for filtering or labeling posts and ideas.

#### 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 Posts

**Slug:** `ORDINAL_LIST_POSTS`

List non-archived workspace posts with filters and one cursor-controlled page of results.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum posts to return in this page (1-100). |
| `status` | string ("Tentative" | "ToDo" | "InProgress" | "ForReview" | "Blocked" | "Finalized" | "Scheduled" | "Posted") | No | Return only posts in this workflow status. |
| `channel` | string ("LinkedIn" | "Twitter" | "Instagram" | "TikTok" | "YouTubeShorts") | No | Return only posts targeting this social channel. |
| `sort_by` | string ("createdAt" | "publishAt") | No | Field used to order results. |
| `post_ids` | array | No | Return only posts with these UUIDs. |
| `label_ids` | array | No | Return posts having any of these label UUIDs. |
| `sort_order` | string ("asc" | "desc") | No | Ascending or descending result order. |
| `next_cursor` | string | No | Opaque continuation cursor returned by a previous call. |
| `x_profile_id` | string | No | Filter by an X scheduling profile ID from LIST_PROFILES. |
| `created_at_max` | string | No | Include posts created at or before this ISO 8601 time. |
| `created_at_min` | string | No | Include posts created at or after this ISO 8601 time. |
| `publish_date_max` | string | No | Latest scheduled publish date to include (YYYY-MM-DD). |
| `publish_date_min` | string | No | Earliest scheduled publish date to include (YYYY-MM-DD). |
| `tik_tok_profile_id` | string | No | Filter by a TikTok scheduling profile ID from LIST_PROFILES. |
| `you_tube_profile_id` | string | No | Filter by a YouTube Shorts scheduling profile ID from LIST_PROFILES. |
| `instagram_profile_id` | string | No | Filter by an Instagram scheduling profile ID from LIST_PROFILES. |
| `linked_in_profile_id` | string | No | Filter by a LinkedIn scheduling profile ID from LIST_PROFILES. |

#### 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 Profiles

**Slug:** `ORDINAL_LIST_PROFILES`

List connected social profiles by capability so their IDs can be used for scheduling, analytics, or auto-engagement workflows.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `profile_type` | string ("scheduling" | "engagement") | No | Capability to list. Scheduling profiles support publishing and analytics; engagement profiles are only for auto-engagements. |

#### 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 |

### Schedule Post

**Slug:** `ORDINAL_SCHEDULE_POST`

Schedule or reschedule an Ordinal post for external publication to its configured social channels. WARNING: this creates or changes a future external social publication. It can be cancelled with UNSCHEDULE_POST before it fires, but publication is irreversible once sent. The post must contain at least one channel with a connected scheduling profile.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | UUID of the post to schedule or reschedule. |
| `publish_at` | string | No | UTC publication time as an ISO 8601 datetime. This schedules external publication to every configured social channel. It is required for a new schedule; omit it only when rescheduling to retain the existing time. |

#### 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 |

### Unschedule Post

**Slug:** `ORDINAL_UNSCHEDULE_POST`

Cancel a pending scheduled publication and change the Ordinal post status to Finalized. This only cancels publication that has not occurred and cannot retract content that has already been published.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | UUID of the scheduled post whose pending publication should be cancelled. |

#### 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 |

### Update Post

**Slug:** `ORDINAL_UPDATE_POST`

Update selected fields or channel content on a non-archived Ordinal post. This does not schedule or publish the post.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `x` | object | No | Replacement X channel configuration. |
| `notes` | string | No | Replacement internal notes; explicitly pass null to clear them. |
| `title` | string | No | Replacement internal title. |
| `status` | string ("Tentative" | "ToDo" | "InProgress" | "ForReview" | "Blocked" | "Finalized" | "Scheduled" | "Posted") | No | Replacement workflow status; use SCHEDULE_POST or UNSCHEDULE_POST to change publication scheduling. |
| `post_id` | string | Yes | UUID of the non-archived post to update. |
| `tik_tok` | object | No | Replacement TikTok channel configuration. |
| `instagram` | string | No | Replacement Instagram Feed, Reel, or Story configuration. |
| `label_ids` | array | No | Complete replacement list of label UUIDs from LIST_LABELS. |
| `linked_in` | object | No | Replacement LinkedIn channel configuration. |
| `publish_at` | string | No | Replacement intended publish time as an ISO 8601 datetime. |
| `campaign_id` | string | No | Replacement campaign UUID; explicitly pass null to unlink the campaign. |
| `you_tube_shorts` | object | No | Replacement YouTube Shorts channel configuration. |

#### 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 |
