[Feature request] Endpoint for Inbox activities/events

Hi all

I want to read notifications from Asana and show in a Mac app. In other words, rebuild what’s in the Inbox (UI), but via API. Unfortunately, there’s no API endpoint that let’s me do that.

I tried the /events endpoint, but it doesn’t work. It requires a sync key, meaning I can only get the latest events, not what happened 5 hours ago.

I tried the Search API, but it doesn’t work because it only returns task resources. For example, /workspaces/{gid}/tasks/search doesn’t return stories/comments/events, it returns only tasks.

Webhooks for events could work, but I’m building a MacOS app so webhooks aren’t available. Even if I could use webhooks, if we lost any call (e.g the Mac app is closed), we’d not have a way of loading Inbox activities.

Is there an endpoint that is not listed in the docs?

Thanks in advance :heart:

p.s even if there’s a Zapier trigger somewhere, I wouldn’t be able to plug that into a Mac app, it’d be cumbersome to ask users to setup Zapier to read Asana notifications.

Hi @Alex_Oliveira2 and welcome to the forum!

FYI I moved your post to the API forum section as that’s where we discuss development-related topics.

The sync token allows you to get all of the events since the last time you retrieved them. Couldn’t you store the sync token with your app’s data and when the user opens the app, retrieve everything since that last time?

No, sorry.

Hey @Alex_Oliveira2, I’d love to learn more about what you are building. Here’s a form to capture your feature request and leave a bit more context on how this would help you build your app . Thanks!

Katy from Asana’s API team

What I’m trying to do

I want to programmatically retrieve the items that appear in a user’s Inbox > Activity feed — the same list you see when you click Inbox in the Asana sidebar.

What I’ve tried so far

  1. GET /tasks?assignee=me&assignee_status=inbox — Returns 200+ tasks (the full “Recently assigned” backlog), not the Inbox activity feed.
  2. Top-level /stories endpoint — Returns a 400 requiring a parent parameter. No way to query stories across tasks in a single call.
  3. /events endpoint — Requires a specific resource GID, so can’t be used as a starting point for discovery across a user’s activity.
  4. Audit log — Requires a service account token.

What’s not working / the gap

None of these map to what the Inbox > Activity view actually shows. Is there an endpoint or approach that exposes a user’s Inbox feed directly? Even a notifications or activity feed endpoint would solve it.

Hi @Todd_Binder

Interesting way to pull something using API. May I know what flow you’re trying to achieve with this? Maybe there’s another work around it.

I do zapier a lot with asana and so far, I have not seen any endpoints that could pull inbox data from a specific user, and yes only by the tasks endpoint, which you explained doesn’t seem to be what you need.

You can though send a feedback about it here Loading... - Form by Asana

Hi @Todd_Binder,

FYI I merged your post with an existing thread on this topic.

Unfortunately no, there is still no API support for accessing the Inbox data directly.

I am building an AI agent that pulls all my different “inboxes & calendars” and lists for me each morning from various applications we use to build me a “Morning Dashboard”. I’ve accomplished what I needed every other piece of software, but the lack of an Asana Inbox API leaves me one manual task. “Check Asana Inbox” (just READING the inbox would be a great start, and read/unread status as a bonus) I imagine this will heat up as more people start building AI Agents like this.

@Todd_Binder It’s a bit more work but you could likely accomplish it now using the Events endpoint.

I have explored the Events endpoint. It doesn’t appear I can see the inbox/notification state to know which item’s I’ve cleared out of my Inbox. Then it seems I’d need to poll each project, which is always growing in our Organization… All this making it much harder than just opening a browser and “looking at my inbox” Thanks for the suggestions so far. At least I know I’ve tried everything at this point, and I’m not missing anything obvious.

Hi @Todd_Binder thanks for the detailed write-up of your goal.

Asana’s API is designed to expose work graph entities for programmatic access and management, rather than to replicate product-level views. The Inbox feed, in particular, aggregates multiple types of signals across Asana and it doesn’t map directly to a single API endpoint.

That said, you can get fairly close to an “actionable activity feed” by combining a few data sources, which may work well for your use case:

  1. GET /tasks?assignee=me to retrieve tasks assigned to the user, as you’ve already discovered.

2. Leverage memberships to identify work where the user is involved, even if they are not the assignee.

3. Search API: POST /workspaces/{workspace_gid}/tasks/search with filters such as sort_by=modified_at, followers.any, assignee.any, plus any relevant projects, teams, or portfolios filters.

While this approach won’t exactly mirror the Inbox UI 1:1, combining these sources can provide a strong foundation for building a meaningful activity feed for your agent. Hope this helps!

I fully understand that the API does not expose the Inbox, but we all really “work our inbox” and the inability to replicate it is becoming more of a problem. I’ve played with all of the other methods above and nothing gets us what we need. In my mind, the inbox (and archive) is obviously an internal API, so why not just expose it? (Probably vast over-simplification… but we want our agents to “see our inboxes” and Asana is a very important one)