An author-authoritative record of a published or forthcoming work, signed by the author's own repository.
tid
Timestamp-based ID
Properties
authors
array
of
ref
lex:pub.byline.defs#contributor
Optional
Credited contributors. The repo owner is presumed primary author unless roles say otherwise.
copyrightYear
integer
Optional
Year of first copyright for the work.
cover
blob
Optional
Cover image, stored as a blob in the author's own repository.
maxSize: 2.0 MBcoverAlt
string
Optional
Alt text describing the cover image, for accessibility.
maxLength: 1000 bytescreatedAt
string
datetime
Required
An RFC 3339 formatted timestamp.
description
string
Optional
Long blurb / marketing copy. Markdown; consumers render or strip.
maxGraphemes: 5000 graphemesdiscussions
array
of
ref
lex:com.atproto.repo.strongRef
Optional
Strong references to atproto-native discussion threads about this work (e.g. a Bluesky post, a pub.byline.comment). Off-protocol social goes in links[] with kind=discussion or social.
editions
array
of
ref
lex:pub.byline.defs#edition
Optional
No description available.
genres
array
of
string
Optional
Shelf-category genres for the work. Freeform; byline's authoring tool suggests existing values to encourage convergence, but no value is enforced.
identifiers
ref
lex:pub.byline.defs#identifiers
Optional
No description available.
language
string
Optional
BCP-47 language tag, e.g. en, en-CA.
links
array
of
ref
lex:pub.byline.defs#link
Optional
Work-level links not tied to a specific edition.
pageCount
integer
Optional
Work-level page count. An edition's pageCount overrides this when present.
minimum: 1publicationDate
string
datetime
Optional
Actual or planned first-publication date.
publisher
string
Optional
Work-level publisher. An edition's publisher overrides this when present.
maxLength: 256 bytesseries
ref
lex:pub.byline.defs#seriesMembership
Optional
Series membership, if any. Book points at the series; the series record never points back.
shortDescription
string
Optional
Card and grid summary. Markdown; consumers render or strip.
maxGraphemes: 500 graphemesstatus
string
Optional
No description available.
pub.byline.defs#published, pub.byline.defs#forthcoming, pub.byline.defs#draft, pub.byline.defs#outOfPrintsubtitle
string
Optional
No description available.
maxLength: 512 bytestagline
string
Optional
One-line hook for hero or featured display. Plain text, no markdown.
maxGraphemes: 200 graphemestags
array
of
string
Optional
Freeform descriptors. Genre lives in genres[]; tags are everything else.
title
string
Required
No description available.
maxLength: 512 bytesminLength: 1 bytesupdatedAt
string
datetime
Optional
An RFC 3339 formatted timestamp.
View raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"title",
"createdAt"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 128,
"maxGraphemes": 128
},
"description": "Freeform descriptors. Genre lives in genres[]; tags are everything else."
},
"cover": {
"type": "blob",
"accept": [
"image/png",
"image/jpeg",
"image/webp"
],
"maxSize": 2000000,
"description": "Cover image, stored as a blob in the author's own repository."
},
"links": {
"type": "array",
"items": {
"ref": "lex:pub.byline.defs#link",
"type": "ref"
},
"description": "Work-level links not tied to a specific edition."
},
"title": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"genres": {
"type": "array",
"items": {
"type": "string",
"maxLength": 128,
"maxGraphemes": 128
},
"description": "Shelf-category genres for the work. Freeform; byline's authoring tool suggests existing values to encourage convergence, but no value is enforced."
},
"series": {
"ref": "lex:pub.byline.defs#seriesMembership",
"type": "ref",
"description": "Series membership, if any. Book points at the series; the series record never points back."
},
"status": {
"type": "string",
"knownValues": [
"pub.byline.defs#published",
"pub.byline.defs#forthcoming",
"pub.byline.defs#draft",
"pub.byline.defs#outOfPrint"
]
},
"authors": {
"type": "array",
"items": {
"ref": "lex:pub.byline.defs#contributor",
"type": "ref"
},
"description": "Credited contributors. The repo owner is presumed primary author unless roles say otherwise."
},
"tagline": {
"type": "string",
"description": "One-line hook for hero or featured display. Plain text, no markdown.",
"maxGraphemes": 200
},
"coverAlt": {
"type": "string",
"maxLength": 1000,
"description": "Alt text describing the cover image, for accessibility."
},
"editions": {
"type": "array",
"items": {
"ref": "lex:pub.byline.defs#edition",
"type": "ref"
}
},
"language": {
"type": "string",
"description": "BCP-47 language tag, e.g. en, en-CA."
},
"subtitle": {
"type": "string",
"maxLength": 512
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"pageCount": {
"type": "integer",
"minimum": 1,
"description": "Work-level page count. An edition's pageCount overrides this when present."
},
"publisher": {
"type": "string",
"maxLength": 256,
"description": "Work-level publisher. An edition's publisher overrides this when present."
},
"updatedAt": {
"type": "string",
"format": "datetime"
},
"description": {
"type": "string",
"description": "Long blurb / marketing copy. Markdown; consumers render or strip.",
"maxGraphemes": 5000
},
"discussions": {
"type": "array",
"items": {
"ref": "lex:com.atproto.repo.strongRef",
"type": "ref"
},
"description": "Strong references to atproto-native discussion threads about this work (e.g. a Bluesky post, a pub.byline.comment). Off-protocol social goes in links[] with kind=discussion or social."
},
"identifiers": {
"ref": "lex:pub.byline.defs#identifiers",
"type": "ref"
},
"copyrightYear": {
"type": "integer",
"description": "Year of first copyright for the work."
},
"publicationDate": {
"type": "string",
"format": "datetime",
"description": "Actual or planned first-publication date."
},
"shortDescription": {
"type": "string",
"description": "Card and grid summary. Markdown; consumers render or strip.",
"maxGraphemes": 500
}
}
},
"description": "An author-authoritative record of a published or forthcoming work, signed by the author's own repository."
}