Update a contact

There are 2 ways to update a contact

Option 1- https://api.brevo.com/v3/contacts/{identifier}

Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={}

Option 1 only works if identifierType is email_id (for EMAIL) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL and ID of the contact.

Option 2 works for all identifierType, use email_id for EMAIL attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE attribute

📘

Follow this format when passing a "SMS" phone number as an attribute.

Accepted Number Formats
91xxxxxxxxxx
+91xxxxxxxxxx
0091xxxxxxxxxx

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 identifier = '[email protected]'; 

let updateContact = new SibApiV3Sdk.UpdateContact(); 

updateContact.attributes = {'EMAIL':'[email protected]','FIRSTNAME':'John Doe'};

apiInstance.updateContact(identifier, updateContact).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
);
$identifier = '[email protected]';
$updateContact = new \SendinBlue\Client\Model\UpdateContact();

$updateContact['attributes'] = array('EMAIL'=>'[email protected]', 'FIRSTNAME'=>'John Doe');

try {
    $apiInstance->updateContact($identifier, $updateContact);
} catch (Exception $e) {
    echo 'Exception when calling ContactsApi->updateContact: ', $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))
email = '[email protected]'
update_contact = sib_api_v3_sdk.UpdateContact(attributes={'EMAIL': '[email protected]', 'FIRSTNAME': 'John Doe'})

try:
    api_instance.update_contact(email, update_contact)
except ApiException as e:
    print("Exception when calling ContactsApi->update_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 identifier = '[email protected]';

let updateContact = new SibApiV3Sdk.UpdateContact();

updateContact.attributes = {'EMAIL':'[email protected]','FIRSTNAME':'John Doe'};

apiInstance.updateContact(identifier, updateContact).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();
            String email = "[email protected]";
            UpdateContact updateContact = new UpdateContact();
            Properties attributes = new Properties();
            attributes.setProperty("FIRSTNAME", "John");
            attributes.setProperty("LASTNAME", "Doe");
            attributes.setProperty("SMS", "91XXXXXXXXXX");
            updateContact.setAttributes(attributes);
            List<Long> listIds = new ArrayList<Long>();
            listIds.add(4l);
            updateContact.setListIds(listIds);
            List<Long> unlinkListIds = new ArrayList<Long>();
            unlinkListIds.add(2l);
            updateContact.setUnlinkListIds(unlinkListIds);
            List<String> smtpBlacklistedSender = new ArrayList<String>();
            smtpBlacklistedSender.add("[email protected]");
            updateContact.setSmtpBlacklistSender(smtpBlacklistedSender);
            updateContact.setEmailBlacklisted(false);
            updateContact.setSmsBlacklisted(false);
            api.updateContact(email, updateContact);
        } 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");
            attributes.Add("SMS", "91XXXXXXXXXX");
            List<long?> listIds = new List<long?>();
            listIds.Add(4);
            List<long?> unlinkListIds = new List<long?>();
            unlinkListIds.Add(2);
            bool? emailBlacklisted = false;
            bool? smsBlacklisted = false;
            List<string> smtpBlacklistedSender = new List<string>();
            smtpBlacklistedSender.Add("[email protected]");
            try
            {
                var updateContact = new UpdateContact(attributes, emailBlacklisted, smsBlacklisted, listIds, unlinkListIds, smtpBlacklistedSender);
                apiInstance.UpdateContact(email, updateContact);
                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{}{
		"EMAIL":     "[email protected]",
		"FIRSTNAME": "John Doe",
	}
	var params = UpdateContact{
		ListIds:    []int64{10},
		Attributes: attr,
	}
	resp, err := sib.ContactsApi.UpdateContact(ctx, params, email)
    if err!=nil{
        fmt.Println("Error in ContactsApi->UpdateContact",err.Error())
        return
    }
	fmt.Println( "UpdateContact 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

identifier = '[email protected]' # String | Email (urlencoded) OR ID of the contact

update_contact = SibApiV3Sdk::UpdateContact.new # UpdateContact | Values to update a contact

update_contact = {
  'attributes'=> {'EMAIL'=>'[email protected]','FIRSTNAME'=>'John Doe'}
}

begin
  #Update a contact
  api_instance.update_contact(identifier, update_contact)
rescue SibApiV3Sdk::ApiError => e
  puts "Exception when calling ContactsApi->update_contact: #{e}"
end
Language
Authorization
Header
Click Try It! to start a request and see the response here!