Exclusive: all our customers get a free six-month subscription to a next-gen data and AI learning platform

Explore the Keap API data model

See how the various Keap endpoints relate to each other, using our handy Entity Relationship Diagram

Pulling data from the Keap API is only the first part of your reporting. You also need to understand the relationships between different endpoints - something that APIs typically fail to convey.

At SyncHub, we not only sync your Keap API endpoints down into a reportable format, we also describe their relationships (e.g. in terms of foreign keys) so that you can quickly get a grasp of your data and how it fits together. This page is intended as technical documentation of these relationships.

Endpoints

Campaign

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/Campaign

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
TimeZone string - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
DateCreated datetime - -
ErrorMessage string - -
ActiveContactCount int - -
CompletedContactCount int - -
PublishedStatus boolean - -
PublishedTimeZone string - -
PublishedDate datetime - -

Company

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/Company

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
CompanyName string - -
EmailAddress string - -
EmailOptedIn boolean - -
EmailStatus string - -
Notes string - -
Website string - -
AddressCountryCode string - -
AddressLine1 string - -
AddressLine2 string - -
AddressLocality string - -
AddressRegion string - -
AddressZipCode string - -
AddressZipFour string - -
PhoneNumberExtension string - -
PhoneNumberNumber string - -
PhoneNumberType string - -

Contact

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/Contact

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
TimeZone string - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
EmailOptedIn boolean - -
OwnerID long User → ID -
GivenName string - -
MiddleName string - -
FamilyName string - -
EmailStatus string - -
LastUpdatedUtcMillis long - -
CompanyID long Company → ID -
OriginDate datetime - -
OriginIPAddress string - -
OptInReason string - -
Birthday datetime - -
PreferredLocale string - -
Website string - -
Notes string - -
Prefix string - -
SourceType string - -
Suffix string - -
LeadSourceID long - -
ContactType string - -
SpouseName string - -
JobTitle string - -
PreferredName string - -
Anniversary datetime - -
LastUpdated datetime - -
DateCreated datetime - -

ContactNote

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/Note

Column Type Relates to Notes
RemoteID string - -
ContactRemoteID string Contact → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
LastUpdated datetime - -
DateCreated datetime - -
ContactID long Contact → ID -
UserID long User → ID -
Body string - -
Title string - -
Type string - -
LastUpdatedByUserID long User → ID -
LastUpdatedByGivenName string - -
LastUpdatedByFamilyName string - -

Email

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/Email

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
SentDate datetime - -
ContactID long Contact → ID
  • 23 Dec 2022 Keap will represent a NULL contact as zero here
ClickedDate datetime - -
OpenedDate datetime - -
OriginalProvider string - -
OriginalProviderID string - -
ReceivedDate datetime - -
SentFromAddress string - -
SentFromReplyAddress string - -
SentToAddress string - -
SentToBccAddresses string - -
SentToCcAddresses string - -
Subject string - -

Opportunity

Documentation: https://developer.infusionsoft.com/docs/rest/#operation/listOpportunitiesUsingGET

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
AffiliateID long - -
ContactID long Contact → ID -
UserID long User → ID -
StageID long Stage → StageID -
DateCreated datetime - -
EstimatedCloseDate datetime - -
IncludeInForecast boolean - -
LastUpdated datetime - -
NextActionDate datetime - -
NextActionNotes string - -
OpportunityNotes string - -
OpportunityTitle string - -
ProjectedRevenueHigh decimal - -
ProjectedRevenueLow decimal - -

Order

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/E-Commerce

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
CreationDate datetime - -
ModificationDate datetime - -
AllowPayment boolean - -
AllowPaypal boolean - -
LeadAffiliateID long - -
Notes string - -
OrderDate datetime - -
Recurring boolean - -
RefundTotal decimal - -
SalesAffiliateID long - -
SourceType string - -
Status string - -
Terms string - -
Title string - -
Total decimal - -
TotalDue decimal - -
TotalPaid decimal - -
ContactID long Contact → ID -
ContactEmail string - -
ContactFirstName string - -
ContactLastName string - -
ContactCompanyName string - -
ShippingFirstName string - -
ShippingMiddleName string - -
ShippingLastName string - -
ShippingCompany string - -
ShippingPhone string - -
ShippingStreet1 string - -
ShippingStreet2 string - -
ShippingCity string - -
ShippingState string - -
ShippingZip string - -
ShippingCountry string - -
ShippingInvoiceToCompany boolean - -
PaymentPlanAutoCharge boolean - -
PaymentPlanCreditCardID long - -
PaymentPlanDaysBetweenPayments long - -
PaymentPlanInitialPaymentAmount decimal - -
PaymentPlanInitialPaymentDate datetime - -
PaymentPlanStartDate datetime - -
PaymentPlanPaymentGatewayMerchantID long - -
PaymentPlanPaymentGatewayUseDefault boolean - -

OrderPayment

Documentation: https://developer.infusionsoft.com/docs/rest/#operation/listOrderPaymentsUsingGET

Column Type Relates to Notes
RemoteID string - -
OrderRemoteID string Order → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
LastUpdated datetime - -
Amount decimal - -
OrderID long Order → ID -
Note string - -
PayDate datetime - -
PayStatus string - -
PaymentID long - -
RefundOrderPaymentID long - -
SkipCommission boolean - -

Product

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/Product

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
ProductDesc string - -
ProductName string - -
ProductPrice decimal - -
ProductShortDesc string - -
Sku string - -
Status int - -
SubscriptionOnly boolean - -
Url string - -

Stage

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/Opportunity/operation/listOpportunityStagePipelinesUsingGET

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
StageID long - -
StageName string - -
StageCount int - -
StageOrder int - -
EndStage boolean - -
IsDefault boolean - -

Tag

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/Contact

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Description string - -
CategoryID long - -
CategoryName string - -
CategoryDescription string - -

Task

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/Task

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Description string - -
CreationDate datetime - -
ModificationDate datetime - -
Title string - -
Type string - -
Priority int - -
Completed boolean - -
Url string - -
DueDate datetime - -
CompletionDate datetime - -
RemindTime int - -
UserID long User → ID -
TaskContactID long Contact → ID -

User

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/Users

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
TimeZone string - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
DateCreated datetime - -
LastUpdated datetime - -
Website string - -
Partner boolean - -
Status string - -
CompanyName string - -
EmailAddress string - -
GivenName string - -
FamilyName string - -
MiddleName string - -
PreferredName string - -
JobTitle string - -
InfusionsoftID string - -
CreatedBy long - -
LastUpdatedBy long User → ID -
GlobalUserID long - -
UserAddressLine1 string - -
UserAddressLine2 string - -
UserAddressLocality string - -
UserAddressRegion string - -
UserAddressZipCode string - -
UserAddressZipFour string - -
UserAddressCountryCode string - -

CompanyCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
CompanyRemoteID string Company → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CustomFieldID long CustomField → ID -
CompanyID long Company → ID -

ContactTag

Column Type Relates to Notes
RemoteID string - -
ContactRemoteID string Contact → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ContactID long Contact → ID -
TagID long Tag → ID -

ContactCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
ContactRemoteID string Contact → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CustomFieldID long CustomField → ID -
ContactID long Contact → ID -
Content string -
  • 2 May 2024 In the case of multi-select custom fields, the API will return the selected options as a single comma-separated string, which we helpfully split out into different ContactCustomFieldValueOption records. However, we retain this field for use with other free-text field types, which may genuinely have commas in their content and for which splitting by comma is neither required nor intuitive

ContactAddress

Column Type Relates to Notes
RemoteID string - -
ContactRemoteID string Contact → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ContactID long Contact → ID -
AddressNumber int - -
Line1 string - -
Line2 string - -
Locality string - -
Region string - -
Field string - -
PostalCode string - -
ZipCode string - -
ZipFour string - -
CountryCode string - -

ContactEmailAddress

Column Type Relates to Notes
RemoteID string - -
ContactRemoteID string Contact → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ContactID long Contact → ID -
Email string - -
Field string - -

ContactPhoneNumber

Column Type Relates to Notes
RemoteID string - -
ContactRemoteID string Contact → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ContactID long Contact → ID -
Number string - -
Extension string - -
Field string - -
Type string - -

CustomField

Documentation: https://developer.infusionsoft.com/docs/rest/#tag/Company/operation/retrieveCompanyModelUsingGET

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Label string - -
RecordType string - -
FieldType string - -
FieldName string - -
DefaultValue string - -

OpportunityCustomFieldValue

Column Type Relates to Notes
RemoteID string - -
OpportunityRemoteID string Opportunity → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CustomFieldID long CustomField → ID -
OpportunityID long Opportunity → ID -

OrderItem

Column Type Relates to Notes
RemoteID string - -
OrderRemoteID string Order → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Description string - -
OrderID long Order → ID -
JobRecurringID long - -
Type string - -
Notes string - -
Quantity decimal - -
Cost decimal - -
Price decimal - -
Discount decimal - -
SpecialID long - -
SpecialAmount decimal - -
SpecialPctOrAmt decimal - -
SubscriptionPlanID long ProductSubscriptionPlan → ID -
SubscriptionPlanCycle int - -
SubscriptionPlanFrequency int - -
SubscriptionPlanActive boolean - -
SubscriptionPlanName string - -
SubscriptionPlanTotalCycles int - -
SubscriptionPlanPrice decimal - -
SubscriptionPlanIndex int - -
ProductID long Product → ID -

ProductSubscriptionPlan

Column Type Relates to Notes
RemoteID string - -
ProductRemoteID string Product → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
ProductID long Product → ID -
Cycle int - -
Frequency int - -
Url string - -
Active boolean - -
SubscriptionPlanName string - -
NumberOfCycles int - -
PlanPrice decimal - -
SubscriptionPlanIndex int - -
CycleType string - -

UserPhoneNumber

Column Type Relates to Notes
RemoteID string - -
UserRemoteID string User → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
UserID long User → ID -
Number string - -
Extension string - -
Field string - -
Type string - -

UserFaxNumber

Column Type Relates to Notes
RemoteID string - -
UserRemoteID string User → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
UserID long User → ID -
Number string - -
Field string - -
Type string - -

CompanyCustomFieldValueOption

Column Type Relates to Notes
RemoteID string - -
CompanyCustomFieldValueRemoteID string CompanyCustomFieldValue → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Value string - -

ContactCustomFieldValueOption

Column Type Relates to Notes
RemoteID string - -
ContactCustomFieldValueRemoteID string ContactCustomFieldValue → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Value string - -

CustomFieldOption

Column Type Relates to Notes
RemoteID string - -
CustomFieldRemoteID string CustomField → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID string -
  • 14 Feb 2023 The Keap system will allow you to rename the unique ID. In these cases, entities with this option already selected will in fact lose the option
CustomFieldID long CustomField → ID -
Label string - -

OpportunityCustomFieldValueOption

Column Type Relates to Notes
RemoteID string - -
OpportunityCustomFieldValueRemoteID string OpportunityCustomFieldValue → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Value string - -

Need more?

SyncHub lives and breathes APIs and data. Keep exploring using the links below.