DLG API
The Digital Library of Georgia provides a public, read-only API for searching the catalog and retrieving metadata, full text, and IIIF manifests. No API key is required.
Getting started
- Base URL
https://dlg.usg.edu- Request method
GET- Response formats
-
Add
.jsonor.xmlto an endpoint. JSON is recommended for new integrations. Record search results are also available as an Atom feed by using.atom. - Authentication
- None
api_version=2 to /records.json or /records.xml requests.
Version 2 omits the large GeoJSON facet and full-text content from search-result payloads; the
fulltext field instead indicates whether full text is available. Individual record and full-text
endpoints are unchanged.
Catalog endpoints
| Endpoint | Description | Example |
|---|---|---|
/records.{json|xml} |
Searches all public catalog records, including items, collections, and serials. The response contains documents, pagination details, and facets. | Search for “columns” |
/record/{identifier}.{json|xml} |
Returns the metadata for one catalog record. | Record dlg_larc_jlc0378 |
/collections.{json|xml} |
Searches collection-level records and returns documents, pagination details, and facets. | Collections matching “architecture” |
/collection/{identifier}.{json|xml} |
Searches the items belonging to a collection and returns documents, pagination details, and facets. | Items in dlg_gacoch |
/serials.{json|xml} |
Searches serial-level records and returns documents, pagination details, and facets. | Browse serials |
/institutions/{slug}.{json|xml} |
Returns the metadata for one holding institution. | https://dlg.usg.edu/institutions/{slug}.json |
Record-related endpoints
| Endpoint | Description | Example |
|---|---|---|
/record/{identifier}/presentation/manifest |
Returns a IIIF Presentation 3 manifest as JSON. Cross-origin requests are allowed. | IIIF manifest for dlg_larc_jlc0378 |
/record/{identifier}/fulltext.json |
Returns an object containing the record’s full text when full text is available. | { "fulltext": "..." } |
/record/{identifier}/fulltext.text |
Returns available full text as plain text. | https://dlg.usg.edu/record/{identifier}/fulltext.text |
/counties.json |
Returns Georgia county browse data, including record counts and map geometry. | County data |
Search parameters
The parameters below apply to the paginated search endpoints. Values must be URL encoded. Parameters can be combined; for example, a keyword query can be limited by one or more facets and a year range.
| Parameter | Description | Example |
|---|---|---|
q |
The search terms. Use * or omit this parameter to browse all records. |
q=columns |
search_field |
Limits the query to a configured field. Common values are both, metadata,
fulltext, record_id, title, description,
collection_name, creator, subject, provenance,
spatial, and call_number.
|
search_field=title |
f[{facet}][] |
Filters by a facet value. Repeat the parameter to select multiple values. Facet names and values are returned in the search response. | f[counties_facet][]=Clarke |
range[year_facet][begin]range[year_facet][end] |
Limits results to an inclusive year range. Either boundary may be omitted. | range[year_facet][begin]=1900&range[year_facet][end]=1950 |
page |
Selects a results page, starting at 1. |
page=2 |
per_page |
Sets the number of results per page. The maximum is 250. |
per_page=100 |
sort |
Selects one of the sort expressions supported by the endpoint. The example orders records by title. | sort=title_sort+asc |
api_version |
Use 2 for streamlined record-search responses. |
api_version=2 |
Examples
Search and filter records
curl 'https://dlg.usg.edu/records.json?q=columns&search_field=both&f%5Bcounties_facet%5D%5B%5D=Clarke&per_page=20&api_version=2'
Retrieve several records by identifier
Join identifiers with the Boolean operator OR and use the record_id search field.
curl 'https://dlg.usg.edu/records.json?search_field=record_id&q=dlg_vsbg_jaj111%20OR%20dlg_vsbg_jaj053&api_version=2'
Read a paginated JSON response
{
"response": {
"docs": [ ... ],
"pages": { ... },
"facets": [ ... ]
}
}
Metadata properties generally use Dublin Core Terms names such as dcterms_title,
dcterms_creator, and dc_date. Values may be null or arrays when a record has
no value or multiple values.
Responsible use
Cache responses when practical and avoid sending unnecessary concurrent requests. API schemas may gain new fields as DLG metadata evolves, so clients should ignore properties they do not recognize. Contact DLG if you need help with an integration or a large data request.