API Reference

Protocol Documentation

Table of Contents

Top

schemas/owl/v1/book.proto

Book

Book resource representing an uploaded or URL-fetched book

FieldTypeLabelDescription
uuidstringUnique identifier
titlestringBook title
authorsstringrepeatedAuthors
publisherstringPublisher
publication_yearint32Publication year
isbnstringISBN if available
formatstringFile format (pdf, epub, mobi, azw3, etc.)
mime_typestringMIME type
size_bytesint64File size in bytes
checksumstringContent hash for deduplication (SHA-256)
storage_pathstringStorage location (bucket path)
original_filenamestringOriginal filename
tagsstringrepeatedUser-provided tags
notesstringNotes or description
uploaded_atgoogle.protobuf.TimestampWhen uploaded
page_countint32Number of pages if available
languagestringLanguage (ISO 639-1 code)
source_urlstringSource URL if fetched from the web

Top

schemas/owl/v1/paper.proto

Paper

Paper resource representing an academic paper

FieldTypeLabelDescription
uuidstringUnique identifier
titlestringPaper title
authorsstringrepeatedAuthors
abstractstringAbstract
publicationstringPublication venue (journal, conference, etc.)
publication_yearint32Publication year
doistringDOI (Digital Object Identifier) if available
arxiv_idstringarXiv ID if applicable (e.g. "2301.07041")
source_urlstringSource URL where paper was fetched from
source_typestringHow the paper was acquired: DIRECT_UPLOAD, ARXIV, DOI, URL
formatstringFile format (typically pdf)
mime_typestringMIME type
size_bytesint64File size in bytes
checksumstringContent hash for deduplication (SHA-256)
storage_pathstringStorage location (bucket path)
tagsstringrepeatedUser-provided tags
notesstringNotes or description
uploaded_atgoogle.protobuf.TimestampWhen added to library
page_countint32Number of pages if available

Top

schemas/owl/v1/services/book.proto

CreateBookRequest

FieldTypeLabelDescription
dataschemas.owl.v1.Book

CreateBookResponse

FieldTypeLabelDescription
dataschemas.owl.v1.Book

DeleteBookRequest

FieldTypeLabelDescription
uuidstring

DeleteBookResponse

FieldTypeLabelDescription
successbool

GetBookRequest

FieldTypeLabelDescription
uuidstring

GetBookResponse

FieldTypeLabelDescription
dataschemas.owl.v1.Book

ListBooksRequest

FieldTypeLabelDescription
countint32optional
cursorstringoptional

ListBooksResponse

FieldTypeLabelDescription
dataschemas.owl.v1.Bookrepeated
cursorstring
countint32

UpdateBookRequest

FieldTypeLabelDescription
uuidstring
dataschemas.owl.v1.Book

UpdateBookResponse

FieldTypeLabelDescription
dataschemas.owl.v1.Book

BookService

Method NameRequest TypeResponse TypeDescription
ListBooksListBooksRequestListBooksResponse
GetBookGetBookRequestGetBookResponse
CreateBookCreateBookRequestCreateBookResponse
UpdateBookUpdateBookRequestUpdateBookResponse
DeleteBookDeleteBookRequestDeleteBookResponse

Top

schemas/owl/v1/services/paper.proto

CreatePaperRequest

FieldTypeLabelDescription
dataschemas.owl.v1.Paper

CreatePaperResponse

FieldTypeLabelDescription
dataschemas.owl.v1.Paper

DeletePaperRequest

FieldTypeLabelDescription
uuidstring

DeletePaperResponse

FieldTypeLabelDescription
successbool

GetIngestionStatusRequest

FieldTypeLabelDescription
workflow_idstring

GetIngestionStatusResponse

FieldTypeLabelDescription
statusGetIngestionStatusResponse.Status
paper_uuidstringPopulated on STATUS_COMPLETED or STATUS_DUPLICATE
error_messagestringPopulated on STATUS_FAILED
current_stepstringCurrent activity being executed (from workflow metadata)

GetPaperRequest

FieldTypeLabelDescription
uuidstring

GetPaperResponse

FieldTypeLabelDescription
dataschemas.owl.v1.Paper

IngestPaperByURLRequest

IngestPaperByURL starts a Temporal workflow and returns immediately

FieldTypeLabelDescription
urlstringURL to ingest (arXiv, DOI link, or direct PDF URL)
tagsstringrepeatedOptional user tags to apply to the ingested paper
notesstringOptional notes

IngestPaperByURLResponse

FieldTypeLabelDescription
workflow_idstringTemporal workflow ID โ€” use with GetIngestionStatus to poll progress

ListPapersRequest

FieldTypeLabelDescription
countint32optional
cursorstringoptional

ListPapersResponse

FieldTypeLabelDescription
dataschemas.owl.v1.Paperrepeated
cursorstring
countint32

UpdatePaperRequest

FieldTypeLabelDescription
uuidstring
dataschemas.owl.v1.Paper

UpdatePaperResponse

FieldTypeLabelDescription
dataschemas.owl.v1.Paper

GetIngestionStatusResponse.Status

NameNumberDescription
STATUS_UNSPECIFIED0
STATUS_RUNNING1
STATUS_COMPLETED2
STATUS_FAILED3
STATUS_DUPLICATE4

PaperService

Method NameRequest TypeResponse TypeDescription
ListPapersListPapersRequestListPapersResponse
GetPaperGetPaperRequestGetPaperResponse
CreatePaperCreatePaperRequestCreatePaperResponse
UpdatePaperUpdatePaperRequestUpdatePaperResponse
DeletePaperDeletePaperRequestDeletePaperResponse
IngestPaperByURLIngestPaperByURLRequestIngestPaperByURLResponseTemporal-backed async ingestion from URL (arXiv, DOI, direct link)
GetIngestionStatusGetIngestionStatusRequestGetIngestionStatusResponseQuery the status of an ongoing or completed ingestion workflow

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers โ€“ if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers โ€“ if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)