# How to add contacts to ActiveCampaign from your website

> Use ActiveCampaign’s contact sync API to add or update website leads, then start an automation with a tag. Where to find your key, URL and list ID.

Source: https://roughfigure.com/blog/add-contacts-to-activecampaign-from-your-website (updated 2026-11-11)

To add contacts to ActiveCampaign from your website, take the **API URL** and **API key** from **Settings → Developer**, then `POST` each lead to `/api/3/contact/sync`. Sync creates the contact if the email is new and updates them if not. Add them to a list or tag them, and an automation can take it from there.

## Find your API URL and key

In ActiveCampaign, open **Settings → Developer**. You’ll see:

- **URL**: something like `https://yourname.api-us1.com`. The first part (`yourname`) is your account name.
- **Key**: a long string. It acts as you, so keep it on a server.

## Add or update the contact

```http
POST https://yourname.api-us1.com/api/3/contact/sync
Api-Token: <your API key>
Content-Type: application/json

{
  "contact": {
    "email": "james.carter@mail.test",
    "firstName": "James",
    "lastName": "Carter",
    "phone": "+447700900321"
  }
}
```

The reply includes `contact.id`. Use it for the next two steps.

## Put them on a list (only with consent)

Adding someone to a list means they can get your campaigns. Only do this if they ticked a box agreeing to marketing. Our guide to [consent when sending leads to your CRM](https://roughfigure.com/blog/consent-for-crm-and-newsletter-leads) explains the difference between “contact me about this job” and “send me offers”.

```http
POST https://yourname.api-us1.com/api/3/contactLists
Api-Token: <your API key>
Content-Type: application/json

{ "contactList": { "list": 3, "contact": 101, "status": 1 } }
```

`status: 1` means subscribed. The list number is in the list’s web address.

## Start an automation with a tag

For a lead who wants a price for one job, a tag is better than a list. Create a tag like `website-lead`, add it to the contact, and build an automation that starts with **Tag is added**. Good first steps:

1. Email the customer straight away to say you’ve got their enquiry and when you’ll call.
2. Create a deal in your pipeline if you use ActiveCampaign’s CRM.
3. Wait two days, and if the deal hasn’t moved, remind yourself to [follow up](https://roughfigure.com/blog/how-to-follow-up-on-a-quote).

## Doing it in RoughFigure

In RoughFigure we’ve built two ActiveCampaign connections, both connected with a click once you’ve pasted your key:

- **ActiveCampaign (CRM)**, under **Send leads to your CRM**: every lead is synced as a contact with their name, email and phone. [See it](https://roughfigure.com/integrations/activecampaign).
- **ActiveCampaign email marketing**, under **Add leads to your newsletter**: only customers who ticked the marketing box and confirmed by email are subscribed to your list. [See it](https://roughfigure.com/integrations/activecampaign-newsletter).

Paste your API key and account name, add a list ID for the newsletter one, and click **Connect**.

## Questions

### Is my account on api-us1 even if I’m not in the US?

The address in **Settings → Developer** is the one to use, wherever you are. Copy it exactly rather than guessing.

### Will contact sync unsubscribe or resubscribe people?

Sync only changes the contact’s details. List subscription is a separate step, so someone who unsubscribed stays unsubscribed unless you add them to the list again.

### Can I send custom fields like postcode?

Yes, with a `fieldValues` array on the contact, using the ID of each custom field from **Contacts → Fields**.
