Returns engagement insights for 1 profile. They are engagement rate, averages per post and posting rate, from its counts and its last 20 posts. Reposts and the pinned post stay out of the averages. Each report costs 1 credit, whatever it reads.
Request
- Base URL: https://xquik.com
- URL: https://xquik.com/api/v1/x/users/{id}/insights
- Auth: one of:
- API key in header x-api-key
- HTTP bearer
- none
Path parameters
User ID, username with or without @, or URL-encoded profile URL, such as x.com/nasa or x.com/i/user/11348282. A number is a user ID. Writes look up a username's ID before sending. Anything else gets 400 invalid_user_id.
Query parameters
Fields to keep in each row, comma-separated. Use dots for nested fields, such as author.username. A list keeps the field in each item. Case & underscores do not matter. A row that lacks a field leaves it out. Cursors, counts & diagnostics always stay. An unknown name answers 400 unknown_field with the valid names, before any read. The price stays the same. SDK row types then hold only the named fields. A longer URL fails at the edge before Xquik reads it.
Fields to drop from each row, comma-separated. It takes the same names as fields. With fields, it drops from the kept fields. A longer URL fails at the edge before Xquik reads it.
Response
Profile insights
Example response
{
"insights": {
"userId": "11348282",
"userName": "NASA",
"followers": 92376187,
"following": 115,
"posts": 74336,
"accountAgeDays": 6858,
"postsPrivate": false,
"sample": {
"posts": 10,
"oldestAt": "2026-09-23T13:15:28.000Z",
"newestAt": "2026-09-28T22:12:05.000Z"
},
"averages": {
"likes": 3684.2,
"replies": 142.7,
"reposts": 459.8,
"quotes": 45,
"bookmarks": 209.7,
"views": 785247.8,
"engagements": 4331.7
},
"engagementRate": 0.0047,
"engagementPerView": 0.5516,
"postsPerDay": 1.6814,
"topPostId": "2102761519985332442"
},
"message": "This account's posts are private, so the report has its counts only."
}Changes
- warning
added the new
topup_in_progressenum value to the/////response property for the response status - warning
added the new
topup_in_progressenum value to the//////response property for the response status - warning
added the new
topup_in_progressenum value to the/response property for the response status - warning
added the new
topup_in_progressenum value to the/response property for the response status - warning
added the new
topup_in_progressenum value to the/response property for the response status - warning
added the new
topup_in_progressenum value to the/response property for the response status - warning
added the new
topup_in_progressenum value to the/response property for the response status - warning
added the new
topup_in_progressenum value to the/response property for the response status - warning
added the new
topup_in_progressenum value to the/response property for the response status - warning
added the new
topup_in_progressenum value to the//response property for the response status - warning
added the new
topup_in_progressenum value to the//response property for the response status - warning
added the new
topup_in_progressenum value to the//response property for the response status - warning
added the new
topup_in_progressenum value to the//response property for the response status - warning
added the new
topup_in_progressenum value to the//response property for the response status - warning
added the new
topup_in_progressenum value to the//response property for the response status - warning
added the new
topup_in_progressenum value to the//response property for the response status - warning
added the new
topup_in_progressenum value to the//////response property for the response status - warning
added the new
topup_in_progressenum value to the///////response property for the response status - warning
added the new
topup_in_progressenum value to the//////response property for the response status - warning
added the new
topup_in_progressenum value to the///////response property for the response status
- warning