this post was submitted on 16 Sep 2025
28 points (100.0% liked)
Fediverse
37313 readers
275 users here now
A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).
If you wanted to get help with moderating your own community then head over to !moderators@lemmy.world!
Rules
- Posts must be on topic.
- Be respectful of others.
- Cite the sources used for graphs and other statistics.
- Follow the general Lemmy.world rules.
Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration)
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
From my own experience querying public mastodon timelines via API (edit: removed incorrect
/api/v1
s in the AP_IDs):https://<instance.domain.tld>/users/<username>
https://<instance.domain.tld>/users/<post_author_username>/statuses/<post_id>
(they also have aurl
property ofhttps://<instance.domain.tld>/@<post_author_username>/<post_id>
but that tends to serve the html view of the post)To see for yourself, pick an instance that allows viewing their public timeline without logging in (
mastodon.social
is perfect for this) and follow the "Playing with public data" section of the docs. That page ellides most of the info you're looking for in the example payloads they give (as the JSON payloads themself are quite large and nested), but I can assure you that AP_IDs for user accounts and posts can be found pretty quickly from a single timeline query.I don't think Mastodon has any notion of community, nor does it distinguish between posts and comments (when following a lemmy community, both posts and comments show up in my masto feed as "top-level" statuses (ie posts)).
Cool, thanks. I was close with
/user
guessing from memory.I think the
/users/.../post_id
will be sufficient. It just needs to know that the given URL is an AP_ID before passing it off to the API call toresolveObject
. Since it already knowsinstance.domain.tld
is a federated instance, it just needs to see if the path is an AP_ID or the HTML (or something else). Thus, I don't have to parse the whole thing, just check that enough of it matches.Thanks!