# Keap REST API API

> Keap REST API API on Apizie: 139 endpoints (Retrieve account profile, Updates an account profile, List Affiliates, Create an affiliate, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/business:keap/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `business:keap`
- Category: Business
- Status: byok
- Source: https://keap.com
- Page: https://apizie.tech/api/business/keap
- OpenAPI: https://apizie.tech/api/business/keap/openapi.json

With Keap, you'll easily capture, organize, track, and nurture all of your leads to increase sales and revenue. To ensure your success, Keap also offers expert coaching, in-depth training, outstanding support, and a…

## Endpoints

### Retrieve account profile
`GET https://apizie.tech/v1/business:keap/account-info-get-profile-info` (byok)

### Updates an account profile
`POST https://apizie.tech/v1/business:keap/account-info-update-profile-info` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### List Affiliates
`GET https://apizie.tech/v1/business:keap/affiliate-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| code | string | no | Optional affiliate parent ID to query on |
| contact_id | string | no | Optional contact ID to query on |
| limit | integer | no | Sets a beginning range of items to return |
| name | string | no | Optional affiliate name to query on |
| offset | integer | no | Count to offset the returned results by |
| order | string | no | Attribute to order items by |
| order_direction | string | no | How to order the data i.e. ascending (A-Z) or descending (Z-A) |
| parent_id | string | no | Optional affiliate code to query on |
| program_id | string | no | Optional affiliate program ID to query on |
| status | string | no | Optional affiliate status to query on |

### Create an affiliate
`POST https://apizie.tech/v1/business:keap/affiliate-create-single-affiliate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### List Commissions
`GET https://apizie.tech/v1/business:keap/affiliate-get-commissions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| affiliateId | integer | no | Affiliate to retrieve commissions for |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |
| order | string | no | Attribute to order items by |
| order_direction | string | no | How to order the data i.e. ascending (A-Z) or descending (Z-A) |
| since | string | no | Date to start searching from ex. `2017-01-01T22:17:59.039Z` |
| until | string | no | Date to search to ex. `2017-01-01T22:17:59.039Z` |

### Retrieve Affiliate Model
`GET https://apizie.tech/v1/business:keap/affiliate-get-model` (byok)

### List Commission Programs
`GET https://apizie.tech/v1/business:keap/affiliate-list-commission-programs` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| affiliate_id | integer | no | Id of the affiliate you would like programs for |
| limit | integer | no | Sets a beginning range of items to return |
| offset | integer | no | Count to offset the returned results by |
| order | string | no | Attribute to order items by |
| order_direction | string | no | How to order the data i.e. ascending (A-Z) or descending (Z-A) |

### List Affiliate Redirects
`GET https://apizie.tech/v1/business:keap/affiliate-get-redirects` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| affiliate_id | string | no | Affiliate ID to search by |
| limit | integer | no | Sets a beginning range of items to return |
| offset | integer | no | Count to offset the returned results by |
| order | string | no | Attribute to order items by |
| order_direction | string | no | How to order the data i.e. ascending (A-Z) or descending (Z-A) |

### List affiliate summaries
`GET https://apizie.tech/v1/business:keap/affiliate-list-summaries` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| affiliate_ids | array | no | Ids of the affiliates you would like a summary for |
| order | string | no | Attribute to order items by |
| order_direction | string | no | How to order the data i.e. ascending (A-Z) or descending (Z-A) |

### List Affiliate clawbacks
`GET https://apizie.tech/v1/business:keap/affiliate-list-clawbacks` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| affiliateId | string | yes | affiliateId |
| limit | integer | no | Sets a beginning range of items to return |
| offset | integer | no | Count to offset the returned results by |
| order | string | no | Attribute to order items by |
| order_direction | string | no | How to order the data i.e. ascending (A-Z) or descending (Z-A) |
| since | string | no | Optional inclusive start date |
| until | string | no | Optional inclusive end date |

### List Affiliate payments
`GET https://apizie.tech/v1/business:keap/affiliate-list-payments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| affiliateId | integer | yes | affiliateId |
| limit | integer | no | Sets a beginning range of items to return |
| offset | integer | no | Count to offset the returned results by |
| order | string | no | Attribute to order items by |
| order_direction | string | no | How to order the data i.e. ascending (A-Z) or descending (Z-A) |
| since | string | no | Inclusive start date |
| until | string | no | Inclusive end date |

### Retrieve an affiliate
`GET https://apizie.tech/v1/business:keap/affiliate-get-single-affiliate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | id |

### List Appointments
`GET https://apizie.tech/v1/business:keap/appointment-list-all-appointments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contact_id | integer | no | Optionally find appointments with a contact |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |
| since | string | no | Date to start searching from ex. `2017-01-01T22:17:59.039Z` |
| until | string | no | Date to search to ex. `2017-01-01T22:17:59.039Z` |

### Create an Appointment
`POST https://apizie.tech/v1/business:keap/appointment-create-new` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve Appointment Model
`GET https://apizie.tech/v1/business:keap/appointment-get-model` (byok)

### Create a Custom Field
`POST https://apizie.tech/v1/business:keap/appointment-add-custom-field` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve an Appointment
`GET https://apizie.tech/v1/business:keap/appointment-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appointmentId | integer | yes | appointmentId |

### Replace an Appointment
`POST https://apizie.tech/v1/business:keap/appointment-replace-values` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appointmentId | integer | yes | appointmentId |
| body | object | yes | JSON request body |

### Update an Appointment
`POST https://apizie.tech/v1/business:keap/appointment-update-values` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appointmentId | integer | yes | appointmentId |
| body | object | yes | JSON request body |

### Delete an Appointment
`POST https://apizie.tech/v1/business:keap/appointment-remove` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appointmentId | integer | yes | appointmentId |

### List Campaigns
`GET https://apizie.tech/v1/business:keap/campaign-get-all-campaigns` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |
| order | string | no | Attribute to order items by |
| order_direction | string | no | How to order the data i.e. ascending (A-Z) or descending (Z-A) |
| search_text | string | no | Optional text to search |

### Achieve API Goal
`POST https://apizie.tech/v1/business:keap/campaign-achieve-goal` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| callName | string | yes | callName |
| integration | string | yes | integration |
| body | object | yes | JSON request body |

### Retrieve a Campaign
`GET https://apizie.tech/v1/business:keap/campaign-get-single` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignId | integer | yes | campaignId |
| optional_properties | array | no | Comma-delimited list of Campaign properties to include in the response. (The fields `goals` and `sequences` aren't included, by default.) |

### Add Multiple to Campaign Sequence
`POST https://apizie.tech/v1/business:keap/campaign-add-multiple-to-sequence` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignId | integer | yes | campaignId |
| sequenceId | integer | yes | sequenceId |
| body | object | yes | JSON request body |

### Remove Multiple from Campaign Sequence
`POST https://apizie.tech/v1/business:keap/campaign-remove-multiple-from-sequence` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignId | integer | yes | campaignId |
| sequenceId | integer | yes | sequenceId |
| body | object | yes | JSON request body |

### Add to Campaign Sequence
`POST https://apizie.tech/v1/business:keap/campaign-add-to-sequence` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignId | integer | yes | campaignId |
| contactId | integer | yes | contactId |
| sequenceId | integer | yes | sequenceId |

### Remove from Campaign Sequence
`POST https://apizie.tech/v1/business:keap/campaign-remove-contact-from-sequence` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignId | integer | yes | campaignId |
| contactId | integer | yes | contactId |
| sequenceId | integer | yes | sequenceId |

### List Companies
`GET https://apizie.tech/v1/business:keap/company-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| company_name | string | no | Optional company name to query on |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |
| optional_properties | array | no | Comma-delimited list of Company properties to include in the response. (Fields such as `notes`, `fax_number` and `custom_fields` aren't… |
| order | string | no | Attribute to order items by |
| order_direction | string | no | How to order the data i.e. ascending (A-Z) or descending (Z-A) |

### Create a Company
`POST https://apizie.tech/v1/business:keap/company-create-or-update-with-opt-in-reason` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve Company Model
`GET https://apizie.tech/v1/business:keap/company-get-model` (byok)

### Retrieve a Company
`GET https://apizie.tech/v1/business:keap/company-get-single-company` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| companyId | integer | yes | companyId |
| optional_properties | array | no | Comma-delimited list of Company properties to include in the response. (Fields such as `notes`, `fax_number` and `custom_fields` aren't… |

### Update a Company
`POST https://apizie.tech/v1/business:keap/company-update-with-opt-in-reason` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| companyId | integer | yes | companyId |
| body | object | no | JSON request body |

### List Contacts
`GET https://apizie.tech/v1/business:keap/contact-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email | string | no | Optional email address to query on |
| family_name | string | no | Optional last name or surname to query on |
| given_name | string | no | Optional first name or forename to query on |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |
| optional_properties | array | no | Comma-delimited list of Contact properties to include in the response. (Some fields such as `lead_source_id`, `custom_fields`, and… |
| order | string | no | Attribute to order items by |
| order_direction | string | no | How to order the data i.e. ascending (A-Z) or descending (Z-A) |
| since | string | no | Date to start searching from on LastUpdated ex. `2017-01-01T22:17:59.039Z` |
| until | string | no | Date to search to on LastUpdated ex. `2017-01-01T22:17:59.039Z` |

### Create a Contact
`POST https://apizie.tech/v1/business:keap/contact-create-or-update-with-opt-in-reason` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Create or Update a Contact
`POST https://apizie.tech/v1/business:keap/contact-create-or-update` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve Contact Model
`GET https://apizie.tech/v1/business:keap/contact-get-model` (byok)

### Create a Custom Field
`POST https://apizie.tech/v1/business:keap/contact-add-custom-field` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Update a Contact
`POST https://apizie.tech/v1/business:keap/contact-update-with-opt-in-reason` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | contactId |
| update_mask | array | no | An optional list of properties to be updated. If set, only the provided properties will be updated and others will be skipped. |
| body | object | no | JSON request body |

### Delete a Contact
`POST https://apizie.tech/v1/business:keap/contact-delete-contact` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | contactId |

### Retrieve Credit Cards
`GET https://apizie.tech/v1/business:keap/contact-get-credit-cards` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | contactId |

### Create a Credit Card
`POST https://apizie.tech/v1/business:keap/contact-add-credit-card` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | contactId |
| body | object | no | JSON request body |

### List Emails
`GET https://apizie.tech/v1/business:keap/contact-list-emails` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | contactId |
| email | string | no | Optional email address to query on |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |

### Create an Email Record
`POST https://apizie.tech/v1/business:keap/contact-create-email-record` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | contactId |
| body | object | no | JSON request body |

### List Applied Tags
`GET https://apizie.tech/v1/business:keap/contact-get-tags` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | contactId |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |

### Apply Tags
`POST https://apizie.tech/v1/business:keap/contact-apply-tags` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | contactId |
| body | object | yes | JSON request body |

### Remove Applied Tags
`POST https://apizie.tech/v1/business:keap/contact-remove-tags` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | contactId |
| ids | string | yes | ids |

### Remove Applied Tag
`POST https://apizie.tech/v1/business:keap/contact-remove-applied-tag` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | contactId |
| tagId | integer | yes | tagId |

### Insert UTMs for a Contact
`POST https://apizie.tech/v1/business:keap/contact-insert-utm-for` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contactId | integer | yes | ID of the contact to insert UTMs for |
| body | object | no | JSON request body |

### Retrieve a Contact
`GET https://apizie.tech/v1/business:keap/contact-get-single` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | id |
| optional_properties | array | no | Comma-delimited list of Contact properties to include in the response. (Some fields such as `lead_source_id`, `custom_fields`, and… |

### Replace an Email Address
`POST https://apizie.tech/v1/business:keap/email-address-replace-email` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| email | string | yes | email |
| body | object | yes | JSON request body |

### List Emails
`GET https://apizie.tech/v1/business:keap/email-get-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contact_id | integer | no | Optional Contact Id to find Emails for |
| email | string | no | Optional email address to query on |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |
| ordered | boolean | no | Optional boolean to turn off ORDER BY in SQL query |
| since_sent_date | string | no | Optional date to query on, emails sent since the provided date, must be present if untilDate is provided |
| until_sent_date | string | no | Optional date to query on, email sent until the provided date |

### Create an Email Record
`POST https://apizie.tech/v1/business:keap/email-record-creation` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Send an Email
`POST https://apizie.tech/v1/business:keap/email-send-to-contacts` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Create a set of Email Records
`POST https://apizie.tech/v1/business:keap/email-create-records` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Un-sync a batch of Email Records
`POST https://apizie.tech/v1/business:keap/email-batch-unsync` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve an Email
`GET https://apizie.tech/v1/business:keap/email-get-single` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | id |

### Delete an Email Record
`POST https://apizie.tech/v1/business:keap/email-delete-record` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | id |

### List Files
`GET https://apizie.tech/v1/business:keap/file-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contact_id | integer | no | Filter based on Contact Id, if user has permission to see Contact files. |
| limit | integer | no | Sets a total of items to return |
| name | string | no | Filter files based on name, with '*' preceding or following to indicate LIKE queries. |
| offset | integer | no | Sets a beginning range of items to return |
| permission | string | no | Filter based on the permission of files (USER or COMPANY), defaults to BOTH. |
| type | string | no | Filter based on the type of file. |
| viewable | string | no | Include public or private files in response (PUBLIC or PRIVATE), defaults to BOTH. |

### Upload File
`POST https://apizie.tech/v1/business:keap/file-upload-base64-encoded` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve File
`GET https://apizie.tech/v1/business:keap/file-get-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| fileId | integer | yes | fileId |
| optional_properties | array | no | Comma-delimited list of File properties to include in the response. (Some fields such as `file_data` aren't included, by default.) |

### Replace File
`POST https://apizie.tech/v1/business:keap/file-replace-base64-encoded-file` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| fileId | integer | yes | fileId |
| body | object | no | JSON request body |

### Delete File
`POST https://apizie.tech/v1/business:keap/file-remove-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| fileId | integer | yes | fileId |

### List Stored Hook Subscriptions
`GET https://apizie.tech/v1/business:keap/rest-hooks-list-stored-hook-subscriptions` (byok)

### Create a Hook Subscription
`POST https://apizie.tech/v1/business:keap/rest-hooks-create-hook-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### List Hook Event Types
`GET https://apizie.tech/v1/business:keap/rest-hooks-list-event-types` (byok)

### Retrieve a Hook Subscription
`GET https://apizie.tech/v1/business:keap/rest-hooks-get-hook-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | yes | key |

### Update a Hook Subscription
`POST https://apizie.tech/v1/business:keap/rest-hooks-modify-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | yes | key |
| body | object | yes | JSON request body |

### Delete a Hook Subscription
`POST https://apizie.tech/v1/business:keap/rest-hooks-delete-hook-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | yes | key |

### Verify a Hook Subscription, Delayed
`POST https://apizie.tech/v1/business:keap/rest-hooks-delayed-verify-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| X-Hook-Secret | string | yes | X-Hook-Secret |
| key | string | yes | key |

### Verify a Hook Subscription
`POST https://apizie.tech/v1/business:keap/rest-hooks-verify-hook-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | yes | key |

### List Countries
`GET https://apizie.tech/v1/business:keap/locale-list-countries` (byok)

### List a Country's Provinces
`GET https://apizie.tech/v1/business:keap/locale-list-country-provinces` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| countryCode | string | yes | countryCode |

### List dropdown default options
`GET https://apizie.tech/v1/business:keap/locale-list-dropdown-default-options` (byok)

### List Merchants
`GET https://apizie.tech/v1/business:keap/merchant-get-all-accounts` (byok)

### List Notes
`GET https://apizie.tech/v1/business:keap/note-list-all-notes` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contact_id | integer | no | Filter based on the contact id assigned to the note. |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |
| user_id | integer | no | Filter based on the user id assigned to the note. |

### Create a Note
`POST https://apizie.tech/v1/business:keap/note-create-new-note` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve Note Model
`GET https://apizie.tech/v1/business:keap/note-get-model` (byok)

### Create a Custom Field
`POST https://apizie.tech/v1/business:keap/note-add-custom-field` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve a Note
`GET https://apizie.tech/v1/business:keap/note-get-single-note` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| noteId | integer | yes | noteId |

### Replace a Note
`POST https://apizie.tech/v1/business:keap/note-replace-all-values` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| note | integer | yes | note |
| noteId | string | yes | Path parameter {noteId} |
| body | object | yes | JSON request body |

### Update a Note
`POST https://apizie.tech/v1/business:keap/note-update-note-values` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| noteId | integer | yes | noteId |
| body | object | no | JSON request body |

### Delete a Note
`POST https://apizie.tech/v1/business:keap/note-delete-note` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| noteId | integer | yes | noteId |

### Retrieve User Info
`GET https://apizie.tech/v1/business:keap/user-info-get-info` (byok)

### List Opportunities
`GET https://apizie.tech/v1/business:keap/opportunity-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |
| order | string | no | Attribute to order items by |
| search_term | string | no | Returns opportunities that match any of the contact's `given_name`, `family_name`, `company_name`, and `email_addresses` (searches… |
| stage_id | integer | no | Returns opportunities for the provided stage id |
| user_id | integer | no | Returns opportunities for the provided user id |

### Create an Opportunity
`POST https://apizie.tech/v1/business:keap/opportunity-create-new-opportunity` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Replace an Opportunity
`POST https://apizie.tech/v1/business:keap/opportunity-replace-values` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve Opportunity Model
`GET https://apizie.tech/v1/business:keap/opportunity-get-model` (byok)

### Retrieve an Opportunity
`GET https://apizie.tech/v1/business:keap/opportunity-get-single-opportunity` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| opportunityId | integer | yes | opportunityId |
| optional_properties | array | no | Comma-delimited list of Opportunity properties to include in the response. (Some fields such as `custom_fields` aren't included, by… |

### Update an Opportunity
`POST https://apizie.tech/v1/business:keap/opportunity-update-values` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| opportunityId | integer | yes | opportunityId |

### List Opportunity Stage Pipeline
`GET https://apizie.tech/v1/business:keap/opportunity-list-stage-pipeline` (byok)

### List Orders
`GET https://apizie.tech/v1/business:keap/ecommerce-get-order-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contact_id | integer | no | Returns orders for the provided contact id |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |
| order | string | no | Attribute to order items by. Dates are ordered by most recent at the top. Default is creation_date. |
| paid | boolean | no | Sets paid status of items to return |
| product_id | integer | no | Returns orders containing the provided product id |
| since | string | no | Date to start searching from ex. `2017-01-01T22:17:59.039Z` |
| until | string | no | Date to search to ex. `2017-01-01T22:17:59.039Z` |

### Create an Order
`POST https://apizie.tech/v1/business:keap/ecommerce-create-order` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve Custom Order Model
`GET https://apizie.tech/v1/business:keap/ecommerce-get-order-model` (byok)

### Retrieve an Order
`GET https://apizie.tech/v1/business:keap/ecommerce-get-order` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| orderId | integer | yes | orderId |

### Delete an Order
`POST https://apizie.tech/v1/business:keap/ecommerce-delete-order-without-payment` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| orderId | integer | yes | orderId |

### Create an Order Item
`POST https://apizie.tech/v1/business:keap/ecommerce-create-order-item` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| orderId | integer | yes | orderId |
| body | object | yes | JSON request body |

### Delete an Order Item
`POST https://apizie.tech/v1/business:keap/ecommerce-delete-order-item` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| orderId | integer | yes | orderId |
| orderItemId | integer | yes | orderItemId |

### Replace an Order Pay Plan
`POST https://apizie.tech/v1/business:keap/ecommerce-replace-pay-plan` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| orderId | integer | yes | orderId |
| body | object | yes | JSON request body |

### Retrieve Order Payments
`GET https://apizie.tech/v1/business:keap/ecommerce-get-order-payments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| orderId | integer | yes | orderId |

### Create a Payment
`POST https://apizie.tech/v1/business:keap/ecommerce-create-payment-record` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| orderId | integer | yes | orderId |
| body | object | no | JSON request body |

### Retrieve Order Transactions
`GET https://apizie.tech/v1/business:keap/ecommerce-get-order-transactions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contact_id | integer | no | Returns transactions for the provided contact id |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |
| orderId | integer | yes | orderId |
| since | string | no | Date to start searching from ex. `2017-01-01T22:17:59.039Z` |
| until | string | no | Date to search to ex. `2017-01-01T22:17:59.039Z` |

### List Products
`GET https://apizie.tech/v1/business:keap/product-get-all-products` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| active | boolean | no | Sets status of items to return |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |

### Create a Product
`POST https://apizie.tech/v1/business:keap/product-create-new-product` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve a Product
`GET https://apizie.tech/v1/business:keap/product-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| productId | integer | yes | productId |

### Update a Product
`POST https://apizie.tech/v1/business:keap/product-update-values` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| productId | integer | yes | productId |
| body | object | yes | JSON request body |

### Delete a Product
`POST https://apizie.tech/v1/business:keap/product-delete-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| productId | integer | yes | productId |

### Upload a product image
`POST https://apizie.tech/v1/business:keap/product-upload-image` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| productId | integer | yes | productId |
| body | object | yes | JSON request body |

### Delete a product image
`POST https://apizie.tech/v1/business:keap/product-delete-image` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| productId | integer | yes | productId |

### Create a Product Subscription
`POST https://apizie.tech/v1/business:keap/product-subscribe-new` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| productId | integer | yes | productId |
| body | object | yes | JSON request body |

### Retrieve a Product Subscription
`GET https://apizie.tech/v1/business:keap/product-subscription-retrieve` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| productId | integer | yes | productId |
| subscriptionId | integer | yes | subscriptionId |

### Delete a Product Subscription
`POST https://apizie.tech/v1/business:keap/product-delete-subscription-2` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| productId | integer | yes | productId |
| subscriptionId | integer | yes | subscriptionId |

### Retrieve application configuration
`GET https://apizie.tech/v1/business:keap/setting-get-configuration` (byok)

### Retrieve application status
`GET https://apizie.tech/v1/business:keap/setting-get-application-status` (byok)

### List Subscriptions
`GET https://apizie.tech/v1/business:keap/ecommerce-list-subscriptions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| contact_id | integer | no | Returns subscriptions for the provided contact id |
| limit | integer | no | Sets a total of items to return |
| offset | integer | no | Sets a beginning range of items to return |

### Create Subscription
`POST https://apizie.tech/v1/business:keap/ecommerce-create-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve Subscription Model
`GET https://apizie.tech/v1/business:keap/ecommerce-get-subscription-model` (byok)

### List Tags
`GET https://apizie.tech/v1/business:keap/tags-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| category | integer | no | Category Id of tags to filter by |
| limit | integer | no | Sets a total of items to return |
| name | string | no | Filter for tags with a specific name |
| offset | integer | no | Sets a beginning range of items to return |

### Create Tag
`POST https://apizie.tech/v1/business:keap/tags-create-new-tag` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Create Tag Category
`POST https://apizie.tech/v1/business:keap/tags-create-category` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve a Tag
`GET https://apizie.tech/v1/business:keap/tags-get-tag` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | id |

…and 19 more. See the OpenAPI spec.

## Example
```
curl "https://apizie.tech/v1/business:keap/account-info-get-profile-info" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Keap REST API API?
Create a free Apizie key, then send GET https://apizie.tech/v1/business:keap/account-info-get-profile-info with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Keap REST API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Keap REST API itself also needs your own key from api.infusionsoft.com.

### Can AI agents use the Keap REST API API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key business:keap.

### What is the status of the Keap REST API API?
Needs your own provider key (bring your own key)
