Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Ordinal

Scalekit connector
Open markdown

The Ordinal connector lets your AI agent act in each user's Ordinal account. Each user connects their own Ordinal access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 56 tools.

Tools
56
What they doRead · write · destructive
29 · 21 · 629 read21 write6 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Ordinal connection

    In AgentKit > Connections, create an Ordinal connection. The name you give it is the connection_name your code passes. See Configure connections.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'ordinal'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Ordinal:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'ordinal_approvals_list',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Ordinal credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • ordinal_approvals_listList approval requests across the workspace, filtered by status, post, approver, requester or time.Read-only

    List Workspace Approvals

    List approval requests across the workspace, filtered by status, post, approver, requester or time. Returns an approvals array (id, status, isBlocking, message, dueDate, approvedAt, createdAt, updatedAt, user, requestedBy and the post) with a nextCursor for paging. Use this to see what is waiting for review. Use ordinal_post_approvals_list for a single post.

    Inputs

    approver_idsarray
    Only approvals assigned to these user UUIDs.
    created_at_maxstring
    Only approvals created at or before this date-time (ISO 8601).
    created_at_minstring
    Only approvals created at or after this date-time (ISO 8601).
    cursorstring
    Pagination cursor from the previous response's nextCursor, in the form timestampMs:approvalId. Keep the same sort_by and sort_order while paging.
    limitinteger
    Maximum number of approvals to return (1-100). Defaults to 20 when omitted.
    post_idsarray
    Only approvals on these post UUIDs.
    requested_by_idsarray
    Only approvals requested by these user UUIDs.
    sort_bystring
    Field to sort by: createdAt or updatedAt. Use updatedAt with sort_order asc for incremental sync. Defaults to createdAt.one of createdAtupdatedAt
    sort_orderstring
    Sort direction. Defaults to desc (newest first).one of ascdesc
    statusesarray
    Only approvals with these statuses: Requested and/or Approved.
    updated_at_maxstring
    Only approvals updated at or before this date-time (ISO 8601).
    updated_at_minstring
    Only approvals updated at or after this date-time (ISO 8601).
  • ordinal_cpm_getGet the CPM values the workspace uses to calculate earned media value, per platform.Read-only

    Get CPM Values

    Get the CPM values the workspace uses to calculate earned media value, per platform. Returns linkedIn, x, instagram, facebook and threads CPM numbers. Use ordinal_cpm_update to change them.

    Inputs

    This tool takes no inputs.

  • ordinal_engagement_profiles_listList the engagement-only social profiles in the workspace, which are used for team likes, comments and reposts but not for scheduling.Read-only

    List Engagement Profiles

    List the engagement-only social profiles in the workspace, which are used for team likes, comments and reposts but not for scheduling. Returns each profile's id, name, detail, channel, profileImageUrl, isReintegrationRequired, createdAt and createdBy. Use this to find profile ids for ordinal_post_engagements_create. Use ordinal_scheduling_profiles_list for profiles that can publish posts.

    Inputs

    This tool takes no inputs.

  • ordinal_idea_getGet one idea from the backlog by id, including its per-channel content.Read-only

    Get Idea

    Get one idea from the backlog by id, including its per-channel content. Returns an idea object with id, url, title, channels, status (always Idea), createdAt, updatedAt and the linkedIn, x, tikTok and youTubeShorts content that applies. Use ordinal_ideas_list to find ideas.

    Inputs

    idea_idstringrequired
    ID of the idea (UUID).
  • ordinal_ideas_listList ideas from the workspace backlog, filtered by channel, profile, label or creation date.Read-only

    List Ideas

    List ideas from the workspace backlog, filtered by channel, profile, label or creation date. Returns an ideas array (id, url, title, channels, status, createdAt, updatedAt and per-channel content) plus nextCursor and hasMore. Use this to browse the backlog. Use ordinal_idea_get for one idea and ordinal_posts_list for scheduled posts.

    Inputs

    channelstring
    Only return ideas on this channel: LinkedIn, Twitter, TikTok or YouTubeShorts.one of LinkedInTwitterTikTokYouTubeShorts
    created_at_maxstring
    Only return ideas created on or before this date-time (ISO 8601).
    created_at_minstring
    Only return ideas created on or after this date-time (ISO 8601).
    cursorstring
    Pagination cursor: the id of the last idea from the previous page (use nextCursor from the previous response).
    idsstring
    Fetch specific ideas by id. A single UUID or several UUIDs separated by commas.
    label_idsstring
    Only return ideas that have any of these labels. A single UUID or several UUIDs separated by commas.
    limitinteger
    Maximum number of ideas to return (1-100). Defaults to 20 when omitted.
    linkedin_profile_idstring
    Only return ideas for this LinkedIn profile UUID.
    sort_orderstring
    Sort direction. Defaults to desc (newest first).one of ascdesc
    tiktok_profile_idstring
    Only return ideas for this TikTok profile UUID.
    x_profile_idstring
    Only return ideas for this X (Twitter) profile UUID.
    youtube_profile_idstring
    Only return ideas for this YouTube channel profile UUID.
  • ordinal_labels_listList all labels defined in the workspace.Read-only

    List Labels

    List all labels defined in the workspace. Returns a labels array with each label's id, name, color, backgroundColor, createdAt and updatedAt. Use this to find label ids for the label_ids input of post and idea tools.

    Inputs

    This tool takes no inputs.

  • ordinal_linkedin_followers_analytics_listGet daily follower counts for a LinkedIn profile over a date range.Read-only

    List LinkedIn Follower Growth

    Get daily follower counts for a LinkedIn profile over a date range. Returns an array of data points with followerCount and recordedAt. Use ordinal_linkedin_posts_analytics_list for post performance.

    Inputs

    profile_idstringrequired
    ID of the LinkedIn profile (UUID).
    end_datestring
    End of the reporting window as YYYY-MM-DD. Defaults to today.
    start_datestring
    Start of the reporting window as YYYY-MM-DD. Defaults to 30 days ago.