{
  "service": "ordinal",
  "displayName": "Ordinal",
  "categories": [
    "Social",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "ord_...",
      "description": "Ordinal workspace API key used with the Authorization Bearer header. Create one from the API Keys page in workspace settings: https://app.tryordinal.com/settings/integrations/api",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.tryordinal.com",
  "actions": [
    {
      "id": "ordinal.get_idea",
      "service": "ordinal",
      "name": "get_idea",
      "description": "Get a specific Ordinal idea by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Ordinal idea ID.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input for getting an Ordinal idea."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "idea": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A raw Ordinal resource object."
          }
        },
        "additionalProperties": false,
        "description": "Ordinal idea response."
      }
    },
    {
      "id": "ordinal.get_post",
      "service": "ordinal",
      "name": "get_post",
      "description": "Get a specific Ordinal post by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Ordinal post ID.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input for getting an Ordinal post."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "post": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A raw Ordinal resource object."
          }
        },
        "additionalProperties": false,
        "description": "Ordinal post response."
      }
    },
    {
      "id": "ordinal.get_workspace",
      "service": "ordinal",
      "name": "get_workspace",
      "description": "Get details about the current Ordinal workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required for this Ordinal action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "workspace": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A raw Ordinal resource object."
          }
        },
        "additionalProperties": false,
        "description": "The current Ordinal workspace."
      }
    },
    {
      "id": "ordinal.list_engagement_profiles",
      "service": "ordinal",
      "name": "list_engagement_profiles",
      "description": "List Ordinal engagement-only profiles connected to the workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required for this Ordinal action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "profiles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw Ordinal resource object."
            },
            "description": "Engagement profiles returned by Ordinal."
          }
        },
        "additionalProperties": false,
        "description": "Ordinal engagement profiles response."
      }
    },
    {
      "id": "ordinal.list_ideas",
      "service": "ordinal",
      "name": "list_ideas",
      "description": "List Ordinal ideas with pagination and optional filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of items to return, from 1 to 100."
          },
          "cursor": {
            "type": "string",
            "description": "The pagination cursor from the previous Ordinal page.",
            "format": "uuid"
          },
          "ids": {
            "anyOf": [
              {
                "type": "string",
                "description": "A single Ordinal UUID.",
                "format": "uuid"
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "An Ordinal UUID.",
                  "format": "uuid"
                },
                "description": "Multiple Ordinal UUIDs.",
                "minItems": 1
              }
            ],
            "description": "One or more Ordinal UUIDs."
          },
          "channel": {
            "type": "string",
            "enum": [
              "LinkedIn",
              "Twitter",
              "TikTok",
              "YouTubeShorts"
            ],
            "description": "The social channel to filter ideas by."
          },
          "linkedInProfileId": {
            "type": "string",
            "description": "Filter ideas by LinkedIn profile ID.",
            "format": "uuid"
          },
          "xProfileId": {
            "type": "string",
            "description": "Filter ideas by X/Twitter profile ID.",
            "format": "uuid"
          },
          "tikTokProfileId": {
            "type": "string",
            "description": "Filter ideas by TikTok profile ID.",
            "format": "uuid"
          },
          "youTubeProfileId": {
            "type": "string",
            "description": "Filter ideas by YouTube channel profile ID.",
            "format": "uuid"
          },
          "labelIds": {
            "anyOf": [
              {
                "type": "string",
                "description": "A single Ordinal UUID.",
                "format": "uuid"
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "An Ordinal UUID.",
                  "format": "uuid"
                },
                "description": "Multiple Ordinal UUIDs.",
                "minItems": 1
              }
            ],
            "description": "One or more Ordinal UUIDs."
          },
          "createdAtMin": {
            "type": "string",
            "description": "Only include ideas created on or after this datetime.",
            "format": "date-time"
          },
          "createdAtMax": {
            "type": "string",
            "description": "Only include ideas created on or before this datetime.",
            "format": "date-time"
          },
          "sortBy": {
            "type": "string",
            "enum": [
              "createdAt"
            ],
            "description": "The idea field to sort by."
          },
          "sortOrder": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The sort order for Ordinal results."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Ordinal ideas."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ideas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw Ordinal resource object."
            },
            "description": "Ideas returned by Ordinal."
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "The cursor for the next page when available."
              },
              {
                "type": "null"
              }
            ]
          },
          "hasMore": {
            "type": "boolean",
            "description": "Whether Ordinal reported more ideas."
          }
        },
        "additionalProperties": false,
        "description": "A paginated Ordinal ideas response."
      }
    },
    {
      "id": "ordinal.list_labels",
      "service": "ordinal",
      "name": "list_labels",
      "description": "List labels in the current Ordinal workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required for this Ordinal action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "labels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw Ordinal resource object."
            },
            "description": "Labels returned by Ordinal."
          }
        },
        "additionalProperties": false,
        "description": "Ordinal labels response."
      }
    },
    {
      "id": "ordinal.list_posts",
      "service": "ordinal",
      "name": "list_posts",
      "description": "List Ordinal posts with pagination and optional filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of items to return, from 1 to 100."
          },
          "cursor": {
            "type": "string",
            "description": "The pagination cursor from the previous Ordinal page.",
            "format": "uuid"
          },
          "ids": {
            "anyOf": [
              {
                "type": "string",
                "description": "A single Ordinal UUID.",
                "format": "uuid"
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "An Ordinal UUID.",
                  "format": "uuid"
                },
                "description": "Multiple Ordinal UUIDs.",
                "minItems": 1
              }
            ],
            "description": "One or more Ordinal UUIDs."
          },
          "status": {
            "type": "string",
            "enum": [
              "Tentative",
              "ToDo",
              "InProgress",
              "ForReview",
              "Blocked",
              "Finalized",
              "Scheduled",
              "Posted"
            ],
            "description": "The Ordinal post status."
          },
          "channel": {
            "type": "string",
            "enum": [
              "LinkedIn",
              "Twitter",
              "Instagram",
              "TikTok",
              "YouTubeShorts"
            ],
            "description": "The social channel to filter posts by."
          },
          "linkedInProfileId": {
            "type": "string",
            "description": "Filter posts by LinkedIn profile ID.",
            "format": "uuid"
          },
          "xProfileId": {
            "type": "string",
            "description": "Filter posts by X/Twitter profile ID.",
            "format": "uuid"
          },
          "instagramProfileId": {
            "type": "string",
            "description": "Filter posts by Instagram profile ID.",
            "format": "uuid"
          },
          "tikTokProfileId": {
            "type": "string",
            "description": "Filter posts by TikTok profile ID.",
            "format": "uuid"
          },
          "youTubeProfileId": {
            "type": "string",
            "description": "Filter posts by YouTube channel profile ID.",
            "format": "uuid"
          },
          "labelIds": {
            "anyOf": [
              {
                "type": "string",
                "description": "A single Ordinal UUID.",
                "format": "uuid"
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "An Ordinal UUID.",
                  "format": "uuid"
                },
                "description": "Multiple Ordinal UUIDs.",
                "minItems": 1
              }
            ],
            "description": "One or more Ordinal UUIDs."
          },
          "publishDateMin": {
            "type": "string",
            "description": "Only include posts scheduled on or after this datetime.",
            "format": "date-time"
          },
          "publishDateMax": {
            "type": "string",
            "description": "Only include posts scheduled on or before this datetime.",
            "format": "date-time"
          },
          "createdAtMin": {
            "type": "string",
            "description": "Only include posts created on or after this datetime.",
            "format": "date-time"
          },
          "createdAtMax": {
            "type": "string",
            "description": "Only include posts created on or before this datetime.",
            "format": "date-time"
          },
          "sortBy": {
            "type": "string",
            "enum": [
              "createdAt",
              "publishAt"
            ],
            "description": "The post field to sort by."
          },
          "sortOrder": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The sort order for Ordinal results."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Ordinal posts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw Ordinal resource object."
            },
            "description": "Posts returned by Ordinal."
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "The cursor for the next page when available."
              },
              {
                "type": "null"
              }
            ]
          },
          "hasMore": {
            "type": "boolean",
            "description": "Whether Ordinal reported more posts."
          }
        },
        "additionalProperties": false,
        "description": "A paginated Ordinal posts response."
      }
    },
    {
      "id": "ordinal.list_scheduling_profiles",
      "service": "ordinal",
      "name": "list_scheduling_profiles",
      "description": "List Ordinal scheduling profiles connected to the workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required for this Ordinal action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "profiles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw Ordinal resource object."
            },
            "description": "Scheduling profiles returned by Ordinal."
          }
        },
        "additionalProperties": false,
        "description": "Ordinal scheduling profiles response."
      }
    },
    {
      "id": "ordinal.list_users",
      "service": "ordinal",
      "name": "list_users",
      "description": "List users in the current Ordinal workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required for this Ordinal action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A raw Ordinal resource object."
            },
            "description": "Users returned by Ordinal."
          }
        },
        "additionalProperties": false,
        "description": "Ordinal workspace users response."
      }
    }
  ]
}
