Account-level API
To manage data syndications for an entire Acoustic Exchange user account, you can call Acoustic Exchange account level APIs.
An Acoustic Exchange user account can be associated with multiple endpoints, each representing a different business application. In such cases, endpoints for the Acoustic Exchange account can be a combination of event or audience producers or consumers. To call account-level APIs, you must have account level access to Acoustic Exchange in the form of account-level authentication keys and account IDs.
GET /v1/endpoint
Call 'GET /v1/endpoint' with an account-level authentication key to get a description for all endpoints that are associated with a specific Acoustic Exchange user account. The description can include various endpoint characteristics that you specify as additional query parameters in the API call.
About this API
To get descriptions for all endpoints that are associated with a particular Acoustic Exchange account, you must include an account-level authentication key as the authorization bearer for the API call. The authentication key must be an account level authentication key that is provided to you by Acoustic Exchange.
Note: To make this call successfully, you must have access authorization across all endpoints that are registered for the user account.
When you call 'GET /v1/endpoint' with an account-level authentication key, Acoustic Exchange returns descriptions for all endpoints that are associated with the account.
To return information for only one endpoint that is registered to an Acoustic Exchange account, you can include the endpoint ID as a URL parameter in the call.
In the URL for the call, you can include additional optional URL parameters to request specific characteristics for each endpoint that is registered to the account. Separate parameters with '&'.
Request
Direct the API call to the base URL that is assigned to your Acoustic Exchange account.
The response lists the endpoint properties as they were entered during event registration with 'PUT v1/endpoint'.
To specify the user account, provide the authentication key for the account as the authorization bearer in the API call.
Request format (as a curl command):
curl -v
-X GET
-H "Authorization: Bearer <account authentication key>"
<base URL>/v1/endpoint?<parameter 1>&<parameter 2>&<parameter n>
Note: the Authorization Bearer must be an account-level authentication key.
For example, calling the following URL returns descriptions for up to 20 segments that provide audience data from the various endpoints that are registered with Acoustic Exchange on behalf of the Acoustic Exchange account that is associated with the account-authentication key.
Query parameter | Description |
---|---|
'destination' | Return descriptions of audience and event destination endpoints. Example: 'destination=true' |
'event' | Return descriptions of event source and event destination endpoints. Example: 'event=true' |
'includeSegmentIDString' | Use when 'loadSegments' is set to true and the source segment ID is a string. Returns the 'segmentIDString' for the source segment. Example: 'loadSegments=true&includeSegmentIDString=true' |
'loadEvents' | Use with event. Return the known 'eventTypes' for an event producer. Example: 'event=true&loadEvents=true' |
'loadSegments' | Use with segment. Return the known segments for a segment producer. Example: 'segment=true&loadSegments=true' |
'pageSize' | Pass an integer value for the maximum number of segments to return in the call response. Use with segment. Example: 'segment=true&loadSegments=true& pageSize=10' |
'searchByDescription' | Pass a search criteria that might match a value in a segment description of a segment. Example: 'searchByDescription=opt-in' |
'searchByName' | Pass a search criteria that might match the name of a segment. Example: 'searchByName=Recent opt-ins' |
'segment' | Return descriptions of segment source and segment destination endpoints. Example:segment=true |
'source' | Return descriptions of audience and event source endpoints. Example: source=true |
'startRecord' | Use with 'pageSize'. Pass an integer to start at a given record in the matching results. Example: 'pageSize=10&startRecord=2' |
'endpointId' | Include this as a URL parameter to specify a single endpoint ID. The call returns results only for the endpoint that you specify. Example: 'endpointId=12345' Note: Acoustic Exchange supports this parameter only when you include an account-level authentication key as the authorization bearer in the API call. |
'includeBilling' | Include this as a URL parameter to return the billing category for the endpoint. Example: 'includeBilling=true' Note: Acoustic Exchange supports this parameter only when you include an account-level authentication key as the authorization bearer in the API call. |
Response
Acoustic Exchange public APIs return standard HTTP 1.1 response codes.
'GET /v1/endpoint' provides responses as follows:
Code | Description |
---|---|
200 - 299 | Success. The response lists the endpoint properties as entered during event registration with 'PUT v1/endpoint'. |
400 - 499 | There is a problem with the API request. Examine the request for errors. |
500 - 599 | System error. Contact Acoustic Exchange Support. |
DELETE /v1/endpoint/{endpointId}
Delete a specific registered endpoint in Acoustic Exchange. This API call requires account level authorization.
##About this API
Call 'DELETE /v1/endpoint/{endpointId}' remove an endpoint from Acoustic Exchange. Calling 'DELETE /v1/endpoint/{endpointId}' provides the same request options and the same responses as 'DELETE /v1/endpoint'. However, because you call 'DELETE /v1/endpoint/{endpointId}' from the account level, you must specify the endpoint ID as a URL parameter.
##Request
Direct the API call to the base URL that is assigned to your Acoustic Exchange account.
Example request (as a curl command):
curl -v
-X DELETE
-H "Authorization: Bearer 1234-abcd-5678-efgh"
-H "Content-Type: application/json"
<base URL>/v1/endpoint/<endpointID>
Note: Specify the 'endpointID' as a URL parameter in the API call.
Other than including the endpoint ID as a parameter in the API call, the details of the API request and the API response are the same as 'PUT /v1/endpoint'.
PUT /v1/endpoint/{endpointId}
Register a specified endpoint with Acoustic Exchange. This API call requires account level authorization.
##About this API
Call 'PUT v1/endpoint/{endpointID}' to register an Acoustic Exchange application, or approved Acoustic Exchange Business Partner application, as an endpoint in Acoustic Exchange on behalf of a registered Acoustic Exchange user. Calling 'PUT /v1/endpoint/{endpointId}' API provides the same request options and the same responses as 'PUT /v1/endpoint'. However, because you call 'PUT v1/endpoint/{endpointID}' from the account level, you must specify an endpoint ID as a URL parameter.
##Request
Direct the API call to the base URL that is assigned to your Acoustic Exchange account.
Example request, in this example to register as an event endpoint, (as a curl command):
curl -v
-X PUT
-H "Authorization: Bearer <1234-abcd-5678-efgh>"
-H "Content-Type: application/json"
-d '{€œproviderName€ : €œ<name of provider>€,€œname€ : €œ<name of endpoint>€,
€œdescription€ : €œ<description>€, "endpointTypes" : { "event" :
{"<source | destination>" : { "enabled" : true,
"destinationType" : "<push | pull>" } } },
€œurl€ : €œ<URL for endpoint>€}'
<base URL>/v1/endpoint/<endpoint ID>
Note: Specify the 'endpointID' as a URL parameter in the API call.
Other than including the endpoint ID as a parameter in the API call, the details of the API request and the API response are the same as 'PUT /v1/endpoint'.
PUT /v1/endpoint/database
You can use this API to modify the database identification information that is associated with an endpoint.
##About this API
There are some provisioning or integration use cases in which a database name or ID must be modified after endpoint registration. Acoustic Exchange provides the 'PUT /v1/endpoint/database' API if such a use case becomes necessary for your application.
##Request
Direct the API call to the base URL that is assigned to your Acoustic Exchange account.
You can use either an endpoint level or an application level authentication key as the authorization bearer for the call. If you use an application level authentication key, you must include the endpoint ID in the call as a means to identify the endpoint. If you use an endpoint level authentication key, the key is used to identify the endpoint.
Request format (as a curl command):
curl -X PUT
<base URL>/v1/endpoint/database
-H 'accept-charset: UTF-8'
-H 'authorization: Bearer <endpoint or application authentication key>'
-H 'cache-control: no-cache'
-H 'content-type: application/json'
-H 'postman-token: <token>'
-d {
"endpointId": <endpoint ID>,
"databaseId": "<database ID>",
"marketingDatabaseName": "<database name>"
}
Property | Use | Description |
---|---|---|
'endpointId' | Required if: You are using an application authentication key as authentication bearer. | The 'endpointId' is used to identify which endpoints identification information is to be modified. |
'databaseId' | Required | Enter the alphanumeric ID of the database that is to be associated with an endpoint. |
'marketingDatabaseName' | Required if: There are multiple databases that are associated with an endpoint. | The name or names of the databases that are associated with an endpoint. |
Response
Acoustic Exchange public APIs return standard HTTP 1.1 response codes.
'PUT /v1/endpoint/database' provides responses as follows.
Code | Description |
---|---|
200 - 299 | Success. |
400 - 499 | There is a problem with the API request. Examine the request for errors. |
500 - 599 | System error. Contact Acoustic Exchange Support for assistance. |
PUT /v1/endpoint/disable/{endpointId}
If you manage multiple endpoints for an Acoustic Exchange account, you can disable a specific registered endpoint by specifying the endpoint ID when you call 'PUT /v1/endpoint/disable' and specify an account-level authentication key.
##Before you begin
Register one or more endpoints by calling 'PUT v1/endpoint' or 'PUT /v1/endpoint/{endpointId}'.
##About this API
To disable one of multiple endpoints that are registered to an account, you must include an account-level authentication key as the authorization bearer for the API call. The authentication key must be an account-level authentication key that is provided to you by Acoustic Exchange.
##Request
Direct the API call to the base URL that is assigned to your Acoustic Exchange account.
Add the endpoint ID of the endpoint that you want to disable as a parameter to the URL, as shown in the example.
Request format (as a CURL command)
curl -v
-X PUT
-H "Authorization: Bearer <endpoint authentication key>"
-H "Content-Type: application/json"
<base URL>/v1/endpoint/disable/<endpoint ID>
Response
Acoustic Exchange public APIs return standard HTTP 1.1 response codes.
'PUT v1/endpoint/disable/{endpoint ID}' provides responses as follows.
Code | Description |
---|---|
200 | True. The endpoint is disabled. |
304 | Endpoint status is not changed. |
403 | Not authorized. |
500 - 599 | System error. Contact Acoustic Exchange Support for assistance. |
PUT /v1/endpoint/enable/{endpointId}
If you manage multiple endpoints for an Acoustic Exchange account, you can enable a specific registered endpoint by specifying the endpoint ID when you call 'PUT /v1/endpoint/enable' and specify an account-level authentication key.
##Before you begin
Register one or more endpoints by calling 'PUT v1/endpoint' or 'PUT /v1/endpoint/{endpointId}'.
##About this API
To enable one of multiple endpoints that are registered to an account, you must include an account-level authentication key as the authorization bearer for the API call. The authentication key must be an account-level authentication key that is provided to you by Acoustic Exchange.
##Request
Direct the API call to the base URL that is assigned to your Acoustic Exchange account.
Add the endpoint ID of the endpoint that you want to enable as a parameter to the URL, as shown in the example.
Request format (as a CURL command)
curl -v
-X PUT
-H "Authorization: Bearer <endpoint authentication key>"
-H "Content-Type: application/json"
<base URL>/v1/endpoint/enable/<endpoint ID>
Response
Acoustic Exchange public APIs return standard HTTP 1.1 response codes.
'PUT /v1/endpoint/enable/{endpoint ID}' provides responses as follows.
Code | Description |
---|---|
200 | True. The endpoint is enabled. |
304 | Endpoint status is not changed. |
403 | Not authorized. |
500 - 599 | System error. Contact Acoustic Exchange for assistance. |
GET /v1/endpoint/{endpointId}/segments/{segmentId}
Get the details of a specific audience within an endpoint.
##About this API
Call this API to get a description for a specific audience that is provided or received by an endpoint that is registered with Acoustic Exchange on behalf of an Acoustic Exchange user account. The call requires a valid authentication key, which is specific to the user account and endpoint.
Note: Information that you retrieve for a segment with this API appears in the Acoustic Exchange user interface as details that relate to an audience.
You must provide the following information to call this API:
- Authentication key that is associated with an Acoustic Exchange user account
- Endpoint ID for the endpoint in which the audience is defined
- Segment ID for the segment that you want to describe
You must also have user authorization to access the endpoint.
##Request
Direct the API call to the base URL that is assigned to your Acoustic Exchange account.
Example request (as a curl command):
curl -v
-X GET
-H "Authorization: Bearer 1234-abcd-5678-efgh"
<base URL>/v1/endpoint/<endpointID>/segments/{<segmentID>}
Response
'GET /v1/endpoint/{endpointId}/segments/{segmentId}' provides responses as follows.
Note: If the audience is a string and the query parameter 'includeSegmentIDString' is set to true, then the call returns the 'property id_string' in place of id.
JSON | Output (See notes below) |
---|---|
'''json { "segment_attributes": [ {"name":"","type":}, ], "id":, B:Segment identification "name":"", "description": } ''' | A. Attributes |
'''json "id":45311, "idString":null, "name":"100Cust", "description":null } ''' | B. Segment identification |
EXAMPLE: '''json { "segment_attributes": [ {"name":"LIST_ID","type":null}, {"name":"MAILING_ID","type":null}, {"name":"RECIPIENT_ID","type":null}, {"name":"EMAIL","type":null}, {"name":"CRM Lead Source","type":null}, {"name":"cookieId","type":"0"}, {"name":"sessionId","type":"0"}, {"name":"Email","type":null} ], ''' | Example response |
A: Attributes
Property | Data type | Valid value | Description |
---|---|---|---|
'name' | string | As defined in the segment. | Name of the attribute, as defined during endpoint registration with 'v1/endpoint'. |
'type' | string (default) number boolean Timestamp (iso8601) | As defined in the segment. | Attribute type, as defined during endpoint registration with 'v1/endpoint'. |
B: Segment identification
Property | Data type | Valid value | Description |
---|---|---|---|
id | long | As defined by your business | Unique value that Acoustic Exchange can use to identify the segment. |
id_String | string | As defined by your business | Unique value that Acoustic Exchange can use to identify the segment. |
name | string | As defined by your business | Unique name that Acoustic Exchange can use to identify the segment. Acoustic Exchange uses the name that you provide in the Acoustic Exchange user interface to identify the segment as available for selection. |
description | string | As defined by your business | Brief description of the segment. |
POST /v1/jobs/segmentExport
Create a job to share audience data from a source endpoint to a destination endpoint. Additionally, you can use 'POST /v1/jobs/segmentExport' to upload identity data to the Acoustic Exchange Identity Store.
##About this API
The response that this API provides depends on the producer type of the audience source endpoint.
- If the source endpoint is a PULL audience provider and the destination endpoint is a PUSH audience consumer: Acoustic Exchange automatically performs the entire process of uploading audience data from the source endpoint, joining audience identifiers if possible, and downloading the audience data to the destination endpoint.
- If the source endpoint is a PUSH audience provider: Acoustic Exchange creates the export job but waits for the source endpoint to upload audience data. Acoustic Exchange puts the job in WAITING_TO_RECIEVE_DATA status. To continue the audience sharing process, the source endpoint must call 'POST /v1/jobs/{jobId}/data' to upload the audience data to Acoustic Exchange.
- If the source endpoint is a PULL audience consumer: Acoustic Exchange creates the export job but waits until the consumer audience data is ready to download. When consumer audience data is ready to download, the status of the job changes to READY_FOR_DOWNLOAD. To download the audience data, call 'GET /v1/jobs/{jobId}/segmentDataFiles/{fileName}'.
Calling 'POST /v1/jobs/segmentExport' from a segment producer endpoint to create a waiting segment export job makes it possible for Acoustic Exchange users to use the Acoustic Exchange user interface to upload audience data from the segment producer endpoint to Acoustic Exchange on demand.
Note: To make this call successfully, you must have access authorization across all endpoints that are registered for the user account.
##Request
Direct the API call to the base URL that is assigned to your Acoustic Exchange account.
You must use an account-level authorization key as the authorization bearer for this API call.
Note: If the audience segment has a string segment ID, then the property 'segmentIDString' should be defined in place of the property 'segmentID'.
Example request (as a curl command):
curl -v
-X PUT
-H "Authorization: Bearer 1234-abcd-5678-efgh"
-d '{
"endpointID":<source endpointID>,
"segmentID":<source segmentID>|"segmentIDString":<string segment ID (source)>,
"segmentName":"<name of the segment>",
"destinationEndpointID":<destination endpointID>,
"destinationSegmentName":"<destination segment name>",
"exportCategory":"<category>",
"action": "<action type>",
"sourceIdentifiers":["<soure identifiers>"],
"destinationIdentifier":"<destination identifier>",
"attributeMappings":{"<source attribute>":"<destination attribute>"},
"updateIdentities":true|false
"minCount":"<integer>",
"scheduleDetails": {schedule}
}'
<base URL>/v1/jobs/segmentExport
The following table describes the JSON payload of the call.
JSON | Requirements |
---|---|
'''json { "endpointID":<endpoint ID (source)>, "segmentID":<segment ID (source)>|"segmentIDString":<string segment ID (source)>, "segmentName":, ''' | A. Identify the source segment |
'''json "destinationEndpointID":<endpointID (destination)>, "destinationSegmentName":"<segment name (destination)>", "destinationSegmentDescription":"<segment description (source)>", "destinationSegmentID":"", "exportCategory":"", ''' | B. Identify the destination segment |
'''json "action": "", ''' | C. Specify the action of the call |
'''json "sourceIdentifiers":[",]", "destinationIdentifier":"", "attributeMappings":{"<attribute (source)>":"<attribute (destination)>"}, ''' | D. Specify source and destination identifiers, and attribute mapping |
'''json "updateIdentities":true|false ''' | E. Indicate whether the Acoustic Exchange Identity Store is to be updated |
'''json "minCount":, ''' | F. Set the minimum number of records to send to the destination |
'''json "scheduleDetails":{ "runNow":true|false, "runRepeat":true|false, "daysOfWeek":, "daysOfMonth":, "monthsOfYear":, "year":, "startHour":"", "startMinute":"", "startSecond":"", "startDate":"", "endDate":, "timeSliceStartDate":, "timeSliceEndDate": }, ''' | G. Schedule the audience sharing |
A: Identify the source segment
Property | Use | Data type | Valid value | Description |
---|---|---|---|---|
'endpointID' | Required | Long | Specified by source endpoint | Define a unique value that Acoustic Exchange can use to identify the source endpoint. |
'segmentID' | Required If segment ID is not a string | Long | Specified by source endpoint | Define a unique value that Acoustic Exchange can use to identify the source endpoint. |
'segmentIDString' | Required If segment ID is not a string | String | Specified by source endpoint | Define a unique value that Acoustic Exchange can use to identify the source segment. Note: Define this property only if the source segment ID is a string. |
'segmentName' | Optional | Long | Specified by source endpoint | Define a unique value that Acoustic Exchange can use to identify the source endpoint. |
B: Identify the destination segment
Property | Use | Data type | Valid value | Description |
---|---|---|---|---|
'destination EndpointID' | Required | Long | Specified by destination endpoint | Define a unique value that Acoustic Exchange can use to identify the destination endpoint. |
'destination SegmentName' | Optional | String | Specified by destination endpoint | Define a unique name that Acoustic Exchange can use to identify the source endpoint. Acoustic Exchange uses the name to display and identify the audience data in the Acoustic Exchange user interface. If nothing is entered, Acoustic Exchange generates a segment name. Enter the name of an existing segment to pull data from that segment |
'destinationSegmentDescription' | Optional | String | Specified by destination endpoint | Define a brief description that Acoustic Exchange can use to identify the source endpoint. Acoustic Exchange uses the description to describe the audience data in the Acoustic Exchange user interface. |
'destinationSegmentID' | Optional | String | If you are working with an existing segment, enter its segment ID. If this field is not present, Acoustic Exchange creates a new segment. Note: action must be specified when you are working with an existing segment. | |
'exportCategory' | Optional | String | Specified by destination endpoint | -- |
C: Specify the action of the call
Property | Use | Data type | Valid value | Description |
---|---|---|---|---|
'action' | Optional | String | add replace remove | Indicate whether the call adds, replaces, or removes an audience. Specifying the action is optional if you are working with a new segment. It is required if you are working with an existing segment. |
D: Specify identity and attribute mapping
Property | Use | Data type | Valid value | Description |
---|---|---|---|---|
'sourceIdentifiers' | Required | JSON object | Specified by the source endpoint | In this JSON array, indicate the source identifiers of the source segment that are to be mapped to a single destination identifier of the destination segment. You can map multiple source identifiers to a single destination identifier. |
'destination Identifier' | Required | JSON object | Specified by the source endpoint | In this JSON object, indicate the destination identifier that you are mapping the source identifiers to. Multiple source identifiers can be mapped to a single destination identifier. |
'attributeMappings' | Optional | JSON object | Specified by the source endpoint | If source and destination endpoints both support extra columns for attributes, indicate how to convert each attribute in the source segment to a corresponding attribute in the destination segment. |
E: Indicate whether the Acoustic Exchange Identity Store is to be updated
Property | Use | Data type | Valid value | Description |
---|---|---|---|---|
'updateIdentities' | Required | Boolean | true|false | If this value is set to true, the call uploads identity data from the specified endpoint to the Acoustic Exchange Identity Store. It also appears in the job payload when you get job details. If this value is set to false, the call reads from the Acoustic Exchange Identity Store and does not write to it. |
F: Set minimum number of records
Property | Use | Data type | Valid value | Description |
---|---|---|---|---|
'minCount' | Optional | Integer | The 'minCount' is the minimum number of records that are sent to the destination endpoint. If the number of converted records is less than this number, the scheduled job cancels. By default, the number is 1. |
G: Schedule audience sharing
Property | Use | Data type | Valid value | Description |
---|---|---|---|---|
'runNow' | Optional | Boolean | true|false | Indicate whether you would like to initiate the audience share from a source endpoint to a destination endpoint. Note: If set to true the 'startDate' and 'startTime' are ignored and the job runs immediately. |
'runRepeat' | Optional | Boolean | true|false | Indicate whether the audience share must repeat. |
'daysOfWeek' | Optional | String | 1-7 Day of the week: 1 Weekly:1 Days of the week: 1,3,5 Daily: null Monthly: null | Indicate the day or days of the week share the audience from the source endpoint to the destination endpoint. In this field 1-7 is equivalent to SUN-SAT |
'daysOfMonth' | Optional | String | 1-31 Days of the month: 1,3-5,10 One time: 1 Monthly: 1 Daily: * Weekly: null | Indicate the day or days of the month to share the audience from the source endpoint to the destination endpoint. |
'monthsOfYear' | Optional | String | 1-12 Days of the month: 1,3,4 One time: 1 Monthly: * Daily: null Weekly: null | Indicate the month or months of the year to share the audience from the source endpoint to the destination endpoint. |
'year' | Optional | String | Indicate the year to share the audience from the source endpoint to the destination endpoint. | |
'startHour' | Optional | String | 1-24 | Indicate the hour for the audience share to start. |
'startMinute' | Optional | String | 01-59 | Indicate the minute for the audience share to start. |
'startSecond' | Optional | String | 01-59 | Indicate the second for the audience share to start. |
'startDate' | Optional | String | MM/dd/yyyy | Indicate the start or one time run date for the audience share. |
'endDate' | Optional | String | MM/dd/yyyy | Indicate the date for the audience share to end. |
'timeSliceStartDate' | Optional | String | MM/dd/yyyy | A 'timeSlice' is used to pull record from a specific length of time, instead of pulling records from all time for an audience share. For example, by indicating the 'timeSliceStartDate' as 09/27/2016 and the 'timeSliceEndDate' as 09/28/2016, records for those two days are pulled for an audience share. Indicate the 'timeSliceStartDate' |
'timeSliceEndDate' | Optional | String | MM/dd/yyyy | Indicate the 'timeSliceEndDate'. |
Response
Acoustic Exchange public APIs return standard HTTP 1.1 response codes.
'POST /v1/jobs/segmentExport' provides responses as follows.
Code | Description |
---|---|
200 - 299 | Success. Acoustic Exchange returns the job ID of the segment export job that is created in Acoustic Exchange. If you created the job for use with a segment producer that pushes data to Acoustic Exchange, Acoustic Exchange creates the job and leaves it in WAITING_TO_RECEIVE_DATA state, pending a call by the Acoustic Exchange user interface or another API. |
400 - 499 | There is a problem with the API request. Examine the request for errors. |
500 - 599 | System error. Contact Acoustic Exchange Support for assistance. |
What to do next
If the source endpoint is a PUSH audience provider, you can call 'POST /v1/jobs/{jobId}/data' to upload a segment to the export job that Acoustic Exchange holds in WAITING_TO_RECIEVE_DATA state.
If the destination endpoint is a PULL audience consumer, you can call 'GET /v1/jobs/{jobId}/segmentDataFiles/{fileName}' to download audience data.
Specify the job ID that 'POST /v1/jobs/segmentExport' returns.
#POST /v1/jobs/identityImport
Use this API to schedule a bulk upload of segmented identity data to the Acoustic Exchange Identity Store.
##About this API
In most cases, Acoustic Exchange gathers identity data by examining events that are produced and consumed by endpoints. As such, it can take new Acoustic Exchange endpoints that use this process some time to build a large repository of identity data within the Acoustic Exchange Identity Store. However, if your endpoint already has a repository of identity data, you can upload that data in bulk to the Acoustic Exchange Identity Store by using the 'POST /v1/jobs/identityImport' API.
The response that this API provides depends on the producer type of the source endpoint.
- If the source endpoint is a PULL segment producer, the API call initiates the identity data upload and returns a generated job ID. Additionally, it schedules a new job to check the endpoint's export data job status. As a result, Acoustic Exchange periodically checks the jobs status until it reads as complete and the identity data is uploaded.
- If the source endpoint is a PUSH audience provider: Acoustic Exchange creates the export job but waits for the source endpoint to upload audience data. Acoustic Exchange puts the job in WAITING_TO_RECIEVE_DATA status. To continue the audience sharing process, the source endpoint must call 'POST /v1/jobs/{jobId}/data' to upload the audience data to Acoustic Exchange.
##Request
You must use an account-level authentication key as the authorization bearer in the API call.
Direct the API call to the base URL that is assigned to your Acoustic Exchange account.
Note: If the audience segment has a string segment ID, then the property 'segmentIDString' should be defined in place of the property 'segmentID'.
Example request (as a curl command):
curl -v
-X PUT
-H "Authorization: Bearer 1234-abcd-5678-efgh"
-d '{
"endpointID":<source endpoint ID>,
"segmentID":<source segment ID>|"segmentIDString":<string segment ID (source)>,
"databaseID":<source database ID>
"sourceIdentifiers":["<identifier name>, <identifier name>"]
"scheduleDetails":{
"runNow":true|false,
"runRepeat":true|false,
"daysOfWeek":<day of the week>,
"daysOfMonth":<day of the month>,
"monthsOfYear":<months of the year>,
"year":<the year>,
"startHour":"<the hour to start>",
"startMinute":"<the minute to start>",
"startSecond":"<the second to start>",
"startDate":"<the start date>",
"endDate":<the end date>,
"timeSliceStartDate":<date>,
"timeSliceEndDate":<date>},
}'
<base URL>/v1/jobs/identityImport
The following table describes the JSON payload of the call.
JSON | Requirements |
---|---|
'''json { "endpointID":<endpoint ID (source)>, "segmentID":<segment ID (source)>|"segmentIDString":<string segment ID (source)>, "databaseID": ''' | A. Identify the source segment |
'''json "sourceIdentifiers":[", "] ''' | B. Specify source identifiers |
'''json "scheduleDetails":{ "runNow":true|false, "runRepeat":true|false, "daysOfWeek":, "daysOfMonth":, "monthsOfYear":, "year":, "startHour":"", "startMinute":"", "startSecond":"", "startDate":"", "endDate":, "timeSliceStartDate":, "timeSliceEndDate": }, ''' | C. Schedule the identity data upload |
A: Identify the source segment
Property | Use | Data type | Valid value | Description |
---|---|---|---|---|
'endpointID' | Required | Long | Specified by source endpoint | Define a unique value that Acoustic Exchange can use to identify the source endpoint. |
'segmentID' | Required If segment ID is not a string | Long | Specified by source endpoint | Define a unique value that Acoustic Exchange can use to identify the source endpoint. |
'segmentIDString' | Required If segment ID is not a string | String | Specified by source endpoint | Define a unique value that Acoustic Exchange can use to identify the source segment. Note: Define this property only if the source segment ID is a string. |
'databaseID' | Optional | String | Specified by source endpoint | Define a unique value that Acoustic Exchange can use to identify the source endpoint. |
B: Specify identity and attribute mapping
Property | Use | Data type | Valid value | Description |
---|---|---|---|---|
'sourceIdentifiers' | Optional | JSON Object | Specified by source endpoint | In this JSON array, indicate the source identifiers of the source segment that are to be mapped to a single destination identifier of the destination segment. You can map multiple source identifiers to a single destination identifier. |
C: Schedule the identity data upload
Property | Use | Data type | Valid value | Description |
---|---|---|---|---|
'runNow' | Optional | Boolean | true|false | Indicate whether you would like to initiate the audience share from a source endpoint to a destination endpoint. Note: If set to true the 'startDate' and 'startTime' are ignored and the job runs immediately. |
'runRepeat' | Optional | Boolean | true|false | Indicate whether the audience share must repeat. |
'daysOfWeek' | Optional | String | 1-7 Day of the week: 1 Weekly:1 Days of the week: 1,3,5 Daily: null Monthly: null | Indicate the day or days of the week share the audience from the source endpoint to the destination endpoint. In this field 1-7 is equivalent to SUN-SAT |
'daysOfMonth' | Optional | String | 1-31 Days of the month: 1,3-5,10 One time: 1 Monthly: 1 Daily: * Weekly: null | Indicate the day or days of the month to share the audience from the source endpoint to the destination endpoint. |
'monthsOfYear' | Optional | String | 1-12 Days of the month: 1,3,4 One time: 1 Monthly: * Daily: null Weekly: null | Indicate the month or months of the year to share the audience from the source endpoint to the destination endpoint. |
'year' | Optional | String | Indicate the year to share the audience from the source endpoint to the destination endpoint. | |
'startHour' | Optional | String | 1-24 | Indicate the hour for the audience share to start. |
'startMinute' | Optional | String | 01-59 | Indicate the minute for the audience share to start. |
'startSecond' | Optional | String | 01-59 | Indicate the second for the audience share to start. |
'startDate' | Optional | String | MM/dd/yyyy | Indicate the start or one time run date for the audience share. |
'endDate' | Optional | String | MM/dd/yyyy | Indicate the date for the audience share to end. |
'timeSliceStartDate' | Optional | String | MM/dd/yyyy | A 'timeSlice' is used to pull record from a specific length of time, instead of pulling records from all time for an audience share. For example, by indicating the 'timeSliceStartDate' as 09/27/2016 and the 'timeSliceEndDate' as 09/28/2016, records for those two days are pulled for an audience share. Indicate the 'timeSliceStartDate' |
'timeSliceEndDate' | Optional | String | MM/dd/yyyy | Indicate the 'timeSliceEndDate'. |
Response
Acoustic Exchange public APIs return standard HTTP 1.1 response codes.
'POST /v1/jobs/identityImport' provides responses as follows.
Code | Description |
---|---|
200 - 299 | Success. Acoustic Exchange has successfully uploaded the segmented identity data to the Acoustic Exchange Identity Store and returns the generated job ID. |
400 - 499 | There is a problem with the API request. Examine the request for errors. |
500 - 599 | System error. Contact Acoustic Exchange Support for assistance. |
Updated almost 5 years ago