Package: activecampaign-python
activecampaign-pythonActiveCampaign API wrapper written in python.This library supports the latest API version 3. If you are looking for API version 1 which is also supported by ActiveCampaign then check below.Installing (API v3)pip install activecampaign-pythonRequirements- requestsUsageClient instantiationfrom activecampaign.client import Client
client = Client(URL, API_KEY)AutomationsList all automationsresponse = client.automations.list_all_automations()ContactsCreate a contactdata = {
	"contact": {
		"email": "johndoe@example.com",
		"firstName": "John",
		"lastName": "Doe",
		"phone": "7223224241"
	}
}
response = client.contacts.create_a_contact(data)Create or update contactdata = {
	"contact": {
		"email": "johndoe@example.com",
		"firstName": "John",
		"lastName": "Doe",
		"phone": "7223224241"
	}
}
response = client.contacts.create_or_update_contact(data)Retrieve a contactresponse = client.contacts.retrieve_a_contact("contact_id")Update list status for a contactdata = {
    "contactList": {
        "list": 2,
        "contact": 1,
        "status": 1
    }
}
response = client.contacts.update_list_status_for_a_contact(data)Update a contactdata = {
	"contact": {
		"email": "johndoe@example.com",
		"firstName": "John",
		"lastName": "Doe"
	}
}
response = client.contacts.update_a_contact("contact_id", data)Delete a contactresponse = client.contacts.delete_a_contact("contact_id")List all contactsresponse = client.contacts.list_all_contacts()

Additionally, you can filter a contact:
response = client.contacts.list_all_contacts(email="johndoe@example.com")

For more query params: https://developers.activecampaign.com/reference#list-all-contactsList all automations the contact is inresponse = client.contacts.list_all_automations_the_contacts_is_in("contact_id")Retrieve a contacts score valueresponse = client.contacts.retrieve_a_contacts_score_value("contact_id")Add a contact to an automationdata = {
    "contactAutomation": {
        "contact": 1,
        "automation": 1
    }
}
response = client.contacts.add_a_contact_to_an_automation(data)Retrieve an automation a contact is inresponse = client.contacts.retrieve_an_automation_a_contact_is_in("contact_automation_id")Remove a contact from an automationresponse = client.contacts.remove_a_contact_from_an_automation("contact_automation_id")List all automations a contact is inresponse = client.contacts.list_all_automations_a_contact_is_in()Create a custom fielddata = {
	"field": {
		"type": "textarea",
		"title": "Field Title",
		"descript": "Field description",
		"isrequired": 1,
		"perstag": "Personalized Tag",
		"defval": "Defaut Value",
		"visible": 1,
		"ordernum": 1
    }
}
response = client.contacts.create_a_custom_field(data)Retrieve a custom fieldresponse = client.contacts.retrieve_a_custom_field("field_id")Update a custom fielddata = {
	"field": {
		"type": "textarea",
		"title": "Field Title",
		"descript": "Field description",
		"isrequired": 1,
		"perstag": "Personalized Tag",
		"defval": "Defaut Value",
		"visible": 1,
		"ordernum": 1
    }
}
response = client.contacts.create_a_custom_field("field_id", data)Delete a custom fieldresponse = client.contacts.delete_a_custom_field("field_id")List all custom fieldsresponse = client.contacts.list_all_custom_fields()Create a custom field relationship to list(s)data = {
	"fieldRel": {
		"field": 8,
		"relid": 2
	}
}
response = client.contacts.create_a_custom_field_relationship_to_list(data)Create custom field optionsdata = {
    "field": 1,
    "label": "my custom label",
    "value": 1,
    "orderid": 1,
    "isdefault": True
}
response = client.contacts.create_custom_field_options(data)Retrieve field optionsresponse = client.contacts.retrieve_field_options("field_id")Create a custom field valueresponse = activecampaign_client.contacts.create_a_custom_field_value(data)Retrieve a custom field valueresponse = activecampaign_client.contacts.retrieve_a_custom_field_value(field_value_id="some-id")Update a custom field value for contactresponse = activecampaign_client.contacts.update_a_custom_field_value_for_contact(data, field_value_id="some-id")Delete a custom field valueresponse = activecampaign_client.contacts.delete_a_custom_field_value(field_value_id="some-id")List all custom field valuesresponse = activecampaign_client.contacts.list_all_custom_field_values()Retrieve a contact's field valuesresponse = activecampaign_client.contacts.retrieve_a_contacts_field_values(contact_id="some-id")Retrieve a contact's tracking logsresponse = activecampaign_client.contacts.retrieve_a_contacts_tracking_logs(contact_id="some-id")Retrieve a contact's dataresponse = activecampaign_client.contacts.retrieve_a_contacts_data(contact_id="some-id")Retrieve a contact's bounce logsresponse = activecampaign_client.contacts.retrieve_a_contacts_bounce_logs(contact_id="some-id")Retrieve a contact's geo ipsresponse = activecampaign_client.contacts.retrieve_a_contacts_geo_ips(contact_id="some-id")Retrieve a contact's organizationresponse = activecampaign_client.contacts.retrieve_a_contacts_organization(contact_id="some-id")Retrieve a contact's account contactsresponse = activecampaign_client.contacts.retrieve_a_contacts_account_contacts(contact_id="some-id")Retrieve a contact's automation entry countsresponse = activecampaign_client.contacts.retrieve_a_contacts_automation_entry_counts(contact_id="some-id")Add a tag to a contactdata = {
    "contactTag": {
        "contact": "1",
        "tag": "20"
    }
}
response = client.contacts.add_a_tag_to_contact(data)Remove a tag from a contactresponse = client.contacts.remove_a_tag_from_a_contact("contact_tag_id")Retrieve contact tagsresponse = client.contacts.retrieve_contact_tags("contact_id")DealsCreate a dealdata = {
  "deal": {
    "contact": "51",
    "description": "This deal is an important deal",
    "currency": "usd",
    "group": "1",
    "owner": "1",
    "percent": None,
    "stage": "1",
    "status": 0,
    "title": "AC Deal",
    "value": 45600
  }
}
response = client.deals.create_a_deal(data)Retrieve a dealresponse = client.deals.retrieve_a_deal("deal_id")Update a dealdata = {
  "deal": {
    "contact": "51",
    "description": "This deal is an important deal",
    "currency": "usd",
    "group": "1",
    "owner": "1",
    "percent": None,
    "stage": "1",
    "status": 0,
    "title": "AC Deal",
    "value": 45600
  }
}
response = client.deals.update_a_deal(data)Delete a dealresponse = client.deals.delete_a_deal("deal_id")List all dealsresponse = client.deals.list_all_deals()

Additionally, you can filter a deal:
query = {
    "filters[stage]": 1
}
response = client.deals.list_all_deals(**query)

For more query params: https://developers.activecampaign.com/reference#list-all-dealsCreate a deal notedata = {
  "note": {
    "note": "Note for the deal"
  }
}
response = client.deals.create_a_deal_note("deal_id", data)Update a deal notedata = {
  "note": {
    "note": "Update with more info"
  }
}
response = client.deals.update_a_deal_note("deal_id", "note_id", data)List all pipelinesresponse = client.deals.list_all_pipelines()

Additionally, you can filter a pipeline:
query = {
    "filters[title]": "My pipeline"
}
response = client.deals.list_all_pipelines(**query)

For more query params: https://developers.activecampaign.com/reference#list-all-pipelinesList all stagesresponse = client.deals.list_all_stages()

Additionally, you can filter a stage:
query = {
    "filters[d_groupid]": 1
}
response = client.deals.list_all_stages(**query)

For more query params: https://developers.activecampaign.com/reference#list-all-deal-stagesListsCreate a listdata = {
	"list": {
		"name": "Name of List",
		"stringid": "Name-of-list",
		"sender_url": "http://activecampaign.com",
		"sender_reminder": "You are receiving this email as you subscribed to a newsletter when making an order on our site.",
		"send_last_broadcast": 0,
		"carboncopy": "",
		"subscription_notify": "",
		"unsubscription_notify": "",
		"user": 1
	}
}
response = client.lists.create_a_list(data)Retrieve a listresponse = client.lists.retrieve_a_list("list_id")Delete a listresponse = client.lists.delete_a_list("list_id")Retrieve all listsresponse = client.lists.retrieve_all_lists()Create a list group permissiondata = {
	"listGroup": {
		"listid": 19,
		"groupid": 1
	}
}
response = client.lists.create_a_list_group_permission(data)NotesCreate a notedata = {
	"note": {
		"note": "This is the text of the note",
		"relid": 2,
		"reltype": "Subscriber"
	}
}
response = client.notes.create_a_note(data)Retrieve a noteresponse = client.notes.retrieve_a_note("note_id")Update a notedata = {
	"note": {
		"note": "This is the text of the note",
		"relid": 2,
		"reltype": "Subscriber"
	}
}
response = client.notes.update_a_note("note_id", data)Delete a noteresponse = client.notes.delete_a_note("note_id")TasksCreate a taskdata = {
  "dealTask": {
    "title":null,
    "ownerType":"contact",
    "relid":"7",
    "status":0,
    "note":"Testing Task",
    "duedate":"2017-02-25T12:00:00-06:00",
    "edate":"2017-02-25T12:15:00-06:00",
    "dealTasktype":"1"
  }
}
response = client.tasks.create_a_task(data)Retrieve a taskresponse = client.tasks.retrieve_a_task("task_id")Update a taskdata = {
  "dealTask": {
    "title":null,
    "ownerType":"contact",
    "relid":"7",
    "status":0,
    "note":"Testing Task",
    "duedate":"2017-02-25T12:00:00-06:00",
    "edate":"2017-02-25T12:15:00-06:00",
    "dealTasktype":"1"
  }
}
response = client.tasks.update_a_task("task_id", data)Delete a taskresponse = client.tasks.delete_a_task("task_id")List all tasksresponse = client.tasks.list_all_tasks()

Additionally, you can filter a task:
query = {
    "filters[title]": "My task"
}
response = client.deals.list_all_tasks(**query)

For more query params: https://developers.activecampaign.com/reference#list-all-tasksUsersCreate a userresponse = client.users.create_a_user(data)Retrieve a userresponse = client.users.retrieve_a_user("user_id")Retrieve a user by emailresponse = client.users.retrieve_a_user_by_email("email")Retrieve a user by usernameresponse = client.users.retrieve_a_user_by_username("username")Retrieve logged-in userresponse = client.users.retrieve_logged_in_user()Update a userresponse = client.users.update_a_user("user_id", data)Delete a userresponse = client.users.delete_a_user("user_id")List all usersresponse = client.users.list_all_users()WebhooksCreate a webhookdata = {
    "webhook": {
        "name": "My Hook",
        "url": "http://example.com/my-hook",
        "events": [
            "subscribe",
            "unsubscribe",
            "sent"
        ],
        "sources": [
            "public",
            "system"
        ]
    }
}
response = client.webhooks.create_a_webhook(data)Retrieve a webhookresponse = client.webhooks.retrieve_a_webhook("webhook_id")Delete a webhookresponse = client.webhooks.delete_a_webhook("webhook_id")List all webhooksresponse = client.webhooks.list_all_webhooks()

Additionally, you can filter a webhook:
query = {
    "filters[name]": "My webhook"
}
response = client.deals.list_all_webhooks(**query)

For more query params: https://developers.activecampaign.com/reference#get-a-list-of-webhooksList all webhook eventsresponse = client.webhooks.list_all_webhook_events()TagsCreate a tagdata = {
    "tag":{
        "tag": "My Tag",
        "tagType": "contact",
        "description": "Description"
    }
}
response = client.tags.create_a_tag(data)Retrieve a tagresponse = client.tags.retrieve_a_tag("tag_id")Update a tagdata = {
    "tag":{
        "tag": "My Tag",
        "tagType": "contact",
        "description": "Description"
    }
}
response = client.tags.update_a_tag("tag_id", data)Delete a tagresponse = client.tags.delete_a_tag("tag_id")List all tagsresponse = client.tags.list_all_tags(search='Tag Name')Custom ObjectsCreate a schemadata = {
  "schema": {
    "slug": "object-name",
    "labels": {
      "singular": "ObjectName",
      "plural": "ObjectNames"
    },
    "description": "Some Description",
    "fields": [
      {
        "id": "some-field-id",
        "labels": {
          "singular": "ID",
          "plural": "IDs"
        },
        "type": "text",
        "required": True,
      },
    ],
    "relationships": [
      {
        "id": "primary-contact",
        "labels": {
          "singular": "Primary Contact",
          "plural": "Primary Contacts"
        },
        "description": "Primary contact to this object",
        "namespace": "contacts",
        "hasMany": False
      }
    ]
  }
}
response = client.customobjects.create_a_schema(data=data)Retrieve a schemaresponse = client.customobjects.retrieve_a_schema(schema_id="some-id", show_all_fields=False)Update a schemadata = {
  "schema": {
    "slug": "object-name",
    "labels": {
      "singular": "ObjectName",
      "plural": "ObjectNames"
    },
    "description": "Some Description",
    "fields": [
      {
        "id": "some-field-id",
        "labels": {
          "singular": "ID",
          "plural": "IDs"
        },
        "type": "text",
        "required": True,
      },
      {
        "id": "some-other-field-id",
        "labels": {
          "singular": "OtherID",
          "plural": "OtherIDs"
        },
        "type": "text",
        "required": True,
      },
    ],
    "relationships": [
      {
        "id": "primary-contact",
        "labels": {
          "singular": "Primary Contact",
          "plural": "Primary Contacts"
        },
        "description": "Primary contact to this object",
        "namespace": "contacts",
        "hasMany": False
      }
    ]
  }
}
response = client.customobjects.update_a_schema(schema_id="some-schema-id", data=data, show_all_fields=False)Delete a schemaresponse = client.customobjects.delete_a_schema(schema_id="some-id")WARNING: This deletes all associated recordsList all schemasresponse = client.customobjects.list_all_schemas(schema_relationship="contact", limit=20, offset=0, ordering=None, show_all_fields=False)Delete field in schemaresponse = client.customobjects.delete_a_field(schema_id="some-id", field_id="some-field-id", show_all_fields=False)Create a public schemadata = {

}
response = client.customobjects.create_a_public_schema(data=data)Create a child schemaresponse = client.customobjects.create_a_child_schema(parent_id="some-parent-schema-id")Upsert custom object recorddata = {
  "record": {
    "fields": [
      {
        "id": "some-field-id",
        "value": "asdf-1234"
      },
      {
        "id": "some-other-field-id",
        "value": "asdf-5678"
      },
    ]
  }
}
response = client.customobjects.create_or_update_record(schema_id="some-id", data=data)Retrieve a recordresponse = client.customobjects.retrieve_a_record(schema_id="some-id", record_id="some-record-id")Retrieve a record by external idresponse = client.customobjects.retrieve_a_record_by_external_id(schema_id="some-id", external_id="some-record-id")Delete a recordresponse = client.customobjects.delete_a_record(schema_id="some-id", record_id="some-record-id")Delete a record by external idresponse = client.customobjects.delete_a_record_by_external_id(schema_id="some-id", external_id="some-record-id")List all recordsresponse = client.customobjects.list_all_records(
        schema_id="some-id", contact_id="some-contact-id", deal_id=None, account_id=None,
        limit=20, offset=0)AddressesCreate an addressresponse = activecampaign_client.addresses.create_an_address(data)Retrieve an addressresponse = activecampaign_client.addresses.retrieve_address(address_id="some-id")Update an addressresponse = activecampaign_client.addresses.update_address(data, address_id="some-id")Delete an addressresponse = activecampaign_client.addresses.delete_address(address_id="some-id")Delete an address associated with a user groupresponse = activecampaign_client.addresses.delete_address_associated_with_user_group(group_id="some-id")Delete an address associated with a listresponse = activecampaign_client.addresses.delete_address_associated_with_list(list_id="some-id")Retrieve all addressesresponse = activecampaign_client.addresses.retrieve_all_addresses()CampaignsList all campaignsresponse = activecampaign_client.campaigns.list_all_campaigns()Retrieve a link associated campaignresponse = activecampaign_client.campaigns.retrieve_a_link_associated_campaign(campaign_id="some-id")Retrieve a campaignresponse = activecampaign_client.campaigns.retrieve_a_campaign(campaign_id="some-id")BrandingsRetrieve a brandingresponse = activecampaign_client.brandings.retrieve_a_branding(branding_id="some-id")Update a brandingresponse = activecampaign_client.brandings.update_a_branding(data, branding_id="some-id")List all brandingsresponse = activecampaign_client.brandings.list_all_brandings()About API v1You can clone and checkout our tag v0.1.1.$ git clone https://github.com/GearPlug/activecampaign-python.git
$ git checkout tags/v0.1.1 -b <branch_name>Also you can install this version in pip$ pip install activecampaign-python=0.1.1