Skip to main content
POST
Mark a single notification read
One row. Actor-only — same key-refusal as the list route.

Authorizations

Authorization
string
header
required

Organisation API key from Settings → API / /api/keys/. The secret is shown once. Send Authorization: Bearer sk-abacus-…. One active key per organisation. Ingest (/api/v2/ingest/*) refuses API keys — that surface is Auth0-only with ingest:read / ingest:write scopes.

Path Parameters

id
integer
required

Response

Output projection for a LibraryNotification row.

Carries share_summary / direct_share_summary / struct_summary rather than the full related serializer to keep response sizes small — the notifications list can run to hundreds of rows for an active mod and we want to render the nav-tray panel fast. Callers wanting the full row hit /api/v2/library/shares/<id>/ or /api/v2/library/share/links/<id>/ separately.

For any given row, exactly one of (share_summary, direct_share_summary, struct_summary) is non-null — the share/direct-share tracks carry a share row, the AD-368 batch_test_completed kind carries a struct_summary (its click-through back to the builder). The kind field is the discriminator the UI should branch on.

id
integer
required
read-only
kind
enum<string>
required
  • share_requested - Share requested
  • share_approved - Share approved
  • share_rejected - Share rejected
  • share_kicked - Share kicked
  • mod_shared_your_item - Mod shared your item
  • direct_share_link_revoked - Direct share link revoked
  • batch_test_completed - Batch test completed
  • batch_test_failed - Batch test failed
Available options:
share_requested,
share_approved,
share_rejected,
share_kicked,
mod_shared_your_item,
direct_share_link_revoked,
batch_test_completed,
batch_test_failed
is_read
boolean
required
read-only
created_at
string<date-time>
required
read-only
read_at
string<date-time> | null
required
read-only
share_summary
object | null
required

Compact projection of the share row that triggered a notification.

content_type mirrors the discriminator used elsewhere in /api/v2/library/ ("struct" / "batch"). object_id is the underlying item's primary key — the SPA can navigate to /structs/<slug>/ or /batch/<id>/ from there.

direct_share_summary
object | null
required

Compact projection of the direct-share link that triggered a notification.

Shape mirrors :class:_ShareSummarySerializer so the SPA can use a single notification-card component for both surfaces. content_type

  • object_id resolve to the underlying Struct / Batch; is_revoked is always True at notification time (the revoke is what triggered the row) but the field is present so a future REVOKED-vs-future-kind disambiguation stays cheap.
struct_summary
object | null
required

Compact projection of the Struct a notification points at.

Emitted for the batch_test_completed kind (AD-368), whose click-through target is the schema builder rather than a share row. slug resolves to /structs/<slug>/ — the same lookup the HTML routes and the /api/v2/structs/<slug>/ surface use.