Page tree
Skip to end of metadata
Go to start of metadata


The ECHO API has added support to ingest DIF metadata. We use XPath mappings to tie a field in the DIF to a searchable field within ECHO.


For a complete documentation of the current mapping please refer to this attached table. Note, this is not a final mapping nor is it intended to stay static. Part of our efforts to map to the UMM for both DIF and ECHO will alter the validity of this mapping. This is just the initial version.



  • DIF to be ingested has an DIF/Entry_ID, DIF/Entry_Title, DIF/Last_DIF_Revision_Date, DIF/Summary/*:Abstract,
  • The Entry_Title must be unique within the provider. Currently, this value will be used as both ECHO datasetId and longName. This is subject to change as requirements evolve
  • ECHO Ingest will validate that DIF/Temporal_Coverage/Start_Date is prior to DIF/Temporal_Coverage/Stop_Date


Steps to Ingest

Pre Flight Checklist

  • Acquire candidate DIF file. This file will be referred to as “DIF_FILE” throughout this document. Refer to the mapping table and the assumptions listed above to ensure successful ingest.
  • Know the environment you will be using for ingest. The base API URLs for the environments are summarized in the table below along with the associated URS environment.

ECHO Environment


Associated URS Environment

GCMD Test Provider

Testbed (TB)


Partner Test (PT)

<ask Katie>

Operations (OPS)

<Not Yet Created>


  • Ensure that you have a valid provider set up in the environment of interest. Email: for help with this.
  • Ensure that you have a URS user and that this user is authorized to PUT data to ECHO’s API. This will involve coordination with the ECHO Operations team. Email: for help with this.

Ingest Method Outline:


Route:<provider id>/datasets/<entry_title>






Content-Type = application/xml



Xml-Mime-Type = application/dif+xml



Echo-Token = <token by authorized URS user>

(See instructions at the end of this document to create a token.)


curl -XPUT  -H "Echo-Token: <token>" -H "Content-Type: application/xml" -H "Xml-Mime-Type: application/dif+xml" –H "Expect: " --data @DIF_FILE

Things to note about this cURL statement:

  • The “Xml-Mime-Type” is very important and must be set.
  • The Echo-Token must be associated with an authorized user as mentioned above.
  • The ENTRY_TITLE will have to be encoded (use something like to make sure this is done properly).
  • If you have a problem returning a 417 status code from your REST route invocation, include the “Expect: “ header as shown in the example above.

Related articles