canonical: https://jentic.com/apis/keap.com/keap

# Keap API

The Keap API is the REST interface to Keap's CRM and sales-and-marketing platform for small businesses. It reads and writes contacts and companies, attaches notes and tags, sends and records emails, and manages orders, so an agent can keep customer records current and act on them. The API covers the core objects a small-business owner tracks day to day, from a new lead through to a paid order. Keap was formerly known as Infusionsoft, which is why its base URL still uses the infusionsoft.com host.

## For AI agents

Read and write Keap CRM contacts and companies, attach notes and tags, send and record emails, and manage orders. Authenticates with OAuth 2.0 (the oauth2 scheme).

## Scope

Does not handle campaign builder automation, payment gateway configuration, or reporting dashboards. Use for reading and writing contacts, notes, tags, emails, and orders only.

## Capabilities

- Create, read, update, and delete contacts in a Keap account
- Attach notes to a contact and read a contact's existing notes
- Read the tags applied to a contact for segmentation
- Send and record emails against contact records
- Create and read orders for a customer

## Use cases

### Keep CRM contacts current from an agent

An AI agent can create and update Keap contacts as leads come in from other systems, so the CRM stays current without manual data entry. It creates a contact, updates fields such as email or phone as they change, and reads a contact back to confirm the record. Through Jentic the agent discovers each operation by intent and calls it with the contact details.

Example prompt: Create a Keap contact for a new lead with their name and email, then read the contact back and return its id

### Log activity against a customer record

After a call or email, an agent attaches a note to the relevant Keap contact and records the email that was sent, building a timeline on the customer record. Reading a contact's tags lets the agent decide which follow-up applies. This keeps sales history in one place without a person updating the CRM by hand.

Example prompt: Add a note summarising a call to a given contact and list the tags currently applied to that contact

### Create orders for a customer

When a sale closes, an agent creates an order in Keap against the customer's contact, so revenue and fulfilment data live alongside the CRM record. It can also read orders back to check status. This links the customer's profile to what they have bought without switching tools.

Example prompt: Create an order for a given contact and return the order id

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/rest/v2/contacts` | List contacts in the account |
| POST | `/rest/v2/contacts` | Create a new contact |
| PATCH | `/rest/v2/contacts/{contact_id}` | Update fields on a contact |
| POST | `/rest/v2/contacts/{contact_id}/notes` | Attach a note to a contact |
| GET | `/rest/v2/contacts/{contact_id}/tags` | List the tags applied to a contact |
| POST | `/rest/v2/orders` | Create an order for a customer |

## Key resources

- **Contacts** — Create, read, update, and delete contacts and their fields
- **Notes** — Attach notes to a contact and read existing notes
- **Tags** — Read the tags applied to a contact for segmentation
- **Orders** — Create and read orders for a customer

## Why Jentic

- **Setup:** Wiring the Keap API by hand means completing its OAuth 2.0 authorization-code flow, refreshing access tokens, and formatting the contact, note, tag, and order calls against the infusionsoft.com host yourself. Through Jentic you install once, import the Keap API from the API Directory, authorise once, and your agent calls it.
- **Permission scoping:** The Keap API addresses each contact by an id in the URL path, so you can scope the agent to the records and operations it needs: allow it to read and update contacts and leave contact deletion out of the allowed set unless you add it.
- **Credential handling:** Your Keap OAuth token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a contact' or 'add a note to a contact', and Jentic returns the matching Keap operation with its input schema so the agent calls the right endpoint without reading the reference docs.

## Related APIs

- **HubSpot CRM Contacts API** — A larger CRM platform with its own contacts API versus Keap's small-business focus.
- **Pipedrive API** — A sales-pipeline-first CRM versus Keap's combined contacts, email, and orders.
- **Mailchimp Marketing API** — Mailchimp runs the email campaigns to the audience that Keap holds as CRM contacts.

## FAQ

### What authentication does the Keap API use?

Keap uses OAuth 2.0 with the authorization-code flow (the oauth2 scheme), so requests carry an access token you obtain by authorising your app against a Keap account. Through Jentic the token is stored encrypted by your own Jentic One instance and supplied to requests at execution time, so the agent never sees the raw value.

### Can I manage CRM contacts through the Keap API?

Yes. You can create a contact, read it back, update its fields, and delete it, as well as attach notes and read the tags applied to it. An agent connected through Jentic can keep the CRM current as leads and customer details change.

### Does the Keap API still use the Infusionsoft host?

Yes. Keap was formerly called Infusionsoft, and the API base URL still uses the infusionsoft.com host. The endpoints are the current v2 REST operations for contacts, notes, tags, emails, and orders, so the host name is historical rather than a separate product.

### What are the rate limits for the Keap API?

The OpenAPI spec does not declare rate limits for the Keap API. Apply conservative client-side throttling, back off on HTTP 429 responses, and check the Keap developer documentation for the current published limits.

### Can I limit what my agent is allowed to do with the Keap API?

Yes. You choose which operations the agent may call, so it can be allowed to read and update contacts while contact deletion stays out of the allowed set unless you add it. Because the API addresses each contact by an id in the URL path, you can keep the agent to the records and operations it needs, and every call it makes is logged.

### Is there a Keap API MCP server?

You don't need an MCP server to give your agent Keap. Jentic connects it directly from the API Directory: import it, complete the OAuth authorisation once, and your agent calls the contact, note, and order operations on demand without a separate server to run.

### How do I manage Keap contacts through Jentic?

Search Jentic for an intent like 'create a contact' or 'add a note to a contact', which returns the matching Keap operation with its input schema so the agent supplies the contact details and reads the response. To run it on your own infrastructure, install Jentic One from its GitHub repo.
