Create Contact via DOI (Double-Opt-In) Flow

📘

How to use attributes param?

attributes param in this endpoint is an object containing key-value pairs where values can be either a string, integer, array, or boolean. You can create key-value pairs with these four datatypes and their items will be string datatype


Code Examples

You can use as reference the code below to implement this call in your preferred language.
Check all our official API clients here

const SibApiV3Sdk = require('sib-api-v3-sdk');
let defaultClient = SibApiV3Sdk.ApiClient.instance;

let apiKey = defaultClient.authentications['api-key'];
apiKey.apiKey = 'YOUR API KEY';

let apiInstance = new SibApiV3Sdk.ContactsApi();

let createDoiContact = new SibApiV3Sdk.CreateDoiContact(); // CreateDoiContact | Values to create the Double opt-in (DOI) contact

createDoiContact.email = "[email protected]";
createDoiContact.attributes = {"FNAME":"John","LNAME":"Doe"};
createDoiContact.includeListIds = [2];
createDoiContact.templateId = 1;
createDoiContact.redirectionUrl = "https://[email protected]";

apiInstance.createDoiContact(createDoiContact).then(function() {
  console.log('API called successfully.');
}, function(error) {
  console.error(error);
});
<?php
require_once(__DIR__ . '/vendor/autoload.php');

$config = SendinBlue\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key', 'YOUR API KEY');

$apiInstance = new SendinBlue\Client\Api\ContactsApi(
    new GuzzleHttp\Client(),
    $config
);
$createDoiContact = new \SendinBlue\Client\Model\CreateDoiContact(); // \SendinBlue\Client\Model\CreateDoiContact | Values to create the Double opt-in (DOI) contact
$createDoiContact['email'] = '[email protected]';
$createDoiContact['attributes'] = array('FNAME'=>'John', 'LNAME'=>'Doe');
$createDoiContact['includeListIds'] = array(1);
$createDoiContact['templateId'] = 1;
$createDoiContact['redirectionUrl'] = "https://[email protected]";

try {
    $apiInstance->createDoiContact($createDoiContact);
} catch (Exception $e) {
    echo 'Exception when calling ContactsApi->createDoiContact: ', $e->getMessage(), PHP_EOL;
}
?>
from __future__ import print_function
import time
import sib_api_v3_sdk
from sib_api_v3_sdk.rest import ApiException
from pprint import pprint

configuration = sib_api_v3_sdk.Configuration()
configuration.api_key['api-key'] = 'YOUR API KEY'

api_instance = sib_api_v3_sdk.ContactsApi(sib_api_v3_sdk.ApiClient(configuration))
create_doi_contact = sib_api_v3_sdk.CreateDoiContact()
create_doi_contact.email = "[email protected]"
create_doi_contact.attributes = {"FNAME":"John","LNAME":"Doe"}
create_doi_contact.include_list_ids = [2]
create_doi_contact.template_id = 1
create_doi_contact.redirection_url = "https://[email protected]"

try:
    api_instance.create_doi_contact(create_doi_contact)
except ApiException as e:
    print("Exception when calling ContactsApi->create_doi_contact: %s\n" % e)
const SibApiV3Sdk = require('sib-api-v3-typescript');
 
let apiInstance = new SibApiV3Sdk.ContactsApi()

let apiKey = apiInstance.authentications['apiKey'];
apiKey.apiKey = 'YOUR API KEY';

let createDoiContact = new SibApiV3Sdk.CreateDoiContact();

createDoiContact.email = "[email protected]";
createDoiContact.attributes = {"FNAME":"John","LNAME":"Doe"};
createDoiContact.includeListIds = [2];
createDoiContact.templateId = 1;
createDoiContact.redirectionUrl = "https://[email protected]";

apiInstance.createDoiContact(createDoiContact).then(function() {
  console.log('API called successfully.');
}, function(error) {
  console.error(error);
});
package sibApi;

import sendinblue.ApiClient;
import sendinblue.Configuration;
import sendinblue.auth.ApiKeyAuth;
import sibModel.*;
import java.util.*;
import java.util.List;

public class Program {
    public static void main(String[] args) {
        ApiClient defaultClient = Configuration.getDefaultApiClient();
        // Configure API key authorization: api-key
        ApiKeyAuth apiKey = (ApiKeyAuth) defaultClient.getAuthentication("api-key");
        apiKey.setApiKey("YOUR API KEY");

        try {
            ContactsApi api = new ContactsApi();
            CreateDoiContact createDoiContact = new CreateDoiContact();
            createDoiContact.setEmail("[email protected]");
            Properties attributes = new Properties();
            attributes.setProperty("FIRSTNAME", "John");
            attributes.setProperty("LASTNAME", "Doe");
            createDoiContact.setAttributes(attributes);
            List<Long> includeListIds = new ArrayList<Long>();
            includeListIds.add(2l);
            createDoiContact.setIncludeListIds(includeListIds);
            List<Long> excludeListIds = new ArrayList<Long>();
            excludeListIds.add(4l);
            createDoiContact.setExcludeListIds(excludeListIds);
            createDoiContact.setTemplateId(1l);
            createDoiContact.setRedirectionUrl("https://example.net");
            api.createDoiContact(createDoiContact);
        } catch (Exception e) {
            System.out.println("Exception occurred:- " + e.getMessage());
        }
    }
}
using sib_api_v3_sdk.Api;
using sib_api_v3_sdk.Client;
using sib_api_v3_sdk.Model;
using System;
using System.Diagnostics;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;

namespace Sendinblue
{
    class Program
    {
        static void Main(string[] args)
        {
            Configuration.Default.ApiKey.Add("api-key", "YOUR API KEY");

            var apiInstance = new ContactsApi();
            string email = "[email protected]";
            JObject attributes = new JObject();
            attributes.Add("FIRSTNAME", "John");
            attributes.Add("LASTNAME", "Doe");
            List<long?> includeListIds = new List<long?>();
            includeListIds.Add(2);
            List<long?> excludeListIds = new List<long?>();
            excludeListIds.Add(4);
            long? templateId = 1;
            string redirectionUrl = "https://example.net";
            try
            {
                var createDoiContact = new CreateDoiContact(email, attributes, includeListIds, excludeListIds, templateId, redirectionUrl);
                apiInstance.CreateDoiContact(createDoiContact);
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                Console.WriteLine(e.Message);
                Console.ReadLine();
            }
        }
    }
}
package main
import (
	"fmt"
	"context"
    sib_api_v3_sdk "./lib"
)

func main() {
	var ctx context.Context
	var cli = sib_api_v3_sdk.APIClient{
		cfg: sib_api_v3_sdk.NewConfiguration(),
	}
	//Configure API key authorization: api-key
	cli.cfg.AddDefaultHeader("api-key", "YOUR_API_KEY")

	sib := sib_api_v3_sdk.NewAPIClient(cli.cfg)
  attr := map[string]interface{}{
	"FNAME":"John",
	"LNAME":"Doe",
	} 
	body := CreateDoiContact{
		Email:          "[email protected]",
    Attributes: attr,
		IncludeListIds: []int64{2},
		TemplateId:     int64(1),
		RedirectionUrl: "https://[email protected]",
	}

	resp, err := sib.ContactsApi.CreateDoiContact(ctx, body)
    if err!=nil{
        fmt.Println("Error in ContactsApi->CreateDoiContact ",err.Error())
        return
    }
	fmt.Println( "CreateDoiContact response:",resp)
	return 
}
# load the gem
require 'sib-api-v3-sdk'
# setup authorization
SibApiV3Sdk.configure do |config|
  # Configure API key authorization: api-key
  config.api_key['api-key'] = 'YOUR API KEY'
end

api_instance = SibApiV3Sdk::ContactsApi.new

create_doi_contact = SibApiV3Sdk::CreateDoiContact.new # CreateDoiContact | Values to create the Double opt-in (DOI) contact

create_doi_contact = {
  'email' => '[email protected]',
  'attributes' => {'FNAME'=>'John','LNAME'=>'Doe'},
  'includeListIds' => [2],
  'templateId' => 1,
  'redirectionUrl' => 'https://[email protected]'
}

begin
  #Create Contact via DOI (Double-Opt-In) Flow
  api_instance.create_doi_contact(create_doi_contact)
rescue SibApiV3Sdk::ApiError => e
  puts "Exception when calling ContactsApi->create_doi_contact: #{e}"
end
Language
Authorization
Header
Click Try It! to start a request and see the response here!