Legacy Knowledge Base
Published Jun. 30, 2025

Rest API to perform web content structure Import and Override

Written By

Sorin Pop

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

Legacy Article

You are viewing an article from our legacy "FastTrack" publication program, made available for informational purposes. Articles in this program were published without a requirement for independent editing or verification and are provided"as is" without guarantee.

Before using any information from this article, independently verify its suitability for your situation and project.

Issue

  • Does Liferay provide any Rest API that can be used to save exported JSON of structures into Liferay DB, like the option "Import and Override" in Structure tab of Web Content?
  • To be more precise, imagine a simple use case like this:
    1. Create a site S1 and in it create a web content structure STR1.
    2. Export STR1 to a JSON file.
    3. Create another site S2 and then,
      • Either go to Web Content > Structure > 3-dot menu at the top right > Import Structure.
      • Or, create a new structure and then go to 3-dot next next to it > Import and Override.
  • How would you go about doing either of these actions through REST API calls?

Environment

  • 7.4

Resolution

  • You can use the Data Engine headless API for this.
  • Import a new structure:
    curl -X 'POST' \
    'http://localhost:8080/o/data-engine/v2.0/sites/{siteId}/data-definitions/by-content-type/{contentType}' \
    ...
    • For Web Content you need to set journal as the contentType
    • For Documents & Media you need to set document-library as the contentType
  • Import and Override:
    curl -X 'PUT' \ 
    'http://localhost:8080/o/data-engine/v2.0/data-definitions/{structureId}' \
    ...
  • In both cases, the elipses (...) represents the JSON text for the new structure.
  • You can also use the Liferay API Explorer in the section for Data Engine > DataDefinition.
Did this article resolve your issue ?

Legacy Knowledge Base