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 .json or .xml to an endpoint. JSON is recommended for new integrations. Record search results are also available as an Atom feed by using .atom.
Authentication
None
Recommended for record searches: add 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.