Data Endpoint (CORE)
The Data Explorer allows you to pull data from TRAC & CORE. This section introduces how our queries function and some additional sample queries, along with any need to know details.
Sample Calls
Intro
Below are a handful of sample calls to help you understand how the CORE Data Explorer functions
Each sample call will contain the query and variables in one tab, followed by the Response in the other.
We do this to keep formatting consistent with how most API testing environments would surface the blocks as groups.
For all CORE queries, POST to this GraphQL endpoint URL:
https://data.pulsarplatform.com/graphql/core
Getting a List of Brands and Profiles within Brands
query BrandsPlusProfiles($page: Int, $limit: Int) {
brands(page: $page, limit: $limit) {
total
nextPage
brands {
id
name
profiles {
id
source
name
plugged
}
}
}
}
{
"page": 1
}
{
"data": {
"brands": {
"total": 106,
"nextPage": 2,
"brands": [
{
"id": 1,
"name": "Heavyweights",
"profiles": [
{
"id": 1,
"source": "FACEBOOK_PAGE",
"name": "UNILAD",
"plugged": false
},
{
"id": 4,
"source": "TWITTER",
"name": "DEV Community 👩💻👨💻",
"plugged": false
},
{
"id": 7,
"source": "FACEBOOK_PAGE",
"name": "LittleThings",
"plugged": false
},
{
"id": 8,
"source": "TWITTER",
"name": "Kim Kardashian West",
"plugged": false
},
{
"id": 9,
"source": "FACEBOOK_PAGE",
"name": "Kim Kardashian West",
"plugged": false
},
{
"id": 12,
"source": "TWITTER",
"name": "Khloé",
"plugged": false
},
{
"id": 13,
"source": "FACEBOOK_PAGE",
"name": "Khloé Kardashian",
"plugged": false
},
{
"id": 15,
"source": "TWITTER",
"name": "Kylie Jenner",
"plugged": false
},
{
"id": 16,
"source": "FACEBOOK_PAGE",
"name": "Kylie Jenner",
"plugged": false
},
{ {
"id": 173,
"source": "FACEBOOK_PAGE",
"name": "Elon Musk",
"plugged": false
}
]
},
{
"id": 96,
"name": "Heavyweights MK2",
"profiles": [
{
"id": 176,
"source": "TWITTER",
"name": "𓆟",
"plugged": false
},
{
"id": 200,
"source": "INSTAGRAM",
"name": "lego",
"plugged": false
},
{
"id": 209,
"source": "INSTAGRAM",
"name": "dominos",
"plugged": false
},
{
"id": 210,
"source": "INSTAGRAM",
"name": "kfc",
"plugged": false
}
]
},
{
"id": 98,
"name": "memi vari",
"profiles": [
{
"id": 329,
"source": "FACEBOOK_PAGE",
"name": "La Vecchina di Sammoro",
"plugged": false
},
{
"id": 335,
"source": "TWITTER",
"name": "Matteo Renzi",
"plugged": false
},
{
"id": 336,
"source": "INSTAGRAM",
"name": "cheerful_nihilism",
"plugged": false
}
]
}
},
"variables": {
"page": 1
}
}
Getting Average Engagement Data across multiple Profiles
query Engagements($filter: Filter!, $metric: ContentMetric) {
engagements(filter : $filter, metric : $metric)
}
{
"filter": {
"dateFrom": "2020-10-11T00:00:00Z",
"dateTo": "2020-11-11T23:59:59Z",
"brandId": brandID,
"profiles": [
profID1,
profID2,
profID3
]
},
"metric" : "AVG"
}
{
"data": {
"engagements": 66.63230943205379
},
"variables": {
"filter": {
"dateFrom": "2020-10-11T00:00:00Z",
"dateTo": "2020-11-11T23:59:59Z",
"brandId": brandID,
"profiles": [
profID1,
profID2,
profID3
]
},
"metric": "AVG"
}
}
Getting Total Comment Count over Time
query comments($filter: Filter!, $metric: ContentMetric!) {
comments(filter: $filter, metric: $metric)
}
{
"filter": {
"dateFrom": "2020-04-01T00:00:00Z",
"dateTo": "2022-03-31T23:59:59Z",
"brandId": brandID,
"profiles": [
profID1
]
},
"metric" : "SUM"
}
{
"data": {
"comments": 8466091.0
},
"extensions": {
"variables": {
"filter": {
"dateFrom": "2020-04-01T00:00:00Z",
"dateTo": "2022-03-31T23:59:59Z",
"brandId": brandID,
"profiles": [
profileID1
]
},
"metric": "SUM"
}
}
}
Getting the Total Count of Impressions across multiple profiles
query Impressions($filter: Filter!, $metric: ContentMetric) {
impressions(filter : $filter, metric : $metric)
}
{ "filter": {
"dateFrom": "2023-01-01T00:00:00Z",
"dateTo": "2023-01-26T23:59:59Z",
"brandId": brandId,
"profiles": [
profileID1,
profileID2,
profileID3
]
},
"metric": "SUM"
}
{
"data": {
"impressions": 1648.0
},
"variables": {
"filter": {
"dateFrom": "2020-10-11T00:00:00Z",
"dateTo": "2020-11-11T23:59:59Z",
"brandId": brandID,
"profiles": [
profID1,
profID2,
profID3
]
},
"metric": "SUM"
}
}
Getting Metrics of Posts from a Single Profile
query PostMetrics($filter: Filter!, $options: Option) {
results(filter: $filter, options: $options) {
results {
commentsCount
content
engagement
impressions
likesCount
}
nextCursor #you'll need this to retrieve the next 50 results
}
}
{
"filter": {
"dateFrom": "2022-05-11T00:00:00Z",
"dateTo": "2022-05-12T23:59:59Z",
"brandId": brandID,
"profiles": [
profileID
]
}
}
{
"data": {
"results": {
"results": [
{
"commentsCount": 38,
"content": "Is er meer aan de hand?\n➡ Lees meer via https://tinyurl.com/ya2d73o3",
"engagement": 219,
"impressions": 18117,
"likesCount": 172
},
{
"commentsCount": 34,
"content": "Even groot als vier miljoen zonnen, maar tot vandaag was er nog nooit een foto van.",
"engagement": 88,
"impressions": 12595,
"likesCount": 52
},
{
"commentsCount": 540,
"content": "Proficiat, Jérémie! 🥳\nBelgië heeft een ticket voor de finale van het Songfestival op zak, en dat is helemaal te danken aan de 21-jarige Jérémie Makiese.\nLees hier welke andere 9 landen ook hun plekje veroverden. \n➡️ https://bit.ly/3PhJpph",
"engagement": 7049,
"impressions": 194845,
"likesCount": 6381
},
{
"commentsCount": 64,
"content": "Hij lag meermaals onder vuur, maar pas na een dramatische peiling aanvaardde Beke dat hij ontslag moest nemen.",
"engagement": 148,
"impressions": 13675,
"likesCount": 82
},
{
"commentsCount": 198,
"content": "Het blijft moeilijk om vanaf een bepaalde leeftijd werk te vinden.",
"engagement": 262,
"impressions": 17535,
"likesCount": 58
},
{
"commentsCount": 22,
"content": "Geluidsfragmenten laten horen hoe de passagier hulp krijgt om het toestel zelf veilig te landen.",
"engagement": 104,
"impressions": 14239,
"likesCount": 77
},
{
"commentsCount": 168,
"content": "\"De manier waarop de man in het Minnie Mouse-pak om geld vroeg, was niet wettig.\"",
"engagement": 321,
"impressions": 20857,
"likesCount": 142
},
{
"commentsCount": 2,
"content": "Bekijk de situatie in jouw gemeente hier. ⤵️",
"engagement": 9,
"impressions": 10721,
"likesCount": 6
},
{
"commentsCount": 250,
"content": "\"De school had contact met alle ouders, en de leerlingen blijven voorlopig thuis.\"",
"engagement": 527,
"impressions": 24565,
"likesCount": 266
},
{
"commentsCount": 275,
"content": "De reacties op het ontslag van Wouter Beke sijpelen binnen.",
"engagement": 577,
"impressions": 22301,
"likesCount": 298
},
{
"commentsCount": 8,
"content": "Om door te gaan naar de finale, moet Jérémie Makiese beter doen dan... een stripper, cowboy en ‘de beste Poolse inzending ooit’.",
"engagement": 34,
"impressions": 11623,
"likesCount": 24
},
{
"commentsCount": 1668,
"content": "En voor je 't weet drinkt de communicant de wijnbeker ad fundum uit. 🤭",
"engagement": 6177,
"impressions": 360401,
"likesCount": 3980
},
{
"commentsCount": 182,
"content": "Net nu je wil weten hoeveel je moet bijbetalen, laat de factuur op zich wachten...",
"engagement": 285,
"impressions": 19757,
"likesCount": 93
},
{
"commentsCount": 32,
"content": "De hond liep achter de kidnapper aan en beet hem in zijn been.",
"engagement": 665,
"impressions": 27953,
"likesCount": 620
},
{
"commentsCount": 320,
"content": "\"Onze inzending is uniek, maar we kunnen zijn grootste troef niet uitspelen.\"",
"engagement": 850,
"impressions": 27667,
"likesCount": 525
},
{
"commentsCount": 1193,
"content": "Wouter Beke (CD&V) neemt ontslag als Vlaams minister van Welzijn, Gezin, Volksgezondheid en Armoedebestrijding. https://bit.ly/39XOWkL",
"engagement": 2674,
"impressions": 83551,
"likesCount": 1425
},
{
"commentsCount": 58,
"content": "Het evenement mag niet meer doorgaan door een nieuwe regel die amper bekend is.",
"engagement": 142,
"impressions": 14923,
"likesCount": 79
},
{
"commentsCount": 343,
"content": "Een goed voorstel?",
"engagement": 885,
"impressions": 32365,
"likesCount": 528
},
{
"commentsCount": 0,
"content": "Hartverscheurende beelden. 😢",
"engagement": 256,
"impressions": 17427,
"likesCount": 250
},
{
"commentsCount": 133,
"content": "De West-Vlaamse families pompen liefst 350 miljoen euro in het gigantische luxeresort: \"Een krankzinnig project\"",
"engagement": 308,
"impressions": 19719,
"likesCount": 166
},
{
"commentsCount": 216,
"content": "De beelden tonen heel goed aan wat de zwakke plek is van Russische tanks.",
"engagement": 436,
"impressions": 20215,
"likesCount": 215
},
{
"commentsCount": 8,
"content": "Bij de huiszoeking werden wapens en explosieven gevonden. \"Een nachtmerrie is vermeden.\"",
"engagement": 98,
"impressions": 13679,
"likesCount": 86
},
{
"commentsCount": 556,
"content": "Eet jij nog vaak gekookte aardappelen?",
"engagement": 790,
"impressions": 27943,
"likesCount": 226
},
{
"commentsCount": 258,
"content": "\"We zullen reageren op de situatie\", klinkt het. https://bit.ly/3w4lfHh",
"engagement": 537,
"impressions": 27004,
"likesCount": 263
},
{
"commentsCount": 38,
"content": "“Ik zie eruit als Einstein” ✂️",
"engagement": 108,
"impressions": 13407,
"likesCount": 67
},
{
"commentsCount": 0,
"content": "Wauw! 🤩",
"engagement": 23,
"impressions": 11877,
"likesCount": 20
},
{
"commentsCount": 113,
"content": "“Ze zijn getraind voor parades, niet voor de oorlog”",
"engagement": 213,
"impressions": 14844,
"likesCount": 98
},
{
"commentsCount": 57,
"content": "Zou jij gaan voor duurder zónder of goedkoper mét reclame?",
"engagement": 103,
"impressions": 15124,
"likesCount": 39
},
{
"commentsCount": 70,
"content": "Wanneer Paul en Sarah hun huis te zien krijgen, krijgt vooral Paul paniek...",
"engagement": 167,
"impressions": 13565,
"likesCount": 96
},
{
"commentsCount": 23,
"content": "Twee mensen van hetzelfde geslacht die trouwen, of het recht op anticonceptie... Mag dit straks niet meer overal in de VS?",
"engagement": 47,
"impressions": 11856,
"likesCount": 22
},
{
"commentsCount": 22,
"content": "⚠️",
"engagement": 104,
"impressions": 15595,
"likesCount": 74
},
{
"commentsCount": 73,
"content": "Dit had veel erger kunnen aflopen 😮",
"engagement": 515,
"impressions": 37005,
"likesCount": 403
},
{
"commentsCount": 128,
"content": "Niet vreemd dan dat steeds minder mensen een huis kùnnen kopen... 😞",
"engagement": 229,
"impressions": 18297,
"likesCount": 92
},
{
"commentsCount": 43,
"content": "Zo pijnlijk, zo'n onmacht... 😢",
"engagement": 652,
"impressions": 24554,
"likesCount": 603
},
{
"commentsCount": 73,
"content": "Zijn wens wordt vervuld ❤",
"engagement": 2230,
"impressions": 79627,
"likesCount": 2092
},
{
"commentsCount": 62,
"content": "Militair expert Roger Housen legt uit 👇",
"engagement": 93,
"impressions": 12684,
"likesCount": 29
},
{
"commentsCount": 530,
"content": "En dat blijkt niet de eerste keer!",
"engagement": 1360,
"impressions": 52215,
"likesCount": 791
},
{
"commentsCount": 243,
"content": "Zal hij de finale halen, denk je? Wij duimen alvast!",
"engagement": 622,
"impressions": 23111,
"likesCount": 375
},
{
"commentsCount": 73,
"content": "🐜 Dit is het moment om ze buiten te houden, en hieronder lees je hoe je dat doet 👇",
"engagement": 132,
"impressions": 21070,
"likesCount": 40
},
{
"commentsCount": 91,
"content": "Echt moeilijk leek dat nochtans niet 😅",
"engagement": 205,
"impressions": 16961,
"likesCount": 107
},
{
"commentsCount": 667,
"content": "Vandaag worden ze extra in de bloemetjes gezet...Bedankt, helden van de zorg 🥼❤️",
"engagement": 4357,
"impressions": 301877,
"likesCount": 3218
},
{
"commentsCount": 185,
"content": "Schrijnend 😢",
"engagement": 400,
"impressions": 25443,
"likesCount": 197
},
{
"commentsCount": 895,
"content": "Jong geleerd, oud gedaan? 😅",
"engagement": 2353,
"impressions": 75061,
"likesCount": 1408
},
{
"commentsCount": 297,
"content": "Uroloog Piet Hoebeke verklapt 👇",
"engagement": 694,
"impressions": 42487,
"likesCount": 353
},
{
"commentsCount": 402,
"content": "Veel sterkte aan de nabestaanden ❤",
"engagement": 4591,
"impressions": 111729,
"likesCount": 4147
},
{
"commentsCount": 38,
"content": "De zomer in de lente komt eraan 😎",
"engagement": 286,
"impressions": 21583,
"likesCount": 234
},
{
"commentsCount": 239,
"content": "De budgetten in Blind gekocht swingen dit seizoen van de ene naar de andere kant.",
"engagement": 486,
"impressions": 19307,
"likesCount": 246
},
{
"commentsCount": 272,
"content": "Dankzij de zege tegen Union staat Club Brugge op één zege van de titel!",
"engagement": 533,
"impressions": 21057,
"likesCount": 258
},
{
"commentsCount": 198,
"content": "Geen woorden voor...",
"engagement": 279,
"impressions": 16033,
"likesCount": 79
},
{
"commentsCount": 153,
"content": "Iedereen hield de lippen 3 jaar lang stijf op elkaar... Ongelooflijk!",
"engagement": 434,
"impressions": 20631,
"likesCount": 275
}
],
"nextCursor": "nextCursorHash"
}
},
"extensions": {
"variables": {
"filter": {
"dateFrom": "2022-05-11T00:00:00Z",
"dateTo": "2022-05-12T23:59:59Z",
"brandId": brandID,
"profiles": [
profileID
]
}
}
}
}
Getting the Total Post Count Over Time
query posts($filter: Filter!, $metric: ContentMetric!) {
posts(filter: $filter, metric: $metric)
}
{
"filter": {
"dateFrom": "2022-05-11T00:00:00Z",
"dateTo": "2022-05-12T23:59:59Z",
"brandId": brandID,
"profiles": [
profileID
]
},
"metric" : "SUM"
}
{
"data": {
"posts": 105.0
},
"extensions": {
"variables": {
"filter": {
"dateFrom": "2022-05-11T00:00:00Z",
"dateTo": "2022-05-12T23:59:59Z",
"brandId": brandID,
"profiles": [
profileID
]
},
"metric": "SUM"
}
}
}
Last updated