# Feed API Reference

OpenAPI source: https://api.are.na/v3/openapi.json

## POST /v3/me/notifications/{id}/read

- Label: Mark a notification as read
- Docs: https://www.are.na/developers/explore/feed/post-read-by-id
- Markdown: https://www.are.na/developers/explore/feed/post-read-by-id.md
- Requires resource id: yes
- Response content type: application/json

Marks one notification activity as read for the authenticated user
and returns the updated notification plus the new unread count.
The `id` is the activity id returned by `/v3/me/notifications`; the
internal notification bulletin id remains opaque. Returns 404 if the
activity is not part of the authenticated user's notifications feed.

Path parameters:
- id: number (required) — Activity id returned by the notifications feed.

Response schema:
```json
{
  "type": "object",
  "description": "Response to marking a single notification as read. Returns the updated\nnotification alongside the new unread count, so clients can refresh\nboth list state and badge without a follow-up request.\n",
  "required": [
    "meta",
    "data"
  ],
  "properties": {
    "meta": {
      "type": "object",
      "description": "The authenticated user's unread notification state after a mutation.",
      "required": [
        "notifications"
      ],
      "properties": {
        "notifications": {
          "type": "integer",
          "nullable": false,
          "description": "Number of unread notifications remaining.",
          "example": 2
        }
      },
      "refName": "NotificationReadMeta"
    },
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "nullable": false,
          "description": "Unique identifier for the underlying activity.",
          "example": 12345
        },
        "created_at": {
          "type": "string",
          "nullable": false,
          "description": "When the activity occurred.",
          "format": "date-time",
          "example": "2024-06-05T12:00:00Z"
        },
        "kind": {
          "type": "string",
          "nullable": false,
          "description": "The normalized activity kind. Encodes the actor's action and the item /\ntarget involved, so clients can render and switch on a single value\nrather than stitching together separate action and connector phrases.\n\nKind determines the expected subject types:\n- `followed_user`: item=User, target=null, parent=null\n- `followed_channel`: item=Channel, target=null, parent=null\n- `followed_group`: item=Group, target=null, parent=null\n- `added_block_to_channel`: item=Block (Text/Image/Link/Attachment/Embed), target=Channel, parent=null\n- `added_channel_to_channel`: item=Channel, target=Channel, parent=null\n- `created_channel`: item=Channel, target=null, parent=null\n- `collaborating_with_user_on_channel`: item=User, target=Channel, parent=null\n- `collaborating_with_group_on_channel`: item=Group, target=Channel, parent=null\n- `commented_on_block`: item=Comment, target=Block, parent=Channel\n- `mentioned_you`: item=Comment, target=User, parent=Block\n- `added_user_to_group`: item=User, target=Group, parent=null\n",
          "enum": [
            "followed_user",
            "followed_channel",
            "followed_group",
            "added_block_to_channel",
            "added_channel_to_channel",
            "created_channel",
            "collaborating_with_user_on_channel",
            "collaborating_with_group_on_channel",
            "commented_on_block",
            "mentioned_you",
            "added_user_to_group"
          ],
          "example": "added_block_to_channel",
          "refName": "ActivityKind"
        },
        "actor": {
          "type": "oneOf",
          "description": "User or group who performed the activity.",
          "variants": [
            {
              "type": "object",
              "description": "Embedded user representation (used when user is nested in other resources)",
              "required": [
                "id",
                "type",
                "name",
                "slug",
                "avatar",
                "initials"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "nullable": false,
                  "description": "Unique identifier for the user",
                  "example": 12345
                },
                "type": {
                  "type": "string",
                  "nullable": false,
                  "description": "User type",
                  "enum": [
                    "User"
                  ],
                  "example": "User"
                },
                "name": {
                  "type": "string",
                  "nullable": false,
                  "description": "User's display name",
                  "example": "John Doe"
                },
                "slug": {
                  "type": "string",
                  "nullable": false,
                  "description": "URL-safe identifier (use this in API paths)",
                  "example": "john-doe"
                },
                "avatar": {
                  "type": "string",
                  "nullable": true,
                  "description": "URL to user's avatar image",
                  "format": "uri",
                  "example": "https://d2w9rnfcy7mm78.cloudfront.net/12345/avatar.jpg"
                },
                "initials": {
                  "type": "string",
                  "nullable": false,
                  "description": "User's initials",
                  "example": "JD"
                }
              },
              "refName": "EmbeddedUser"
            },
            {
              "type": "object",
              "description": "Embedded group representation (used when group is nested in other resources)",
              "required": [
                "id",
                "type",
                "name",
                "slug",
                "avatar",
                "initials"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "nullable": false,
                  "description": "Unique identifier for the group",
                  "example": 67890
                },
                "type": {
                  "type": "string",
                  "nullable": false,
                  "description": "Group type",
                  "enum": [
                    "Group"
                  ],
                  "example": "Group"
                },
                "name": {
                  "type": "string",
                  "nullable": false,
                  "description": "Group's name",
                  "example": "Design Team"
                },
                "slug": {
                  "type": "string",
                  "nullable": false,
                  "description": "Group's URL slug",
                  "example": "design-team-abc123"
                },
                "avatar": {
                  "type": "string",
                  "nullable": true,
                  "description": "URL to group's avatar image",
                  "format": "uri",
                  "example": "https://d2w9rnfcy7mm78.cloudfront.net/groups/67890/avatar.jpg"
                },
                "initials": {
                  "type": "string",
                  "nullable": false,
                  "description": "Group's initials",
                  "example": "DT"
                }
              },
              "refName": "EmbeddedGroup"
            }
          ],
          "refName": "ActivityActor"
        },
        "item": {
          "type": "oneOf",
          "variants": [
            {
              "type": "oneOf",
              "description": "Resource involved in a feed activity.",
              "variants": [
                {
                  "type": "object",
                  "description": "Embedded user representation (used when user is nested in other resources)",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "Embedded group representation (used when group is nested in other resources)",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "A text block containing markdown content",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "An image block containing an uploaded or scraped image",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "A link block representing a URL with optional preview",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "An attachment block containing an uploaded file",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "An embed block containing embedded media (video, audio, etc.)",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "A comment on a block",
                  "…": "see OpenAPI spec for full schema"
                }
              ],
              "refName": "ActivitySubject"
            },
            {
              "type": "unknown",
              "nullable": true
            }
          ]
        },
        "target": {
          "type": "oneOf",
          "variants": [
            {
              "type": "oneOf",
              "description": "Resource involved in a feed activity.",
              "variants": [
                {
                  "type": "object",
                  "description": "Embedded user representation (used when user is nested in other resources)",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "Embedded group representation (used when group is nested in other resources)",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "A text block containing markdown content",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "An image block containing an uploaded or scraped image",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "A link block representing a URL with optional preview",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "An attachment block containing an uploaded file",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "An embed block containing embedded media (video, audio, etc.)",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "A comment on a block",
                  "…": "see OpenAPI spec for full schema"
                }
              ],
              "refName": "ActivitySubject"
            },
            {
              "type": "unknown",
              "nullable": true
            }
          ]
        },
        "parent": {
          "type": "oneOf",
          "variants": [
            {
              "type": "oneOf",
              "description": "Resource involved in a feed activity.",
              "variants": [
                {
                  "type": "object",
                  "description": "Embedded user representation (used when user is nested in other resources)",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "Embedded group representation (used when group is nested in other resources)",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "A text block containing markdown content",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "An image block containing an uploaded or scraped image",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "A link block representing a URL with optional preview",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "An attachment block containing an uploaded file",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "An embed block containing embedded media (video, audio, etc.)",
                  "…": "see OpenAPI spec for full schema"
                },
                {
                  "type": "object",
                  "description": "A comment on a block",
                  "…": "see OpenAPI spec for full schema"
                }
              ],
              "refName": "ActivitySubject"
            },
            {
              "type": "unknown",
              "nullable": true
            }
          ]
        },
        "type": {
          "type": "string",
          "nullable": false,
          "enum": [
            "Notification"
          ],
          "example": "Notification"
        },
        "is_read": {
          "type": "boolean",
          "nullable": false,
          "description": "Whether the authenticated user has read this notification.",
          "example": false
        }
      },
      "required": [
        "id",
        "created_at",
        "kind",
        "actor",
        "item",
        "target",
        "parent",
        "type",
        "is_read"
      ],
      "description": "A notification feed activity with read state.",
      "refName": "Notification"
    }
  },
  "refName": "NotificationReadResponse"
}
```