-
Notifications
You must be signed in to change notification settings - Fork 0
Reference API Artifacts
Artifacts are individual cuneiform objects — tablets, prisms, cones, and other carriers of writing. Each is identified by a P-number (e.g., P227657), the universal join key inherited from CDLI.
For the hybrid semantic search endpoint and AI-powered summary/token endpoints, see Search & Agentic.
GET /artifacts
Full-text and faceted search across the corpus. Returns a paginated list of artifact summaries including thumbnail URLs.
Query parameters
| Parameter | Type | Description |
|---|---|---|
search |
string | Free-text search against designation, museum number, and transliteration |
pipeline |
string | Filter by pipeline stage: captured, recognized, transcribed, lemmatized, translated
|
period |
string[] | One or more periods (repeatable: ?period=Ur+III&period=Old+Babylonian) |
provenience |
string[] | One or more proveniences |
genre |
string[] | One or more genres |
language |
string[] | One or more language codes |
has_ocr |
boolean | Only return artifacts with sign-detection annotations (default: false) |
page |
integer | Page number, 1-based (default: 1) |
per_page |
integer | Results per page (default: 24) |
Example
GET /artifacts?search=lugal&period=Ur+III&page=1&per_page=10
Response
{
"items": [
{
"p_number": "P227657",
"designation": "CDLI Seals 001234",
"period": "Ur III (ca. 2112-2004 BC)",
"provenience": "Ur (mod. Tell el-Muqayyar)",
"genre": "Administrative",
"language": "Sumerian",
"pipeline_stage": "transcribed",
"thumbnail_url": "https://..."
}
],
"total": 1842,
"page": 1,
"per_page": 10
}GET /artifacts/filter-options
Returns available values for each facet given the currently active filters. Used to build dynamic filter UIs that narrow as selections are made.
Query parameters: same as search (period[], provenience[], genre[], language[]).
Response
{
"period": ["Ur III (ca. 2112-2004 BC)", "Old Babylonian (ca. 1900-1600 BC)", ...],
"provenience": ["Nippur (mod. Nuffar)", "Ur (mod. Tell el-Muqayyar)", ...],
"genre": ["Administrative", "Literary", "Legal", ...],
"language": ["Sumerian", "Akkadian", ...]
}GET /artifacts/{p_number}
Full metadata for a single artifact. Response includes all CDLI catalog fields: designation, museum number, excavation number, period, provenience, genre, language, material, object type, dimensions, primary publication, collection, and pipeline stage.
GET /artifacts/{p_number}/atf
Parsed ATF transliteration with surface grouping.
Response
{
"atf": "obverse\n1. lugal-e ...",
"parsed": {
"surfaces": [
{
"name": "obverse",
"lines": [
{ "line_no": "1.", "content": "lugal-e", "flags": [] }
]
}
]
},
"legend": [...]
}Returns 404 if no ATF data exists for this artifact.
GET /artifacts/{p_number}/translation
Translation data grouped by language.
Response
{
"p_number": "P227657",
"translations": {
"en": [
{ "line_no": "1.", "text": "The king..." }
]
}
}GET /artifacts/{p_number}/images
Image manifest from the R2 cache. Each entry includes full-resolution URL, thumbnail URL, and display-ready credit line.
Response
{
"p_number": "P227657",
"count": 2,
"images": [
{
"id": 1,
"image_type": "photo",
"original_url": "https://assets.glintstone.org/...",
"thumbnail_url": "https://assets.glintstone.org/...",
"mime_type": "image/jpeg",
"width": 1800,
"height": 2400,
"copyright_holder": "British Museum",
"license": "CC BY-NC-SA 4.0",
"credit_line": "© The Trustees of the British Museum",
"display_order": 0
}
]
}POST /artifacts/{p_number}/images/ensure
Idempotently fetches and caches CDLI images for an artifact into R2. Safe to call concurrently — a per-artifact lock prevents duplicate fetches. Returns immediately if rows already exist.
Query parameters
| Parameter | Type | Description |
|---|---|---|
wait |
boolean | If true (default), blocks until fetch completes (~5–15s) and returns the image manifest. If false, schedules the fetch as a background task. |
GET /artifacts/{p_number}/normalized
Scholarly transliteration — the normalized reading of each sign as a structured list.
GET /artifacts/{p_number}/lemmas
Lemmatization data indexed by (line_no, word_no) for use in the ATF viewer. Each entry maps to a dictionary lemma.
Response
{
"p_number": "P227657",
"total": 42,
"lemmas": {
"0": {
"0": { "gw": "king", "cf": "lugal", "pos": "N", "epos": "N", "lang": "sux" }
}
}
}GET /artifacts/{p_number}/sign-annotations
OCR bounding boxes for individual cuneiform signs, used to render overlay annotations on tablet images.
GET /artifacts/{p_number}/research
Publications, scholars, and storage information for the Research tab — bibliographic context drawn from publications, scholars, and artifact_editions.
GET /artifacts/citations/{doi}
Fetches citing papers from Semantic Scholar for a given DOI. The doi path parameter supports slashes (e.g., 10.1017/S0017383500001728).
Source: github.com/wittkensis/glintstone · Issues · Edit this wiki
Start here
Getting Started
Overview
Data Model
- Data Sources
- Data Quality
- Data Issues
- Import Pipeline Guide
- ML Integration
- Citation Pipeline Summary
Reference — Data Model
Reference — API
Reference — MCP
Opportunities
Personas
Project
Research