Skip to content

Mentions

Mentions are discussed in this section of ActivityStreams.

The big difference on if mentions are parsed are currently a result of if the value in href can be resolved by the application being tested.

In the support table parsed means that the activity could be parsed, but the mention was discarded. A ❌ in the support table means that the entire message has failed to parse.

Support Table Preview

tag Object Activity
basic mention; mention as list of dictionaries
[
  {
    “type”: “Mention”,
    “name”: “@actor@test_server”,
    “href”: “http://pasture-one-actor/actor”
  }
]
Object Activity
text @actor@pasture-one-actor; mention as dictionary
{
  “type”: “Mention”,
  “name”: “@actor@test_server”,
  “href”: “http://pasture-one-actor/actor”
}
Object 🚨 Activity
unrelated text
{
  “type”: “Mention”,
  “name”: “something something”,
  “href”: “http://pasture-one-actor/actor”
}
Object 🚨 Activity
Missing Name @actor@pasture-one-actor
{
  “type”: “Mention”,
  “href”: “http://pasture-one-actor/actor”
}
Object 🚨 Activity
realworld url
{
  “type”: “Mention”,
  “name”: “@the_milkman@mastodon.social”,
  “href”: “https://mastodon.social/users/the_milkman”
}
Object 🚨 Activity
unresolvable url – https
{
  “type”: “Mention”,
  “name”: “@dummy@example”,
  “href”: “https://dummy.example”
}
Object 🚨 Activity
texunresolvable url – http
{
  “type”: “Mention”,
  “name”: “@test_actor@test_server”,
  “href”: “http://test_actor”
}
Object 🚨 Activity
name is ‘yay’
{
  “type”: “as:Mention”,
  “name”: “yay”,
  “href”: “http://pasture-one-actor/actor”
}
Object 🚨 Activity
@actor text
{
  “name”: “@actor”,
  “href”: “http://pasture-one-actor/actor”
}
Object 🚨 Activity
duplicate mention, see https://codeberg.org/funfedidev/fediverse-pasture-inputs/issues/75
[
  {
    “type”: “Mention”,
    “name”: “@actor@test_server”,
    “href”: “http://pasture-one-actor/actor”
  },
  {
    “type”: “Mention”,
    “name”: “@actor@test_server”,
    “href”: “http://pasture-one-actor/actor”
  }
]
Object Activity

Objects

Object 1

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "attributedTo": "http://actor.example",
  "content": "basic mention; mention as list of dictionaries",
  "id": "http://actor.example/object/GNXLpi-2ZNg",
  "published": "2025-11-21T12:04:55Z",
  "tag": [
    {
      "href": "http://pasture-one-actor/actor",
      "name": "@actor@test_server",
      "type": "Mention"
    }
  ],
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Note"
}

Object 2

❌❌❌ does not obey schema ❌❌❌

{'type': 'Mention', 'name': '@actor@test_server', 'href': 'http://pasture-one-actor/actor'} is not of type 'array'

Failed validating 'type' in schema['properties']['tag']:
    {'default': [],
     'description': 'A list of objects that expand on the content of the '
                    'object',
     'items': {'anyOf': [{'$ref': '#/$defs/Hashtag'},
                         {'$ref': '#/$defs/Mention'},
                         {'$ref': '#/$defs/ObjectLink'},
                         {'additionalProperties': True, 'type': 'object'}]},
     'type': 'array'}

On instance['tag']:
    {'type': 'Mention',
     'name': '@actor@test_server',
     'href': 'http://pasture-one-actor/actor'}
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "attributedTo": "http://actor.example",
  "content": "text @actor@pasture-one-actor; mention as dictionary",
  "id": "http://actor.example/object/K0A1vpJt7ts",
  "published": "2025-11-21T12:04:55Z",
  "tag": {
    "href": "http://pasture-one-actor/actor",
    "name": "@actor@test_server",
    "type": "Mention"
  },
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Note"
}

Object 3

❌❌❌ does not obey schema ❌❌❌

{'type': 'Mention', 'name': 'something something', 'href': 'http://pasture-one-actor/actor'} is not of type 'array'

Failed validating 'type' in schema['properties']['tag']:
    {'default': [],
     'description': 'A list of objects that expand on the content of the '
                    'object',
     'items': {'anyOf': [{'$ref': '#/$defs/Hashtag'},
                         {'$ref': '#/$defs/Mention'},
                         {'$ref': '#/$defs/ObjectLink'},
                         {'additionalProperties': True, 'type': 'object'}]},
     'type': 'array'}

On instance['tag']:
    {'type': 'Mention',
     'name': 'something something',
     'href': 'http://pasture-one-actor/actor'}
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "attributedTo": "http://actor.example",
  "content": "unrelated text",
  "id": "http://actor.example/object/6CcJVOiXDVo",
  "published": "2025-11-21T12:04:55Z",
  "tag": {
    "href": "http://pasture-one-actor/actor",
    "name": "something something",
    "type": "Mention"
  },
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Note"
}

Object 4

❌❌❌ does not obey schema ❌❌❌

{'type': 'Mention', 'href': 'http://pasture-one-actor/actor'} is not of type 'array'

Failed validating 'type' in schema['properties']['tag']:
    {'default': [],
     'description': 'A list of objects that expand on the content of the '
                    'object',
     'items': {'anyOf': [{'$ref': '#/$defs/Hashtag'},
                         {'$ref': '#/$defs/Mention'},
                         {'$ref': '#/$defs/ObjectLink'},
                         {'additionalProperties': True, 'type': 'object'}]},
     'type': 'array'}

On instance['tag']:
    {'type': 'Mention', 'href': 'http://pasture-one-actor/actor'}
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "attributedTo": "http://actor.example",
  "content": "Missing Name @actor@pasture-one-actor",
  "id": "http://actor.example/object/bFvw_HXOJUw",
  "published": "2025-11-21T12:04:55Z",
  "tag": {
    "href": "http://pasture-one-actor/actor",
    "type": "Mention"
  },
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Note"
}

Object 5

❌❌❌ does not obey schema ❌❌❌

{'type': 'Mention', 'name': '@the_milkman@mastodon.social', 'href': 'https://mastodon.social/users/the_milkman'} is not of type 'array'

Failed validating 'type' in schema['properties']['tag']:
    {'default': [],
     'description': 'A list of objects that expand on the content of the '
                    'object',
     'items': {'anyOf': [{'$ref': '#/$defs/Hashtag'},
                         {'$ref': '#/$defs/Mention'},
                         {'$ref': '#/$defs/ObjectLink'},
                         {'additionalProperties': True, 'type': 'object'}]},
     'type': 'array'}

On instance['tag']:
    {'type': 'Mention',
     'name': '@the_milkman@mastodon.social',
     'href': 'https://mastodon.social/users/the_milkman'}
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "attributedTo": "http://actor.example",
  "content": "realworld url",
  "id": "http://actor.example/object/mbTJWbMcHxg",
  "published": "2025-11-21T12:04:55Z",
  "tag": {
    "href": "https://mastodon.social/users/the_milkman",
    "name": "@the_milkman@mastodon.social",
    "type": "Mention"
  },
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Note"
}

Object 6

❌❌❌ does not obey schema ❌❌❌

{'type': 'Mention', 'name': '@dummy@example', 'href': 'https://dummy.example'} is not of type 'array'

Failed validating 'type' in schema['properties']['tag']:
    {'default': [],
     'description': 'A list of objects that expand on the content of the '
                    'object',
     'items': {'anyOf': [{'$ref': '#/$defs/Hashtag'},
                         {'$ref': '#/$defs/Mention'},
                         {'$ref': '#/$defs/ObjectLink'},
                         {'additionalProperties': True, 'type': 'object'}]},
     'type': 'array'}

On instance['tag']:
    {'type': 'Mention',
     'name': '@dummy@example',
     'href': 'https://dummy.example'}
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "attributedTo": "http://actor.example",
  "content": "unresolvable url -- https",
  "id": "http://actor.example/object/322cHU09NuY",
  "published": "2025-11-21T12:04:55Z",
  "tag": {
    "href": "https://dummy.example",
    "name": "@dummy@example",
    "type": "Mention"
  },
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Note"
}

Object 7

❌❌❌ does not obey schema ❌❌❌

{'type': 'Mention', 'name': '@test_actor@test_server', 'href': 'http://test_actor'} is not of type 'array'

Failed validating 'type' in schema['properties']['tag']:
    {'default': [],
     'description': 'A list of objects that expand on the content of the '
                    'object',
     'items': {'anyOf': [{'$ref': '#/$defs/Hashtag'},
                         {'$ref': '#/$defs/Mention'},
                         {'$ref': '#/$defs/ObjectLink'},
                         {'additionalProperties': True, 'type': 'object'}]},
     'type': 'array'}

On instance['tag']:
    {'type': 'Mention',
     'name': '@test_actor@test_server',
     'href': 'http://test_actor'}
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "attributedTo": "http://actor.example",
  "content": "texunresolvable url -- http",
  "id": "http://actor.example/object/q_56zTysaK4",
  "published": "2025-11-21T12:04:55Z",
  "tag": {
    "href": "http://test_actor",
    "name": "@test_actor@test_server",
    "type": "Mention"
  },
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Note"
}

Object 8

❌❌❌ does not obey schema ❌❌❌

{'type': 'as:Mention', 'name': 'yay', 'href': 'http://pasture-one-actor/actor'} is not of type 'array'

Failed validating 'type' in schema['properties']['tag']:
    {'default': [],
     'description': 'A list of objects that expand on the content of the '
                    'object',
     'items': {'anyOf': [{'$ref': '#/$defs/Hashtag'},
                         {'$ref': '#/$defs/Mention'},
                         {'$ref': '#/$defs/ObjectLink'},
                         {'additionalProperties': True, 'type': 'object'}]},
     'type': 'array'}

On instance['tag']:
    {'type': 'as:Mention',
     'name': 'yay',
     'href': 'http://pasture-one-actor/actor'}
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "attributedTo": "http://actor.example",
  "content": "name is 'yay'",
  "id": "http://actor.example/object/ziZWovMIxiw",
  "published": "2025-11-21T12:04:55Z",
  "tag": {
    "href": "http://pasture-one-actor/actor",
    "name": "yay",
    "type": "as:Mention"
  },
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Note"
}

Object 9

❌❌❌ does not obey schema ❌❌❌

{'name': '@actor', 'href': 'http://pasture-one-actor/actor'} is not of type 'array'

Failed validating 'type' in schema['properties']['tag']:
    {'default': [],
     'description': 'A list of objects that expand on the content of the '
                    'object',
     'items': {'anyOf': [{'$ref': '#/$defs/Hashtag'},
                         {'$ref': '#/$defs/Mention'},
                         {'$ref': '#/$defs/ObjectLink'},
                         {'additionalProperties': True, 'type': 'object'}]},
     'type': 'array'}

On instance['tag']:
    {'name': '@actor', 'href': 'http://pasture-one-actor/actor'}
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "attributedTo": "http://actor.example",
  "content": "@actor text",
  "id": "http://actor.example/object/MMedyGYqATA",
  "published": "2025-11-21T12:04:55Z",
  "tag": {
    "href": "http://pasture-one-actor/actor",
    "name": "@actor"
  },
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Note"
}

Object 10

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "attributedTo": "http://actor.example",
  "content": "duplicate mention, see https://codeberg.org/funfedidev/fediverse-pasture-inputs/issues/75",
  "id": "http://actor.example/object/e5-8FjwXLrM",
  "published": "2025-11-21T12:04:55Z",
  "tag": [
    {
      "href": "http://pasture-one-actor/actor",
      "name": "@actor@test_server",
      "type": "Mention"
    },
    {
      "href": "http://pasture-one-actor/actor",
      "name": "@actor@test_server",
      "type": "Mention"
    }
  ],
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Note"
}

Activities

Activity 1

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "actor": "http://actor.example",
  "id": "http://actor.example/activity/EoQR4Pn8fzU",
  "object": {
    "attributedTo": "http://actor.example",
    "content": "basic mention; mention as list of dictionaries",
    "id": "http://actor.example/object/VVqnlcIV4yw",
    "published": "2025-11-21T12:04:55Z",
    "tag": [
      {
        "href": "http://pasture-one-actor/actor",
        "name": "@actor@test_server",
        "type": "Mention"
      }
    ],
    "to": [
      "https://www.w3.org/ns/activitystreams#Public",
      "http://remote.example/"
    ],
    "type": "Note"
  },
  "published": "2025-11-21T12:04:55Z",
  "to": [
    "http://remote.example/",
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Create"
}

Activity 2

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "actor": "http://actor.example",
  "id": "http://actor.example/activity/0qILAijOhR0",
  "object": {
    "attributedTo": "http://actor.example",
    "content": "text @actor@pasture-one-actor; mention as dictionary",
    "id": "http://actor.example/object/sO-jBoSTj48",
    "published": "2025-11-21T12:04:55Z",
    "tag": {
      "href": "http://pasture-one-actor/actor",
      "name": "@actor@test_server",
      "type": "Mention"
    },
    "to": [
      "https://www.w3.org/ns/activitystreams#Public",
      "http://remote.example/"
    ],
    "type": "Note"
  },
  "published": "2025-11-21T12:04:55Z",
  "to": [
    "http://remote.example/",
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Create"
}

Activity 3

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "actor": "http://actor.example",
  "id": "http://actor.example/activity/7Vlu2WlNkWE",
  "object": {
    "attributedTo": "http://actor.example",
    "content": "unrelated text",
    "id": "http://actor.example/object/wYG5zHLOLE0",
    "published": "2025-11-21T12:04:55Z",
    "tag": {
      "href": "http://pasture-one-actor/actor",
      "name": "something something",
      "type": "Mention"
    },
    "to": [
      "https://www.w3.org/ns/activitystreams#Public",
      "http://remote.example/"
    ],
    "type": "Note"
  },
  "published": "2025-11-21T12:04:55Z",
  "to": [
    "http://remote.example/",
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Create"
}

Activity 4

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "actor": "http://actor.example",
  "id": "http://actor.example/activity/qzo-dQJgusg",
  "object": {
    "attributedTo": "http://actor.example",
    "content": "Missing Name @actor@pasture-one-actor",
    "id": "http://actor.example/object/IbKER2ZQflU",
    "published": "2025-11-21T12:04:55Z",
    "tag": {
      "href": "http://pasture-one-actor/actor",
      "type": "Mention"
    },
    "to": [
      "https://www.w3.org/ns/activitystreams#Public",
      "http://remote.example/"
    ],
    "type": "Note"
  },
  "published": "2025-11-21T12:04:55Z",
  "to": [
    "http://remote.example/",
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Create"
}

Activity 5

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "actor": "http://actor.example",
  "id": "http://actor.example/activity/zSGYxem8a-M",
  "object": {
    "attributedTo": "http://actor.example",
    "content": "realworld url",
    "id": "http://actor.example/object/9QTD9ljqicU",
    "published": "2025-11-21T12:04:55Z",
    "tag": {
      "href": "https://mastodon.social/users/the_milkman",
      "name": "@the_milkman@mastodon.social",
      "type": "Mention"
    },
    "to": [
      "https://www.w3.org/ns/activitystreams#Public",
      "http://remote.example/"
    ],
    "type": "Note"
  },
  "published": "2025-11-21T12:04:55Z",
  "to": [
    "http://remote.example/",
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Create"
}

Activity 6

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "actor": "http://actor.example",
  "id": "http://actor.example/activity/R8nitJIobEg",
  "object": {
    "attributedTo": "http://actor.example",
    "content": "unresolvable url -- https",
    "id": "http://actor.example/object/D3SMELvj82o",
    "published": "2025-11-21T12:04:55Z",
    "tag": {
      "href": "https://dummy.example",
      "name": "@dummy@example",
      "type": "Mention"
    },
    "to": [
      "https://www.w3.org/ns/activitystreams#Public",
      "http://remote.example/"
    ],
    "type": "Note"
  },
  "published": "2025-11-21T12:04:55Z",
  "to": [
    "http://remote.example/",
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Create"
}

Activity 7

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "actor": "http://actor.example",
  "id": "http://actor.example/activity/qbs7sOGHkSs",
  "object": {
    "attributedTo": "http://actor.example",
    "content": "texunresolvable url -- http",
    "id": "http://actor.example/object/Rul83Yu-aiY",
    "published": "2025-11-21T12:04:55Z",
    "tag": {
      "href": "http://test_actor",
      "name": "@test_actor@test_server",
      "type": "Mention"
    },
    "to": [
      "https://www.w3.org/ns/activitystreams#Public",
      "http://remote.example/"
    ],
    "type": "Note"
  },
  "published": "2025-11-21T12:04:55Z",
  "to": [
    "http://remote.example/",
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Create"
}

Activity 8

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "actor": "http://actor.example",
  "id": "http://actor.example/activity/gg1hEiNlmSg",
  "object": {
    "attributedTo": "http://actor.example",
    "content": "name is 'yay'",
    "id": "http://actor.example/object/msQzqfbNoE0",
    "published": "2025-11-21T12:04:55Z",
    "tag": {
      "href": "http://pasture-one-actor/actor",
      "name": "yay",
      "type": "as:Mention"
    },
    "to": [
      "https://www.w3.org/ns/activitystreams#Public",
      "http://remote.example/"
    ],
    "type": "Note"
  },
  "published": "2025-11-21T12:04:55Z",
  "to": [
    "http://remote.example/",
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Create"
}

Activity 9

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "actor": "http://actor.example",
  "id": "http://actor.example/activity/u--qHkZA0VM",
  "object": {
    "attributedTo": "http://actor.example",
    "content": "@actor text",
    "id": "http://actor.example/object/1XrPpNY1epI",
    "published": "2025-11-21T12:04:55Z",
    "tag": {
      "href": "http://pasture-one-actor/actor",
      "name": "@actor"
    },
    "to": [
      "https://www.w3.org/ns/activitystreams#Public",
      "http://remote.example/"
    ],
    "type": "Note"
  },
  "published": "2025-11-21T12:04:55Z",
  "to": [
    "http://remote.example/",
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Create"
}

Activity 10

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive"
    }
  ],
  "actor": "http://actor.example",
  "id": "http://actor.example/activity/zglfJNYimYA",
  "object": {
    "attributedTo": "http://actor.example",
    "content": "duplicate mention, see https://codeberg.org/funfedidev/fediverse-pasture-inputs/issues/75",
    "id": "http://actor.example/object/CAOT47810Pw",
    "published": "2025-11-21T12:04:55Z",
    "tag": [
      {
        "href": "http://pasture-one-actor/actor",
        "name": "@actor@test_server",
        "type": "Mention"
      },
      {
        "href": "http://pasture-one-actor/actor",
        "name": "@actor@test_server",
        "type": "Mention"
      }
    ],
    "to": [
      "https://www.w3.org/ns/activitystreams#Public",
      "http://remote.example/"
    ],
    "type": "Note"
  },
  "published": "2025-11-21T12:04:55Z",
  "to": [
    "http://remote.example/",
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Create"
}