3.1 KiB
3.1 KiB
Keap Routing Reference
App name: keap
Base URL proxied: api.infusionsoft.com/crm/rest
API Path Pattern
/keap/crm/rest/v2/{resource}
Note: The /crm/rest prefix is required in the path.
Common Endpoints
Get Current User
GET /keap/crm/rest/v2/oauth/connect/userinfo
List Contacts
GET /keap/crm/rest/v2/contacts
Query parameters: page_size, page_token, filter, order_by, fields
Get Contact
GET /keap/crm/rest/v2/contacts/{contact_id}
Create Contact
POST /keap/crm/rest/v2/contacts
Content-Type: application/json
{
"given_name": "John",
"family_name": "Doe",
"email_addresses": [{"email": "john@example.com", "field": "EMAIL1"}]
}
Update Contact
PATCH /keap/crm/rest/v2/contacts/{contact_id}
Content-Type: application/json
{
"given_name": "Jane"
}
Delete Contact
DELETE /keap/crm/rest/v2/contacts/{contact_id}
List Companies
GET /keap/crm/rest/v2/companies
List Tags
GET /keap/crm/rest/v2/tags
Apply Tags to Contacts
POST /keap/crm/rest/v2/tags/{tag_id}/contacts:applyTags
Content-Type: application/json
{
"contact_ids": ["1", "2", "3"]
}
List Tasks
GET /keap/crm/rest/v2/tasks
Create Task
POST /keap/crm/rest/v2/tasks
Content-Type: application/json
{
"title": "Follow up call",
"due_date": "2026-02-15T10:00:00Z",
"contact": {"id": "9"}
}
List Opportunities
GET /keap/crm/rest/v2/opportunities
List Orders
GET /keap/crm/rest/v2/orders
List Products
GET /keap/crm/rest/v2/products
List Campaigns
GET /keap/crm/rest/v2/campaigns
Add Contacts to Campaign Sequence
POST /keap/crm/rest/v2/campaigns/{campaign_id}/sequences/{sequence_id}:addContacts
Content-Type: application/json
{
"contact_ids": ["1", "2"]
}
List Emails
GET /keap/crm/rest/v2/emails
Send Email
POST /keap/crm/rest/v2/emails:send
Content-Type: application/json
{
"contacts": [{"id": "9"}],
"subject": "Hello",
"html_content": "<p>Email body</p>"
}
List Automations
GET /keap/crm/rest/v2/automations
List Affiliates
GET /keap/crm/rest/v2/affiliates
List Subscriptions
GET /keap/crm/rest/v2/subscriptions
Pagination
Uses token-based pagination:
GET /keap/crm/rest/v2/contacts?page_size=50
GET /keap/crm/rest/v2/contacts?page_size=50&page_token=NEXT_TOKEN
Response includes next_page_token (empty when no more pages).
Filtering
Use the filter parameter:
GET /keap/crm/rest/v2/contacts?filter=given_name==John
GET /keap/crm/rest/v2/tasks?filter=completed==false
Notes
- API version is v2 (v1 is deprecated)
- Path must include
/crm/restprefix - IDs are returned as strings
- Maximum
page_sizeis 1000 - Timestamps use ISO 8601 format