---
updatedAt: 2026-06-12T19:52:14.000Z
agentTools:
  projectIndex: https://developer.maximizer.com/llms.txt
---

# AbEntry

AbEntry allows users to perform operations on an Address Book entry of a specific Type. See below some considerations for AbEntries:

* Type: defines the Type of entity we are working on. Supported types are :

  * **Company** - An entity representing an organization or business.

    * In Create operations, If Type and ParentKey are omitted, Type will be set as Company.
  * **Individual** - A person who owns and operates their own business.

    * In Create operations, Type should be set accordingly for an AbEntry to be created as Individual.
  * **Contact** - A person who works for either a company or an individual.

    * In Create operations, If Type is not included and ParentKey is included, Type will be set as Contact.
* Some fields are mandatory based on the AbEntry Type:

  * **CompanyName**: This field is mandatory for the Company.

  * **LastName**: This field is mandatory for Contact and Individual.

  * **ParentKey**: This is mandatory for Contact and should be a key of an existing AbEntry (Company or Individual).
* When updating, ParentKey and Type cannot be changed. If those fields need to be changed, the entire AbEntry must be deleted, and a new one must be created.

# HowTo's

**Create - Individual**

```json js
// POST https://api.maximizer.com/octopus/Create
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": null,
            "Type": "Individual", // Mandatory
            "FirstName": "Marty",
            "LastName": "McFly", // Mandatory
            "CompanyName": "E. Brown Enterprises",
            "Phone": "12345678",
            "Email": "m.mcfly@e-brown.com",
            "Address": {
                "AddressLine1": "1234 Main St.",
                "City": "Anytown",
                "StateProvince": "BC",
                "ZipCode": "12345",
                "Country": "CAN"
            }
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Create - Company**

```json js
// POST https://api.maximizer.com/octopus/Create
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": null,
            "CompanyName": "E. Brown Enterprises", // Mandatory
            "Phone": "123456789",
            "Website": "www.e-brown.com",
            "Address": {
                "AddressLine1": "1234 Main St.",
                "City": "Anytown",
                "StateProvince": "BC",
                "ZipCode": "12345",
                "Country": "CAN"
            }
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Create - Contact for existing company or individual**

```json js
// POST https://api.maximizer.com/octopus/Create
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": null,
            "FirstName": "Marty",
            "LastName": "McFly", // Mandatory
            "ParentKey": "Q29tcGFueQkyNTEwMjQyNTEwNTQ0OTU5NTAwMDFDCTA=", // Mandatory - Key of Company or Individual
            "Phone": "123456789",
            "Email": "m.mcfly@e-brown.com",
            "Address": {
                "AddressLine1": "1234 Main St.",
                "City": "Anytown",
                "StateProvince": "BC",
                "ZipCode": "12345",
                "Country": "CAN"
            }
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Create - Contact with security settings assigned to multiple groups**

```json js
// POST https://api.maximizer.com/octopus/Create
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": null,
            "FirstName": "Marty",
            "LastName": "McFly", // Mandatory
            "ParentKey": "Q29tcGFueQkyNTA2MjQyNTExMTkwMTg4NzAwMDJDCTA=", // Mandatory - Key of Company or Individual
            "Phone": "123456789",
            "Email": "m.mcfly@e-brown.com",
            "SecAccess": {
                // Keys of security groups that should have read access 
                "Read": [
                    "R3JvdXAJLkFfQ0FBLjAw",
                    "R3JvdXAJLkFDQ1RORzAw"
                ],
                // Keys of security groups that should have write access
                "Write": [
                    "R3JvdXAJLkFfQ0FBLjAw",
                    "R3JvdXAJLkFDQ1RORzAw"
                ]
            }
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Read - All properties are applicable to specific type of AbEntry**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "Schema": {
        "Scope": {
            "Fields": 1
        },
        "Criteria": {
            "SearchQuery": {
                "$AND": [
                    {
                        "Key": {
                            "$TREE": "/AbEntry"
                        }
                    },
                    {
                        "AppliesTo": {
                            "$IN": "Company" // Could be any type of AbEntry (Company, Individual, Contact)
                        }
                    }
                ]
            }
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}
```

**Read - Individuals**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "CompanyName": 1, // Company name of the Individual
                "Email": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$EQ": "Individual"
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Read - Individuals without TerritoryKey created in the last 30 days**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "FirstName": 1,
                "LastName": 1,
                "CompanyName": 1,
                "TerritoryKey": 1,
                "CreationDate": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "$AND": [
                    {
                        "Type": {
                            "$EQ": "Individual"
                        }
                    },
                    {
                        "TerritoryKey": {
                            "$EQ": null
                        }
                    },
                    {
                        "CreationDate": {
                            "$GT": "$OFFSET(D-30, $TODAY())"
                        }
                    }
                ]
            }
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": {
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}
```

**Read - Companies**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "CompanyName": 1, // Company name
                "Phone": 1,
                "Address": { // Main address set
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                }
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$EQ": "Company"
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Read - Companies with pagination**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "ParentKey": 1,
                "Type": 1,
                "CompanyName": 1,
                "Position": 1,
                "Phone1": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone2": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone3": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone4": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "AccountManager": {
                    "Value": 1,
                    "Uid": 1
                },
                "Email1": {
                    "Address": 1,
                    "Description": 1
                },
                "Email2": {
                    "Address": 1,
                    "Description": 1
                },
                "Email3": {
                    "Address": 1,
                    "Description": 1
                },
                "WebSite": 1,
                "Address": {
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                },
                "LastContactDate": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$EQ": "Company"
                }
            }
        },
        "OrderBy": {
            "PageKey": null,
            "PageSize": 50,
            "Fields": [
                {
                    "CreationDate": "ASC"
                }
            ]
        }
    },
    "Configuration": {
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Read - Search by a company name**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "ParentKey": 1,
                "Type": 1,
                "CompanyName": 1,
                "Position": 1,
                "Phone1": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone2": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone3": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone4": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "AccountManager": {
                    "Value": 1,
                    "Uid": 1
                },
                "Email1": {
                    "Address": 1,
                    "Description": 1
                },
                "Email2": {
                    "Address": 1,
                    "Description": 1
                },
                "Email3": {
                    "Address": 1,
                    "Description": 1
                },
                "WebSite": 1,
                "Address": {
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                },
                "LastContactDate": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "$AND": [
                    {
                        "Type": {
                            "$EQ": "Company"
                        }
                    },
                    {
                        "CompanyName": {
                            "$LIKE": "Ultimate%"
                        }
                    }
                ]
            }
        },
        "OrderBy": {
            "PageKey": null,
            "PageSize": 50,
            "Fields": [
                {
                    "CreationDate": "ASC"
                }
            ]
        }
    },
    "Configuration": {
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Read - Contacts**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "Parent": 1, // Parent company/individual of the contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "CompanyName": 1, // Company name of parent
                "Email": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$EQ": "Contact"
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}
```

**Read - Search by Phrase (Contact or Individual)**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "Parent": 1, // Parent company/individual of the contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "CompanyName": 1, // Company name of a parent AbEntry
                "Email": 1,
                "Phone": 1,
                "AccountManager": 1,
                "LastContactDate": 1,
                "Position": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "$AND": [
                    {
                        "$PHRASE": "Name: Johnson"
                    },
                    {
                        "Type": {
                            //if contactType is null comes both, if not comes as requested
                            "$IN": [
                                "Contact",
                                "Individual"
                            ]
                        }
                    }
                ]
            },
            "Top": 1
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}
```

**Read - AbEntry by Key (Contact or Individual)**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "Parent": 1, // Parent company/individual of the contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "CompanyName": 1, // Company name of the parent AbEntry
                "Email": 1,
                "Phone": 1,
                "AccountManager": 1,
                "LastContactDate": 1,
                "Position": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "$AND": [
                    {
                        "Key": {
                            "$EQ": "QWJFbnRyeQkyMjA1MDUyNTIyMjkzNzMxMjAwMzFDCTE="
                        }
                    },
                    {
                        "Type": {
                            //if contactType is null comes both, if not comes as requested
                            "$IN": [
                                "Contact",
                                "Individual"
                            ]
                        }
                    }
                ]
            },
            "Top": 1
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}
```

**Read - Contacts with pagination**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "ParentKey": 1,
                "Type": 1,
                "Parent": {
                    "Type": 1,
                    "FirstName": 1,
                    "MiddleName": 1,
                    "LastName": 1
                },
                "CompanyName": 1,
                "FirstName": 1,
                "MiddleName": 1,
                "LastName": 1,
                "Position": 1,
                "Department": 1,
                "Division": 1,
                "Phone1": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone2": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone3": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone4": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "AccountManager": {
                    "Value": 1,
                    "Uid": 1
                },
                "Email1": {
                    "Address": 1,
                    "Description": 1
                },
                "Email2": {
                    "Address": 1,
                    "Description": 1
                },
                "Email3": {
                    "Address": 1,
                    "Description": 1
                },
                "WebSite": 1,
                "Address": {
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                },
                "LastContactDate": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$EQ": "Contact"
                }
            }
        },
        "OrderBy": {
            "PageKey": null,
            "PageSize": 50,
            "Fields": [
                {
                    "CreationDate": "ASC"
                }
            ]
        }
    },
    "Configuration": {
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Read - Search for contacts and individuals by e-mails**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "ParentKey": 1,
                "Type": 1,
                "Parent": {
                    "Type": 1,
                    "FirstName": 1,
                    "MiddleName": 1,
                    "LastName": 1
                },
                "CompanyName": 1,
                "FirstName": 1,
                "MiddleName": 1,
                "LastName": 1,
                "Position": 1,
                "Department": 1,
                "Division": 1,
                "Phone1": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone2": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone3": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone4": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "AccountManager": {
                    "Value": 1,
                    "Uid": 1
                },
                "Email1": {
                    "Address": 1,
                    "Description": 1
                },
                "Email2": {
                    "Address": 1,
                    "Description": 1
                },
                "Email3": {
                    "Address": 1,
                    "Description": 1
                },
                "WebSite": 1,
                "Address": {
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                },
                "LastContactDate": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$IN": ["Contact", "Individual"]
                },
                "Email": {
                    "$IN": [
                        "info@test.com",
                        "info@notest.com"
                    ]
                }
            }
        },
        "OrderBy": {
            "PageKey": null,
            "PageSize": 50,
            "Fields": [
                {
                    "CreationDate": "ASC"
                }
            ]
        }
    },
    "Configuration": {
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Read - Contacts from specific parent (Company or Individual)**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "Parent": 1, // Parent company/individual of the contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "CompanyName": 1, // Company name of parent
                "Email": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "ParentKey": { // Could be key for Company or Individual
                    "$EQ": "QWJFbnRyeQkyNDA2MTEyNTAyNTI1NjEzOTAwMDJDCTA="
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}
```

**Read - Contacts and parent from specific parent (Company or Individual)**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "Parent": 1, // Parent Company/Individual of the Contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "CompanyName": 1, // Company name of parent
                "Email": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Key": {
                    "$EQ": {
                        "Body": "Q29tcGFueQkyMjA1MDUyNTIyMjczODY2NDAwMjlDCTA=", // Key for Company/Individual (parent)
                        "OrRelated": true // Retrieve the Company/Individual record and also all related Contacts
                    }
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}
```

**Read - Contacts who report to a certain contact**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1,
                "FullName": 1,
                "Email": 1,
                "ReportsToKey": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                // Specify an AbEntryKey of a Contact  
                "ReportsToKey": {
                    "$EQ": "QWJFbnRyeQkyNDA2MjkyNTAxMTI1OTg4MDAwMDRDCTA="
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": {
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.AbEntrySearcher"
        }
    }
}
```

**Read - AbEntries using $PHRASE operator**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1,
                "FullName": 1,
                "Parent": 1, // Parent company/individual of a contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "Email": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "$PHRASE": "Jackson" // Specify the text User wants to search for. 
                //API will search for all AbEntries having such text in the Full Name 
                // - CompanyName for Companies or Individuals
                // - FirstName and LastName for Contacts or Individuals
            },
            "Top": 5
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}
```

**Read - Last contacted AbEntries**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1, // Type of the AbEntry (Company, Individual, Contact)
                "FullName": 1, // Full name of the person for contacts, full name of the person + company name for individuals or company name for companies
                "LastContactDate": 1
            }
        },
        "Criteria": {
            "SearchQuery": {},
            "Top": 10 // Number of entries you want
        },
        "OrderBy": {
            "Fields": [
                {
                    "LastContactDate": "DESC" // Returns the data in descending order of LastContactedDate 
                }
            ]
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for ordering by LastContactDate
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}
```

**Read - AbEntry profile picture (Step 1 - get documentKey)**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
// To get the profile picture of an AbEntry first you must get the related DocumentKey, below payload will return that
{
    "Document": {
        "Scope": {
            "Fields": {
                "Key": 1 // Document key needed for Step 2
            }
        },
        "Criteria": {
            "SearchQuery": {
                "$AND": [
                    {
                        "ParentKey": {
                            "$EQ": "QWJFbnRyeQkyNDA2MjkyNTAxMTI1OTg4MDAwMDRDCTU=" // Key of the AbEntry you want to get the profile picture
                        }
                    },
                    {
                        "Type": {
                            "$EQ": 14
                        }
                    }
                ]
            }
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": {
        "Drivers": {
            "IDocumentSearcher": "Maximizer.Model.Access.Sql.DocumentSearcher"
        }
    }
}
```

**Read - AbEntry profile picture  (Step 2 - download binary)**

```json js
// GET https://api.maximizer.com/octopus/BinaryDownload/RG9jdW1lbnQJMzcwMDUzNzMz
// Authorization: Bearer <token>
// To get the profile picture of an AbEntry first you must get the related DocumentKey. If you don't have that one then go to "Read - AbEntry profile picture (Step 1 - get documentKey)".

// After having the documentKey just add that one to the URL and you should get the binary after calling such endpoint
```

**Read - AbEntry object using $INBOUND operator**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1,
                "FullName": 1,
                "Parent": 1, // Parent company/individual of a contact. It's an AbEntry object so it can be expanded by using any AbEntry property
                "Email": 1,
                "Phone": 1,
                "Address": {
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                }
            }
        },
        "Criteria": {
            "SearchQuery": {
                //Search for ab entries by geolocation polygon
                //Returns true\false if geolocation field is inside specified polygon
                //At least 4 points needs to be provided (for triangle)
                "$INBOUND(address/location, -125:50, -121:49, -125:49, -125:50)": {
                    "$EQ": true
                }
            },
            "Top": 10
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}
```

**Read - AbEntry object with custom Globalization**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1, // Type of the AbEntry (Company, Individual, Contact)
                "FirstName": 1, // Type of the AbEntry (Company, Individual, Contact)
                "LastName": 1, // Type of the AbEntry (Company, Individual, Contact)
                "FullName": 1, // Full name of the person for contacts, full name of the person + company name for individuals or company name for companies
                "Parent": 1, // For contacts it will contain the company/individual parent of such contact. It's an abEntry object so it can be expanded using any AbEntry property
                "LastContactDate": {
                    "Value": 1,
                    "DisplayValue": 1 // Will be affected by Globalization section
                }
            }
        },
        "Criteria": {
            "SearchQuery": {},
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    },
    // Globalization affects how the DisplayValue of date fields is formatted.
    // In this example, the DisplayValue for any date field (e.g., LastContactDate) will use the locale defined for the user in Maximizer CRM
    "Globalization": {
        "Culture": "$CURRENTUSER()"
    }
}
```

# Metadata

**Read AbEntry metadata (simple)**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "Schema": {
        "Scope": {
            "Fields": 1
        },
        "Criteria": {
            "SearchQuery": {
                "Key": {
                    "$TREE": "/AbEntry"
                }
            }
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}
```

**Read AbEntry metadata (more)**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "Schema": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Alias": 1,
                "Type": 1,
                "Name": 1,
                "AppliesTo": 1,
                "Sortable": 1,
                "Nullable": 1,
                "Assignable": 1,
                "Queryable": 1,
                "Mandatory": 1,
                "Attributes": 1,
                "HasOption": 1,
                "DisplayValue": 1,
                "Inactive": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Key": {
                    "$TREE": "/AbEntry"
                }
            }
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}
```

# FieldOptions

**Read AbEntry FieldOptions - Type**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "Type": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}
```

**Read AbEntry FieldOptions - MrMs**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "MrMs": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}
```

**Read AbEntry FieldOptions - Salutation**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "Salutation": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}
```

**Read AbEntry FieldOptions - Division**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "Division": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}
```

**Read AbEntry FieldOptions - Department**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "Department": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}
```

**Read AbEntry FieldOptions - Position**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "Position": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}
```

# AbEntry CRUD

**Create - AbEntry**

```json js
// POST https://api.maximizer.com/octopus/Create
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": null,
            // Type of AbEntries supported (Company, Individual, Contact)
            // Mandatory for Individual
            // If is not included but ParentKey is included then assumed as Contact
            // If is not included and ParentKey is also not included then assumed as Company
            "Type": "Company",
            "Email": "example@example.com",
            "Phone": "123456789",
            "Website": "www.example.com",
            "Address": {
                "AddressLine1": "1234 Main St.",
                "City": "Anytown",
                "StateProvince": "BC",
                "ZipCode": "12345",
                "Country": "CAN"
            },
            // ATTENTION
            // Below fields are mandatory based on the Type defined
            "CompanyName": "E. Brown Enterprises", // Mandatory for Type=Company
            "ParentKey": "QWJFbnRyeQkyMjA1MDUyNTE1MzY1OTg0NTAwMDVDCTA=", // Mandatory for Type=Contact - Must be AbEntryKey of Company or Individual
            "LastName": "McFly" // Mandatory for Type=Contact and Type=Individual
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Read - AbEntry**

```json js
// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1, // Type of the AbEntry (Company, Individual, Contact)
                "FullName": 1, // Full name of the person for contacts, full name of the person + company name for individuals or company name for companies
                "Parent": 1, // For contacts it will contain the company/individual parent of such contact. It's an abEntry object so it can be expanded using any AbEntry property
                "Website": 1,
                "Email": 1, // Default email set for the AbEntry
                "Phone": 1, // Default phone set for the AbEntry
                "Address": { // Main address set for the AbEntry
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                }
            }
        },
        "Criteria": {
            "SearchQuery": {},
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}
```

**Update - AbEntry**

```json js
// POST https://api.maximizer.com/octopus/Update
// Authorization: Bearer <token>
{
    // ParentKey, Type CANNOT be updated
    "AbEntry": {
        "Data": {
            "Key": "Q29tcGFueQkyNDA3MDkyNTEwMTAxMTY4ODAwMDFDCTA=", // Mandatory
            "WebSite": "http://www.newsiteupdated.com",
            //Include here any other field you want to update
            // ATTENTION
            // Some fields can only be updated if the key corresponds to an specific abEntry Type
            "CompanyName": "CompanyName updated", // Can be updated only if Type=Company or Type=Individual
            "FirstName": "FirstName updated", // Can be updated only if Type=Contact or Type=Individual
            "LastName": "LastName updated" // Can be updated only if Type=Contact or Type=Individual
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```

**Delete - AbEntry**

```json js
// POST https://api.maximizer.com/octopus/Delete
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": "QWJFbnRyeQkyMjA1MDUyNTIyMjczODY2NDAwMjlDCTE=" // Mandatory
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}
```