Perseus CTS API

Current Status

(updated as of 2013-05-01)

Passage level retrieval for many of the primary source texts in the Greco-Roman collection should now be working via the Perseus CTS API. The following requests are currently supported:

e.g at notional work level:
e.g. at edition level:
e.g. at notional work level:
e.g. at edition level:

Known Issues

  • the “level” parameter is not yet supported for GetValidReff, and it currently returns only the lowest (i.e. most specific) level of citation.
  • for some texts, GetValidReff may also return multiple citation levels
  • the citations schemes are still under review and may change for some of the texts
  • Not all of the texts are working, and the translated editions are a bit worse off than the original language editions.
    • Many of the problems may be due to the fact that we still need to go through each text to verify the canonical citation schemes and clean them up as necessary to work with the CTS protocol.  For the source texts some problems are caused by citation elements containing characters which cause problems for CTS, such as “.”, and citation elements that aren’t sequential numerically (e.g. where a text has citation elements that use alphas like ‘preface’ as well as book/section/etc numbers) .
    • The translations have these plus additional problems. At least one set of problems may be in texts with line-based citation schemes where the lines haven’t been marked up in the English translation. Perseus doesn’t actually retrieve lines but instead operates on the level of the ‘card’ artificial citation element for chunking. Where line breaks exist as milestones in the markup, we currently try to automatically support line level citations in the CTS API by using an XSLT transform to convert the milestones, but often times they don’t exist in the translated versions.
  • The GetPassage implementation does not currently support subreferences or passage ranges.
  • TextInventory ‘citation’ elements are incomplete — missing xpath and scope attributes


  • full implementation of all CTS API calls, and ensuring all responses adhere fully to the API standards
  • synchronization of the greekLit and latinLit namespaces with those published by the HMT/CHS
  • definitive identification canonical citation schemes for all texts
  • TEI-A normalization of all XML


For more information on the CTS Specification see The Homer Multitext Project documentation

One Response to Perseus CTS API

  1. Pingback: » How to retrieve ancient text data from Perseus (inlustre monumentum est)

Comments are closed.