Source Sites

Retrieves the state of a Source site's latest configuration import

Returns the site's latest configuration import — the last one started — with its status, when it started and finished, and, for a refused import, every violation and the reason for it.

This path is read-only, and writing to it is not how an import is started. An import is started by PUT /source-sites/{sourceSiteId}/config, whose source property names where the configuration is read from: request sends the document the site should end up with, and github has the site read it from its own connected GitHub repository. The source property below reports the one this import used. Keeping both on that one path keeps the configuration's read and write together, so a caller can send back what the GET there returned. What that write creates is read here, and its 202 response links here for exactly that reason.

This read does not touch the site, so a pipeline can poll it while an import runs. Reading the configuration itself does run a task against the site; that is the GET on /source-sites/{sourceSiteId}/config.

Only one import runs per site at a time, so a caller that has just started one is reading its own. A caller that waits a long time before reading may not be: a later import becomes the site's latest, and nothing here distinguishes the two. Read it while the import you started is still running.

A site that has never had an import responds 404, as does a site that does not exist.

Only imports are read here. Reading a site's configuration is synchronous — its caller holds the request open and leaves with the document or an error — so there is nothing to poll for.

Permissions: The authenticated user must have the site admin role on the site.

get/source-sites/{sourceSiteId}/config/import

Request

Path parameters

sourceSiteIdstring required
Example:f47ac10b-58cc-4372-a567-0e02b2c3d479

Unique identifier for the Source site.

Response

The site's latest configuration import

idstring required

The unique identifier of this import, for logs and for support to trace it by. A caller cannot use it to confirm that the import it is reading is the one it started, because nothing hands the identifier back when an import is started.

source'request' | 'github' required

Where the import read its configuration from — the same value the write that started it asked for.

  • request — the document sent in that write.
  • github — the site's connected GitHub repository, read by the site itself.
status'running' | 'succeeded' | 'refused' | 'failed' required

Where the import got to.

  • running — accepted and not finished. It says nothing about the outcome: an import that has only just started can still end as any of the three below.
  • succeeded — the configuration was applied.
  • refused — nothing was applied, because the configuration was rejected. violations says what was wrong.
  • failed — the import began and could not finish; the site was returned to the state it held beforehand.
started_atstring date-time required

ISO 8601 datetime when the import was accepted

finished_atstring date-time nullable

ISO 8601 datetime when the import reached its final status, or null while it is running

_embeddedobject

Embedded resources (optional)

Example response

{
  "id": "d81f5c27-3a4b-4e69-8f10-2c7b9e5a1d34",
  "source": "request",
  "status": "refused",
  "started_at": "2026-09-09T10:30:00Z",
  "finished_at": "2026-09-09T10:32:41Z",
  "violations": [
    {
      "config": "node.type.article",
      "path": "",
      "code": "delete_has_content",
      "message": "Deleting this node type would delete 42 nodes. Delete the content first."
    },
    {
      "collection": "language.es",
      "config": "node.type.article",
      "path": "name",
      "code": "config_schema",
      "message": "The Spanish translation override sets 'name' to a list, but it expects a string."
    },
    {
      "config": "user.role.administrator",
      "path": "",
      "code": "system_role",
      "message": "System roles cannot be changed by a configuration sync."
    },
    {
      "config": null,
      "code": "site_uuid_mismatch",
      "message": "This configuration was exported from a different site."
    }
  ],
  "_links": {
    "self": {
      "href": "https://api.acquia.com/v3/resources/1"
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.