### POST /installConfigurationManifest Source: https://developers.salsify.com/reference/graphql-schema-overview Installs the given manifest in the provided organization, with the inputs injected at installation time. ```APIDOC ## POST /installConfigurationManifest ### Description Installs the given manifest in the provided organization, with the inputs injected at installation time (if the manifest is parameterized). ### Method POST ### Endpoint /installConfigurationManifest ### Parameters #### Request Body - **input** (InstallConfigurationManifestInput!) - Required - The input object containing installation parameters. ### Request Example { "input": { "manifestId": "string", "organizationId": "string", "parameters": {} } } ### Response #### Success Response (200) - **payload** (InstallConfigurationManifestPayload) - The status of the installation. #### Response Example { "data": { "installConfigurationManifest": { "success": true } } } ``` -------------------------------- ### Install Configuration Manifest Source: https://developers.salsify.com/docs/graphql-schema-overview Installs a given manifest into an organization, injecting inputs if the manifest is parameterized. ```APIDOC ## POST /websites/developers_salsify/mutation/installConfigurationManifest ### Description Installs the given manifest in the provided organization, with the inputs injected at installation time (if the manifest is parameterized). ### Method POST ### Endpoint /websites/developers_salsify/mutation/installConfigurationManifest ### Parameters #### Request Body - **input** (InstallConfigurationManifestInput) - Required - Input payload for installing a configuration manifest. ### Request Example ```json { "input": { "manifest_id": "string", "organization_id": "string", "inputs": { "key": "value" } } } ``` ### Response #### Success Response (200) - **installConfigurationManifest** (InstallConfigurationManifestPayload) - The result of the installation operation. #### Response Example ```json { "installConfigurationManifest": { "installation": { "id": "string", "status": "string" } } } ``` ``` -------------------------------- ### POST /installConfigurationManifest Source: https://developers.salsify.com/reference/configuration-manifests-overview Installs a configuration manifest into a target organization. ```APIDOC ## POST /installConfigurationManifest ### Description Installs a configuration manifest into a specified organization. Requires the user to be a member of both the manifest account and the target organization. ### Method POST ### Request Body - **manifest_id** (string) - Required - The ID of the manifest to install. - **organization_id** (string) - Required - The target organization ID. - **parameters** (object) - Optional - JSON object containing values for parameterized fields. ### Request Example { "manifest_id": "manifest_123", "organization_id": "org_456", "parameters": { "property_name": "New Property" } } ### Response #### Success Response (200) - **installation_id** (string) - The unique identifier for the installation process. #### Response Example { "installation_id": "inst_789" } ``` -------------------------------- ### Complete JSONL Import Example Source: https://developers.salsify.com/docs/json-lines-import-format A comprehensive example showing a valid import file including a header, property definitions, enumerated values, digital assets, and a record entry. ```json { "salsify:entity_type": "header", "version": "1", "scope": "all" } { "salsify:entity_type": "property", "salsify:id": "SKU", "salsify:role": "record_id" } { "salsify:entity_type": "property", "salsify:id": "Display Name", "salsify:role": "record_name" } { "salsify:entity_type": "property", "salsify:id": "Type", "salsify:data_type": "enumerated" } { "salsify:entity_type": "enumerated_value", "salsify:id": "Television", "salsify:property_id": "Type" } { "salsify:entity_type": "digital_asset", "salsify:id": "3635065-FRONT-VIEW", "salsify:name": "Sony 40in Bravia TV Front View", "salsify:url": "http://example.com/3635065-FRONT-VIEW.png" } { "salsify:entity_type": "digital_asset", "salsify:id": "3635065-REAR-VIEW", "salsify:name": "Sony 40in Bravia TV Rear View", "salsify:url": "http://example.com/3635065-FRONT-VIEW.png" } { "salsify:entity_type": "record", "SKU": "3635065", "Display Name": "Sony 40 in. Bravia TV", "Type": "Television" } ``` -------------------------------- ### Configuration Manifest Installation Paginated List Source: https://developers.salsify.com/docs/graphql-schema-overview Retrieves a paginated collection of ConfigurationManifestInstallations. ```APIDOC ## GET /websites/developers_salsify/configurationManifestInstallations ### Description Retrieves a paginated collection of ConfigurationManifestInstallations. ### Method GET ### Endpoint /websites/developers_salsify/configurationManifestInstallations ### Parameters #### Query Parameters - **page** (int) - Optional - The page number to retrieve. - **pageSize** (int) - Optional - The number of items per page. ### Response #### Success Response (200) - **entries** (array of ConfigurationManifestInstallation) - The list of configuration manifest installations. - **pageMetadata** (PageMetadata) - Metadata about the pagination. #### Response Example ```json { "entries": [ { "id": "string", "configurationManifestId": "string", "createdAt": "2023-10-27T10:00:00Z", "updatedAt": "2023-10-27T10:00:00Z" } ], "pageMetadata": { "totalCount": 100, "page": 1, "pageSize": 10 } } ``` ``` -------------------------------- ### Example JSON for Bulk Product Creation Source: https://developers.salsify.com/reference/bulk-create-products This JSON snippet demonstrates the structure for adding multiple values to a single property, specifically the 'Tags' property in this example. It also shows basic product identification. ```json { "Product ID":"456", "Product Name":"Product 456", "Material":"plastic", "Tags":["headphones","noise cancelling"] } ``` -------------------------------- ### Batch Bot Data Example (JSON) Source: https://developers.salsify.com/docs/built-in-step-types An example of how to structure individual data items for the Batch Bot. This JSON defines the shape of data that will be collected and passed to the Batch Handler. It uses templating to dynamically extract a 'product_id' from an entity. ```json { "product_id": "{{ entity.id }}" } ``` -------------------------------- ### GET /StoppedConfigurationManifestInstallation Source: https://developers.salsify.com/docs/graphql-schema-overview Retrieves the details of a stopped configuration manifest installation, including timing, user initiation, and status. ```APIDOC ## GET /StoppedConfigurationManifestInstallation ### Description Retrieves the state and metadata of a configuration manifest installation that has been stopped. ### Method GET ### Endpoint /StoppedConfigurationManifestInstallation ### Response #### Success Response (200) - **configurationManifest** (ConfigurationManifest) - The manifest associated with the installation - **configurationManifestVersion** (ConfigurationManifestVersion) - Version of the manifest - **entityTypeInstallations** (ConfigurationManifestEntityTypeInstallation[]) - List of entity type installations - **finishedAt** (Iso8601DateTime) - Timestamp when the process finished - **id** (ID) - Unique identifier - **initiatingUser** (User) - The user who started the installation - **isPending** (Boolean) - Status flag - **startedAt** (Iso8601DateTime) - Timestamp when the process started - **targetOrganization** (Organization) - The target organization for the installation #### Response Example { "id": "12345", "isPending": false, "startedAt": "2023-10-01T10:00:00Z", "finishedAt": "2023-10-01T10:05:00Z" } ``` -------------------------------- ### POST /previewConfigurationManifest Source: https://developers.salsify.com/reference/graphql-schema-overview Renders the given manifest and returns the result, used to preview persisted manifests before installation. ```APIDOC ## POST /previewConfigurationManifest ### Description Renders the given manifest and returns the result, with the inputs injected into the manifest. Primarily used to preview persisted manifests before installation into an organization. ### Method POST ### Endpoint /previewConfigurationManifest ### Parameters #### Request Body - **input** (PreviewConfigurationManifestInput!) - Required - The input object for rendering. ### Request Example { "input": { "manifestId": "string", "version": "string" } } ### Response #### Success Response (200) - **payload** (PreviewConfigurationManifestPayload) - The rendered manifest content. #### Response Example { "data": { "previewConfigurationManifest": { "renderedContent": "..." } } } ``` -------------------------------- ### CompletedConfigurationManifestInstallation Source: https://developers.salsify.com/reference/graphql-schema-overview Represents the details of a completed configuration manifest installation process. ```APIDOC ## CompletedConfigurationManifestInstallation ### Description Provides details regarding the installation of a configuration manifest, including the target organization and initiating user. ### Parameters - **configurationManifest** (ConfigurationManifest) - Optional - The manifest being installed. - **configurationManifestVersion** (ConfigurationManifestVersion) - Optional - The specific version of the manifest. - **entityTypeInstallations** ([ConfigurationManifestEntityTypeInstallation!]!) - Required - List of individual entity type installations. - **finishedAt** (Iso8601DateTime!) - Required - Completion timestamp. - **id** (ID!) - Required - Unique identifier for the installation. - **initiatingUser** (User) - Optional - The user who triggered the installation. - **isPending** (Boolean!) - Required - Status flag for the installation process. - **startedAt** (Iso8601DateTime!) - Required - Start timestamp. - **targetOrganization** (Organization) - Optional - The organization where the manifest is installed. ``` -------------------------------- ### POST /{org_id}/imports/{import_id}/runs Source: https://developers.salsify.com/reference/starting-an-import-run Starts an import run for a specific organization and import configuration. ```APIDOC ## POST /{org_id}/imports/{import_id}/runs ### Description Triggers a new import run for the specified organization and import ID. This is used to initiate data processing for CSV/Excel imports or mount point configurations. ### Method POST ### Endpoint https://app.salsify.com/api/orgs/{org_id}/imports/{import_id}/runs ### Parameters #### Path Parameters - **org_id** (string) - Required - The Salsify organization's unique identifier. - **import_id** (string) - Required - Identifier for the import run. #### Request Headers - **Authorization** (string) - Required - Bearer token using your User API Key. - **Content-Type** (string) - Required - Must be set to application/json. ### Request Example {} ### Response #### Success Response (201) - **id** (integer) - The unique ID of the import run. - **status** (string) - The current status of the run (e.g., "running"). - **start_time** (string) - ISO 8601 timestamp of when the run started. #### Response Example { "id": 856, "status": "running", "start_time": "2013-10-17T17:56:21.585Z", "import": { "id": 462 } } ``` -------------------------------- ### Failed Configuration Manifest Entity Type Installation Source: https://developers.salsify.com/docs/graphql-schema-overview Represents a failed installation of a configuration manifest entity type. Includes details about the entity type, failure reason, and timestamps. ```APIDOC ## FailedConfigurationManifestEntityTypeInstallation ### Description Represents a failed installation of a configuration manifest entity type. Provides details about the entity, the reason for failure, and relevant timestamps. ### Method N/A (This is a type definition, not an endpoint) ### Endpoint N/A ### Parameters N/A ### Response #### Success Response (N/A) - **entityType** (ConfigurationManifestEntityType!) - The type of the entity that failed to install. - **failureReason** (String) - The reason why the installation failed. - **finishedAt** (Iso8601DateTime!) - The timestamp when the installation process finished. - **id** (ID!) - The unique identifier for this failed installation record. - **isPending** (Boolean!) - Indicates if the installation is still pending. - **logFileDownloadUrl** (Url) - A URL to download the log file for this installation attempt. - **startedAt** (Iso8601DateTime!) - The timestamp when the installation process started. #### Response Example ```json { "entityType": "PRODUCT", "failureReason": "Invalid data format", "finishedAt": "2023-10-27T10:00:00Z", "id": "fail-789", "isPending": false, "logFileDownloadUrl": "https://example.com/logs/fail-789.log", "startedAt": "2023-10-27T09:55:00Z" } ``` ``` -------------------------------- ### ConfigurationManifestInstallation Interface Source: https://developers.salsify.com/reference/graphql-schema-overview Represents the application of a manifest into a target organization, tracking the overall installation process. ```APIDOC ## ConfigurationManifestInstallation Interface ### Description Represents an application of manifest into a target organization. Can be used to track the process of installing the manifest into the organization. ### Fields - **configurationManifest** (ConfigurationManifest) - The manifest being installed. - **configurationManifestVersion** (ConfigurationManifestVersion) - The specific version of the manifest being installed. - **entityTypeInstallations** ([ConfigurationManifestEntityTypeInstallation]!) - A list of installations for each entity type. - **id** (ID!) - The unique identifier for this manifest installation. - **initiatingUser** (User) - The user who initiated the installation. - **isPending** (Boolean!) - Indicates if the installation is currently pending. - **startedAt** (Iso8601DateTime!) - The timestamp when the installation process started. - **targetOrganization** (Organization) - The organization where the manifest is being installed. ``` -------------------------------- ### POST /imports/{id}/run Source: https://developers.salsify.com/reference/starting-an-import-run Triggers an existing import configuration to begin processing data. ```APIDOC ## POST /imports/{id}/run ### Description Starts an import process for a pre-configured import in Salsify. Ensure the import is configured before calling this endpoint. ### Method POST ### Endpoint /imports/{id}/run ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the import configuration. ### Request Example POST /imports/123/run ### Response #### Success Response (201) - **status** (string) - Indicates that the import has successfully started. #### Error Response (422) - **errors** (array) - List of error messages, such as "Your import queue is full. Please wait until an import finishes to queue another". #### Response Example { "errors": ["Your import queue is full. Please wait until an import finishes to queue another"] } ``` -------------------------------- ### CompletedConfigurationManifestEntityTypeInstallation Source: https://developers.salsify.com/reference/graphql-schema-overview Details regarding the installation status of a configuration manifest entity type. ```APIDOC ## GET /installations/{id} ### Description Retrieves the status of a configuration manifest entity type installation. ### Method GET ### Endpoint /installations/{id} ### Response #### Success Response (200) - **entityType** (ConfigurationManifestEntityType) - The type of entity installed. - **finishedAt** (Iso8601DateTime) - Completion timestamp. - **id** (ID) - Unique identifier. - **isPending** (Boolean) - Installation status. - **logFileDownloadUrl** (Url) - URL to download installation logs. - **startedAt** (Iso8601DateTime) - Start timestamp. ``` -------------------------------- ### POST /installConfigurationManifest Source: https://developers.salsify.com/reference/graphql-schema-overview This mutation installs a configuration manifest into a specified account. It supports version selection and cross-account operations. ```APIDOC ## POST /installConfigurationManifest ### Description Installs a configuration manifest for a specific account. Allows for versioning and selective entity installation. ### Method POST ### Endpoint /installConfigurationManifest ### Request Body - **accountId** (ID) - Required - Account of the manifest being installed - **configurationManifestVersionNumber** (Int) - Optional - Version of manifest to install. Defaults to latest version - **entityTypeSelection** (ConfigurationManifestInstallationEntityTypeSelectionInput) - Optional - Entity types to install. Defaults to all entity types - **id** (ID) - Required - Unique identifier - **organizationId** (ID) - Required - Organization identifier - **parameterInputs** (Json) - Optional - Additional parameters - **targetAccountId** (ID) - Optional - Account of the organization referenced by organizationId. Required for cross-account operations ### Request Example { "accountId": "acc_123", "id": "manifest_001", "organizationId": "org_999" } ``` -------------------------------- ### FailedConfigurationManifestInstallation Source: https://developers.salsify.com/reference/graphql-schema-overview Represents a failed installation of a configuration manifest. ```APIDOC ## FailedConfigurationManifestInstallation ### Description Represents a failed installation of a configuration manifest. ### Method N/A (This is a data structure definition) ### Endpoint N/A ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body * **configurationManifest** (ConfigurationManifest) - Optional - The configuration manifest that failed to install. * **configurationManifestVersion** (ConfigurationManifestVersion) - Optional - The version of the configuration manifest that failed to install. * **entityTypeInstallations** (Array of ConfigurationManifestEntityTypeInstallation) - Required - A list of entity type installations that failed. * **finishedAt** (Iso8601DateTime) - Required - The timestamp when the installation finished. * **id** (ID) - Required - The unique identifier for the installation. * **initiatingUser** (User) - Optional - The user who initiated the installation. * **isPending** (Boolean) - Required - Indicates if the installation is still pending. * **startedAt** (Iso8601DateTime) - Required - The timestamp when the installation started. * **targetOrganization** (Organization) - Optional - The organization where the installation was attempted. ### Request Example ```json { "configurationManifest": {"id": "cm_abc"}, "configurationManifestVersion": {"versionNumber": 1}, "entityTypeInstallations": [ {"entityType": "product", "status": "failed"} ], "finishedAt": "2023-10-27T11:00:00Z", "id": "install_xyz", "initiatingUser": {"username": "testuser"}, "isPending": false, "startedAt": "2023-10-27T10:30:00Z", "targetOrganization": {"name": "Acme Corp"} } ``` ### Response #### Success Response (200) * **configurationManifest** (ConfigurationManifest) - The configuration manifest that failed to install. * **configurationManifestVersion** (ConfigurationManifestVersion) - The version of the configuration manifest that failed to install. * **entityTypeInstallations** (Array of ConfigurationManifestEntityTypeInstallation) - A list of entity type installations that failed. * **finishedAt** (Iso8601DateTime) - The timestamp when the installation finished. * **id** (ID) - The unique identifier for the installation. * **initiatingUser** (User) - The user who initiated the installation. * **isPending** (Boolean) - Indicates if the installation is still pending. * **startedAt** (Iso8601DateTime) - The timestamp when the installation started. * **targetOrganization** (Organization) - The organization where the installation was attempted. #### Response Example ```json { "configurationManifest": {"id": "cm_abc"}, "configurationManifestVersion": {"versionNumber": 1}, "entityTypeInstallations": [ {"entityType": "product", "status": "failed"} ], "finishedAt": "2023-10-27T11:00:00Z", "id": "install_xyz", "initiatingUser": {"username": "testuser"}, "isPending": false, "startedAt": "2023-10-27T10:30:00Z", "targetOrganization": {"name": "Acme Corp"} } ``` ``` -------------------------------- ### Querying Configuration Manifests Source: https://developers.salsify.com/reference/configuration-manifests-overview Retrieve configuration manifests and their installations within an account using GraphQL queries. ```APIDOC ## Querying for Configuration Manifests Users can query for configuration manifests and installations within an account using the following GraphQL APIs: * `Account.configurationManifest` * `Account.configurationManifests` * `Account.configurationManifestInstallations`: Returns installations of configuration manifests within the account (based on the target organization's account) ``` -------------------------------- ### Example JSON Response for Latest Product Feed Source: https://developers.salsify.com/docs/integration-with-salsify This is an example of the JSON response received when requesting the latest product feed. It includes the status of the feed run, timestamps, and importantly, the `product_export_url` which points to the actual product data. ```json { "id": 123456, "status": "completed", "started_at": "2016-01-21T13:42:41.336Z", "ended_at": "2016-01-21T13:42:48.916Z", "product_export_url": "https://salsify.s3-external-1.amazonaws.com/export.json", "digital_asset_file_export_url": null, "product_export_stats": null, "export_status": "completed", "delivery_status": null, "external_processing_status": null, "notification_status": "completed", "progress": { "stages": ["export", "deliver", "external_processing", "notify"], "stage": null, "stage_time_remaining": 0, "stage_status": "completed" } } ``` -------------------------------- ### Fetch Resource via GET Request Source: https://developers.salsify.com/docs/workflow-templating Fetches a resource from a URL using an HTTP GET request. This is useful for retrieving raw data or content from an endpoint. ```javascript !js get_resource('https://dummyjson.com/quotes/1') ``` -------------------------------- ### POST /websites/developers_salsify/imports/json/mount_point Source: https://developers.salsify.com/reference/creating-a-json-import-from-a-mount-point Creates a JSON import in Salsify by specifying the location of the JSON file on a mount point. This action prepares the import but does not start the import run. ```APIDOC ## POST /websites/developers_salsify/imports/json/mount_point ### Description Creates a JSON import in Salsify by specifying the location of the JSON file on a mount point. This action prepares the import but does not start the import run. ### Method POST ### Endpoint /websites/developers_salsify/imports/json/mount_point ### Parameters #### Query Parameters - **mount_point** (string) - Required - The path to the JSON file on the mount point. ### Request Body This endpoint does not require a request body. ### Response #### Success Response (201) - **id** (string) - The unique identifier of the created import. #### Response Example ```json { "id": "imp_abc123xyz789" } ``` ``` -------------------------------- ### CompletedConfigurationManifestInstallation Object Source: https://developers.salsify.com/docs/graphql-schema-overview Represents the details of a completed configuration manifest installation, including the target organization and initiating user. ```APIDOC ## GET /configuration/installation ### Description Retrieves the full details of a completed configuration manifest installation, including the list of entity type installations. ### Method GET ### Endpoint /configuration/installation ### Response #### Success Response (200) - **configurationManifest** (ConfigurationManifest) - Optional - The manifest being installed. - **configurationManifestVersion** (ConfigurationManifestVersion) - Optional - The version of the manifest. - **entityTypeInstallations** ([ConfigurationManifestEntityTypeInstallation!]) - Required - List of individual entity type installations. - **finishedAt** (Iso8601DateTime) - Required - Timestamp when the installation finished. - **id** (ID) - Required - Unique identifier. - **initiatingUser** (User) - Optional - The user who triggered the installation. - **isPending** (Boolean) - Required - Status indicating if the installation is pending. - **startedAt** (Iso8601DateTime) - Required - Timestamp when the installation started. - **targetOrganization** (Organization) - Optional - The organization where the installation occurred. ``` -------------------------------- ### Preview Configuration Manifest Source: https://developers.salsify.com/docs/graphql-schema-overview Renders a manifest with injected inputs, primarily for previewing persisted manifests before installation. ```APIDOC ## POST /websites/developers_salsify/mutation/previewConfigurationManifest ### Description Renders the given manifest and returns the result, with the inputs injected into the manifest. Primarily used to preview persisted manifests before installation into an organization. ### Method POST ### Endpoint /websites/developers_salsify/mutation/previewConfigurationManifest ### Parameters #### Request Body - **input** (PreviewConfigurationManifestInput) - Required - Input payload for previewing a configuration manifest. ### Request Example ```json { "input": { "manifest_id": "string", "inputs": { "key": "value" } } } ``` ### Response #### Success Response (200) - **previewConfigurationManifest** (PreviewConfigurationManifestPayload) - The rendered result of the manifest. #### Response Example ```json { "previewConfigurationManifest": { "rendered_manifest": "string" } } ``` ``` -------------------------------- ### Example Custom Record Data Structure Source: https://developers.salsify.com/reference/bulk-read-records-report This snippet illustrates the expected JSON output format for a custom record, including system identifiers and manufacturer metadata. ```json { "salsify:system_id": "s-644e6dde-16c9-49cd-8adb-757a0a73ee7f", "Manufacturer": "Wildflower Imports, Inc." } ``` -------------------------------- ### GET /products Source: https://developers.salsify.com/reference/bulk-create-products Retrieves a list of products for a given organization, including system metadata and product attributes. ```APIDOC ## GET /products ### Description Retrieves an array of product records for the specified organization. The response includes system-generated metadata and product attributes, including any computed properties. ### Method GET ### Endpoint /products ### Parameters #### Query Parameters - **org_id** (string) - Required - The unique identifier for the organization (e.g., s-999-999-999-999) - **api_token** (string) - Required - The authentication token for the request ### Request Example GET /products?org_id=s-999-999-999-999 ### Response #### Success Response (200) - **salsify:id** (string) - Internal Salsify product ID - **salsify:system_id** (string) - System-wide unique product identifier - **Product ID** (string) - The user-facing product identifier - **Product Name** (string) - The name of the product - **Manufacturer** (string) - Computed property representing the manufacturer #### Response Example [ { "salsify:id": "123", "salsify:system_id": "s-dcc60f6b-4003-4a2c-b89e-cf38040015ae", "Product ID": "123", "Product Name": "Product 123", "Manufacturer": "Wildflower Imports, Inc." } ] ``` -------------------------------- ### GET /accounts/configurationManifests Source: https://developers.salsify.com/reference/graphql-schema-overview Retrieves a paginated list of configuration manifests associated with the account. ```APIDOC ## GET /accounts/configurationManifests ### Description Retrieves a paginated list of configuration manifests available for the account. ### Method GET ### Endpoint /accounts/configurationManifests ### Parameters #### Query Parameters - **pagination** (PaginationInput) - Optional - Pagination settings for the result set. ### Response #### Success Response (200) - **configurationManifests** (ConfigurationManifestPaginatedList) - A paginated list of configuration manifests. ### Response Example { "configurationManifests": { "items": [], "pageInfo": {} } } ``` -------------------------------- ### InstallConfigurationManifestInput Source: https://developers.salsify.com/docs/graphql-schema-overview Autogenerated input type for the installConfigurationManifest mutation. It defines the parameters required to install a configuration manifest. ```APIDOC ## InstallConfigurationManifestInput ### Description Autogenerated input type for the installConfigurationManifest mutation. ### Parameters #### Request Body - **accountId** (ID!) - Required - Account of the manifest being installed. - **configurationManifestVersionNumber** (Int) - Optional - Version of manifest to install. Defaults to latest version. - **entityTypeSelection** (ConfigurationManifestInstallationEntityTypeSelectionInput) - Optional - Entity types to install. Defaults to all entity types. - **id** (ID!) - Required - - **organizationId** (ID!) - Required - - **parameterInputs** (Json) - Optional - - **targetAccountId** (ID) - Optional - Account of the organization referenced by `organizationId`. Defaults to the value of `accountId`. Required for cross-account operations. ### Request Example ```json { "accountId": "some-account-id", "configurationManifestVersionNumber": 1, "entityTypeSelection": {}, "id": "some-id", "organizationId": "some-org-id", "parameterInputs": {}, "targetAccountId": "some-target-account-id" } ``` ### Response #### Success Response (200) - **message** (String) - A success message. #### Response Example ```json { "message": "Configuration manifest installed successfully." } ``` ``` -------------------------------- ### API Response Examples Source: https://developers.salsify.com/reference/read-multiple-properties-report Examples of JSON responses returned by the API. Includes a successful 200 OK response containing property metadata and a 422 Unprocessable Entity error response when exceeding the 100-property limit. ```json [ { "salsify:id":"Aspect ratio", "salsify:name":"Aspect ratio", "salsify:data_type":"string", "salsify:entity_types":[], "salsify:is_facetable":true, "salsify:attribute_group":"Unassigned", "salsify:position":null, "salsify:help_text":null, "salsify:manage_permissions":null, "salsify:read_permissions":null, "salsify:hidden_permissions":null, "salsify:created_at":"2017-03-03T17:06:31.314Z", "salsify:updated_at":"2017-03-03T17:06:31.314Z", "salsify:system_id":"s-999-999-999-999" }, { "salsify:id":"Batteries", "salsify:name":"Batteries", "salsify:data_type":"string", "salsify:entity_types":["products"], "salsify:is_facetable":true, "salsify:attribute_group":"Unassigned", "salsify:position":null, "salsify:help_text":null, "salsify:manage_permissions":null, "salsify:read_permissions":null, "salsify:hidden_permissions":null, "salsify:created_at":"2017-03-03T17:06:31.314Z", "salsify:updated_at":"2017-03-03T17:06:31.314Z", "salsify:system_id":"s-999-999-999-999" } ] ``` ```json {"errors":["No more than 100 entities are supported at once"]} ``` -------------------------------- ### POST /StoppedConfigurationManifestEntityTypeInstallation Source: https://developers.salsify.com/reference/graphql-schema-overview Handles the final status of a stopped configuration manifest entity type installation. ```APIDOC ## POST /StoppedConfigurationManifestEntityTypeInstallation ### Description Records the details of an entity type installation that has been stopped. ### Method POST ### Endpoint /StoppedConfigurationManifestEntityTypeInstallation ### Request Body - **cancelReason** (String) - Optional - Reason for cancellation. - **entityType** (ConfigurationManifestEntityType!) - Required - The entity type involved. - **finishedAt** (Iso8601DateTime!) - Required - Completion timestamp. - **id** (ID!) - Required - Unique identifier. - **isPending** (Boolean!) - Required - Status indicator. - **startedAt** (Iso8601DateTime!) - Required - Start timestamp. ``` -------------------------------- ### GET /products Source: https://developers.salsify.com/reference/bulk-read-products Retrieves a paginated list of products from the organization based on optional filter criteria. ```APIDOC ## GET /products ### Description Retrieves products from a Salsify organization based on a filter. If an empty filter is provided, it returns all products in the organization. ### Method GET ### Endpoint /products ### Parameters #### Query Parameters - **filter** (string) - Optional - A filter expression to narrow down the products returned. - **per_page** (integer) - Optional - Number of results per page (max 100). - **page** (integer) - Optional - The page number to retrieve (limited to a maximum of 10,000 total results). ### Request Example GET /products?filter=category:electronics&per_page=50&page=1 ### Response #### Success Response (200) - **products** (array) - A list of product objects containing system properties, property values, references, and digital assets. - **total_results** (integer) - The total number of products matching the filter. - **per_page** (integer) - The number of results per page requested. - **page** (integer) - The current page number. #### Response Example { "total_results": 150, "per_page": 50, "page": 1, "products": [ { "product_id": "prod_001", "properties": { "name": "Example Product", "sku": "SKU-123" }, "references": [], "digital_assets": [] } ] } ``` -------------------------------- ### FailedConfigurationManifestInstallation Source: https://developers.salsify.com/docs/graphql-schema-overview Represents a failed installation of a configuration manifest, including metadata about the target and initiating user. ```APIDOC ## FailedConfigurationManifestInstallation ### Description Provides information about a failed configuration manifest installation process. ### Parameters - **configurationManifest** (ConfigurationManifest) - Optional - The manifest being installed. - **entityTypeInstallations** ([ConfigurationManifestEntityTypeInstallation!]) - Required - List of failed entity type installations. - **finishedAt** (Iso8601DateTime) - Required - Completion timestamp. - **id** (ID) - Required - Unique identifier. - **initiatingUser** (User) - Optional - The user who triggered the installation. - **isPending** (Boolean) - Required - Status flag. - **startedAt** (Iso8601DateTime) - Required - Start timestamp. - **targetOrganization** (Organization) - Optional - The organization targeted by the installation. ### Response Example { "id": "inst-99", "isPending": false, "startedAt": "2023-10-01T12:00:00Z", "finishedAt": "2023-10-01T12:10:00Z" } ``` -------------------------------- ### GET /products Source: https://developers.salsify.com/reference/bulk-read-products Retrieves a list of products within a specified organization. Supports filtering, pagination, and sorting. ```APIDOC ## GET /{org_id}/products ### Description Retrieves a list of products within a specified organization. Supports filtering, pagination, and sorting. ### Method GET ### Endpoint https://app.salsify.com/api/v1/orgs/{org_id}/products ### Parameters #### Path Parameters - **org_id** (string) - Required - Salsify organization's unique identifier. Visit your Salsify organization and pull from the URL path, immediately following /orgs/ #### Query Parameters - **filter** (string) - Optional - Limit the scope of products returned from the endpoint. Details on how to build filters are available [here](https://developers.salsify.com/reference/salsify-filtering-language-syntax) - **page** (integer) - Optional - Page number - **per_page** (integer) - Optional - Number of results per page (defaults to null) ### Request Example ```json { "example": "" } ``` ### Response #### Success Response (200) - **data** (array) - An array of product objects. - **salsify:id** (string) - The unique identifier for the product. - **Name** (string) - The name of the product. - **meta** (object) - Metadata about the response. - **per_page** (integer) - The number of results per page. - **cursor** - Placeholder for cursor information. - **total_entries** (integer) - The total number of entries found. - **current_page** (integer) - The current page number. #### Response Example ```json { "data": [ { "salsify:id": "4a4393f6-54d7-4963-a3c0-b3a083c2440c", "Name": "My Product" } ], "meta": { "per_page": 100, "cursor": null, "total_entries": 1, "current_page": 1 } } ``` #### Empty Response Example ```json { "data": [], "meta": { "per_page": 100, "cursor": null, "total_entries": 0 } } ``` ``` -------------------------------- ### Define Product Records in JSONL Source: https://developers.salsify.com/docs/json-lines-import-format Example of a product record structure, including nested attributes, localized descriptions, and related accessories. ```json { "id": "3635065", "SKU": "3635065", "Model": "KDL-40NX700", "name": "Sony 40 in. Bravia TV", "Brand": "Sony", "Aspect Ratio": "16:9", "Description": { "en-US": ["english description 1", "english description 2"], "pt-PT": "descrição em português", "fr-FR": "descriptif français" }, "Accessories": [ { "salsify:product_id": "Bravia TV Remote", "salsify:quantity": 1 }, { "salsify:product_id": "AAA Battery", "salsify:quantity": 2 } ], "Release Date": "10-19-2010" } ``` -------------------------------- ### Data Model: StoppedConfigurationManifestInstallation Source: https://developers.salsify.com/reference/graphql-schema-overview Represents the state and metadata of a stopped configuration manifest installation process. ```APIDOC ## StoppedConfigurationManifestInstallation ### Description Represents a configuration manifest installation that has been stopped, including timing, user initiation, and target organization details. ### Fields - **configurationManifest** (ConfigurationManifest) - The manifest associated with the installation. - **configurationManifestVersion** (ConfigurationManifestVersion) - The version of the manifest. - **entityTypeInstallations** ([ConfigurationManifestEntityTypeInstallation!]!) - List of entity type installations. - **finishedAt** (Iso8601DateTime!) - The timestamp when the installation stopped. - **id** (ID!) - Unique identifier for the installation. - **initiatingUser** (User) - The user who initiated the process. - **isPending** (Boolean!) - Status flag indicating if the installation is pending. - **startedAt** (Iso8601DateTime!) - The timestamp when the installation started. - **targetOrganization** (Organization) - The organization targeted by the installation. ``` -------------------------------- ### GET /export_runs/{export_id} Source: https://developers.salsify.com/reference/get-export-status Retrieves the status of a specific export run within an organization. This endpoint is useful for monitoring the progress and completion of exports initiated via the 'Start Export Run' POST call. ```APIDOC ## GET /{org_id}/export_runs/{export_id} ### Description Retrieves the status of a specific export run. This endpoint is useful for monitoring the progress and completion of exports initiated via the 'Start Export Run' POST call. ### Method GET ### Endpoint `https://app.salsify.com/api/orgs/{org_id}/export_runs/{export_id}` ### Parameters #### Path Parameters - **org_id** (string) - Required - The Salsify organization's unique identifier. Visit your Salsify organization and pull from the URL path, immediately following /orgs/ - **export_id** (string) - Required - The ID for the export you want to retrieve status for. Found in the response from Start Export Run POST call. ### Request Example ```json { "example": "No request body needed for GET request." } ``` ### Response #### Success Response (200) - **id** (integer) - The unique identifier for the export run. - **status** (string) - The current status of the export run (e.g., "completed", "processing", "failed"). - **start_time** (string) - The timestamp when the export run started. - **end_time** (string) - The timestamp when the export run ended. - **duration** (number) - The duration of the export run in seconds. - **url** (string) - The URL to access the downloadable export file upon completion. - **progress** (integer) - The completion percentage of the export run. - **includes_changes_before** (string) - Timestamp indicating changes included before this time. - **failure_reason** (string) - If the export failed, this field contains the reason for failure. - **estimated_time_remaining** (string) - An estimate of the time remaining for the export run. #### Response Example ```json { "id": 19350473, "status": "completed", "start_time": "2019-12-06T19:38:11.753Z", "end_time": "2019-12-06T19:38:15.104Z", "duration": 3.350483, "url": "EXPORT-URL", "progress": 100, "includes_changes_before": "2019-12-06T19:38:07.518Z", "failure_reason": null, "estimated_time_remaining": "" } ``` #### Error Response (400) - **(empty object)** - Indicates a bad request. #### Error Response Example ```json { "example": "{}" } ``` ``` -------------------------------- ### Create Configuration Manifest From File Source: https://developers.salsify.com/docs/graphql-schema-overview Creates a new configuration manifest from a file. ```APIDOC ## POST /websites/developers_salsify/configurationManifests/fromFile ### Description Creates a new configuration manifest from a file. ### Method POST ### Endpoint /websites/developers_salsify/configurationManifests/fromFile ### Parameters #### Request Body - **file** (file) - Required - The configuration manifest file. ### Request Example ``` --boundary Content-Disposition: form-data; name="file"; filename="manifest.yaml" Content-Type: text/yaml # Your manifest content here ``` ### Response #### Success Response (200) - **configurationManifest** (ConfigurationManifest) - The created configuration manifest. - **configurationManifestVersionRequest** (ConfigurationManifestVersionRequest) - The associated version request. #### Response Example ```json { "configurationManifest": { "id": "string", "name": "string", "createdAt": "2023-10-27T10:00:00Z", "updatedAt": "2023-10-27T10:00:00Z" }, "configurationManifestVersionRequest": { "id": "string", "configurationManifestId": "string", "status": "PENDING", "createdAt": "2023-10-27T10:00:00Z" } } ``` ``` -------------------------------- ### Get Export Status (cURL) Source: https://developers.salsify.com/reference/get-export-status This cURL command retrieves the status of a specific export run from the Salsify API. It requires the organization ID, export ID, and an authorization token. The response will contain details about the export's status, start and end times, and a URL if completed. ```curl curl -X GET \ https://app.salsify.com/api/orgs/s-999-999-999-999/export_runs/19350473 \ -H 'Accept: */*' \ -H 'Accept-Encoding: gzip, deflate' \ -H 'Authorization: Bearer YOUR-AUTH-TOKEN' \ -H 'Cache-Control: no-cache' \ -H 'Connection: keep-alive' \ -H 'Content-Type: application/json' \ -H 'Cookie: _cookie_id' \ -H 'Host: app.salsify.com' \ -H 'User-Agent: PostmanRuntime/7.19.0' \ -H 'cache-control: no-cache' # where export_id = 19350473 org_id = s-999-999-999-999, api_token = YOUR-AUTH-TOKEN, cookie id = _cookie_id ``` -------------------------------- ### Starts With Operator Example Source: https://developers.salsify.com/reference/salsify-filtering-language-syntax Filters entities where a string property begins with a provided substring. The search is case-insensitive and the operator is available for String, Link, Rich Text, and HTML properties. ```salsify ='MyPropertyString':starts_with('Sal') ``` -------------------------------- ### Bulk Delete Properties Implementation Source: https://developers.salsify.com/reference/bulk-delete-properties Examples demonstrating how to perform a bulk delete operation on Salsify properties using various programming languages. ```curl curl -X DELETE \ https://app.salsify.com/api/v1/orgs/s-999-999-999-999/properties \ -H 'Authorization: Bearer YOUR-AUTH-TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "ids": [ "delete-property-id", "test_ID" ] }' ``` ```ruby require 'uri' require 'net/http' url = URI("https://app.salsify.com/api/v1/orgs/s-999-999-999-999/properties/delete-property-id") http = Net::HTTP.new(url.host, url.port) request = Net::HTTP::Delete.new(url) request["Authorization"] = 'Bearer YOUR-AUTH-TOKEN' response = http.request(request) puts response.read_body ``` ```python import http.client conn = http.client.HTTPConnection("app.salsify.com") headers = { 'Authorization': "Bearer YOUR-AUTH-TOKEN", } conn.request("DELETE", "api/v1/orgs/s-999-999-999-999/properties/delete-property-id", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.