Close
Connect to Close CRM to manage leads, contacts, opportunities, tasks, notes, calls, emails, SMS, pipelines, sequences, webhooks, and users.
Connect to Close CRM. Manage leads, contacts, opportunities, tasks, notes, calls, emails, SMS, pipelines, sequences, and webhooks.
Supports authentication: OAuth 2.0

Set up the agent connector
Section titled “Set up the agent connector”Register your Scalekit environment with the Close connector so Scalekit handles the OAuth flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically.
-
Create a Close OAuth app
- Sign in to Close and go to Settings → Developer → OAuth Apps.
- Click Create New OAuth App.
- Enter an app name and description.
- In the Redirect URIs field, paste the redirect URI from Scalekit (see next step — you can come back to add it).

- Copy your Client ID and Client Secret from the app detail page.
-
Set up the connection in Scalekit
- In Scalekit dashboard, go to Agent Auth → Create Connection.
- Find Close and click Create.
- Copy the Redirect URI shown — it looks like:
https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback - Note the Connection name (e.g.,
close) — use this asconnection_namein your code.

- Return to your Close OAuth app and add the redirect URI you copied.
- Back in Scalekit, enter your Client ID and Client Secret. Scopes are granted automatically by Close — no additional scope configuration is needed.
- Click Save.
-
Add a connected account
Via dashboard (for testing)
- In the connection page, click the Connected Accounts tab → Add account.
- Enter a User ID and click Save. You will be redirected to Close to authorize access.

Via API (for production)
const { link } = await scalekit.actions.getAuthorizationLink({connectionName: 'close',identifier: 'user_123',});// Redirect your user to `link` to authorize accessconsole.log('Authorize at:', link);response = scalekit_client.actions.get_authorization_link(connection_name="close",identifier="user_123")# Redirect your user to response.link to authorize accessprint("Authorize at:", response.link)
Once a connected account is authorized, make Close API calls through the Scalekit proxy — no OAuth flow needed per request.
Proxy API calls
import { ScalekitClient } from '@scalekit-sdk/node';import 'dotenv/config';
const scalekit = new ScalekitClient( process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);const actions = scalekit.actions;
// Fetch the authenticated user's profileconst me = await actions.request({ connectionName: 'close', identifier: 'user_123', path: '/api/v1/me/', method: 'GET',});console.log(me);import scalekit.client, osfrom dotenv import load_dotenvload_dotenv()
scalekit_client = scalekit.client.ScalekitClient( client_id=os.getenv("SCALEKIT_CLIENT_ID"), client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"), env_url=os.getenv("SCALEKIT_ENV_URL"),)actions = scalekit_client.actions
# Fetch the authenticated user's profileme = actions.request( connection_name="close", identifier="user_123", path="/api/v1/me/", method="GET")print(me)Scalekit tools
Use execute_tool to call Close tools directly without constructing raw HTTP requests.
Basic example — get the current user
const me = await actions.executeTool({ toolName: 'close_me_get', connectionName: 'close', identifier: 'user_123', toolInput: {},});console.log(me);me = actions.execute_tool( tool_name="close_me_get", connection_name="close", identifier="user_123", tool_input={})print(me)Advanced enrichment workflow
This example shows a complete lead enrichment pipeline: find a lead, attach activities, enroll in a sequence, and track progress — all in one automated flow.
import { ScalekitClient } from '@scalekit-sdk/node';import 'dotenv/config';
const scalekit = new ScalekitClient( process.env.SCALEKIT_ENV_URL, process.env.SCALEKIT_CLIENT_ID, process.env.SCALEKIT_CLIENT_SECRET);const actions = scalekit.actions;
const opts = { connectionName: 'close', identifier: 'user_123' };
async function enrichAndEnrollLead(companyName: string, contactEmail: string) { // 1. Find or create the lead const searchResult = await actions.executeTool({ toolName: 'close_leads_list', ...opts, toolInput: { query: companyName, _limit: 1 }, });
let leadId: string; if (searchResult.data.length > 0) { leadId = searchResult.data[0].id; console.log(`Found existing lead: ${leadId}`); } else { const newLead = await actions.executeTool({ toolName: 'close_lead_create', ...opts, toolInput: { name: companyName }, }); leadId = newLead.id; console.log(`Created lead: ${leadId}`); }
// 2. Create a contact on the lead const contact = await actions.executeTool({ toolName: 'close_contact_create', ...opts, toolInput: { lead_id: leadId, name: contactEmail.split('@')[0], emails: JSON.stringify([{ email: contactEmail, type: 'office' }]), }, }); console.log(`Created contact: ${contact.id}`);
// 3. Create an opportunity on the lead const pipelines = await actions.executeTool({ toolName: 'close_pipelines_list', ...opts, toolInput: {}, }); const pipeline = pipelines.data[0]; const activeStatus = pipeline.statuses.find((s: any) => s.type === 'active'); if (!activeStatus) throw new Error('No active status found in pipeline');
const opportunity = await actions.executeTool({ toolName: 'close_opportunity_create', ...opts, toolInput: { lead_id: leadId, status_id: activeStatus.id, value: 500000, // $5,000.00 in cents value_currency: 'USD', value_period: 'one_time', confidence: 30, }, }); console.log(`Created opportunity: ${opportunity.id} — $${opportunity.value / 100}`);
// 4. Log a note summarizing the enrichment await actions.executeTool({ toolName: 'close_note_create', ...opts, toolInput: { lead_id: leadId, note: `Lead enriched automatically. Contact ${contactEmail} created. Opportunity ${opportunity.id} opened.`, }, });
// 5. Create a follow-up task const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); await actions.executeTool({ toolName: 'close_task_create', ...opts, toolInput: { lead_id: leadId, text: `Follow up with ${contactEmail}`, date: tomorrow.toISOString().split('T')[0], }, });
// 6. Enroll the contact in a sequence (if sequences exist) const sequences = await actions.executeTool({ toolName: 'close_sequences_list', ...opts, toolInput: { _limit: 1 }, });
if (sequences.data.length > 0) { const subscription = await actions.executeTool({ toolName: 'close_sequence_subscription_create', ...opts, toolInput: { contact_id: contact.id, sequence_id: sequences.data[0].id, }, }); console.log(`Enrolled contact in sequence. Subscription: ${subscription.id}`); }
return { leadId, contactId: contact.id, opportunityId: opportunity.id };}
// Run the enrichmentenrichAndEnrollLead('Acme Corp', 'jane@acme.com').then(console.log);import scalekit.client, os, jsonfrom datetime import date, timedeltafrom dotenv import load_dotenvload_dotenv()
scalekit_client = scalekit.client.ScalekitClient( client_id=os.getenv("SCALEKIT_CLIENT_ID"), client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"), env_url=os.getenv("SCALEKIT_ENV_URL"),)actions = scalekit_client.actions
def execute(tool_name, tool_input): return actions.execute_tool( tool_name=tool_name, connection_name="close", identifier="user_123", tool_input=tool_input )
def enrich_and_enroll_lead(company_name: str, contact_email: str): # 1. Find or create the lead search = execute("close_leads_list", {"query": company_name, "_limit": 1}) if search["data"]: lead_id = search["data"][0]["id"] print(f"Found existing lead: {lead_id}") else: lead = execute("close_lead_create", {"name": company_name}) lead_id = lead["id"] print(f"Created lead: {lead_id}")
# 2. Create a contact on the lead contact = execute("close_contact_create", { "lead_id": lead_id, "name": contact_email.split("@")[0], "emails": json.dumps([{"email": contact_email, "type": "office"}]), }) print(f"Created contact: {contact['id']}")
# 3. Create an opportunity pipelines = execute("close_pipelines_list", {}) pipeline = pipelines["data"][0] active_status = next(s for s in pipeline["statuses"] if s["type"] == "active")
opp = execute("close_opportunity_create", { "lead_id": lead_id, "status_id": active_status["id"], "value": 500000, # $5,000.00 in cents "value_currency": "USD", "value_period": "one_time", "confidence": 30, }) print(f"Created opportunity: {opp['id']} — ${opp['value'] / 100:.2f}")
# 4. Log a note execute("close_note_create", { "lead_id": lead_id, "note": ( f"Lead enriched automatically. " f"Contact {contact_email} created. " f"Opportunity {opp['id']} opened." ), })
# 5. Create a follow-up task tomorrow = (date.today() + timedelta(days=1)).isoformat() execute("close_task_create", { "lead_id": lead_id, "text": f"Follow up with {contact_email}", "date": tomorrow, })
# 6. Enroll in a sequence if one exists sequences = execute("close_sequences_list", {"_limit": 1}) if sequences["data"]: sub = execute("close_sequence_subscription_create", { "contact_id": contact["id"], "sequence_id": sequences["data"][0]["id"], }) print(f"Enrolled contact in sequence. Subscription: {sub['id']}")
return { "lead_id": lead_id, "contact_id": contact["id"], "opportunity_id": opp["id"] }
result = enrich_and_enroll_lead("Acme Corp", "jane@acme.com")print(result)Required scopes
Close OAuth apps automatically include both required scopes — no manual scope selection is needed.
| Scope | Required for |
|---|---|
all.full_access | All 81 tools (leads, contacts, opportunities, tasks, notes, calls, emails, SMS, pipelines, sequences, webhooks, users, custom fields) |
offline_access | All tools — enables the refresh token so sessions persist beyond 1 hour |
Getting resource IDs
Section titled “Getting resource IDs”Many tools require IDs that you must fetch first:
| Resource | Tool to get ID | Field in response |
|---|---|---|
| Lead ID | close_leads_list | data[].id |
| Contact ID | close_contacts_list | data[].id |
| Opportunity ID | close_opportunities_list | data[].id |
| Task ID | close_tasks_list | data[].id |
| Note ID | close_notes_list | data[].id |
| Call ID | close_calls_list | data[].id |
| Email ID | close_emails_list | data[].id |
| SMS ID | close_sms_list | data[].id |
| Pipeline ID | close_pipelines_list | data[].id |
| Sequence ID | close_sequences_list | data[].id |
| Sequence subscription ID | close_sequence_subscriptions_list | data[].id |
| User ID | close_users_list | data[].id |
| Comment ID | close_comments_list (requires paid plan) | data[].id |
| Webhook ID | close_webhooks_list | data[].id |
| Custom field ID | close_custom_fields_lead_list, close_custom_fields_contact_list, close_custom_fields_opportunity_list | data[].id |
Tool list
Section titled “Tool list”The Close connector provides 81 tools covering the full CRM lifecycle.
close_activities_list
Section titled “close_activities_list”List all activity types for a lead in Close (calls, emails, notes, SMS, etc.).
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | No | Filter by lead ID. Get it from close_leads_list. |
contact_id | string | No | Filter by contact ID. Get it from close_contacts_list. |
user_id | string | No | Filter by user ID. Get it from close_users_list. |
_type | string | No | Activity type: Note, Call, Email, Sms, etc. |
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_order_by | string | No | Sort field. Default: date_created. |
_fields | string | No | Comma-separated list of fields to return. |
close_call_create
Section titled “close_call_create”Log an external call activity on a lead in Close.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | Yes | ID of the lead for this call. Get it from close_leads_list. |
status | string | Yes | Call outcome: completed, no_answer, wrong_number, left_voicemail, etc. |
contact_id | string | No | ID of the contact called. |
direction | string | No | Call direction: inbound or outbound. |
duration | integer | No | Call duration in seconds. |
note | string | No | Notes about the call. |
phone | string | No | Phone number called. |
recording_url | string | No | HTTPS URL of the call recording. |
close_call_delete
Section titled “close_call_delete”Delete a call activity from Close.
| Name | Type | Required | Description |
|---|---|---|---|
call_id | string | Yes | ID of the call to delete. Get it from close_calls_list. |
close_call_get
Section titled “close_call_get”Retrieve a single call activity by ID.
| Name | Type | Required | Description |
|---|---|---|---|
call_id | string | Yes | ID of the call activity. Get it from close_calls_list. |
close_call_update
Section titled “close_call_update”Update a call activity’s note, status, or duration.
| Name | Type | Required | Description |
|---|---|---|---|
call_id | string | Yes | ID of the call to update. Get it from close_calls_list. |
note | string | No | Updated call notes. |
status | string | No | Updated call status. |
duration | integer | No | Updated call duration in seconds. |
close_calls_list
Section titled “close_calls_list”List call activities in Close, optionally filtered by lead, contact, or user.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | No | Filter by lead ID. Get it from close_leads_list. |
contact_id | string | No | Filter by contact ID. |
user_id | string | No | Filter by user ID. |
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_comment_create
Section titled “close_comment_create”Post a comment on a Close object (lead, opportunity, etc.).
| Name | Type | Required | Description |
|---|---|---|---|
object_id | string | Yes | ID of the object to comment on (e.g., a lead ID or opportunity ID). |
body | string | Yes | Comment text body. |
close_comment_delete
Section titled “close_comment_delete”Delete a comment from Close.
| Name | Type | Required | Description |
|---|---|---|---|
comment_id | string | Yes | ID of the comment to delete. Get it from close_comments_list. |
close_comment_get
Section titled “close_comment_get”Retrieve a single comment by ID.
| Name | Type | Required | Description |
|---|---|---|---|
comment_id | string | Yes | ID of the comment. Get it from close_comments_list. |
close_comment_update
Section titled “close_comment_update”Update the text of an existing comment.
| Name | Type | Required | Description |
|---|---|---|---|
comment_id | string | Yes | ID of the comment to update. Get it from close_comments_list. |
comment | string | Yes | Updated comment text. |
close_comments_list
Section titled “close_comments_list”List comments on an object. Provide either object_id or thread_id to filter results — both are optional but at least one is recommended by the API.
| Name | Type | Required | Description |
|---|---|---|---|
object_id | string | No | ID of the object to fetch comments for (e.g., a lead or opportunity ID). |
thread_id | string | No | ID of the comment thread. |
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_contact_create
Section titled “close_contact_create”Create a new contact in Close and associate it with a lead.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | Yes | ID of the lead to associate this contact with. Get it from close_leads_list. |
name | string | No | Full name of the contact. |
title | string | No | Job title of the contact. |
emails | string | No | JSON array of email objects, e.g. [{"email": "jane@acme.com", "type": "office"}]. |
phones | string | No | JSON array of phone objects, e.g. [{"phone": "+1234567890", "type": "office"}]. |
close_contact_delete
Section titled “close_contact_delete”Delete a contact from Close.
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | string | Yes | ID of the contact to delete. Get it from close_contacts_list. |
close_contact_get
Section titled “close_contact_get”Retrieve a single contact by ID from Close.
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | string | Yes | ID of the contact. Get it from close_contacts_list. |
_fields | string | No | Comma-separated list of fields to return. |
close_contact_update
Section titled “close_contact_update”Update a contact’s name, title, phone numbers, or email addresses.
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | string | Yes | ID of the contact to update. Get it from close_contacts_list. |
name | string | No | New full name. |
title | string | No | New job title. |
emails | string | No | JSON array of email objects. |
phones | string | No | JSON array of phone objects. |
close_contacts_list
Section titled “close_contacts_list”List contacts in Close, optionally filtered by lead.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | No | Filter contacts by lead ID. Get it from close_leads_list. |
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_custom_field_contact_create
Section titled “close_custom_field_contact_create”Create a new custom field for contacts in Close.
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the custom field. |
type | string | Yes | Field type: text, number, date, url, choices, etc. |
close_custom_field_contact_delete
Section titled “close_custom_field_contact_delete”Delete a contact custom field from Close.
| Name | Type | Required | Description |
|---|---|---|---|
custom_field_id | string | Yes | ID of the custom field to delete. Get it from close_custom_fields_contact_list. |
close_custom_field_contact_get
Section titled “close_custom_field_contact_get”Retrieve a single contact custom field by ID.
| Name | Type | Required | Description |
|---|---|---|---|
custom_field_id | string | Yes | ID of the custom field. Get it from close_custom_fields_contact_list. |
close_custom_field_contact_update
Section titled “close_custom_field_contact_update”Update a contact custom field’s name or choices.
| Name | Type | Required | Description |
|---|---|---|---|
custom_field_id | string | Yes | ID of the custom field to update. Get it from close_custom_fields_contact_list. |
name | string | No | New name for the custom field. |
close_custom_field_lead_create
Section titled “close_custom_field_lead_create”Create a new custom field for leads in Close.
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the custom field. |
type | string | Yes | Field type: text, number, date, url, choices, etc. |
close_custom_field_lead_delete
Section titled “close_custom_field_lead_delete”Delete a lead custom field from Close.
| Name | Type | Required | Description |
|---|---|---|---|
custom_field_id | string | Yes | ID of the custom field to delete. Get it from close_custom_fields_lead_list. |
close_custom_field_lead_get
Section titled “close_custom_field_lead_get”Retrieve a single lead custom field by ID.
| Name | Type | Required | Description |
|---|---|---|---|
custom_field_id | string | Yes | ID of the custom field. Get it from close_custom_fields_lead_list. |
close_custom_field_lead_update
Section titled “close_custom_field_lead_update”Update a lead custom field’s name or choices.
| Name | Type | Required | Description |
|---|---|---|---|
custom_field_id | string | Yes | ID of the custom field to update. Get it from close_custom_fields_lead_list. |
name | string | No | New name for the custom field. |
close_custom_field_opportunity_create
Section titled “close_custom_field_opportunity_create”Create a new custom field for opportunities in Close.
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the custom field. |
type | string | Yes | Field type: text, number, date, url, choices, etc. |
close_custom_field_opportunity_delete
Section titled “close_custom_field_opportunity_delete”Delete an opportunity custom field from Close.
| Name | Type | Required | Description |
|---|---|---|---|
custom_field_id | string | Yes | ID of the custom field to delete. Get it from close_custom_fields_opportunity_list. |
close_custom_field_opportunity_get
Section titled “close_custom_field_opportunity_get”Retrieve a single opportunity custom field by ID.
| Name | Type | Required | Description |
|---|---|---|---|
custom_field_id | string | Yes | ID of the custom field. Get it from close_custom_fields_opportunity_list. |
close_custom_field_opportunity_update
Section titled “close_custom_field_opportunity_update”Update an opportunity custom field’s name or choices.
| Name | Type | Required | Description |
|---|---|---|---|
custom_field_id | string | Yes | ID of the custom field to update. Get it from close_custom_fields_opportunity_list. |
name | string | No | New name for the custom field. |
close_custom_fields_contact_list
Section titled “close_custom_fields_contact_list”List all custom fields defined for contacts in Close.
| Name | Type | Required | Description |
|---|---|---|---|
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_custom_fields_lead_list
Section titled “close_custom_fields_lead_list”List all custom fields defined for leads in Close.
| Name | Type | Required | Description |
|---|---|---|---|
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_custom_fields_opportunity_list
Section titled “close_custom_fields_opportunity_list”List all custom fields defined for opportunities in Close.
| Name | Type | Required | Description |
|---|---|---|---|
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_email_create
Section titled “close_email_create”Log or send an email activity on a lead in Close.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | Yes | ID of the lead for this email. Get it from close_leads_list. |
status | string | Yes | Email status: inbox, draft, scheduled, outbox, sent. |
contact_id | string | No | ID of the contact this email is for. |
subject | string | No | Email subject line. |
body_text | string | No | Plain text email body. |
body_html | string | No | HTML email body. |
sender | string | No | Sender email address. |
to | string | No | JSON array of recipient emails, e.g. [{"email": "jane@acme.com"}]. |
close_email_delete
Section titled “close_email_delete”Delete an email activity from Close.
| Name | Type | Required | Description |
|---|---|---|---|
email_id | string | Yes | ID of the email to delete. Get it from close_emails_list. |
close_email_get
Section titled “close_email_get”Retrieve a single email activity by ID.
| Name | Type | Required | Description |
|---|---|---|---|
email_id | string | Yes | ID of the email activity. Get it from close_emails_list. |
close_email_update
Section titled “close_email_update”Update an email activity’s status, subject, or body.
| Name | Type | Required | Description |
|---|---|---|---|
email_id | string | Yes | ID of the email to update. Get it from close_emails_list. |
status | string | No | New email status: draft, scheduled, outbox, sent. |
subject | string | No | New subject line. |
body_text | string | No | New plain text body. |
body_html | string | No | New HTML body. |
close_emails_list
Section titled “close_emails_list”List email activities in Close, optionally filtered by lead or user.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | No | Filter by lead ID. |
contact_id | string | No | Filter by contact ID. |
user_id | string | No | Filter by user ID. |
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_lead_create
Section titled “close_lead_create”Create a new lead in Close with name, contacts, addresses, and custom fields.
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the lead / company. |
description | string | No | Description or notes about the lead. |
url | string | No | Website URL of the lead. |
status_id | string | No | Lead status ID. Get it from close_leads_list (a field in each lead object). |
close_lead_delete
Section titled “close_lead_delete”Permanently delete a lead and all its associated data from Close.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | Yes | ID of the lead to delete. Get it from close_leads_list. |
close_lead_get
Section titled “close_lead_get”Retrieve a single lead by ID from Close.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | Yes | ID of the lead to retrieve. Get it from close_leads_list. |
_fields | string | No | Comma-separated list of fields to return. |
close_lead_merge
Section titled “close_lead_merge”Merge two leads into one. The source lead’s data is merged into the destination lead and then deleted.
| Name | Type | Required | Description |
|---|---|---|---|
source | string | Yes | ID of the lead to merge from (will be deleted). Get it from close_leads_list. |
destination | string | Yes | ID of the lead to merge into (will be kept). Get it from close_leads_list. |
close_lead_update
Section titled “close_lead_update”Update an existing lead’s name, status, description, or custom fields.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | Yes | ID of the lead to update. Get it from close_leads_list. |
name | string | No | New name for the lead. |
description | string | No | Updated description. |
url | string | No | New website URL. |
status_id | string | No | New lead status ID. |
close_leads_list
Section titled “close_leads_list”List and search leads in Close. Supports full-text search and sorting.
| Name | Type | Required | Description |
|---|---|---|---|
query | string | No | Full-text search query to filter leads. |
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_order_by | string | No | Field to sort by. Prefix with - for descending (e.g., -date_created). |
_fields | string | No | Comma-separated list of fields to return. |
close_me_get
Section titled “close_me_get”Retrieve information about the authenticated Close user — useful for getting the current user ID and organization details.
No required parameters.
close_note_create
Section titled “close_note_create”Create a note activity on a lead in Close.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | Yes | ID of the lead to attach this note to. Get it from close_leads_list. |
note | string | Yes | Note body text (plain text). |
contact_id | string | No | ID of the contact this note relates to. |
close_note_delete
Section titled “close_note_delete”Delete a note activity from Close.
| Name | Type | Required | Description |
|---|---|---|---|
note_id | string | Yes | ID of the note to delete. Get it from close_notes_list. |
close_note_get
Section titled “close_note_get”Retrieve a single note activity by ID.
| Name | Type | Required | Description |
|---|---|---|---|
note_id | string | Yes | ID of the note activity. Get it from close_notes_list. |
close_note_update
Section titled “close_note_update”Update the body text of a note activity.
| Name | Type | Required | Description |
|---|---|---|---|
note_id | string | Yes | ID of the note to update. Get it from close_notes_list. |
note | string | Yes | Updated note body text. |
close_notes_list
Section titled “close_notes_list”List note activities in Close, optionally filtered by lead or user.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | No | Filter by lead ID. |
contact_id | string | No | Filter by contact ID. |
user_id | string | No | Filter by user ID. |
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_opportunities_list
Section titled “close_opportunities_list”List opportunities in Close, with optional filters by lead, user, or status.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | No | Filter by lead ID. |
user_id | string | No | Filter by assigned user ID. |
status_id | string | No | Filter by opportunity status ID. Get it from close_pipelines_list → statuses[].id. |
status_type | string | No | Filter by status type: active, won, or lost. |
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_order_by | string | No | Field to sort by. Prefix with - for descending. |
_fields | string | No | Comma-separated list of fields to return. |
close_opportunity_create
Section titled “close_opportunity_create”Create a new opportunity (deal) in Close and associate it with a lead.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | Yes | ID of the lead for this opportunity. Get it from close_leads_list. |
status_id | string | Yes | ID of the opportunity status. Get it from close_pipelines_list → statuses[].id. |
value | integer | No | Monetary value of the opportunity in cents (e.g., 500000 = $5,000). |
value_currency | string | No | Currency code, e.g. USD. |
value_period | string | No | Billing period: one_time, monthly, or annual. |
confidence | integer | No | Win probability percentage (0–100). |
expected_date | string | No | Expected close date (YYYY-MM-DD). |
date_won | string | No | Date won (YYYY-MM-DD), set when status is won. |
note | string | No | Note about this opportunity. |
close_opportunity_delete
Section titled “close_opportunity_delete”Delete an opportunity from Close.
| Name | Type | Required | Description |
|---|---|---|---|
opportunity_id | string | Yes | ID of the opportunity to delete. Get it from close_opportunities_list. |
close_opportunity_get
Section titled “close_opportunity_get”Retrieve a single opportunity by ID from Close.
| Name | Type | Required | Description |
|---|---|---|---|
opportunity_id | string | Yes | ID of the opportunity. Get it from close_opportunities_list. |
_fields | string | No | Comma-separated list of fields to return. |
close_opportunity_update
Section titled “close_opportunity_update”Update an opportunity’s status, value, note, or confidence.
| Name | Type | Required | Description |
|---|---|---|---|
opportunity_id | string | Yes | ID of the opportunity to update. Get it from close_opportunities_list. |
status_id | string | No | New status ID. Get it from close_pipelines_list → statuses[].id. |
value | integer | No | Updated monetary value in cents. |
value_currency | string | No | Currency code, e.g. USD. |
value_period | string | No | Billing period: one_time, monthly, or annual. |
confidence | integer | No | Win probability (0–100). |
expected_date | string | No | Expected close date (YYYY-MM-DD). |
date_won | string | No | Date won (YYYY-MM-DD). |
note | string | No | Updated note. |
close_pipeline_create
Section titled “close_pipeline_create”Create a new opportunity pipeline in Close.
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the pipeline. |
close_pipeline_delete
Section titled “close_pipeline_delete”Delete a pipeline from Close.
| Name | Type | Required | Description |
|---|---|---|---|
pipeline_id | string | Yes | ID of the pipeline to delete. Get it from close_pipelines_list. |
close_pipeline_get
Section titled “close_pipeline_get”Retrieve a single pipeline by ID.
| Name | Type | Required | Description |
|---|---|---|---|
pipeline_id | string | Yes | ID of the pipeline. Get it from close_pipelines_list. |
close_pipeline_update
Section titled “close_pipeline_update”Update an existing pipeline’s name or statuses.
| Name | Type | Required | Description |
|---|---|---|---|
pipeline_id | string | Yes | ID of the pipeline to update. Get it from close_pipelines_list. |
name | string | No | New pipeline name. |
close_pipelines_list
Section titled “close_pipelines_list”List all opportunity pipelines in the Close organization. Each pipeline includes its statuses with IDs needed for opportunity tools.
| Name | Type | Required | Description |
|---|---|---|---|
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_sequence_get
Section titled “close_sequence_get”Retrieve a single sequence by ID.
| Name | Type | Required | Description |
|---|---|---|---|
sequence_id | string | Yes | ID of the sequence. Get it from close_sequences_list. |
close_sequence_subscription_create
Section titled “close_sequence_subscription_create”Enroll a contact in a Close email sequence.
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | string | Yes | ID of the contact to enroll. Get it from close_contacts_list. |
sequence_id | string | Yes | ID of the sequence to enroll in. Get it from close_sequences_list. |
sender_account_id | string | No | ID of the sender email account to use. |
close_sequence_subscription_get
Section titled “close_sequence_subscription_get”Retrieve a single sequence subscription by ID.
| Name | Type | Required | Description |
|---|---|---|---|
subscription_id | string | Yes | ID of the subscription. Get it from close_sequence_subscriptions_list. |
close_sequence_subscription_update
Section titled “close_sequence_subscription_update”Pause or resume a contact’s sequence subscription.
| Name | Type | Required | Description |
|---|---|---|---|
subscription_id | string | Yes | ID of the subscription to update. Get it from close_sequence_subscriptions_list. |
pause | boolean | No | Set to true to pause the subscription, false to resume. |
close_sequence_subscriptions_list
Section titled “close_sequence_subscriptions_list”List sequence subscriptions. The API requires at least one of lead_id, contact_id, or sequence_id to be provided to filter results.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | No | Filter by lead ID. Get it from close_leads_list. |
contact_id | string | No | Filter by contact ID. Get it from close_contacts_list. |
sequence_id | string | No | Filter by sequence ID. Get it from close_sequences_list. |
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_sequences_list
Section titled “close_sequences_list”List email/activity sequences in Close.
| Name | Type | Required | Description |
|---|---|---|---|
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_sms_create
Section titled “close_sms_create”Log or send an SMS activity on a lead in Close.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | Yes | ID of the lead for this SMS. Get it from close_leads_list. |
status | string | Yes | SMS status: inbox, draft, scheduled, outbox, sent. |
contact_id | string | No | ID of the contact for this SMS. |
text | string | No | Body text of the SMS message. |
local_phone | string | No | Your local phone number to send from. |
remote_phone | string | No | Recipient phone number. |
close_sms_delete
Section titled “close_sms_delete”Delete an SMS activity from Close.
| Name | Type | Required | Description |
|---|---|---|---|
sms_id | string | Yes | ID of the SMS to delete. Get it from close_sms_list. |
close_sms_get
Section titled “close_sms_get”Retrieve a single SMS activity by ID.
| Name | Type | Required | Description |
|---|---|---|---|
sms_id | string | Yes | ID of the SMS activity. Get it from close_sms_list. |
close_sms_list
Section titled “close_sms_list”List SMS activities in Close, optionally filtered by lead or user.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | No | Filter by lead ID. |
contact_id | string | No | Filter by contact ID. |
user_id | string | No | Filter by user ID. |
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_sms_update
Section titled “close_sms_update”Update an SMS activity’s text or status.
| Name | Type | Required | Description |
|---|---|---|---|
sms_id | string | Yes | ID of the SMS to update. Get it from close_sms_list. |
text | string | No | Updated message text. |
status | string | No | New SMS status. |
close_task_create
Section titled “close_task_create”Create a new task in Close and assign it to a lead and user.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | Yes | ID of the lead to associate this task with. Get it from close_leads_list. |
text | string | No | Task description / title. |
date | string | No | Task due date (YYYY-MM-DD or ISO 8601). |
assigned_to | string | No | User ID to assign the task to. Get it from close_users_list. |
is_complete | boolean | No | Whether the task is already complete. |
_type | string | No | Task type, default is lead. |
close_task_delete
Section titled “close_task_delete”Delete a task from Close.
| Name | Type | Required | Description |
|---|---|---|---|
task_id | string | Yes | ID of the task to delete. Get it from close_tasks_list. |
close_task_get
Section titled “close_task_get”Retrieve a single task by ID from Close.
| Name | Type | Required | Description |
|---|---|---|---|
task_id | string | Yes | ID of the task. Get it from close_tasks_list. |
_fields | string | No | Comma-separated list of fields to return. |
close_task_update
Section titled “close_task_update”Update a task’s text, assigned user, due date, or completion status.
| Name | Type | Required | Description |
|---|---|---|---|
task_id | string | Yes | ID of the task to update. Get it from close_tasks_list. |
text | string | No | New task description. |
date | string | No | New due date (YYYY-MM-DD). |
assigned_to | string | No | New assigned user ID. Get it from close_users_list. |
is_complete | boolean | No | Mark task as complete or incomplete. |
close_tasks_list
Section titled “close_tasks_list”List tasks in Close. Filter by lead, assigned user, type, or completion status.
| Name | Type | Required | Description |
|---|---|---|---|
lead_id | string | No | Filter by lead ID. |
assigned_to | string | No | Filter by assigned user ID. |
is_complete | boolean | No | Filter by completion: true or false. |
_type | string | No | Task type: lead, incoming_email, email, automated_email, outgoing_call. |
view | string | No | Predefined view: inbox, future, or archive. |
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_order_by | string | No | Sort field. Prefix with - for descending. |
_fields | string | No | Comma-separated list of fields to return. |
close_user_get
Section titled “close_user_get”Retrieve a single user by ID from Close.
| Name | Type | Required | Description |
|---|---|---|---|
user_id | string | Yes | ID of the user. Get it from close_users_list or close_me_get. |
_fields | string | No | Comma-separated list of fields to return. |
close_users_list
Section titled “close_users_list”List all users in the Close organization.
| Name | Type | Required | Description |
|---|---|---|---|
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |
close_webhook_create
Section titled “close_webhook_create”Create a new webhook subscription to receive Close event notifications.
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Yes | HTTPS endpoint URL to receive webhook events. |
events | string | Yes | JSON array of event objects to subscribe to, e.g. [{"object_type":"lead","action":"created"}]. |
verify_ssl | boolean | No | Whether to verify SSL certificates (default: true). |
close_webhook_delete
Section titled “close_webhook_delete”Delete a webhook subscription from Close.
| Name | Type | Required | Description |
|---|---|---|---|
webhook_id | string | Yes | ID of the webhook to delete. Get it from close_webhooks_list. |
close_webhook_get
Section titled “close_webhook_get”Retrieve a single webhook subscription by ID.
| Name | Type | Required | Description |
|---|---|---|---|
webhook_id | string | Yes | ID of the webhook. Get it from close_webhooks_list. |
close_webhook_update
Section titled “close_webhook_update”Update a webhook subscription’s URL or event subscriptions.
| Name | Type | Required | Description |
|---|---|---|---|
webhook_id | string | Yes | ID of the webhook to update. Get it from close_webhooks_list. |
url | string | No | New HTTPS endpoint URL. |
events | string | No | New JSON array of event objects. |
verify_ssl | boolean | No | Whether to verify SSL certificates. |
close_webhooks_list
Section titled “close_webhooks_list”List all webhook subscriptions in Close.
| Name | Type | Required | Description |
|---|---|---|---|
_limit | integer | No | Maximum number of results to return. |
_skip | integer | No | Number of results to skip (offset). |
_fields | string | No | Comma-separated list of fields to return. |