Skip to main content
GET
/
analytics
/
x
/
{profileId}
/
posts
X post analytics
curl --request GET \
  --url https://app.tryordinal.com/api/v1/analytics/x/{profileId}/posts \
  --header 'Authorization: Bearer <token>'
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440700",
    "url": "https://x.com/acme/status/1234567890123456789",
    "text": "Excited to share our latest product update! πŸš€\n\nAfter months of development, we're launching three new features that will transform how you work.\n\nThread πŸ§΅πŸ‘‡",
    "publishedAt": "2024-12-10T14:00:00.000Z",
    "likeCount": 342,
    "replyCount": 28,
    "retweetCount": 89,
    "quoteCount": 15,
    "bookmarkCount": 67,
    "impressionCount": 45200,
    "engagement": 0.01,
    "emv": 452,
    "ordinalPost": {
      "id": "11111111-1111-4111-a111-111111111111",
      "title": "My Ordinal Post",
      "labels": [
        {
          "name": "Marketing",
          "labelId": "22222222-2222-4222-a222-222222222222"
        }
      ],
      "campaign": {
        "id": "33333333-3333-4333-a333-333333333333",
        "name": "Q1 Campaign"
      }
    }
  },
  {
    "id": "550e8400-e29b-41d4-a716-446655440701",
    "url": "https://x.com/acme/status/1234567890123456790",
    "text": "5 lessons learned from scaling our startup from 0 to 10k users πŸ“ˆ\n\nA thread:",
    "publishedAt": "2024-12-05T09:30:00.000Z",
    "likeCount": 1256,
    "replyCount": 94,
    "retweetCount": 312,
    "quoteCount": 48,
    "bookmarkCount": 234,
    "impressionCount": 89300,
    "engagement": 0.019,
    "emv": 893,
    "ordinalPost": null
  }
]

Authorizations

Authorization
string
header
required

API key authentication. Generate an API key from your workspace settings.

Path Parameters

profileId
string<uuid>
required

X profile ID (UUID)

Query Parameters

startDate
string<date>

Start date for analytics (defaults to 30 days ago)

endDate
string<date>

End date for analytics (defaults to today)

Response

X post analytics

id
string<uuid>
required
url
string<uri>
required

Twitter post URL

text
string | null

Tweet text content

publishedAt
string<date-time> | null
likeCount
integer | null
replyCount
integer | null
retweetCount
integer | null
quoteCount
integer | null
bookmarkCount
integer | null
impressionCount
integer | null
engagement
number | null

Engagement rate (total engagements / impressions), typically between 0 and 1

emv
number | null

Earned Media Value calculated as (impressionCount / 1000) * CPM

ordinalPost
object

Linked Ordinal post when this external post was published from Ordinal, null otherwise