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 51 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
listContacts 5 params → 401404403409500501400405
POST
/rest/v2/contacts
Create a Contact
createContact 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
getContact 2 params → 401404403409500501400405
DELETE
/rest/v2/contacts/{contact_id}
Delete a Contact
deleteContact 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
retrieveContactModel → 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.

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

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.