Found it. You put the fields query parameter at root, so not under populate:
This final result did all I wanted it to do, only returning and populating the relational fields I needed:
let query: any = {
fields: [
'title',
'updatedAt',
'scraped',
'source'
],
populate: {
user_created_by: {
fields: [
'username'
]
},
published_article: {
fields: [
'id'
]
}
},
filters: {
state: state
}
};
Maybe it helps someone. I do wonder where the documentation for that is, I found it after digging around reading stackoverflow answers. Marking solved.