Request a library share
Request an org-library share for a schema or batch.
Authorizations
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.
Body
Input for POST /api/v2/library/shares/.
The view resolves (content_type, object_id) to a concrete
Struct or Batch instance and enforces org-match +
ownership-or-mod before inserting the share row. This serializer
just validates input shape.
Response
Output projection for an OrgLibraryShare row.
Composed for both the list endpoint and as the response body of
every mutation endpoint, so the SPA can re-render the row from a
POST response without a follow-up GET. content_object_summary
is computed via SerializerMethodField because the underlying
target is a generic FK — a normal nested serializer doesn't fit.
Tiny shape: just enough to render a share row in the UI.
For Struct rows: {"id", "slug", "name", "status"} (slug is
the SPA-routing key). For Batch rows: {"id", "name", "status"}. kind distinguishes them when the SPA wants a
single discriminator field; it mirrors content_type.model.
pending- Pendingapproved- Approvedrejected- Rejectedrevoked- Revokedkicked- Kicked
pending, approved, rejected, revoked, kicked Compact user projection for shared_by / decided_by fields.
Compact user projection for shared_by / decided_by fields.

