This is one of many protocol behaviors described in ActivityPub.

Identifier

urn:uuid:b7b352f2-906b-492d-b64d-20bab5c2ea73

Content

The server MUST accept a valid [ActivityStreams] object that isn't a subtype of Activity in the POST request to the outbox.

Origin

prefix For client to server posting, it is possible to submit an object for creation without a surrounding activity.

The server MUST accept a valid [ActivityStreams] object that isn't a subtype of Activity in the POST request to the outbox.
 
suffix The server then MUST attach this object as the object of a Create Activity.

https://www.w3.org/TR/activitypub/

JSON

{
  "id": "urn:uuid:b7b352f2-906b-492d-b64d-20bab5c2ea73",
  "uuid": "b7b352f2-906b-492d-b64d-20bab5c2ea73",
  "type": "Behavior",
  "content": "The server MUST accept a valid [ActivityStreams] object that isn't a subtype of Activity in the POST request to the outbox.\n",
  "context": [
    "https://www.w3.org/TR/activitypub/",
    {
      "name": "6.2 Create Activity",
      "id": "https://www.w3.org/TR/activitypub/#create-activity-outbox"
    },
    {
      "name": "6.2.1 Object creation without a Create Activity",
      "id": "https://www.w3.org/TR/activitypub/#object-without-create"
    }
  ],
  "origin": {
    "source": "https://www.w3.org/TR/activitypub/",
    "section": {
      "id": "https://www.w3.org/TR/activitypub/#object-without-create",
      "name": "Object creation without a Create Activity",
      "branch": [
        6,
        2,
        1
      ]
    },
    "selector": {
      "type": "TextQuoteSelector",
      "prefix": "For client to server posting, it is possible to submit an object for creation without a surrounding activity.\n",
      "exact": "The server MUST accept a valid [ActivityStreams] object that isn't a subtype of Activity in the POST request to the outbox.\n",
      "suffix": "The server then MUST attach this object as the object of a Create Activity.\n"
    }
  },
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://socialweb.coop/ns/testing/context.json"
  ]
}