Create a Query Activity
Why Create a Query Activity
Creating a query activity allows you to retrieve tracking information from your account based on criteria specified in your call.
How to Create a Query Activity
Use the sample code below as a model to create your own API call. You cannot retrieve the status or completion time of the query activity.
Sample .NET Code
private void button12_Click(object sender, EventArgs e)
{
SoapClient framework = new SoapClient();
framework.ClientCredentials.UserName.UserName = Properties.Settings.Default.UN_S1;
framework.ClientCredentials.UserName.Password = Properties.Settings.Default.PW_S1;
String requestID;
String status;
QueryDefinition qd = new QueryDefinition();
qd.Name = "New Query333";
qd.CustomerKey = "New Query Key32";
qd.Description = "Some Description";
qd.TargetUpdateType = "Overwrite";
qd.TargetType = "DE";
qd.QueryText = "Select EMAIL_ADDRESS as EMAIL from [Example DE]";
InteractionBaseObject ibo = new InteractionBaseObject();
ibo.CustomerKey = "FIRST SEND";
ibo.Name = "First Send";
qd.DataExtensionTarget = ibo;
CreateResult[] uoResults = framework.Create(new CreateOptions(), new APIObject[] { qd }, out requestID, out status);
Console.WriteLine("Status: " + status);
Console.WriteLine("Request ID: " + requestID);
}Sample PHP Code
require('exacttarget_soap_client.php');
$wsdl = 'https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/etframework.wsdl';
try {
/* Create the Soap Client */
$client = new Marketing CloudSoapClient($wsdl, array('trace'=>1));
/* Set username and password here */
$client->username = 'xxx';
$client->password = 'yyy';
$qd = new Marketing Cloud_QueryDefinition();
$qd->Name = "de_sql";
$qd->CustomerKey = "de_sql";
$qd->Description = "API_Query";
$qd->TargetUpdateType = "Overwrite";
$qd->TargetType = "DE";
$qd->QueryText = "SELECT SubscriberKey FROM _open";
$ibo = new Marketing Cloud_InteractionBaseObject();
$ibo->CustomerKey = "de_sql";
$ibo->Name = "de_sql";
$qd->DataExtensionTarget = $ibo;
$object = new SoapVar($qd, SOAP_ENC_OBJECT, 'QueryDefinition', "http://exacttarget.com/wsdl/partnerAPI");
var_dump($object);
print_r($object);
//SOAP_ENC_OBJECT
$request = new Marketing Cloud_CreateRequest();
$request->Options = NULL;
$request->Objects = array($object);
$results = $client->Create($request);
var_dump($results);
$p_results = array($results);
print_r($p_results);
} catch (SoapFault $e) {
var_dump($e);
}Sample SOAP Envelope
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<a:Action s:mustUnderstand="1">Create</a:Action>
<a:MessageID>urn:uuid:ffac578d-73d8-46ac-b125-9cbf3952da25</a:MessageID>
<a:ReplyTo>
<a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address>
</a:ReplyTo>
<a:To s:mustUnderstand="1">https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/Service.asmx</a:To>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2009-12-01T23:29:41.590Z</u:Created>
<u:Expires>2009-12-01T23:34:41.590Z</u:Expires>
</u:Timestamp>
<o:UsernameToken u:Id="uuid-f356ce91-93e2-43bc-b890-b93bedb5dc47-1">
<o:Username>XXXXX</o:Username>
<o:Password>XXXXX</o:Password>
</o:UsernameToken>
</o:Security>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CreateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
<Options>
</Options>
<Objects xsi:type="QueryDefinition">
<PartnerKey xsi:nil="true">
</PartnerKey>
<ObjectID xsi:nil="true">
</ObjectID>
<CustomerKey>New Query Key</CustomerKey>
<Name>New Query</Name>
<Description>Some Description</Description>
<QueryText>Select EMAIL_ADDRESS as EMAIL from [Example DE]</QueryText>
<TargetType>DE</TargetType>
<DataExtensionTarget>
<PartnerKey xsi:nil="true">
</PartnerKey>
<ObjectID xsi:nil="true">
</ObjectID>
<CustomerKey>FIRST SEND</CustomerKey>
<Name>First Send</Name>
</DataExtensionTarget>
<TargetUpdateType>Overwrite</TargetUpdateType>
</Objects>
</CreateRequest>
</s:Body>
</s:Envelope>