How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Keap Contacts API

Keap Contact API — 27 operations across 16 paths on the Keap REST v2 contract, read from Keap's own published OpenAPI 3.1 document.

Keap Contacts API is one of 59 APIs that Keap publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Contacts. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, and authentication docs.

This API exposes 44 operations across 26 paths, and defines 85 schemas. It is described by OpenAPI 3.2.0, at version 1.0.

Requests are made against a single base URL, https://api.infusionsoft.com/crm.

44 operations 26 paths 85 schemas 8 DELETE16 GET5 PATCH14 POST1 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.0
Base URL
https://api.infusionsoft.com/crm/rest/v2
Authentication
OAuth 2.0
Contact
License
Terms of Service
Resource Areas
1

Authentication & Security 1

Keap Contacts API declares 1 security scheme for authenticating requests. It supports OAuth 2.0 (oauth2) using the authorizationCode flow. By default, every request must be authenticated.

Paths & Operations 44

Across 26 paths, the API surfaces 44 operations — 8 DELETE, 16 GET, 5 PATCH, 14 POST, 1 PUT. Each is listed below with its method, path, parameters, and response codes.

Contact 44

Contact-Tag-Endpoint

GET
/rest/v1/contacts
List Contacts
listContacts 2 params → 400401500403409404501405
PUT
/rest/v1/contacts
Create or Update a Contact
createOrUpdateContact body → 400401500403409404501405
POST
/rest/v1/contacts
Create a Contact
createContact body → 400401500403409404501405
POST
/rest/v1/contacts/{contactId}/utm
Insert UTMs for a Contact
insertUTMs 1 param body → 400401500403409404501405
GET
/rest/v1/contacts/{contactId}/tags
List Applied Tags
listAppliedTags 2 params → 400401500403409404501405
POST
/rest/v1/contacts/{contactId}/tags
Apply Tags
applyTagsToContactId 1 param body → 400401500403409404501405
DELETE
/rest/v1/contacts/{contactId}/tags
Remove Applied Tags
removeTagsFromContact 2 params → 400401500403409404501405
GET
/rest/v1/contacts/{contactId}/emails
List Emails
listEmailsForContact 2 params → 400401500403409404501405
POST
/rest/v1/contacts/{contactId}/emails
Create an Email Record
createEmailForContact 1 param body → 400401500403409404501405
GET
/rest/v1/contacts/{contactId}/creditCards
Retrieve Credit Cards
listCreditCards 1 param → 400401500403409404501405
POST
/rest/v1/contacts/{contactId}/creditCards
Create a Credit Card
createCreditCard 1 param body → 400401500403409404501405
POST
/rest/v1/contacts/model/customFields
Create a Custom Field
createCustomField body → 400401500403409404501405
DELETE
/rest/v1/contacts/{contactId}
Delete a Contact
deleteContact 1 param → 400401500403409404501405
PATCH
/rest/v1/contacts/{contactId}
Update a Contact
updatePropertiesOnContact 2 params body → 400401500403409404501405
GET
/rest/v1/contacts/{id}
Retrieve a Contact
getContact 2 params → 400401500403409404501405
GET
/rest/v1/contacts/model
Retrieve Contact Model
retrieveContactModel → 400401500403409404501405
DELETE
/rest/v1/contacts/{contactId}/tags/{tagId}
Remove Applied Tag
removeTagsFromContact_1 2 params → 400401500403409404501405
GET
/rest/v2/contacts
List Contacts
getRestV2Contacts 5 params → 401404403409500501400405
POST
/rest/v2/contacts
Create a Contact
postRestV2Contacts 2 params body → 401404403409500501400405
POST
/rest/v2/contacts:unlink
Delete Link between two Contacts
unlinkContacts body → 401404403409500501400405
POST
/rest/v2/contacts:merge
Merge two Contacts
mergeContacts 1 param body → 401404403409500501400405
POST
/rest/v2/contacts:link
Link Contacts
linkContacts body → 401404403409500501400405
POST
/rest/v2/contacts/model/customFields
Create a Contact Custom Field
createContactCustomField body → 401404403409500501400405
GET
/rest/v2/contacts/model/customFields/tabs
List Contact Custom Field Tabs
listContactCustomFieldTabs → 401404403409500501400405
POST
/rest/v2/contacts/model/customFields/tabs
Create a Contact Custom Field Tab
createContactCustomFieldTab body → 401404403409500501400405
GET
/rest/v2/contacts/model/customFields/groups
List Contact Custom Field Groups
listContactCustomFieldGroups 1 param → 401404403409500501400405
POST
/rest/v2/contacts/model/customFields/groups
Create a Contact Custom Field Group
createContactCustomFieldGroup body → 401404403409500501400405
GET
/rest/v2/contacts/links/types
List Contact Link types
listContactLinkTypes 4 params → 401404403409500501400405
POST
/rest/v2/contacts/links/types
Create a Contact Link type
createContactLinkType body → 401404403409500501400405
GET
/rest/v2/contacts/{contact_id}
Retrieve a Contact
getRestV2ContactsByContactId 2 params → 401404403409500501400405
DELETE
/rest/v2/contacts/{contact_id}
Delete a Contact
deleteRestV2ContactsByContactId 1 param → 401404403409500501400405
PATCH
/rest/v2/contacts/{contact_id}
Update a Contact
updateContact 3 params body → 401404403409500501400405
GET
/rest/v2/contacts/model/customFields/tabs/{tab_id}
Retrieve a Contact Custom Field Tab
getContactCustomFieldTab 1 param → 401404403409500501400405
DELETE
/rest/v2/contacts/model/customFields/tabs/{tab_id}
Delete a Contact Custom Field Tab
deleteContactCustomFieldTab 1 param → 401404403409500501400405
PATCH
/rest/v2/contacts/model/customFields/tabs/{tab_id}
Update a Contact Custom Field Tab
updateContactCustomFieldTab 2 params body → 401404403409500501400405
GET
/rest/v2/contacts/model/customFields/groups/{group_id}
Retrieve a Contact Custom Field Group
getContactCustomFieldGroup 1 param → 401404403409500501400405
DELETE
/rest/v2/contacts/model/customFields/groups/{group_id}
Delete a Contact Custom Field Group
deleteContactCustomFieldGroup 1 param → 401404403409500501400405
PATCH
/rest/v2/contacts/model/customFields/groups/{group_id}
Update a Contact Custom Field Group
updateContactCustomFieldGroup 2 params body → 401404403409500501400405
DELETE
/rest/v2/contacts/links/types/{link_type_id}
Delete a Contact Link type
deleteContactLinkType 1 param → 401404403409500501400405
PATCH
/rest/v2/contacts/links/types/{link_type_id}
Update a Contact Link type
updateContactLinkType 2 params body → 401404403409500501400405
GET
/rest/v2/contacts/{contact_id}/tags
List Applied Tags
listTagsForContact 5 params → 401404403409500501400405
GET
/rest/v2/contacts/{contact_id}/links
List Linked Contacts
listContactLinks 1 param → 401404403409500501400405
GET
/rest/v2/contacts/model
Retrieve Contact Model
getRestV2ContactsModel → 401404403409500501400405
DELETE
/rest/v2/contacts/model/customFields/{custom_field_id}
Delete a Contact Custom Field
deleteContactCustomField 1 param → 401404403409500501400405

Schemas 85

The contract defines 85 schemas that model the data the API accepts and returns. The most detailed are Contact (40 properties), CreateUpdateContactRequest (30 properties), RestContactBase (23 properties), EmailSentCreate (18 properties). Each schema is shown below with its type and property counts.

EmailAddress
object
2 properties 1 required
HttpStatusCode
object
6 properties
EmailSentCreate
object
Email records to persist, with content.
18 properties 1 required
ContactQueryCommand
object
11 properties
ContactList
object
4 properties
PhoneNumber
object
5 properties 1 required
Relationship
object
3 properties
RequestCompanyReference
object
1 property
CreateUtmContact
object
UTM parameters to insert
6 properties 1 required
ModelAndView
object
7 properties
CreateOrPatchContact
contact
ContactTag
object
2 properties
View
object
1 property
RestContactBase
object
23 properties
CreateContactOrigin
object
1 property 1 required
RestPartialContact
ObjectModel
object
2 properties
DefaultHttpStatusCode
RestQueryCommand
object
2 properties
CreateRestCustomField
object
5 properties 2 required
ContactQueryEmailCommand
object
3 properties
FullUtm
object
7 properties 2 required
FaxNumber
object
3 properties 1 required
SimpleTag
object
3 properties
HttpStatus
CustomFieldOption
object
2 properties
ContactOrigin
object
2 properties 2 required
UpsertContact
CustomFieldValue
object
2 properties
ContactCreditCard
object
5 properties
FullContact
EmailSentQueryResultList
object
4 properties
ContactAddress
object
9 properties 1 required
RestContact
CreateRestCustomFieldOption
object
1 property
ContactTagList
object
4 properties
EmailSentQueryResult
object
15 properties
CompanyReference
object
2 properties
CreditCard
object
12 properties
SocialAccount
object
2 properties
CreditCardAdded
object
13 properties
TagId
object
1 property
CustomFieldMetaData
object
7 properties
Address
object
11 properties
CreateCustomFieldRequest
object
5 properties 2 required
Link
object
4 properties
Error
object
4 properties
ListContactLinksResponse
object
2 properties
UpdateContactLinkTypeRequest
object
2 properties
EmailAddress_2
object
5 properties
AppliedTag
object
Tag with application timestamp
2 properties
CreateContactUtmPropertiesRequest
object
6 properties 1 required
CategoryReference
object
1 property 1 required
EmailAddressRequest
object
3 properties
ListContactsResponse
object
2 properties
CreateCustomFieldTabRequest
object
1 property
PhoneNumber_2
object
5 properties
Origin
object
2 properties
Contact
object
40 properties
MergeContactRequest
object
2 properties 2 required
BasicCompany
object
2 properties
ListCustomFieldGroupsResponse
object
1 property
CustomFieldTab
object
4 properties
ListContactLinkTypesResponse
object
2 properties
ObjectModel_2
object
2 properties
CustomFieldGroup
object
5 properties
UpdateCustomFieldGroupRequest
object
3 properties
CreateUpdateContactRequest
object
contact
30 properties
CreateCustomFieldGroupRequest
object
2 properties
Tag
object
6 properties
FaxNumber_2
object
3 properties
OriginRequest
object
1 property
ContactLink
object
4 properties
ErrorDetails
object
2 properties
ContactLinkType
object
4 properties
CreateCustomFieldOptionRequest
object
1 property
CustomFieldValue_2
object
2 properties
ContactUtmResponse
object
10 properties
LinkContactsRequest
object
3 properties
ListContactTagsResponse
object
List of tags applied to a contact
2 properties
CreateContactLinkTypeRequest
object
2 properties
SocialAccount_2
object
2 properties 1 required
UpdateCustomFieldTabRequest
object
2 properties
ListCustomFieldTabsResponse
object
1 property
CustomFieldMetaData_2
object
Metadata describing a custom field, including its type and options
9 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

keap-contact-api-openapi.yml Raw ↑

Other APIs Keap publishes across the network.

Keap Affiliate API
Keap Automation API
Keap Campaigns API
Keap Category Discounts API
Keap Companies API
Keap Email API
Keap Files API
Keap Free Trial Discounts API
Keap Lead Source Categories API
Keap Lead Source Expenses API
Keap Lead Source Recurring Expenses API
Keap Lead Sources API
Where this information came from

This is an independent, third-party profile of Keap Contacts API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.