{"_id":"562b9fdfdb5fea0d003fa82e","parentDoc":null,"user":"55dd9841cafe7221002a4c62","__v":1,"project":"55dd9f2e0efd5821000d54d9","version":{"_id":"55dd9f4dab0e4d210045aae9","__v":39,"project":"55dd9f2e0efd5821000d54d9","createdAt":"2015-08-26T11:13:17.024Z","releaseDate":"2015-08-26T11:13:17.024Z","categories":["55dd9f4dab0e4d210045aaea","55ddb5fa9067202b00ddff6f","55e0472c6bad670d0081f213","55e04764a44fae0d00214671","55e047a9a44fae0d00214672","55e047b258c5460d0076a9a7","55e95e337fc27b2d00d32cf2","55e979bda7ca823900ad549a","55edb8c18dcb210d0056900b","55f0365c8563861700a33765","55f03677d58f9b1900acf996","55f036938eeefc23001ea5de","55f036a38563861700a33767","55f036c08563861700a33769","55f036d02911b72100482cd7","55f036e92911b72100482cd9","55f036fa8563861700a3376b","55f0370ee507711900e58c69","55f0371df6101b1900c70700","55f0374f2911b72100482cdb","55f0375e2911b72100482cdc","560eb0f659cb8d0d0015cd52","560eb25239fad419002ae1e0","561fb64d4d67490d00804b2a","562b9f775a39cd0d009aff22","562ba0505a39cd0d009aff23","562ba149d56bc30d00f0cb18","562ba595f68a5f0d007b1f3b","562ba78fd56bc30d00f0cb1b","562ba8b95a39cd0d009aff27","562baadf6562140d001501d2","562bab37f68a5f0d007b1f3d","562bc1bf9ebc950d000f7523","562bc99ced4bea0d00c11dfa","562bd29c1b98640d00714520","562bd5875a39cd0d009aff60","562bdfabff2da50d002c0aaf","562be0bd5a39cd0d009aff75","57a0b476d8313e1900454439"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"2.0.0","version":"2"},"category":{"_id":"562b9f775a39cd0d009aff22","project":"55dd9f2e0efd5821000d54d9","pages":["562ba0bbed4bea0d00c11de2","562ba2436562140d001501cd","562ba4a6f68a5f0d007b1f3a","562ba73c6562140d001501d1","562ba8e19ebc950d000f750b","562badaded4bea0d00c11de6","562bae17db5fea0d003fa832","562baef76562140d001501d4","562baf3ad56bc30d00f0cb1e","562bbfe59ebc950d000f7521","562bc031ed4bea0d00c11df1","562bc060d56bc30d00f0cb2f","562bc0f1d56bc30d00f0cb30","562bc14a5a39cd0d009aff49","562bc17c5a39cd0d009aff4a","562bc8ca5a39cd0d009aff54","562bc9131b98640d0071451b","562bd54052fb180d0034cc0b","562bda3212c2820d00869ba0","562bdab29ebc950d000f753c","562bdb00ff2da50d002c0aac","562bdb851b98640d00714527","562bde831b98640d0071452c","562bded9ff2da50d002c0aae","562be2159ebc950d000f7542","562be2725a39cd0d009aff78","562be33d9ebc950d000f7543","562d619ae01a430d00c2c82d"],"version":"55dd9f4dab0e4d210045aae9","__v":28,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-10-24T15:10:47.563Z","from_sync":false,"order":22,"slug":"contacts-1","title":"Contacts"},"editedParams2":true,"editedParams":true,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-10-24T15:12:31.978Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"name":"","code":"<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">\n   <s:Body>\n      <CreateAddressBookResponse xmlns=\"http://apiconnector.com/v2\">\n         <CreateAddressBookResult xmlns:a=\"http://apiconnector.com\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">\n            <a:Id>0</a:Id>\n            <a:Name>My Address Book</a:Name>\n            <a:Visibility>Public</a:Visibility>\n            <a:Contacts>0</a:Contacts>\n         </CreateAddressBookResult>\n      </CreateAddressBookResponse>\n   </s:Body>\n</s:Envelope>","language":"xml","status":200}]},"settings":"","examples":{"codes":[{"code":"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://apiconnector.com/v2\" xmlns:apic=\"http://apiconnector.com\">\n   <soapenv:Header/>\n   <soapenv:Body>\n      <v2:CreateAddressBook>\n         <v2:apiAddressBook>\n            <apic:Name>My Address Book</apic:Name>\n            <apic:Visibility>Public</apic:Visibility>\n         </v2:apiAddressBook>\n      </v2:CreateAddressBook>\n   </soapenv:Body>\n</soapenv:Envelope>","language":"xml"}]},"auth":"required","params":[{"_id":"55ddbc1e746ace2b00dd6f38","ref":"","in":"body","required":true,"desc":"The name of the address book you're creating. It can't be an existing address book's name, 'Test' or 'All contacts'.","default":"","type":"string","name":"Name"},{"_id":"55ddbc1e746ace2b00dd6f37","ref":"","in":"body","required":false,"desc":"All address books are created as 'Private' by default but you can set it as 'Public' upon creation should you wish to.","default":"","type":"string","name":"Visibility"}],"url":"/v:version/ApiService/CreateAddressBook"},"isReference":false,"order":3,"body":"This method adds a contact to a given address book. The contact can be new or existing. If the contact already exists, then any data provided in your request that is already held for the contact will be overwritten and updated in the system.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"If you're looking to import or update multiple contacts to an address book at once, then we highly recommend using [ImportContactsToAddressBook](https://developer.dotmailer.com/docs/importcontactstoaddressbook) instead.\\n\\nIt allows you to import a file and has the benefit of being a single API call only, making it far less likely that your account will exceed its API calls per hour limit.\",\n  \"title\": \"Are you importing multiple contacts?\"\n}\n[/block]\n**SOAP action:** [https://[region ID]-api.dotmailer.com/v2/ApiService/AddContactToAddressBook](doc:addcontacttoaddressbook)\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"The input and output parameters for this method are:\\n\\n**Input parameters** \\n  * AddressBook Id - *required; integer*\\n  * Email - *required; string*\\n  * OptInType - *optional; string ('Unknown', 'Single', 'Double', 'VerifiedDouble')*\\n  * EmailType - *optional; string ('PlainText', 'Html')*\\n  * DataFields - *optional; array of ContactData* \\n       * ContactData\\n            * Key - *string*\\n            * Value - *anyType* (please note: the data type needs to be defined for the value, such as 'string', 'numeric', 'date' or 'boolean'; e.g., for 'Firstname', the XML would need to be as follows - **<apic:Value xsi:type=\\\"xsd:string\\\">John</apic:Value>**)   \\n                 \\n**Output parameters** \\n  * AddContactToAddressBookResult\\n       * Id - *integer*\\n       * Email - *string*\\n       * OptInType - *string ('Unknown', 'Single', 'Double', 'VerifiedDouble')*\\n       * EmailType - *string ('PlainText', 'Html')* \\n       * DataFields - *optional; array of ContactData* \\n            * ContactData\\n                 * Key - *string*\\n                 * Value - *anyType*\\n       * Status - *string ('Subscribed', 'Unsubscribed', 'SoftBounced', 'HardBounced', 'IspComplained', 'MailBlocked', 'PendingOptIn', 'DirectComplaint', 'Deleted', 'SharedSuppression', 'Suppressed', 'NotAllowed', 'DomainSuppression', 'NoMxRecord')*\",\n  \"title\": \"Input and output parameters\"\n}\n[/block]\n**Example** \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"using (var client = new ApiServiceClient())\\n{\\n\\tclient.ClientCredentials.UserName.UserName = \\\"username\\\";\\n\\tclient.ClientCredentials.UserName.Password = \\\"password\\\";\\n\\n\\t\\tvar contact = new ApiContact {\\n\\t    Email = \\\"john.smith:::at:::example.com\\\",\\n\\t    OptInType = ApiContactOptInTypes.Single,\\n\\t    EmailType = ApiContactEmailTypes.Html,\\n\\t    DataFields = new[] {\\n\\t\\t\\tnew ApiContactData { Key = \\\"FirstName\\\", Value = \\\"John\\\" },\\n      new ApiContactData { Key = \\\"FullName\\\", Value = \\\"John Smith\\\" }, \\n      new ApiContactData { Key = \\\"Gender\\\", Value = \\\"Male\\\" },  \\n      new ApiContactData { Key = \\\"LastName\\\", Value = \\\"Smith\\\" },  \\n\\t\\t\\tnew ApiContactData { Key = \\\"Postcode\\\", Value = \\\"N5 1DP\\\" }\\n\\t\\t}\\n\\t};\\n\\tvar addressBookId = 1;\\n\\tvar createdContact = client.AddContactToAddressBook(addressBookId, contact);\\n}\",\n      \"language\": \"csharp\"\n    }\n  ]\n}\n[/block]","excerpt":"Adds a contact to a given address book","slug":"addcontacttoaddressbook","type":"basic","title":"AddContactToAddressBook"}

AddContactToAddressBook

Adds a contact to a given address book

This method adds a contact to a given address book. The contact can be new or existing. If the contact already exists, then any data provided in your request that is already held for the contact will be overwritten and updated in the system. [block:callout] { "type": "info", "body": "If you're looking to import or update multiple contacts to an address book at once, then we highly recommend using [ImportContactsToAddressBook](https://developer.dotmailer.com/docs/importcontactstoaddressbook) instead.\n\nIt allows you to import a file and has the benefit of being a single API call only, making it far less likely that your account will exceed its API calls per hour limit.", "title": "Are you importing multiple contacts?" } [/block] **SOAP action:** [https://[region ID]-api.dotmailer.com/v2/ApiService/AddContactToAddressBook](doc:addcontacttoaddressbook) [block:callout] { "type": "info", "body": "The input and output parameters for this method are:\n\n**Input parameters** \n * AddressBook Id - *required; integer*\n * Email - *required; string*\n * OptInType - *optional; string ('Unknown', 'Single', 'Double', 'VerifiedDouble')*\n * EmailType - *optional; string ('PlainText', 'Html')*\n * DataFields - *optional; array of ContactData* \n * ContactData\n * Key - *string*\n * Value - *anyType* (please note: the data type needs to be defined for the value, such as 'string', 'numeric', 'date' or 'boolean'; e.g., for 'Firstname', the XML would need to be as follows - **<apic:Value xsi:type=\"xsd:string\">John</apic:Value>**) \n \n**Output parameters** \n * AddContactToAddressBookResult\n * Id - *integer*\n * Email - *string*\n * OptInType - *string ('Unknown', 'Single', 'Double', 'VerifiedDouble')*\n * EmailType - *string ('PlainText', 'Html')* \n * DataFields - *optional; array of ContactData* \n * ContactData\n * Key - *string*\n * Value - *anyType*\n * Status - *string ('Subscribed', 'Unsubscribed', 'SoftBounced', 'HardBounced', 'IspComplained', 'MailBlocked', 'PendingOptIn', 'DirectComplaint', 'Deleted', 'SharedSuppression', 'Suppressed', 'NotAllowed', 'DomainSuppression', 'NoMxRecord')*", "title": "Input and output parameters" } [/block] **Example** [block:code] { "codes": [ { "code": "using (var client = new ApiServiceClient())\n{\n\tclient.ClientCredentials.UserName.UserName = \"username\";\n\tclient.ClientCredentials.UserName.Password = \"password\";\n\n\t\tvar contact = new ApiContact {\n\t Email = \"john.smith@example.com\",\n\t OptInType = ApiContactOptInTypes.Single,\n\t EmailType = ApiContactEmailTypes.Html,\n\t DataFields = new[] {\n\t\t\tnew ApiContactData { Key = \"FirstName\", Value = \"John\" },\n new ApiContactData { Key = \"FullName\", Value = \"John Smith\" }, \n new ApiContactData { Key = \"Gender\", Value = \"Male\" }, \n new ApiContactData { Key = \"LastName\", Value = \"Smith\" }, \n\t\t\tnew ApiContactData { Key = \"Postcode\", Value = \"N5 1DP\" }\n\t\t}\n\t};\n\tvar addressBookId = 1;\n\tvar createdContact = client.AddContactToAddressBook(addressBookId, contact);\n}", "language": "csharp" } ] } [/block]