Core Work Routes
Use these endpoints to retrieve individual works, search across all works with filters, or normalize external identifiers.
GET /works/search // Search works with filters
GET /work/:id // Get a single work by ID (public ID, or external ID like DOI/PMID)
Search and List Works
Returns a paginated list of works matching the query parameters.
curl https://api.drylab.bio/v1/works/search?source=medrxiv&q=ACTA2 \
-H "Authorization: Bearer <YOUR_API_KEY>"
Query parameters
Search filters
q
string
Search query for title and abstract
source
string
Filter by source (biorxiv, medrxiv, arxiv)
license
string
Filter by license type
since
string
Filter works published after this date (ISO 8601)
until
string
Filter works published before this date (ISO 8601)
has_assets
boolean
Filter works that have downloadable assets
Pagination and sorting
sort
string
Sort by created_at or published_at (default: published_at)
order
string
Sort order asc or desc (default: desc)
limit
integer
Number of results per page (default: 20, max: 100)
cursor
string
Pagination cursor
Content expansion
expand
string
Comma-separated fields to expand (sections
, blocks
, assets
, citations
, all
)
Response:
The WorkCoreSchema
is shown here.
{
"status": "completed",
"results": [
{
"index": 0,
"status": "success",
"work": WorkCoreSchema,
"data": {
"sections": [
/* present only if expand=sections */
],
"blocks": [
/* present only if expand=blocks */
],
"assets": [
/* present only if expand=assets */
],
"citations": [
/* present only if expand=citations */
]
}
},
],
"next_cursor": "eyJzb3J0IjoiY3JlYXRlZF9hdCIsIm9yZGVyIjoiZGVzYyIsInAiOiIyMDI1LTA5LTA1VDEyOjA1OjAwLjAwMFoiLCJpZCI6ImRvaToxMC4xMDM4L3M0MTU4Ni0wMjUtMDEyMzQtNSJ9"
}
Retrieve a work
Retrieves a work by its source and identifier. Drylab IDs do not require to specify a source. Non-drylab IDs (e.g.) need to be passed as the URL-encoded version of the following format source:id
, where source can be doi
, medrxiv
, biorxiv
, arxiv
, pmid
, pmcid
.
curl https://api.drylab.bio/v1/work/medrxiv%3A2025.08.08.25333110 \
-H "Authorization: Bearer <YOUR_API_KEY>"
curl https://api.drylab.bio/v1/work/doi%3A10.1101%2F2025.08.20.25334101 \
-H "Authorization: Bearer <YOUR_API_KEY>"
curl https://api.drylab.bio/v1/work/6682246689 \
-H "Authorization: Bearer <YOUR_API_KEY>"
Query parameters:
Version selection
versions
string
Version selection (all, none, or specific version label)
Content expansion
expand
string
Comma-separated fields to expand (sections, blocks, assets, citations, all)
Metadata options
raw
boolean
Include raw XML metadata
Response:
The WorkCoreSchema
is shown here.
{
"status": "completed",
"work": WorkCoreSchema,
"data": {
"sections": [
/* present only if expand=sections */
],
"blocks": [
/* present only if expand=blocks */
],
"assets": [
/* present only if expand=assets */
],
"citations": [
/* present only if expand=citations */
]
}
}
Normalize DOI
Normalizes a DOI and returns the work identifier for use with other endpoints.
curl https://api.drylab.ai/v1/work/doi/10.1101/2025.08.07.25333034 \
-H "Authorization: Bearer <YOUR_API_KEY>
Query parameters:
*
string
The DOI path (everything after /doi/)
Response:
{
"id": "doi%3A10.1101%2F2025.08.07.25333034"
}
Last updated