Create a destination server configuration

Creating a destination server is the first step in creating your own destination with Destination SDK. The destination server includes configuration options for the server and templating specs, the message format, and the file formatting options (for file-based destinations).

This page exemplifies the API request and payload that you can use to create your own destination server using the /authoring/destination-servers API endpoint.

For a detailed description of the capabilities that you can configure through this endpoint, read the following articles:

IMPORTANT
All parameter names and values supported by Destination SDK are case sensitive. To avoid case sensitivity errors, please use the parameters names and values exactly as shown in the documentation.

Getting started with destination server API operations get-started

Before continuing, please review the getting started guide for important information that you need to know in order to successfully make calls to the API, including how to obtain the required destination authoring permission and required headers.

Create a destination server configuration create

You can create a new destination server configuration by making a POST request to the /authoring/destination-servers endpoint.

TIP
API endpoint: platform.adobe.io/data/core/activation/authoring/destination-servers

API format

POST /authoring/destination-servers

Depending on the destination type that you create, you need to configure a slightly different type of destination server.

Create static schema destination servers static-destination-servers

See in the tabs below examples of destination servers for destinations which use static schemas.

The sample payloads below include all parameters supported by each destination server type. You do not need to include all the parameters in your request. The payload is customizable based on your needs.

Select each tab below to view the corresponding API requests.

Real-time (streaming)

Create a real-time (streaming) destination server

You need to create a real-time (streaming) destination server similar to the one shown below when you configure a real-time (streaming) API-based integration.

accordion
Request
code language-shell
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '
{
   "name":"Moviestar destination server",
   "destinationServerType":"URL_BASED",
   "urlBasedDestination":{
      "url":{
         "templatingStrategy":"PEBBLE_V1",
         "value":"https://api.moviestar.com/data/{{customerData.region}}/items"
      }
   },
   "httpTemplate":{
      "httpMethod":"POST",
      "requestBody":{
         "templatingStrategy":"PEBBLE_V1",
         "value":"{ \"attributes\": [ {% for ns in [\"external_id\", \"yourdestination_id\"] %} {% if input.profile.identityMap[ns] is not empty and first_namespace_encountered %} , {% endif %} {% set first_namespace_encountered = true %} {% for identity in input.profile.identityMap[ns]%} { \"{{ ns }}\": \"{{ identity.id }}\" {% if input.profile.segmentMembership.ups is not empty %} , \"AEPSegments\": { \"add\": [ {% for segment in input.profile.segmentMembership.ups %} {% if segment.value.status == \"realized\" or segment.value.status == \"existing\" %} {% if added_segment_found %} , {% endif %} {% set added_segment_found = true %} \"{{ destination.segmentAliases[segment.key] }}\" {% endif %} {% endfor %} ], \"remove\": [ {% for segment in input.profile.segmentMembership.ups %} {% if segment.value.status == \"exited\" %} {% if removed_segment_found %} , {% endif %} {% set removed_segment_found = true %} \"{{ destination.segmentAliases[segment.key] }}\" {% endif %} {% endfor %} ] } {% set removed_segment_found = false %} {% set added_segment_found = false %} {% endif %} {% if input.profile.attributes is not empty %} , {% endif %} {% for attribute in input.profile.attributes %} \"{{ attribute.key }}\": {% if attribute.value is empty %} null {% else %} \"{{ attribute.value.value }}\" {% endif %} {% if not loop.last%} , {% endif %} {% endfor %} } {% if not loop.last %} , {% endif %} {% endfor %} {% endfor %} ] }"
      },
      "contentType":"application/json"
   }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 8-row-3 layout-auto
Parameter Type Description
name String Required. Represents a friendly name of your server, visible only to Adobe. This name is not visible to partners or customers. Example Moviestar destination server.
destinationServerType String Required. Set to URL_BASED for real-time (streaming) destinations.
urlBasedDestination.url.templatingStrategy String

Required.

  • Use PEBBLE_V1 if Adobe needs to transform the URL in the value field below. Use this option if you have an endpoint like https://api.moviestar.com/data/{{customerData.region}}/items, where the region part can differ between customers. In this case you also need to configure region as a customer data field in the [destination configuration](…/destination-configuration/create-destination-configuration.md.
  • Use NONE if no transformation is needed on the Adobe side, for example if you have an endpoint like: https://api.moviestar.com/data/items.
urlBasedDestination.url.value String Required. Fill in the address of the API endpoint that Experience Platform should connect to.
httpTemplate.httpMethod String Required. The method that Adobe will use in calls to your server. Options are GET, PUT, POST, DELETE, PATCH.
httpTemplate.requestBody.templatingStrategy String Required. Use PEBBLE_V1.
httpTemplate.requestBody.value String

Required. This string is the character-escaped version that transforms the data of Platform customers to the format your service expects.

httpTemplate.contentType String Required. The content type that your server accepts. This value is most likely application/json.
accordion
Response
A successful response returns HTTP status 200 with details of your newly created destination server configuration.
Amazon S3

Create an Amazon S3 destination server

You need to create an Amazon S3 destination server similar to the one shown below when you configure a file-based Amazon S3 destination.

accordion
Request
code language-shell
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '
{
    "name": "S3 destination",
    "destinationServerType": "FILE_BASED_S3",
    "fileBasedS3Destination": {
        "bucket": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.bucket}}"
        },
        "path": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.path}}"
        }
    },
    "fileConfigurations": {
        "compression": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.compression}}"
        },
        "fileType": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.fileType}}"
        },
        "csvOptions": {
            "quote": {
                "templatingStrategy": "NONE",
                "value": "\""
            },
            "quoteAll": {
                "templatingStrategy": "NONE",
                "value": "false"
            },
            "escape": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "escapeQuotes": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "header": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreLeadingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreTrailingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "nullValue": {
                "templatingStrategy": "NONE",
                "value": ""
            },
            "dateFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd"
            },
            "timestampFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
            },
            "charToEscapeQuoteEscaping": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "emptyValue": {
                "templatingStrategy": "NONE",
                "value": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 layout-auto
Parameter Type Description
name String The name of your destination connection.
destinationServerType String Set this value according to your destination platform. For Amazon S3, set this to FILE_BASED_S3.
fileBasedS3Destination.bucket.templatingStrategy String Required. Use PEBBLE_V1.
fileBasedS3Destination.bucket.value String The name of the Amazon S3 bucket to be used by this destination.
fileBasedS3Destination.path.templatingStrategy String Required. Use PEBBLE_V1.
fileBasedS3Destination.path.value String The path to the destination folder that will host the exported files.
fileConfigurations N/A See file formatting configuration for detailed information on how to configure these settings.
accordion
Response
A successful response returns HTTP status 200 with details of your newly created destination server configuration.
SFTP

Create an SFTP destination server

You need to create an SFTP destination server similar to the one shown below when you configure a file-based SFTP destination.

accordion
Request
code language-shell
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '
{
   "name":"File-based SFTP destination server",
   "destinationServerType":"FILE_BASED_SFTP",
   "fileBasedSFTPDestination":{
      "rootDirectory":{
         "templatingStrategy":"PEBBLE_V1",
         "value":"{{customerData.rootDirectory}}"
      },
      "port": 22,
      "encryptionMode" : "PGP"
   },
    "fileConfigurations": {
        "compression": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.compression}}"
        },
        "fileType": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.fileType}}"
        },
        "csvOptions": {
            "quote": {
                "templatingStrategy": "NONE",
                "value": "\""
            },
            "quoteAll": {
                "templatingStrategy": "NONE",
                "value": "false"
            },
            "escape": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "escapeQuotes": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "header": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreLeadingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreTrailingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "nullValue": {
                "templatingStrategy": "NONE",
                "value": ""
            },
            "dateFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd"
            },
            "timestampFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
            },
            "charToEscapeQuoteEscaping": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "emptyValue": {
                "templatingStrategy": "NONE",
                "value": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 8-row-3 9-row-3 layout-auto
Parameter Type Description
name String The name of your destination connection.
destinationServerType String Set this value according to your destination platform. For SFTP destinations, set this to FILE_BASED_SFTP.
fileBasedSFTPDestination.rootDirectory.templatingStrategy String Required. Use PEBBLE_V1.
fileBasedSFTPDestination.rootDirectory.value String The root directory of the destination storage.
fileBasedSFTPDestination.hostName.templatingStrategy String Required. Use PEBBLE_V1.
fileBasedSFTPDestination.hostName.value String The host name of the destination storage.
port Integer The SFTP file server port.
encryptionMode String

Indicates whether to use file encryption. Supported values:

  • PGP
  • None
fileConfigurations N/A See file formatting configuration for detailed information on how to configure these settings.
accordion
Response
A successful response returns HTTP status 200 with details of your newly created destination server configuration.
Azure Data Lake Storage

Create an Azure Data Lake Storage destination server

You need to create an Azure Data Lake Storage destination server similar to the one shown below when you configure a file-based Azure Data Lake Storage destination.

accordion
Request
code language-shell
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '
{
   "name":"ADLS destination server",
   "destinationServerType":"FILE_BASED_ADLS_GEN2",
   "fileBasedAdlsGen2Destination":{
      "path":{
         "templatingStrategy":"PEBBLE_V1",
         "value":"{{customerData.path}}"
      }
   },
  "fileConfigurations": {
        "compression": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.compression}}"
        },
        "fileType": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.fileType}}"
        },
        "csvOptions": {
            "quote": {
                "templatingStrategy": "NONE",
                "value": "\""
            },
            "quoteAll": {
                "templatingStrategy": "NONE",
                "value": "false"
            },
            "escape": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "escapeQuotes": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "header": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreLeadingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreTrailingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "nullValue": {
                "templatingStrategy": "NONE",
                "value": ""
            },
            "dateFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd"
            },
            "timestampFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
            },
            "charToEscapeQuoteEscaping": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "emptyValue": {
                "templatingStrategy": "NONE",
                "value": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 layout-auto
Parameter Type Description
name String The name of your destination connection.
destinationServerType String Set this value according to your destination platform. For Azure Data Lake Storage destinations, set this to FILE_BASED_ADLS_GEN2.
fileBasedAdlsGen2Destination.path.templatingStrategy String Required. Use PEBBLE_V1.
fileBasedAdlsGen2Destination.path.value String The path to the destination folder that will host the exported files.
fileConfigurations N/A See file formatting configuration for detailed information on how to configure these settings.
accordion
Response
A successful response returns HTTP status 200 with details of your newly created destination server configuration.
Azure Blob Storage

Create an Azure Blob Storage destination server

You need to create an Azure Blob Storage destination server similar to the one shown below when you configure a file-based Azure Blob Storage destination.

accordion
Request
code language-shell
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '
{
   "name":"Blob destination server",
   "destinationServerType":"FILE_BASED_AZURE_BLOB",
   "fileBasedAzureBlobDestination":{
      "path":{
         "templatingStrategy":"PEBBLE_V1",
         "value":"{{customerData.path}}"
      },
      "container":{
         "templatingStrategy":"PEBBLE_V1",
         "value":"{{customerData.container}}"
      }
   },
  "fileConfigurations": {
        "compression": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.compression}}"
        },
        "fileType": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.fileType}}"
        },
        "csvOptions": {
            "quote": {
                "templatingStrategy": "NONE",
                "value": "\""
            },
            "quoteAll": {
                "templatingStrategy": "NONE",
                "value": "false"
            },
            "escape": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "escapeQuotes": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "header": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreLeadingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreTrailingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "nullValue": {
                "templatingStrategy": "NONE",
                "value": ""
            },
            "dateFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd"
            },
            "timestampFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
            },
            "charToEscapeQuoteEscaping": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "emptyValue": {
                "templatingStrategy": "NONE",
                "value": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 layout-auto
Parameter Type Description
name String The name of your destination connection.
destinationServerType String Set this value according to your destination platform. For Azure Blob Storage destinations, set this to FILE_BASED_AZURE_BLOB.
fileBasedAzureBlobDestination.path.templatingStrategy String Required. Use PEBBLE_V1.
fileBasedAzureBlobDestination.path.value String The path to the destination folder that will host the exported files.
fileBasedAzureBlobDestination.container.templatingStrategy String Required. Use PEBBLE_V1.
fileBasedAzureBlobDestination.container.value String The name of the Azure Blob Storage container to be used by this destination.
fileConfigurations N/A See file formatting configuration for detailed information on how to configure these settings.
accordion
Response
A successful response returns HTTP status 200 with details of your newly created destination server configuration.
Data Landing Zone (DLZ)

Create a Data Landing Zone (DLZ) destination server

You need to create a Data Landing Zone (DLZ) destination server similar to the one shown below when you configure a file-based Data Landing Zone (DLZ) destination.

accordion
Request
code language-shell
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '
{
   "name":"DLZ destination server",
   "destinationServerType":"FILE_BASED_DLZ",
   "fileBasedDlzDestination":{
      "path":{
         "templatingStrategy":"PEBBLE_V1",
         "value":"{{customerData.path}}"
      },
      "useCase": "Your use case"
   },
   "fileConfigurations": {
        "compression": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.compression}}"
        },
        "fileType": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.fileType}}"
        },
        "csvOptions": {
            "quote": {
                "templatingStrategy": "NONE",
                "value": "\""
            },
            "quoteAll": {
                "templatingStrategy": "NONE",
                "value": "false"
            },
            "escape": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "escapeQuotes": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "header": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreLeadingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreTrailingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "nullValue": {
                "templatingStrategy": "NONE",
                "value": ""
            },
            "dateFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd"
            },
            "timestampFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
            },
            "charToEscapeQuoteEscaping": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "emptyValue": {
                "templatingStrategy": "NONE",
                "value": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 layout-auto
Parameter Type Description
name String The name of your destination connection.
destinationServerType String Set this value according to your destination platform. For Data Landing Zone destinations, set this to FILE_BASED_DLZ.
fileBasedDlzDestination.path.templatingStrategy String Required. Use PEBBLE_V1.
fileBasedDlzDestination.path.value String The path to the destination folder that will host the exported files.
fileConfigurations N/A See file formatting configuration for detailed information on how to configure these settings.
accordion
Response
A successful response returns HTTP status 200 with details of your newly created destination server configuration.
Google Cloud Storage

Create a Google Cloud Storage destination server

You need to create a Google Cloud Storage destination server similar to the one shown below when you configure a file-based Google Cloud Storage destination.

accordion
Request
code language-shell
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '
{
   "name":"Google Cloud Storage Server",
   "destinationServerType":"FILE_BASED_GOOGLE_CLOUD",
   "fileBasedGoogleCloudStorageDestination":{
      "bucket":{
         "templatingStrategy":"PEBBLE_V1",
         "value":"{{customerData.bucket}}"
      },
      "path":{
         "templatingStrategy":"PEBBLE_V1",
         "value":"{{customerData.path}}"
      }
   },
  "fileConfigurations": {
        "compression": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.compression}}"
        },
        "fileType": {
            "templatingStrategy": "PEBBLE_V1",
            "value": "{{customerData.fileType}}"
        },
        "csvOptions": {
            "quote": {
                "templatingStrategy": "NONE",
                "value": "\""
            },
            "quoteAll": {
                "templatingStrategy": "NONE",
                "value": "false"
            },
            "escape": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "escapeQuotes": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "header": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreLeadingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "ignoreTrailingWhiteSpace": {
                "templatingStrategy": "NONE",
                "value": "true"
            },
            "nullValue": {
                "templatingStrategy": "NONE",
                "value": ""
            },
            "dateFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd"
            },
            "timestampFormat": {
                "templatingStrategy": "NONE",
                "value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
            },
            "charToEscapeQuoteEscaping": {
                "templatingStrategy": "NONE",
                "value": "\\"
            },
            "emptyValue": {
                "templatingStrategy": "NONE",
                "value": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 layout-auto
Parameter Type Description
name String The name of your destination connection.
destinationServerType String Set this value according to your destination platform. For Google Cloud Storage destinations, set this to FILE_BASED_GOOGLE_CLOUD.
fileBasedGoogleCloudStorageDestination.bucket.templatingStrategy String Required. Use PEBBLE_V1.
fileBasedGoogleCloudStorageDestination.bucket.value String The name of the Google Cloud Storage bucket to be used by this destination.
fileBasedGoogleCloudStorageDestination.path.templatingStrategy String Required. Use PEBBLE_V1.
fileBasedGoogleCloudStorageDestination.path.value String The path to the destination folder that will host the exported files.
fileConfigurations N/A See file formatting configuration for detailed information on how to configure these settings.
accordion
Response
A successful response returns HTTP status 200 with details of your newly created destination server configuration.

Create dynamic schema destination servers dynamic-schema-servers

Dynamic schemas allow you to dynamically retrieve the supported target attributes and generate schemas based on your own API. You need to configure a destination server for dynamic schemas before you can configure the schema.

See in the tab below an example of a destination server for destinations which use dynamic schemas.

The sample payload below includes all parameters required for a dynamic schema server.

Dynamic schema server

Create a dynamic schema server

You need to create a dynamic schema server similar to the one shown below when you configure a destination that retrieves its profile schema from your own API endpoint. As opposed to a static schema, a dynamic schema does not use a profileFields array. Instead, dynamic schemas use a dynamic schema server which connects to your own API from where it retrieves the schema configuration.

accordion
Request
code language-shell
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '
{
   "name":"Dynamic Schema Server",
   "destinationServerType":"URL_BASED",
   "urlBasedDestination":{
      "url":{
         "templatingStrategy":"PEBBLE_V1",
         "value":"https://YOUR_API_ENDPOINT/"
      }
   },
   "httpTemplate":{
      "httpMethod":"GET"
   },
   "responseFields":[
      {
         "templatingStrategy":"PEBBLE_V1",
         "value":"{\n    \"type\":\"object\",\n    \"title\": \"Contact Schema\",\n    \"properties\": {\n        {% for setDefinition in response.body.items %}\n            \"{{setDefinition.key}}\": {\n                \"title\" : \"{{setDefinition.name.value}}\",\n                \"type\" : \"object\",\n                \"properties\": {\n                    {% for attribute in setDefinition.attributes %}\n                        \"{{attribute.key}}\": {\n                            \"title\" : \"{{attribute.name.value}}\",\n                            \"type\" : \"string\"\n                        }\n                        {% if not loop.last %},{%endif%}\n                    {% endfor %}\n                }\n            }\n            {% if not loop.last %},{%endif%}\n        {% endfor %}\n    }\n}",
         "name":"schema"
      }
   ]
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 layout-auto
Parameter Type Description
name String Required. Represents a friendly name of your dynamic schema server, visible only to Adobe.
destinationServerType String Required. Set to URL_BASED for dynamic schema servers.
urlBasedDestination.url.templatingStrategy String

Required.

  • Use PEBBLE_V1 if Adobe needs to transform the URL in the value field below. Use this option if you have an endpoint like: https://api.moviestar.com/data/{{customerData.region}}/items.
  • Use NONE if no transformation is needed on the Adobe side, for example if you have an endpoint like: https://api.moviestar.com/data/items.
urlBasedDestination.url.value String Required. Fill in the address of the API endpoint that Experience Platform should connect to and retrieve the schema fields to populate as target fields in the mapping step of the activation workflow.
httpTemplate.httpMethod String Required. The method that Adobe will use in calls to your server. For dynamic schema servers, use GET.
responseFields.templatingStrategy String Required. Use PEBBLE_V1.
responseFields.value String

Required. This string is the character-escaped transformation template that transforms the response received from the partner API into the partner schema that will be displayed in the Platform UI.

accordion
Response
A successful response returns HTTP status 200 with details of your newly created destination server configuration.

Create dynamic dropdown destination servers dynamic-dropdown-servers

Use dynamic dropdowns to dynamically retrieve and populate dropdown customer data fields, based on your own API. For example, you could retrieve a list of existing user accounts which you want to use for a destination connection.

You need to configure a destination server for dynamic dropdowns before you can configure the dyamic dropwdown customer data field.

See in the tab below an example of a destination server used to dynamically retrieve the values to be displayed in a dropdown selector, from an API.

The sample payload below includes all parameters required for a dynamic schema server.

Dynamic dropdown server

Create a dynamic dropdown server

You need to create a dynamic dropdown server similar to the one shown below when you configure a destination that retrieves the values for a dropdown customer data field from your own API endpoint.

accordion
Request
code language-shell
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '
{
   "name":"Server for dynamic dropdown",
   "destinationServerType":"URL_BASED",
   "urlBasedDestination":{
      "url":{
         "templatingStrategy":"PEBBLE_V1",
         "value":"https://api.moviestar.com/data/{{customerData.users}}/items"
      }
   },
   "httpTemplate":{
      "httpMethod":"GET",
      "headers":[
         {
            "header":"Authorization",
            "value":{
               "templatingStrategy":"PEBBLE_V1",
               "value":"My Bearer Token"
            }
         },
         {
            "header":"x-integration",
            "value":{
               "templatingStrategy":"PEBBLE_V1",
               "value":"{{customerData.integrationId}}"
            }
         },
         {
            "header":"Accept",
            "value":{
               "templatingStrategy":"NONE",
               "value":"application/json"
            }
         }
      ]
   },
   "responseFields":[
      {
         "templatingStrategy":"PEBBLE_V1",
         "value":"{% set list = [] %} {% for record in response.body %} {% set list = list|merge([{'name' : record.name, 'value' : record.id }]) %} {% endfor %}{{ {'list': list} | toJson | raw }}",
         "name":"list"
      }
   ]
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 8-row-3 layout-auto
Parameter Type Description
name String Required. Represents a friendly name of your dynamic dropdown server, visible only to Adobe.
destinationServerType String Required. Set to URL_BASED for dynamic dropdown servers.
urlBasedDestination.url.templatingStrategy String

Required.

  • Use PEBBLE_V1 if Adobe needs to transform the URL in the value field below. Use this option if you have an endpoint like: https://api.moviestar.com/data/{{customerData.region}}/items.
  • Use NONE if no transformation is needed on the Adobe side, for example if you have an endpoint like: https://api.moviestar.com/data/items.
urlBasedDestination.url.value String Required. Fill in the address of the API endpoint that Experience Platform should connect to and retrieve the dropwdown values.
httpTemplate.httpMethod String Required. The method that Adobe will use in calls to your server. For dynamic dropdown servers, use GET.
httpTemplate.headers Object Optiona.l Include any headers required to connect to the dynamic dropdown server.
responseFields.templatingStrategy String Required. Use PEBBLE_V1.
responseFields.value String

Required. This string is the character-escaped transformation template that transforms the response received from your API into the values that will be displayed in the Platform UI.

accordion
Response
A successful response returns HTTP status 200 with details of your newly created destination server configuration.

API error handling error-handling

Destination SDK API endpoints follow the general Experience Platform API error message principles. Refer to API status codes and request header errors in the Platform troubleshooting guide.

Next steps next-steps

After reading this document, you now know how to create a new destination server through the Destination SDK /authoring/destination-servers API endpoint.

To learn more about what you can do with this endpoint, see the following articles:

To understand where this endpoint fits into the destination authoring process, see the following articles:

recommendation-more-help
7f4d1967-bf93-4dba-9789-bb6b505339d6